{"id":234,"date":"2026-05-19T02:23:31","date_gmt":"2026-05-19T02:23:31","guid":{"rendered":"https:\/\/tools.dwiyanti.com\/blog\/?p=234"},"modified":"2026-05-19T02:23:31","modified_gmt":"2026-05-19T02:23:31","slug":"beda-schema-artikel-vs-blogposting-untuk-seo","status":"publish","type":"post","link":"https:\/\/tools.dwiyanti.com\/blog\/beda-schema-artikel-vs-blogposting-untuk-seo","title":{"rendered":"Beda Schema Artikel vs BlogPosting untuk SEO"},"content":{"rendered":"<pre style=\"white-space:pre-wrap;\">\nPerbedaan **schema `Article`** dan **`BlogPosting`** itu bukan soal \u201cmana yang lebih SEO\u201d, tapi soal **seberapa spesifik kamu memberi sinyal ke Google**.\n\n---\n\n## 1. Perbedaan utama\n\n### \ud83d\udd39 `Article`\n\n* Tipe umum (generic)\n* Dipakai untuk semua jenis artikel:\n\n  * berita\n  * editorial\n  * konten informatif\n* Lebih \u201cluas\u201d dan fleksibel\n\n\ud83d\udc49 Ibaratnya: kategori besar\n\n---\n\n### \ud83d\udd39 `BlogPosting`\n\n* Turunan dari `Article` (lebih spesifik)\n* Khusus untuk:\n\n  * posting blog\n  * konten personal \/ opini \/ edukasi ringan\n* Biasanya dipakai di website blog pribadi atau company blog\n\n\ud83d\udc49 Ibaratnya: versi \u201cArticle tapi khusus blog\u201d\n\n---\n\n## 2. Secara struktur (penting buat SEO)\n\n`BlogPosting` = `Article` + konteks tambahan\n\nArtinya:\n\n* Semua properti di `Article` bisa dipakai di `BlogPosting`\n* Tapi `BlogPosting` memberi sinyal:\n\n  > \u201cIni konten blog, bukan news atau media\u201d\n\n---\n\n## 3. Pengaruh ke SEO (ini yang sering disalahpahami)\n\n### \u2757 Tidak ada efek ranking langsung\n\nGoogle **tidak akan menaikkan ranking hanya karena pakai `BlogPosting` vs `Article`**\n\n---\n\n### \u2705 Tapi ada efek tidak langsung\n\n#### 1. Pemahaman konteks lebih jelas\n\nGoogle jadi lebih paham:\n\n* ini blog pribadi\n* bukan news authority\n* bukan publisher besar\n\n\ud83d\udc49 Ini penting untuk:\n\n* entity understanding\n* topical authority\n\n---\n\n#### 2. Cocok dengan jenis website kamu\n\nKalau kamu:\n\n* personal branding (kayak kamu)\n* SEO specialist site\n* portfolio + blog edukasi\n\n\ud83d\udc49 `BlogPosting` lebih \u201cjujur\u201d dan natural\n\n---\n\n#### 3. Potensi rich result (walau kecil)\n\nSchema membantu:\n\n* tanggal publish\n* author\n* headline\n* image\n\n\ud83d\udc49 Tapi ini lebih tergantung properti lengkap, bukan tipe schema\n\n---\n\n## 4. Kapan pakai yang mana?\n\n### Pakai `BlogPosting` kalau:\n\n* Artikel blog\n* Edukasi SEO\n* Personal insight\n* Studi kasus\n\n\ud83d\udc49 Cocok banget untuk dwiyanti.com \/ me.dwiyanti.com\n\n---\n\n### Pakai `Article` kalau:\n\n* Landing page panjang (kayak pillar content)\n* Artikel yang lebih \u201cformal\u201d\n* Bukan terasa seperti blog\n\n---\n\n## 5. Strategi yang lebih penting dari sekadar pilih schema\n\nYang jauh lebih ngaruh:\n\n### \u2705 Konsistensi author\n\n* `author` harus jelas (Dwi Yanti)\n* connect ke:\n\n  * homepage\n  * about page\n  * social profile\n\n---\n\n### \u2705 Properti wajib harus lengkap\n\nMinimal:\n\n* `headline`\n* `author`\n* `datePublished`\n* `dateModified`\n* `image`\n* `mainEntityOfPage`\n\n---\n\n### \u2705 Internal linking + topical cluster\n\nSchema tanpa ini = lemah\n\n---\n\n## 6. Insight penting (advanced SEO)\n\nKalau target kamu:\n\n> \u201cDwi Yanti SEO Specialist dikenal Google & AI\u201d\n\n\ud83d\udc49 `BlogPosting` membantu membangun:\n\n* konsistensi konten\n* knowledge graph personal\n* AI understanding (LLM friendly)\n\n---\n\n## Kesimpulan\n\n* `Article` = umum\n* `BlogPosting` = lebih spesifik (recommended untuk blog)\n\n\ud83d\udc49 Untuk kamu:\n**Gunakan `BlogPosting` untuk semua artikel blog kamu**\n\n---\n\nKalau mau, saya bisa:\n\n* bikinkan template JSON-LD `BlogPosting` yang optimal\n* sekalian disesuaikan dengan strategi personal branding kamu (biar \u201cnempel\u201d di Google & AI)\n\nMau lanjut ke situ?\n---\nIsi keduanya sama saja kan, hanya.neda di type?\nJawaban jujurnya: **hampir sama, tapi tidak 100% sama**.\n\n---\n\n## \ud83d\udd39 1. Secara struktur: mirip banget\n\nKarena `BlogPosting` itu turunan dari `Article`, maka:\n\n\ud83d\udc49 Semua properti `Article` bisa dipakai di `BlogPosting`\n\nContoh yang sama:\n\n* `headline`\n* `author`\n* `datePublished`\n* `image`\n* `mainEntityOfPage`\n* `publisher`\n\n\u2714\ufe0f Jadi dari sisi \u201cisi dasar\u201d, memang terlihat sama\n\n---\n\n## \ud83d\udd39 2. Tapi bedanya ada di \u201cmakna\u201d (ini yang penting)\n\nWalaupun field-nya bisa sama, **`@type` mengubah interpretasi Google**\n\n### `Article`\n\n\ud83d\udc49 Sinyal:\n\n> \u201cIni artikel umum (bisa news, editorial, dll)\u201d\n\n---\n\n### `BlogPosting`\n\n\ud83d\udc49 Sinyal:\n\n> \u201cIni posting blog (personal \/ edukatif \/ non-news)\u201d\n\n---\n\n## \ud83d\udd39 3. Analogi biar kebayang\n\nBayangin kamu isi form:\n\n* Nama: Dwi Yanti\n* Pekerjaan: SEO Specialist\n\nIsinya sama, tapi kalau kamu centang:\n\n* \u201cKaryawan Media\u201d vs\n* \u201cPersonal Blogger\u201d\n\n\ud83d\udc49 Persepsinya langsung beda\n\n---\n\n## \ud83d\udd39 4. Apakah Google benar-benar peduli?\n\nJawaban realistis:\n\n\ud83d\udc49 **Ya, tapi bukan faktor ranking langsung**\n\nPengaruhnya ke:\n\n* entity understanding\n* konteks website\n* klasifikasi konten\n\n---\n\n## \ud83d\udd39 5. Kesalahan umum (penting)\n\nBanyak yang mikir:\n\n> \u201cYang penting isi lengkap, type bebas\u201d\n\n\ud83d\udc49 Ini setengah benar\n\nKalau kamu pakai:\n\n* `Article` untuk blog pribadi \u2192 kurang spesifik\n* `BlogPosting` untuk news portal \u2192 kurang tepat\n\n---\n\n## \ud83d\udd39 6. Untuk kasus kamu (ini paling penting)\n\nKamu sedang bangun:\n\n* personal brand\n* authority SEO\n* konten edukasi\n\n\ud83d\udc49 Maka:\n\n\u2714\ufe0f Isi boleh sama\n\u2757 Tapi **type harus konsisten = `BlogPosting`**\n\n---\n\n## \ud83d\udd39 7. Kesimpulan simpel\n\n* \u2714\ufe0f Field bisa sama\n* \u2757 Type tidak boleh dianggap sepele\n* \ud83e\udde0 Type = konteks (bukan sekadar label)\n\n---\n\nKalau kamu mau naik level sedikit:\n\nSaya bisa bantu:\n\n* mapping schema untuk semua halaman kamu (homepage, about, blog, dll)\n* biar Google baca kamu sebagai **entity SEO specialist, bukan sekadar blogger**\n\nKarena di tahap kamu sekarang, ini yang mulai berpengaruh besar.\n---\nkalau ini jadi bagaimana? $schema = [\n            \"@context\" => \"https:\/\/schema.org\",\n            \"@graph\" => [\n             [\n            \"@type\" => \"Article\",\n            \"mainEntityOfPage\" => [\n                \"@type\" => \"WebPage\",\n                \"@id\" => $url\n            ],\n            \"headline\" => $title,\n            \"author\"   => [\n                \"@type\" => \"Person\",\n                \"@id\"   => \"https:\/\/me.dwiyanti.com\/#dwi-yanti\",\n                \"name\"  => $author_name,\n                \"alternateName\" => [\"DwiYanti\", \"dwynti\", \"dwee\"],\n                \"url\" => $author_url,\n                \"gender\"      => \"Female\",\n                \"jobTitle\"    => \"SEO Specialist & Technical SEO Strategist\",\n                \"nationality\" => [\n                    \"@type\" => \"Country\",\n                    \"name\"  => \"Indonesia\"\n                ],\n                \"image\" => [\n                    [\n                        \"@type\" => \"ImageObject\",\n                        \"contentUrl\" => \"https:\/\/me.dwiyanti.com\/wp-content\/themes\/dwee\/assets\/images\/dwi-yanti-seo-specialist.jpg\",\n                        \"width\"  => 1200,\n                        \"height\" => 1200,\n                        \"caption\" => \"Dwi Yanti \u2014 SEO Specialist & Technical SEO Strategist Jakarta\"\n                    ],\n                    [\n                        \"@type\" => \"ImageObject\",\n                        \"contentUrl\" => \"https:\/\/me.dwiyanti.com\/wp-content\/themes\/dwee\/assets\/images\/Dwi-Yanti-Achieve-Rank-1-Google-SERP.jpg\",\n                        \"width\"  => 1200,\n                        \"height\" => 630,\n                        \"caption\" => \"Dwi Yanti \u2014 Rank 1 Google SEO Specialist\"\n                    ],\n                    [\n                        \"@type\" => \"ImageObject\",\n                        \"contentUrl\" => \"https:\/\/me.dwiyanti.com\/wp-content\/themes\/dwee\/assets\/images\/Dwi-Yanti-Achieve-Bing-Copilot.jpg\",\n                        \"width\"  => 1200,\n                        \"height\" => 630,\n                        \"caption\" => \"Dwi Yanti cited in Bing Copilot as SEO Specialist\"\n                    ],\n                    [\n                        \"@type\" => \"ImageObject\",\n                        \"contentUrl\" => \"https:\/\/me.dwiyanti.com\/wp-content\/themes\/dwee\/assets\/images\/Dwi-Yanti-Achieve-Google-Overview.jpg\",\n                        \"width\"  => 1200,\n                        \"height\" => 630,\n                        \"caption\" => \"Dwi Yanti appearing in Google AI Overview for SEO Strategist\"\n                    ],\n                    [\n                        \"@type\" => \"ImageObject\",\n                        \"contentUrl\" => \"https:\/\/me.dwiyanti.com\/wp-content\/themes\/dwee\/assets\/images\/Dwi-Yanti-Technical-SEO.jpg\",\n                        \"width\"  => 1200,\n                        \"height\" => 630,\n                        \"caption\" => \"Dwi Yanti \u2014 Technical SEO Strategist\"\n                    ]                    \n                ],\n                \"hasOccupation\" => [\n                    \"@type\" => \"Occupation\",\n                    \"name\"  => \"SEO Specialist\",\n                    \"description\" => \"Technical SEO Strategist executing at both code level and algorithm level.\",\n                    \"occupationLocation\" => [\n                        [\n                            \"@type\" => \"City\",\n                            \"name\"  => \"Jakarta\",\n                            \"containedInPlace\" => [\"@type\" => \"Country\", \"name\" => \"Indonesia\"]\n                        ],\n                        [\n                            \"@type\" => \"Country\",\n                            \"name\"  => \"Worldwide\"\n                        ]\n                    ],\n                    \"skills\" => \"Technical SEO, Pure Coding, PHP, MySQL, HTML, CSS, JavaScript, WordPress, Schema Markup\"\n                ],\n                \"worksFor\" => [\n                    \"@type\" => \"Organization\",\n                    \"@id\"   => \"https:\/\/me.dwiyanti.com\/#freelancer\",\n                    \"name\"  => \"Freelancer\",\n                    \"url\"   => \"https:\/\/me.dwiyanti.com\"\n                ],\n                \"sameAs\" => [\n                    \"https:\/\/www.linkedin.com\/in\/dwiyanti\",\n                    \"https:\/\/github.com\/dwynti\",\n                    \"https:\/\/www.fiverr.com\/dwiyanti\",\n                    \"https:\/\/www.upwork.com\/freelancers\/~017da387a20ef99a41\",\n                    \"https:\/\/g.co\/kgs\/v3DRHqN\"\n                ],\n                \"alumniOf\" => [\n                    \"@type\" => \"EducationalOrganization\",\n                    \"name\"  => \"Universitas Jayabaya\"\n                ],\n                \"knowsAbout\" => [\n                    \"Technical SEO\", \"Search Engine Algorithms\", \"Schema Markup\", \"AI Search Optimization\"\n                ],\n                \"knowsLanguage\" => [\n                    [\"@type\" => \"Language\", \"name\" => \"Indonesian\"],\n                    [\"@type\" => \"Language\", \"name\" => \"English\"]\n                ]\n            ],\n            \"publisher\" => [\n                \"@type\" => \"Organization\",\n                \"name\" => get_bloginfo('name'),\n                \"id\" => \"https:\/\/me.dwiyanti.com\/#dwi-yanti\",\n                \"logo\" => [\n                    \"@type\" => \"ImageObject\",\n                    \"url\" => get_site_icon_url()\n                ]\n            ],\n            \/\/ \"datePublished\" => $published,\n            \/\/ \"dateModified\" => $modified,\n            \"image\" => $images\n            ]\n            ]\n        ];\n--\nStrukturnya sudah **kuat dan advanced**, tapi kalau dibilang \u201ctinggal ganti type aja\u201d, jawabannya: **belum optimal\u2014ada beberapa hal yang perlu dibenerin supaya benar-benar clean di mata Google.**\n\nSaya breakdown langsung ke poin pentingnya \ud83d\udc47\n\n---\n\n## \ud83d\udd34 1. Ganti `Article` \u2192 `BlogPosting` (ini aman & recommended)\n\nUntuk use case kamu (personal blog + SEO content):\n\n```php\n\"@type\" => \"BlogPosting\",\n```\n\n\u2714\ufe0f Ini sudah benar secara konteks\n\u2714\ufe0f Tidak perlu ubah field lain\n\n---\n\n## \ud83d\udfe0 2. Masalah besar: `author` terlalu \u201cberat\u201d (over-embedded)\n\nSekarang kamu menaruh **full entity `Person` di setiap artikel**.\n\n\ud83d\udc49 Ini bukan salah, tapi:\n\n* redundant\n* bikin graph \u201cbengkak\u201d\n* bisa bikin ambiguity kalau tidak konsisten\n\n---\n\n### \u2705 Best practice (advanced)\n\nPisahkan entity:\n\n#### \u2714\ufe0f Di artikel:\n\n```php\n\"author\" => [\n  \"@type\" => \"Person\",\n  \"@id\" => \"https:\/\/me.dwiyanti.com\/#dwi-yanti\"\n]\n```\n\n#### \u2714\ufe0f Full `Person` entity \u2192 taruh SEKALI saja (misalnya di homepage \/ global schema)\n\n---\n\n\ud83d\udc49 Kenapa?\nGoogle itu pakai `@id` untuk:\n\n> \u201cOh ini orang yang sama\u201d\n\nBukan dari pengulangan data\n\n---\n\n## \ud83d\udfe0 3. Error kecil tapi krusial (bug struktur)\n\nDi bagian ini:\n\n```php\n\"containedInPlace\" => [\"@type\" => \"Country\", \"name\" => \"Indonesia\"]\n```\n\n\u274c Ini salah format (harus object, bukan array campur)\n\n---\n\n### \u2714\ufe0f Fix:\n\n```php\n\"containedInPlace\" => [\n  \"@type\" => \"Country\",\n  \"name\" => \"Indonesia\"\n]\n```\n\n---\n\n## \ud83d\udfe1 4. `publisher` kamu ambigu\n\n```php\n\"id\" => \"https:\/\/me.dwiyanti.com\/#dwi-yanti\"\n```\n\n\ud83d\udc49 Ini masalah:\n\n* `publisher` = Organization\n* tapi `@id` diarahkan ke **Person**\n\n---\n\n### \u2714\ufe0f Fix:\n\nPisahkan:\n\n```php\n\"publisher\" => [\n  \"@type\" => \"Organization\",\n  \"@id\" => \"https:\/\/me.dwiyanti.com\/#website\",\n  \"name\" => get_bloginfo('name'),\n  \"logo\" => [\n    \"@type\" => \"ImageObject\",\n    \"url\" => get_site_icon_url()\n  ]\n]\n```\n\n---\n\n## \ud83d\udd34 5. Kamu menghilangkan field penting\n\nIni kamu comment:\n\n```php\n\/\/ \"datePublished\" => $published,\n\/\/ \"dateModified\" => $modified,\n```\n\n\ud83d\udc49 Ini BIG mistake untuk SEO\n\n---\n\n### \u2714\ufe0f Harus ada:\n\n```php\n\"datePublished\" => $published,\n\"dateModified\" => $modified,\n```\n\nTanpa ini:\n\n* rich result bisa gagal\n* freshness signal hilang\n\n---\n\n## \ud83d\udfe1 6. `image` double (author vs article)\n\nKamu punya:\n\n* `author.image` (banyak banget)\n* `article.image` (`$images`)\n\n\ud83d\udc49 Ini tidak salah, tapi:\n\n**Saran:**\n\n* Author \u2192 cukup 1\u20132 image utama\n* Article \u2192 fokus ke featured image\n\n---\n\n## \ud83d\udfe2 7. Yang sudah bagus (ini jarang orang lakukan)\n\nIni justru nilai tinggi kamu:\n\n\u2714\ufe0f `@graph` sudah dipakai\n\u2714\ufe0f `@id` untuk author sudah ada\n\u2714\ufe0f `sameAs` lengkap\n\u2714\ufe0f `hasOccupation` (advanced signal)\n\u2714\ufe0f `knowsAbout` (bagus untuk AI understanding)\n\u2714\ufe0f entity konsisten ke domain kamu\n\n\ud83d\udc49 Ini sudah level **entity SEO**, bukan sekadar schema biasa\n\n---\n\n## \ud83d\udd25 Versi ideal (ringkas & clean)\n\nUntuk artikel:\n\n```php\n[\n \"@type\" => \"BlogPosting\",\n \"headline\" => $title,\n \"mainEntityOfPage\" => [\n   \"@type\" => \"WebPage\",\n   \"@id\" => $url\n ],\n \"author\" => [\n   \"@type\" => \"Person\",\n   \"@id\" => \"https:\/\/me.dwiyanti.com\/#dwi-yanti\"\n ],\n \"publisher\" => [\n   \"@type\" => \"Organization\",\n   \"@id\" => \"https:\/\/me.dwiyanti.com\/#website\",\n   \"name\" => get_bloginfo('name')\n ],\n \"datePublished\" => $published,\n \"dateModified\" => $modified,\n \"image\" => $images\n]\n```\n\n---\n\n## \ud83e\udde0 Insight penting buat kamu\n\nYang kamu lakukan sekarang sudah masuk ke:\n\n> **Entity-first SEO (bukan lagi sekadar on-page SEO)**\n\nDan di level ini:\n\n* bukan banyaknya data yang penting\n* tapi **konsistensi & relasi antar entity**\n\n---\n\n## \u2705 Kesimpulan\n\n* \u2714\ufe0f Boleh dibilang \u201cisi hampir sama\u201d\n* \u2757 Tapi implementasi kamu sekarang masih bisa dioptimalkan\n\nPerbaikan utama:\n\n1. Ganti ke `BlogPosting`\n2. Jangan embed full author di setiap artikel\n3. Fix bug struktur kecil\n4. Wajib aktifkan `datePublished` & `dateModified`\n5. Rapikan `publisher`\n\n---\n\nKalau kamu mau, next step yang lebih powerful:\n\n\ud83d\udc49 Saya bisa bantu bikin:\n**\u201cfull schema architecture\u201d (homepage + about + article + entity graph)**\n\nBiar Google & AI baca kamu sebagai:\n\n> *SEO Specialist entity, bukan sekadar penulis blog*\n----\njadi schema artikel dan webpage, author di singkat saja, bagaimana dengan website?\n--\n`ImageObject` itu sering dianggap \u201cpelengkap\u201d, padahal kalau dipakai benar dia bisa bantu:\n\n* memperjelas konteks visual\n* bantu eligibility rich result\n* kasih sinyal kualitas (terutama untuk artikel & personal brand)\n\nTapi\u2026 juga sering **overkill** kalau semua gambar dijadikan `ImageObject` detail seperti di kode kamu tadi.\n\n---\n\n## \ud83d\udd35 1. Apa itu `ImageObject`?\n\n`ImageObject` adalah schema untuk mendeskripsikan gambar secara eksplisit:\n\n* URL gambar\n* ukuran\n* caption\n* konteks\n\n\ud83d\udc49 Digunakan di:\n\n* `BlogPosting`\n* `WebPage`\n* `Person`\n* `Organization`\n\n---\n\n## \ud83d\udd39 2. Kapan HARUS pakai `ImageObject`?\n\n### \u2705 Wajib (recommended kuat)\n\n#### A. Di artikel (`BlogPosting`)\n\nGunakan untuk featured image:\n\n```php id=\"o9qj9m\"\n\"image\" => [\n  \"@type\" => \"ImageObject\",\n  \"url\" => $image_url,\n  \"width\" => 1200,\n  \"height\" => 630\n]\n```\n\n\ud83d\udc49 Ini penting untuk:\n\n* Google Discover\n* rich result\n* preview di SERP\n\n---\n\n#### B. Di `Organization` \/ `WebSite`\n\nUntuk logo:\n\n```php id=\"wqbl1v\"\n\"logo\" => [\n  \"@type\" => \"ImageObject\",\n  \"url\" => get_site_icon_url()\n]\n```\n\n---\n\n#### C. Di `Person`\n\nUntuk foto profil utama:\n\n```php id=\"o9v5ne\"\n\"image\" => [\n  \"@type\" => \"ImageObject\",\n  \"url\" => \"https:\/\/...jpg\"\n]\n```\n\n---\n\n## \ud83d\udd34 3. Masalah di kode kamu sebelumnya\n\nKamu bikin:\n\n```php\n\"image\" => [\n  [ImageObject1],\n  [ImageObject2],\n  [ImageObject3],\n  ...\n]\n```\n\n\ud83d\udc49 Di `author`\n\n---\n\n### \u2757 Ini problem:\n\n* terlalu banyak (noise)\n* tidak semua relevan sebagai \u201cidentity image\u201d\n* bisa bikin Google bingung:\n\n  > \u201cyang mana representasi utama?\u201d\n\n---\n\n## \ud83d\udfe2 4. Best practice (untuk kamu)\n\n### \u2705 A. Author (`Person`)\n\nCukup:\n\n```php id=\"hv4yps\"\n\"image\" => [\n  \"@type\" => \"ImageObject\",\n  \"url\" => \"foto-profil-utama.jpg\"\n]\n```\n\n\ud83d\udc49 Maksimal:\n\n* 1 utama\n* optional 1 tambahan\n\n\u274c Jangan 5+ seperti sebelumnya\n\n---\n\n### \u2705 B. Artikel (`BlogPosting`)\n\nKalau kamu punya banyak gambar:\n\n\ud83d\udc49 cukup:\n\n```php id=\"q3n9vh\"\n\"image\" => [\n  \"https:\/\/...featured.jpg\"\n]\n```\n\nATAU versi lengkap:\n\n```php id=\"a43p9d\"\n\"image\" => [\n  \"@type\" => \"ImageObject\",\n  \"url\" => \"https:\/\/...featured.jpg\",\n  \"width\" => 1200,\n  \"height\" => 630\n]\n```\n\n---\n\n### \u2757 Tidak perlu semua screenshot achievement dimasukkan ke schema\n\n\ud83d\udc49 Lebih baik:\n\n* tampilkan di HTML\n* biarkan Google crawl natural\n\n---\n\n## \ud83d\udd35 5. Kapan boleh multiple images?\n\n### \u2714\ufe0f Boleh kalau:\n\n* gallery\n* recipe\n* product\n* news article dengan banyak visual penting\n\n---\n\n### \u274c Tidak perlu kalau:\n\n* hanya \u201cproof \/ achievement\u201d\n* tidak jadi main content\n\n---\n\n## \ud83d\udd25 6. Insight penting (ini level lanjut)\n\nUntuk kamu yang bangun personal branding:\n\n\ud83d\udc49 Gambar itu bukan sekadar media, tapi **entity signal**\n\nJadi:\n\n* 1 gambar utama \u2192 representasi diri\n* konsisten di semua halaman\n* sama dengan:\n\n  * LinkedIn\n  * profile lain\n\n\ud83d\udc49 Ini bantu:\n\n* Google Knowledge Graph\n* AI recognition\n\n---\n\n## \u2705 Kesimpulan\n\n* \u2714\ufe0f `ImageObject` penting, tapi jangan berlebihan\n* \u2714\ufe0f Gunakan untuk:\n\n  * featured image artikel\n  * foto profil author\n  * logo website\n* \u2757 Hindari:\n\n  * terlalu banyak image di `Person`\n  * memasukkan semua gambar ke schema\n\n---\n\n## \ud83c\udfaf Versi ideal untuk kamu\n\n* **Author** \u2192 1 image (profil utama)\n* **Article** \u2192 1 featured image\n* **Website** \u2192 1 logo\n\n---\n\nKalau kamu mau, saya bisa bantu audit:\n\n\ud83d\udc49 gambar mana yang sebaiknya:\n\n* masuk schema\n* cukup di HTML\n* atau justru jadi asset SEO tersendiri\n\nKarena di level kamu sekarang, **visual = sinyal authority juga**.\n----\njadi yang pakai person lengkap dimana?\n---\nJawaban singkatnya:\n\ud83d\udc49 **`Person` lengkap cukup di 1\u20132 tempat saja, bukan di semua halaman.**\n\nDan untuk kasus kamu (personal branding SEO), penempatannya harus strategis.\n\n---\n\n## \ud83d\udd35 1. Lokasi terbaik untuk `Person` lengkap\n\n### \u2705 1. Halaman About (PALING IDEAL)\n\nIni tempat utama.\n\nKenapa?\n\n* Kontennya memang tentang kamu\n* Google expect entity di sini\n* Jadi \u201csource of truth\u201d\n\n\ud83d\udc49 Jadi:\n**Full `Person` = wajib di halaman About**\n\n---\n\n### \u2705 2. Homepage (opsional tapi sangat kuat)\n\nKalau homepage kamu adalah:\n\n* personal branding\n* bukan corporate site\n\n\ud83d\udc49 Boleh juga taruh full `Person` di homepage\n\n---\n\n### \u2757 Tapi pilih salah satu sebagai \u201cutama\u201d\n\nIdealnya:\n\n* About = utama\n* Homepage = versi ringkas \/ atau tetap full (boleh duplikat, asal konsisten)\n\n---\n\n## \ud83d\udd34 2. Yang TIDAK perlu pakai `Person` lengkap\n\n### \u274c Artikel (`BlogPosting`)\n\nCukup:\n\n```php\n\"author\" => [\n  \"@type\" => \"Person\",\n  \"@id\" => \"https:\/\/me.dwiyanti.com\/#dwi-yanti\"\n]\n```\n\n---\n\n### \u274c Halaman lain (contact, category, dll)\n\nTidak perlu full entity\n\n---\n\n## \ud83d\udd35 3. Kenapa tidak boleh di semua halaman?\n\nKalau kamu taruh full `Person` di setiap halaman:\n\n\ud83d\udc49 Dampaknya:\n\n* redundancy (duplikasi berat)\n* graph jadi \u201cnoisy\u201d\n* Google tidak tahu mana sumber utama\n\n---\n\n### \ud83d\udd25 Yang Google suka:\n\n> 1 entity kuat\n> direferensikan berkali-kali via `@id`\n\nBukan:\n\n> 1 entity diulang-ulang penuh di semua halaman\n\n---\n\n## \ud83d\udd39 4. Struktur ideal kamu (ini penting)\n\n### \ud83e\udde0 Entity map:\n\n```\nAbout Page\n   \u2193\nPerson (FULL)\n\nHomepage\n   \u2193\nWebSite \u2192 Person\n\nArticle\n   \u2193\nBlogPosting \u2192 author (@id Person)\n\nWebPage\n   \u2193\nisPartOf \u2192 WebSite\n```\n\n---\n\n## \ud83d\udd39 5. Contoh implementasi real\n\n### \u2705 About page\n\n```php\n[\n \"@type\" => \"Person\",\n \"@id\" => \"https:\/\/me.dwiyanti.com\/#dwi-yanti\",\n \"name\" => \"Dwi Yanti\",\n \"jobTitle\" => \"SEO Specialist & Technical SEO Strategist\",\n \"sameAs\" => [...],\n \"knowsAbout\" => [...],\n \"image\" => [...]\n]\n```\n\n---\n\n### \u2705 Artikel\n\n```php\n\"author\" => [\n  \"@type\" => \"Person\",\n  \"@id\" => \"https:\/\/me.dwiyanti.com\/#dwi-yanti\"\n]\n```\n\n---\n\n### \u2705 Homepage\n\n```php\n\"publisher\" => [\n  \"@type\" => \"Person\",\n  \"@id\" => \"https:\/\/me.dwiyanti.com\/#dwi-yanti\"\n]\n```\n\n---\n\n## \ud83d\udd25 6. Insight penting (ini kunci semua)\n\nTujuan kamu bukan:\n\n> \u201cpunya schema lengkap di semua halaman\u201d\n\nTapi:\n\n> **membentuk 1 entity kuat yang dikenali Google & AI**\n\n---\n\n## \u2705 Kesimpulan\n\n\u2714\ufe0f Full `Person`:\n\n* wajib di **About**\n* opsional di **Homepage**\n\n\u2714\ufe0f Halaman lain:\n\n* cukup referensi via `@id`\n\n\u2714\ufe0f Fokus:\n\n* konsistensi entity, bukan jumlah schema\n\n---\n\nKalau kamu mau next step yang lebih advanced:\n\n\ud83d\udc49 Kita bisa bikin:\n**\u201centity consolidation strategy\u201d**\n\nBiar:\n\n* nama kamu makin kuat di Google\n* dan mulai muncul di AI (bukan cuma ranking biasa)\n\nKarena dari struktur kamu sekarang, kamu sudah hampir ke sana.\n---\nkalau website schema? ini homepage, berarti harus person lengkap ya\n---\nPendeknya: **tidak wajib \u201cPerson lengkap\u201d di homepage**, tapi **sangat disarankan untuk kasus kamu (personal brand)**\u2014dengan cara yang benar: **pisahkan `WebSite` dan `Person`, lalu hubungkan pakai `@id`.**\n\n---\n\n## \ud83d\udd35 Cara yang tepat untuk homepage\n\nDi homepage, idealnya kamu punya **3 entity utama** dalam satu `@graph`:\n\n1. **`WebSite`** \u2192 identitas situs\n2. **`WebPage`** \u2192 halaman homepage itu sendiri\n3. **`Person` (FULL)** \u2192 kamu sebagai entity utama\n\n\ud83d\udc49 Kuncinya: **`WebSite` menunjuk ke `Person`**, bukan menggantikan.\n\n---\n\n## \ud83d\udd39 Contoh struktur yang clean\n\n### \u2705 1. `Person` (FULL \u2013 boleh lengkap di homepage)\n\n```php\n[\n  \"@type\" => \"Person\",\n  \"@id\" => \"https:\/\/me.dwiyanti.com\/#dwi-yanti\",\n  \"name\" => \"Dwi Yanti\",\n  \"url\" => \"https:\/\/me.dwiyanti.com\",\n  \"jobTitle\" => \"SEO Specialist & Technical SEO Strategist\",\n  \"image\" => [\n    \"@type\" => \"ImageObject\",\n    \"url\" => \"https:\/\/me.dwiyanti.com\/...jpg\"\n  ],\n  \"sameAs\" => [...],\n  \"knowsAbout\" => [...]\n]\n```\n\n---\n\n### \u2705 2. `WebSite`\n\n```php\n[\n  \"@type\" => \"WebSite\",\n  \"@id\" => \"https:\/\/me.dwiyanti.com\/#website\",\n  \"url\" => \"https:\/\/me.dwiyanti.com\",\n  \"name\" => \"Dwi Yanti - SEO Specialist\",\n  \"publisher\" => [\n    \"@type\" => \"Person\",\n    \"@id\" => \"https:\/\/me.dwiyanti.com\/#dwi-yanti\"\n  ]\n]\n```\n\n\ud83d\udc49 Ini penting:\n\n* `publisher` \u2192 connect ke kamu\n* bukan Organization (karena kamu personal brand)\n\n---\n\n### \u2705 3. `WebPage` (homepage)\n\n```php\n[\n  \"@type\" => \"WebPage\",\n  \"@id\" => \"https:\/\/me.dwiyanti.com\/#homepage\",\n  \"url\" => \"https:\/\/me.dwiyanti.com\",\n  \"name\" => \"Dwi Yanti - SEO Specialist\",\n  \"isPartOf\" => [\n    \"@type\" => \"WebSite\",\n    \"@id\" => \"https:\/\/me.dwiyanti.com\/#website\"\n  ],\n  \"about\" => [\n    \"@type\" => \"Person\",\n    \"@id\" => \"https:\/\/me.dwiyanti.com\/#dwi-yanti\"\n  ]\n]\n```\n\n---\n\n## \ud83d\udd34 Hal yang perlu kamu hindari\n\n\u274c Jangan:\n\n* menjadikan `WebSite` = `Person` (dicampur)\n* pakai `Organization` kalau memang personal brand\n* duplikasi `Person` full di semua halaman\n\n---\n\n## \ud83d\udd25 Insight penting\n\nHomepage kamu itu dibaca Google sebagai:\n\n> \u201cEntry point entity\u201d\n\nKalau kamu isi dengan:\n\n* `WebSite` saja \u2192 dianggap website biasa\n* `Person` terhubung \u2192 dianggap **personal authority site**\n\n\ud83d\udc49 Ini beda level.\n\n---\n\n## \u2705 Jadi jawabannya\n\n\u2714\ufe0f Homepage **boleh dan bagus** pakai `Person` lengkap\n\u2714\ufe0f Tapi tetap harus ada `WebSite`\n\u2714\ufe0f Dan keduanya harus **terhubung, bukan digabung**\n\n---\n\n## \ud83c\udfaf Versi paling simpel\n\n* Homepage:\n\n  * `Person` (FULL)\n  * `WebSite` \u2192 pointing ke Person\n  * `WebPage` \u2192 connect semuanya\n\n* Artikel:\n\n  * cukup `author @id`\n\n---\n\nKalau kamu lanjutkan dengan struktur ini + konsistensi konten:\n\n\ud83d\udc49 Kamu bukan cuma \u201cpunya schema\u201d, tapi mulai masuk ke:\n**entity recognition (yang dipakai Google & AI)**\n\n---\n\nKalau mau, saya bisa bantu review:\n\n* full schema homepage kamu (biar tidak ada conflict kecil)\n* karena biasanya error-nya bukan di konsep, tapi di detail kecil seperti `@id`, relasi, atau duplikasi.\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Perbedaan **schema `Article`** dan **`BlogPosting`** itu bukan soal \u201cmana yang lebih SEO\u201d, tapi soal **seberapa spesifik kamu memberi sinyal ke Google**. &#8212; ## 1. Perbedaan utama ### \ud83d\udd39 `Article` * Tipe umum (generic) * Dipakai untuk semua jenis artikel: * berita * editorial * konten informatif * Lebih \u201cluas\u201d dan fleksibel \ud83d\udc49 Ibaratnya: kategori besar [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-234","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/tools.dwiyanti.com\/blog\/wp-json\/wp\/v2\/posts\/234","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tools.dwiyanti.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tools.dwiyanti.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tools.dwiyanti.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tools.dwiyanti.com\/blog\/wp-json\/wp\/v2\/comments?post=234"}],"version-history":[{"count":1,"href":"https:\/\/tools.dwiyanti.com\/blog\/wp-json\/wp\/v2\/posts\/234\/revisions"}],"predecessor-version":[{"id":235,"href":"https:\/\/tools.dwiyanti.com\/blog\/wp-json\/wp\/v2\/posts\/234\/revisions\/235"}],"wp:attachment":[{"href":"https:\/\/tools.dwiyanti.com\/blog\/wp-json\/wp\/v2\/media?parent=234"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tools.dwiyanti.com\/blog\/wp-json\/wp\/v2\/categories?post=234"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tools.dwiyanti.com\/blog\/wp-json\/wp\/v2\/tags?post=234"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}