Entity Infrastructure Walkthrough 9 menit

Membangun @graph JSON-LD Lintas-Halaman

Template dan walkthrough untuk memasang satu @graph JSON-LD yang merujuk ke dirinya sendiri lintas-halaman, agar Google merakit Organization, Person, dan Service jadi satu entitas.

Cara paling umum memasang schema.org adalah satu JSON-LD per halaman. Itu valid, tapi lemah. Pendekatan @graph lintas-halaman adalah membuat setiap halaman menerbitkan mini-graph yang isinya entity sama, dirujuk via @id yang identik. Hasilnya: Google membaca 10 halaman sebagai 10 saksi yang mengkonfirmasi entitas yang sama.

Prinsip inti: @id sebagai entity identifier

Schema.org tidak memaksa @id identik lintas-halaman. Tapi kalau kamu buat identik, Google akan menggabungkan mereka. Itulah yang kita manfaatkan.

Pola yang dipakai: @id = URL + fragment hash. Contoh:

https://hibranwar.com/#person      → Person (Ibrahim Anwar)
https://hibranwar.com/#website     → WebSite
https://hibranwar.com/#organization → Organization (Hibranwar Labs)

Fragment hash #person, #website, #organization adalah konvensi yang diadopsi Yoast, Rank Math, dan kebanyakan plugin. Tidak wajib, tapi disarankan untuk konsistensi.

Minimal viable graph

{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://witanabe.com/#organization",
      "name": "PT Witanabe Integrasi Indonesia",
      "url": "https://witanabe.com/",
      "logo": "https://witanabe.com/images/logo.webp",
      "sameAs": [
        "https://www.linkedin.com/company/witanabe",
        "https://www.wikidata.org/wiki/Q123456789"
      ]
    },
    {
      "@type": "WebSite",
      "@id": "https://witanabe.com/#website",
      "url": "https://witanabe.com/",
      "name": "Witanabe",
      "publisher": { "@id": "https://witanabe.com/#organization" }
    }
  ]
}

Cross-page linkage

Di halaman /products/albin-pump/, kamu tidak ulangi semua. Kamu terbitkan Product, dan rujuk Organization via @id:

{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Product",
      "@id": "https://witanabe.com/products/albin-pump/#product",
      "name": "ALBIN ALP Series Air-Operated Diaphragm Pump",
      "brand": { "@id": "https://witanabe.com/#organization" },
      "manufacturer": { "@id": "https://witanabe.com/#organization" }
    }
  ]
}

Perhatikan: Product tidak mendefinisikan ulang Organization. Ia hanya menunjuk ke @id canonical. Ini membuat crawler paham: Product ini diproduksi oleh Organization yang ada di homepage.

Portofolio multi-domain

Kalau kamu punya beberapa domain (seperti Ibrahim: hibranwar.com, ptarsindo.com, witanabe.com, hibrkraft.com), satu Person bisa dirujuk dari semua domain. Ini adalah entity triangle pattern.

// Di hibranwar.com (canonical Person):
{ "@type": "Person", "@id": "https://hibranwar.com/#person", "name": "Ibrahim Anwar", ... }

// Di ptarsindo.com (reference, tidak canonical):
{ "@type": "Organization", "@id": "https://ptarsindo.com/#organization",
  "founder": { "@id": "https://hibranwar.com/#person" } }
Penting

Hanya satu domain yang 'canonical' untuk Person. Domain lain merujuk via @id tapi tidak mendefinisikan ulang. Kalau semua domain mendefinisikan Person yang sama, Google bisa bingung mana yang primary.

Validasi

  • Test di Schema Markup Validator (validator.schema.org).Harus lulus tanpa warning.
  • Test di Rich Results Test Google.Hasilnya akan tunjukkan entitas mana yang eligible untuk rich result.
  • Cek di Google Search Console > Enhancements.Tunggu 7-14 hari. Harus muncul Organization atau Person sebagai dapat diakses.
  • Uji di AI chatbot: tanyakan 'Siapa founder [brand]'.Kalau jawaban akurat, graph sudah terbaca.