Panduan JSON-LD
JSON-LD adalah script-based data terstruktur format Google recommends — easiest untuk implement, tidak pernah touches terlihat HTML, dan typically pairs dengan schema.org untuk SEO.
1 sinyal bukti di halaman ini
- Alat aktif terkaitSchema Markup Validator
JSON-LD (JavaScript Object Notation untuk ditautkan data) adalah sebuah data terstruktur format itu lives di sebuah <script type="application/ld+json"> tag; pada SEO side ini adalah typically paired dengan schema.org vocabulary untuk deskripsikan halaman konten, though JSON-LD itself dapat carry lainnya vocabularies too. ini adalah sebuah W3C standard (2014), dan Google recommends ini di atas Microdata dan RDFa untuk satu alasan: ini adalah easiest format untuk implement dan maintain di scale, karena ini sits di -nya own block dan tidak pernah touches Anda terlihat HTML. semua three formats berfungsi equally well ketika implemented correctly. syntax spine adalah @context ( vocabulary — schema.org untuk sebagian besar SEO markup, tetapi tidak satu-satunya valid nilai), @jenis ( entity), dan @id (sebuah berguna tetapi opsional stable URI untuk linking entities — basis dari @graph pattern, itself satu valid cara untuk organize multiple entities, tidak sebuah requirement). catch sebagian besar guides miss: Googlebot renders JavaScript so dynamically injected JSON-LD berfungsi untuk Google, tetapi several AI crawler — GPTBot dan ClaudeBot disertakan, sebagai tested — jangan execute JavaScript; itu's provider- dan date-spesifik, tidak sebuah universal aturan, so verify secara langsung jika sebuah particular crawler penting untuk Anda dan server-render markup Anda dapat't konfirmasi jika tidak. data terstruktur adalah tidak sebuah sinyal peringkat; ini governs rich-hasil eligibility dan entity understanding, dan ini harus deskripsikan konten sebenarnya terlihat pada halaman.
TL;DR — JSON-LD adalah sebuah kecil block dari code Anda tambahkan untuk sebuah halaman untuk spell out apa halaman adalah tentang — itu ini adalah sebuah artikel, sebuah product, sebuah recipe — di sebuah format mesin pencari dan AI sistem baca easily. ini sits di -nya own
<script>tag dan tidak pernah perubahan apa pun pengunjung see. Google recommends ini di atas lainnya dua formats karena ini adalah easiest untuk tambahkan dan pertahankan tidy. ini tidak akan membuat Anda peringkat lebih tinggi, tetapi ini dapat membuat Anda hasil look richer (stars, prices, FAQs).
Apa JSON-LD adalah
Ketika Anda publish sebuah halaman, sebuah human dapat baca ini dan figure out “oh, ini adalah a recipe untuk banana bread.” (terjemahan) “oh, ini adalah sebuah recipe untuk banana bread.” sebuah mesin pencari memiliki untuk guess itu dari kata. Structured data adalah bagaimana Anda berhenti guessing — Anda label halaman di machine-readable code so mesin know ini adalah sebuah recipe, siapa author adalah, apa rating adalah.
JSON-LD adalah paling popular cara untuk tulis itu label. name stands untuk
JavaScript Object Notation untuk ditautkan data. Bukti untuk klaim ini JSON-LD is a structured-data format that can express Schema.org types and properties in a script block. Cakupan: Schema.org JSON-LD guidance; JSON-LD is a format, not the vocabulary itself. Tingkat keyakinan: tinggi · Diverifikasi: Schema.org: JSON-LD Anda tidak perlu untuk know apa
itu berarti untuk gunakan ini. dalam praktik, JSON-LD adalah sebuah chunk dari code itu looks like sebuah
list dari labelled facts, tucked di dalam sebuah <script> tag:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "How to Bake Banana Bread",
"author": { "@type": "Person", "name": "Patrick Stox" },
"datePublished": "2026-06-26"
}
</script>key hal: itu block lives secara terpisah dari kata pada Anda halaman. ini tidak perubahan sebuah single hal Anda pengunjung see. ini adalah hanya instructions untuk robots.
Mengapa Google likes ini
ada sebenarnya three cara untuk tulis data terstruktur — JSON-LD, Microdata, dan RDFa. lainnya dua berfungsi oleh sprinkling extra code ke Anda terlihat HTML, tangled up dengan Anda heading dan paragraphs. JSON-LD mempertahankan ini semua di satu neat box.
«That’s why Google recommends JSON-LD: it’s the easiest to add, the easiest to keep correct, and you’re far less likely to break something. Google’s words: it’s “the easiest solution for website owners to implement and maintain at scale.” All three formats are fine — JSON-LD is just the least error-prone.
Bukti untuk klaim ini Google Search supports JSON-LD, Microdata, and RDFa and recommends JSON-LD when practical. Cakupan: Google Search structured-data guidance; supported formats do not guarantee feature eligibility. Tingkat keyakinan: tinggi · Diverifikasi: Google: Structured data introduction» (Terjemahan) (Ringkasan bahasa Indonesia untuk bagian dua belas, bagian kecil satu: teks sumber dipertahankan agar dapat diperiksa dalam tinjauan penutur asli.)
Apa ini sebenarnya melakukan untuk Anda
Dua honest hal, dan satu myth:
- ini dapat membuat Anda penelusuran hasil look richer. Recipe ratings, product prices, FAQ dropdowns, event dates — itu “rich hasil” (terjemahan) “rich hasil” come dari data terstruktur.
- ini helps mesin (dan AI) memahami Anda konten. ini connects Anda halaman untuk known hal — Anda business, sebuah author, sebuah product.
- ini melakukan tidak membuat Anda peringkat lebih tinggi. ini adalah myth. menambahkan JSON-LD adalah tidak sebuah peringkat boost. Google memiliki mengatakan ini plainly dan repeatedly.
satu aturan itu penting
hanya mark up apa sebenarnya pada halaman. jangan claim sebuah 5-star rating di Anda JSON-LD jika Tidak rating adalah ditampilkan untuk pengunjung. jangan deskripsikan sebuah price itu tidak di sana. data terstruktur memiliki untuk match terlihat halaman — describing hal itu tidak di sana adalah terhadap aturan dan dapat mendapatkan Anda rich hasil pulled.
ingin precise versi — @context / @type / @id syntax, @graph
pattern, JavaScript-injection trap itu hides Anda markup dari AI crawler, dan
cara validate ini? Switch untuk Advanced tab.
TL;DR — JSON-LD (JavaScript Object Notation untuk ditautkan data) adalah sebuah W3C Recommendation dari 2014 — dibangun pada JSON, tetapi
@contextadalah apa membuat ini ditautkan data, tidak hanya JSON. ini adalah data terstruktur format Google recommends karena ini adalah easiest untuk implement dan maintain di scale dan tidak pernah touches terlihat HTML; Microdata dan RDFa adalah equally valid ketika correct. syntax spine adalah@context(vocabulary — schema.org untuk sebagian besar SEO markup, though spec memungkinkan lainnya contexts),@type(entity),@id(sebuah berguna tetapi opsional stable URI untuk cross-referencing entities — basis dari@graph, itself satu valid pattern among others, tidak sebuah requirement). Place ini di<head>atau<body>— Google accepts either. Googlebot renders JS so dynamically injected JSON-LD berfungsi untuk Google; several AI crawler (GPTBot, ClaudeBot disertakan, sebagai tested) jangan execute JS, tetapi itu’s provider- dan date-spesifik — verify secara langsung alih-alih assuming ini untuk setiap AI crawler, dan server-render apa Anda dapat’t konfirmasi. data terstruktur adalah tidak sebuah sinyal peringkat — ini drives rich-hasil eligibility dan entity understanding, dan ini harus deskripsikan konten terlihat pada halaman.
JSON-LD adalah sebuah format, tidak sebuah vocabulary
pertama, sebuah pembedaan itu clears up sebuah lot dari confusion: JSON-LD adalah format;
schema.org adalah vocabulary. JSON-LD adalah bagaimana Anda tulis
markup; schema.org’s Article, Product, Organization jenis adalah apa Anda
say. Rich hasil adalah fitur layer pada top dari keduanya. ini halaman adalah tentang
format. ( vocabulary-untuk-AI angle lives di
Schema Markup untuk AI.)
JSON-LD adalah sebuah W3C Recommendation, pertama published
di 2014 — ini lebih lama dari -nya SEO adoption dan adalah designed untuk umum ditautkan-data
interoperability di seluruh web, tidak secara khusus untuk penelusuran. itu history adalah mengapa sebuah
property like @id ada di semua, dan ini adalah spec-tingkat poin sebagian besar SEO guides
skip: JSON-LD adalah tidak hanya JSON. ini adalah dibangun pada JSON syntax, tetapi @context
declaration adalah apa membuat data ditautkan — identifiable dan connectable di seluruh
web. Strip @context dan Anda’ve mendapat data sebuah parser dapat’t interpret.
JSON-LD juga tidak married untuk schema.org. spec lets @context reference apa pun
published vocabulary — -nya own contoh tautan untuk non-schema.org contexts — so
JSON-LD adalah right jawaban untuk “apa format” (terjemahan) “apa format” sementara schema.org adalah satu jawaban,
umum satu untuk penelusuran dan AI-penelusuran markup, untuk “apa vocabulary.” (terjemahan) “apa vocabulary.” sebuah halaman dapat
validly gunakan JSON-LD dengan sebuah berbeda vocabulary; ini hanya tidak akan menjadi schema.org
markup anymore.
«## JSON-LD vs. Microdata vs. RDFa » (Terjemahan) (Ringkasan bahasa Indonesia untuk bagian dua puluh enam, bagian kecil satu: teks sumber dipertahankan agar dapat diperiksa dalam tinjauan penutur asli.)
ada three cara untuk express data terstruktur, dan Google mendukung semua dari them:
| JSON-LD | Microdata | RDFa | |
|---|---|---|---|
| Di mana ini lives | sebuah terpisah <script> block | Inline itemprop attributes pada Anda HTML | Inline property attributes pada Anda HTML |
| Touches terlihat HTML? | Tidak | Ya | Ya |
| dapat menjadi injected oleh JS / tag manager? | Ya (cleanly) | Awkward | Awkward |
| Google’s stance | Recommended | didukung | didukung |
| Error-proneness | Lowest | Lebih tinggi (tangled dengan markup) | Lebih tinggi (tangled dengan markup) |
«Google’s recommendation is explicit but narrowly scoped: “In general, Google recommends using JSON-LD for structured data if your site’s setup allows it, as it’s the easiest solution for website owners to implement and maintain at scale (in other words, less prone to user errors).” » (Terjemahan) (Ringkasan bahasa Indonesia untuk bagian dua puluh sembilan, bagian kecil satu: teks sumber dipertahankan agar dapat diperiksa dalam tinjauan penutur asli.)
nuance pesaing biasanya drop — dan satu worth mempertahankan — muncul dari sama Google halaman: “All 3 formats adalah equally fine untuk Google, sebagai long sebagai itu markup adalah valid dan properly implemented per itu feature’s documentation.” (terjemahan) “semua 3 formats adalah equally fine untuk Google, sebagai panjang sebagai markup adalah valid dan properly implemented per fitur’s documentation.” So recommendation adalah tentang implementation ease dan error rate, tidak parsing speed atau peringkat advantage. menggunakan Microdata adalah tidak sebuah penalty. JSON-LD hanya wins dalam praktik karena ini tidak entangle data terstruktur dengan markup sebuah designer mungkin edit besok.
syntax: @context, @jenis, @id, properties, nesting
Di sini’s sebuah annotated Article block:
<script type="application/ld+json">
{
"@context": "https://schema.org", // the vocabulary — the common value for SEO
"@type": "Article", // the entity type
"@id": "https://example.com/post#article", // a stable URI for this entity
"headline": "How JSON-LD Works", // a property (key/value)
"datePublished": "2026-06-26",
"author": { // a nested entity
"@type": "Person",
"name": "Patrick Stox",
"url": "https://patrickstox.com/"
}
}
</script>@context— establishes semantic kerangka kerja ( vocabulary). untuk schema.org SEO markup ini adalah typically"https://schema.org", tetapi itu’s sebuah convention, tidak sebuah aturan:@contextmaps istilah untuk identifiers, dan spec lets ini poin untuk lainnya vocabularies. ini tells parser cara interpret setiap property name itu mengikuti. ini adalah bagian itu membuat ini ditautkan data.@type— declares entity:Article,Product,Organization,BreadcrumbList, dan seterusnya. ini maps untuk sebuah schema.org jenis. gunakan sebagian besar spesifik applicable jenis —NewsArticledi atasArticlejika ini fits.@id— sebuah unique URI identifying resource. ini adalah mechanism itu lets Anda reference satu entity dari lainnya (see@graphdi bawah), dan ini adalah worth setting pada apa pun Anda’ll cross-reference — tetapi ini adalah tidak universally diperlukan. JSON-LD spec permits unidentified blank nodes, so valid JSON-LD dapat omit@idpada entities Anda tidak pernah perlu untuk reference elsewhere.- Properties — ordinary JSON key/nilai pairs, menggunakan vocabulary istilah dari
@context. - Nesting — child entities adalah expressed sebagai nested JSON objects (
authorobject di atas) atau arrays dari objects.
@graph pattern ( scalable approach)
sebagian besar halaman perlu lebih daripada satu entity: sebuah Organization, sebuah WebSite, sebuah
BreadcrumbList, dan Article atau WebPage itself. naive approach adalah four
terpisah <script> blocks itu repeat data. sebuah scalable alternative adalah sebuah single
block dengan @graph — sebuah array dari entities, cross-referenced oleh @id. Neither
JSON-LD spec nor Google mandates @graph sebagai ** pattern — ini adalah syntax untuk
expressing sebuah graph, dan lainnya valid layouts exist (terpisah typed blocks, nested
objects tanpa sebuah top-tingkat @graph, blank nodes dengan Tidak @id di semua) — tetapi pada sebuah
situs dengan several cross-referenced entities, ini adalah pattern itu menghindari repeating
yang sama Organization atau WebSite data pada setiap halaman:
Satu Organization adalah referenced sebagai publisher oleh situs web dan artikel. WebPage belongs untuk situs web dan adalah connected untuk artikel. setiap entity adalah declared setelah, dan yang sama stable ID string adalah reused untuk setiap reference.
© Patrick Stox LLC · CC BY 4.0 ·
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Organization",
"@id": "https://example.com/#org",
"name": "Example Co",
"url": "https://example.com/"
},
{
"@type": "WebSite",
"@id": "https://example.com/#website",
"url": "https://example.com/",
"publisher": { "@id": "https://example.com/#org" } // reference, not a copy
},
{
"@type": "WebPage",
"@id": "https://example.com/post#webpage",
"isPartOf": { "@id": "https://example.com/#website" },
"breadcrumb": { "@id": "https://example.com/post#breadcrumb" }
}
]
}
</script>Define Organization setelah, lalu poin di ini dengan { "@id": "...#org" } di mana-mana
else alih-alih repeating name, logo, dan URL. ini adalah bagaimana major CMS schema
plugins bangun mereka output, dan ini adalah mengapa @id ada. Bing membuat yang sama case untuk
JSON-LD’s nesting: ini “membuat defining links dan relationships antara data dan
entities… easy karena it mendukung nested data.” (terjemahan) “membuat defining tautan dan relationships antara data dan
entities… easy karena ini mendukung nested data.”
Di mana untuk place ini: <head> atau <body>
Google mengonfirmasi keduanya berfungsi — “Anda dapat put itu JSON-LD data di itu <head> atau
itu <body> dari itu halaman.” (terjemahan) “Anda dapat put JSON-LD data di tidak terdefinisi atau
tidak terdefinisi dari halaman.” <head> adalah conventional, tetapi plenty dari CMS plugins
inject ini near end dari <body>, dan itu’s fine. Bing agrees ini dapat sit “di itu
header, body atau foot dari itu halaman.” (terjemahan) “di
header, body atau foot dari halaman.” jangan burn time relocating sebuah valid block dari
body untuk head; ini perubahan tidak ada apa pun. Bukti untuk klaim ini Google permits JSON-LD in either the head or body of an HTML document for supported structured-data features. Cakupan: Google Search JSON-LD guidance; markup must still match visible page content. Tingkat keyakinan: tinggi · Diverifikasi: Google: Structured data introduction
Generating JSON-LD dynamically — dan AI crawler catch
Anda dapat bangun JSON-LD pada fly dengan JavaScript, dan Google documents dua cara untuk melakukan ini:
Bukti untuk klaim ini Dynamically generated structured data is acceptable to Google when it is rendered and complies with content and quality guidelines. Cakupan: Google Search JavaScript and structured-data guidance; crawlability and rendering remain prerequisites. Tingkat keyakinan: tinggi · Diverifikasi: Google: Generate structured data with JavaScript- Google Tag Manager — sebuah Custom HTML tag containing JSON-LD, pulling nilai dari GTM variables. (hindari duplicating data antara halaman dan tag.)
- Custom JavaScript — buat script element programmatically:
const script = document.createElement('script');
script.setAttribute('type', 'application/ld+json');
script.textContent = structuredDataText;
document.head.appendChild(script);«This works for Googlebot, because Google renders the page: “Google Search can understand and process structured data that’s available in the DOM when it renders the page.” So far, so good. » (Terjemahan) (Ringkasan bahasa Indonesia untuk bagian empat puluh lima, bagian kecil satu: teks sumber dipertahankan agar dapat diperiksa dalam tinjauan penutur asli.)
Di sini’s catch sebagian besar guides miss, stated dengan hati-hati. Several AI crawler — including GPTBot dan ClaudeBot, sebagai commonly tested — memiliki tidak executed JavaScript. jika Anda JSON-LD hanya ada setelah sebuah client-side script berjalan, sebuah JS-skipping crawler tidak pernah sees ini — ini adalah invisible untuk itu bot bahkan though Googlebot membaca ini fine, karena Google documents rendering DOM sebelum ini looks untuk data terstruktur.
Dua honest caveats pada itu AI-crawler perilaku: ini adalah Google’s own documentation itu establishes Googlebot side; AI-crawler side muncul dari testing dan reporting pada individual providers, tidak sebuah spec apa pun dari them publish, so ini adalah provider- dan date-spesifik — sebuah crawler’s JavaScript mendukung dapat perubahan, dan I haven’t verified setiap provider secara langsung. jangan treat “AI crawlers skip JS” (terjemahan) “AI crawler skip JS” sebagai sebuah universal aturan untuk bangun pada; treat ini sebagai sebuah alasan untuk periksa crawler Anda sebenarnya care tentang (atau default untuk server rendering ketika Anda dapat’t periksa). jika ini tidak di server-dirender HTML dan Anda haven’t confirmed crawler executes JS, assume ini dapat’t see ini. untuk AI-penelusuran visibilitas, render JSON-LD server-side ke static HTML unless Anda’ve verified jika tidak. (ini adalah JavaScript-rendering masalah dari sebuah structured-data angle — see JavaScript SEO.)
ada sebuah kedua caveat untuk ecommerce: Google warns itu dynamically generated Product markup “dapat membuat Shopping crawls lebih sedikit frequent dan lebih sedikit reliable,” (terjemahan) “dapat membuat Shopping melakukan crawl lebih sedikit frequent dan lebih sedikit reliable,” yang adalah sebuah nyata masalah untuk fast-mengubah price dan availability. untuk products, prefer rendering sisi server regardless dari AI.
policies (ini memiliki teeth now)
Google’s data terstruktur guidelines adalah pendek dan muat-bearing:
- “Don’t mark up content that is not visible to readers of the page.” (terjemahan) “jangan mark up konten itu adalah tidak terlihat untuk readers dari halaman.”
- “Don’t mark up irrelevant or misleading content, such as fake reviews.” (terjemahan) “jangan mark up irrelevant atau misleading konten, such sebagai fake reviews.”
- “Put the structured data on the page that it describes.” (terjemahan) “Put data terstruktur pada halaman itu ini mendeskripsikan.”
- “Use the most specific applicable type and property names defined by schema.org.” (terjemahan) “gunakan paling spesifik applicable jenis dan property names didefinisikan oleh schema.org.”
- jangan block Anda structured-data halaman dari Googlebot melalui robots.txt atau noindex.
«The visible-content rule is the one to internalize. Schema that describes content not shown on the page has always been a violation; enforcement of “invisible” schema has tightened. Bing puts the warning bluntly: “even though the markup is not visible on your page, it is still read by the search engines, and putting spam data in the markup can hamper your presence.” » (Terjemahan) (Ringkasan bahasa Indonesia untuk bagian lima puluh dua, bagian kecil satu: teks sumber dipertahankan agar dapat diperiksa dalam tinjauan penutur asli.)
umum JSON-LD mistakes
- Markup itu tidak match terlihat halaman — #1 policy masalah (sebuah rating di JSON-LD itu Tidak pengunjung sees).
- Malformed JSON — sebuah trailing comma, sebuah unescaped quote, atau kata smart quotes
(
"alih-alih") itu silently break seluruh block. JSON-LD adalah strict. - Wrong property names — inventing properties itu tidak di schema.org, atau misspelling nyata ones, so parser ignores them.
- sebuah generic jenis di mana sebuah spesifik satu ada —
ThingatauArticledi manaRecipeatauNewsArticleadalah warranted. - Duplicate, inconsistent
Organizationblocks di seluruh halaman dengan conflicting names/logos. - Missing diperlukan properties untuk rich hasil Anda’re targeting (setiap fitur lists -nya own diperlukan fields).
- JS-injected markup assumed untuk menjadi terlihat untuk setiap crawler — Google renders ini, tetapi beberapa AI crawler memiliki tidak, dan itu’s worth verifying per crawler ( catch di atas).
Validating JSON-LD
Four berbeda pertanyaan mendapatkan ditanyakan di bawah “adalah my JSON-LD valid,” (terjemahan) “adalah my JSON-LD valid,” dan mereka’re tidak sama pertanyaan — passing satu tidak lulus others:
| Test | Proves | melakukan tidak prove |
|---|---|---|
| JSON parses (apa pun JSON linter, atau Rich hasil Test’s parse langkah) | syntax adalah legal JSON — Tidak trailing commas, unescaped quotes, atau smart-quote breakage | itu apa pun property name adalah nyata schema.org vocabulary, atau itu Google akan tampilkan apa pun |
| Schema.org Validator | properties dan jenis exist di schema.org vocabulary | itu Google mendukung jenis sebagai sebuah rich hasil, atau itu diperlukan fields untuk sebuah spesifik fitur adalah present |
| Rich hasil Test | markup memenuhi Google’s requirements untuk sebuah spesifik didukung rich-hasil jenis, pada dirender halaman Anda tested | itu Google akan sebenarnya display rich hasil — eligibility tidak sebuah jaminan — atau itu lainnya penelusuran/AI sistem parse ini yang sama cara |
| Google Search Console — Enhancements / rich hasil reports | Apa Google sebenarnya parsed pada langsung, di-crawl halaman, di scale, dengan nyata errors | nyata-time state — reports lag behind sebuah recrawl |
- Test oleh URL, tidak pasted code, untuk JS-dirender halaman. Rich hasil Test’s code-input mode tidak jalankan Anda scripts atau resolve relative references cara langsung-URL testing melakukan — ini dapat’t tell Anda apa sebuah client-side-injected block looks like setelah rendering.
- Bing Webmaster alat — Markup Validator — Bing memiliki validated JSON-LD since August 2018.
- None dari ini tests speak untuk crawler itu jangan render JavaScript (see AI-crawler caveat di atas) — testing dirender URL mengonfirmasi apa Google sees, tidak apa sebuah JS-skipping bot menerima.
melakukan JSON-LD help SEO?
Set expectations honestly:
- Tidak sebuah sinyal peringkat. John Mueller memiliki mengatakan data terstruktur tidak akan membuat sebuah situs peringkat better. Penuh berhenti.
- Rich-hasil eligibility. ini adalah apa membuat Anda eligible untuk enhanced SERP fitur (stars, prices, FAQs, breadcrumbs) — eligibility, tidak sebuah jaminan.
- CTR, indirectly. Richer-looking hasil dapat earn lebih clicks, yang adalah nyata payoff untuk sebagian besar situs.
- Entity understanding. ini helps mesin connect Anda halaman untuk known entities dan graf pengetahuan.
- AI penelusuran. Fabrice Canel (Bing) confirmed di 2025 itu schema markup helps Microsoft’s LLMs memahami konten — tetapi note controlled-study caveat dari Schema Markup untuk AI: ini adalah infrastructure untuk disambiguation, tidak sebuah direct citation lever.
So: implement JSON-LD untuk rich-hasil eligibility, entity clarity, dan AI/LLM comprehension — tidak sebagai sebuah peringkat hack.
ini artikel sits di data terstruktur hub. untuk AI-spesifik take pada schema.org vocabulary, see Schema Markup untuk AI; untuk rendering mechanics behind dynamic injection, see JavaScript SEO.
AI summary
sebuah condensed take pada Advanced versi:
«- What it is: JSON-LD (JavaScript Object Notation for Linked Data) is a
structured data format, not a vocabulary — a <script type="application/ld+json">
block. On the SEO side it’s typically paired with the schema.org vocabulary,
but @context can point elsewhere. A W3C Recommendation since 2014; built on
JSON, but @context is what makes it linked data, not plain JSON.
- Why Google recommends it: it’s “the easiest solution… to implement and maintain at scale” and never touches visible HTML. But all three formats (JSON-LD, Microdata, RDFa) are equally valid when correct — the edge is error rate, not parsing or ranking.
- Syntax spine:
@context(vocabulary — schema.org for most SEO markup, not the only valid value) ·@type(entity, use the most specific) ·@id(useful, optional stable URI for cross-referencing; unidentified blank nodes are also valid JSON-LD) · properties (key/value) · nesting (objects/arrays). @graphpattern: one block, an array of entities cross-referenced by@id— defineOrganizationonce, reference it everywhere. A scalable approach for multi-entity pages, not a spec or Google mandate; other valid graph layouts exist.- Placement:
<head>or<body>— Google accepts either; don’t relocate valid blocks. - Dynamic injection + AI caveat: Googlebot renders JS so injected JSON-LD works for Google; several AI crawlers — GPTBot and ClaudeBot included, as tested — » (Terjemahan) (Ringkasan bahasa Indonesia untuk bagian enam puluh sembilan, bagian kecil satu: teks sumber dipertahankan agar dapat diperiksa dalam tinjauan penutur asli.) « have not executed JS, but that’s provider- and date-specific, not a universal rule, so verify per crawler and server-render what you can’t confirm. Dynamic Product markup also risks less-frequent Shopping crawls.
- Policies: mark up only visible content; match the page; most-specific type; don’t block the page from crawlers. Enforcement of “invisible” schema has tightened.
- Common mistakes: mismatched/invisible markup, malformed JSON (smart quotes, trailing commas), wrong property names, generic types, missing required properties.
- Validation: four separate checks (JSON syntax, schema.org vocabulary, Google rich-result eligibility, live Search Console parsing) that don’t substitute for each other — Rich Results Test (by URL, not pasted code), Schema.org Validator, GSC Enhancements, Bing Markup Validator.
- SEO effect: not a ranking signal. Drives rich-result eligibility, CTR, entity understanding, and LLM comprehension (Canel, Bing, 2025). » (Terjemahan) (Ringkasan bahasa Indonesia untuk bagian enam puluh sembilan, bagian kecil dua: teks sumber dipertahankan agar dapat diperiksa dalam tinjauan penutur asli.)
Dokumentasi resmi
Utama-sumber documentation dari mesin pencari dan spec.
- Intro untuk Bagaimana data terstruktur Markup berfungsi — JSON-LD recommendation, “all 3 formats are equally fine” (terjemahan) “semua 3 formats adalah equally fine” nuance, dan
<head>/<body>placement. - umum data terstruktur Guidelines — policies: terlihat konten hanya, match halaman, sebagian besar-spesifik jenis, jangan block crawler.
- Generate data terstruktur dengan JavaScript — GTM dan custom-JS injection approaches, plus dynamic-Product Shopping-crawl caveat.
- Rich hasil Test — validate eligibility (test oleh URL untuk JS-dirender halaman).
Bing / Microsoft
- Marking Up Anda situs dengan data terstruktur — Bing recommends JSON-LD, accepts header/body/footer placement, dan warns tentang tidak valid markup.
- Introducing JSON-LD mendukung di Bing Webmaster alat (Aug 2018) — ketika Bing ditambahkan JSON-LD validation.
Standards / vocabulary
- JSON-LD 1,1 — W3C Recommendation — spec itself.
- json-ld.org — format’s home, dengan plain-language definition.
- Getting Dimulai dengan Schema.org — vocabulary JSON-LD expresses, dan terlihat-konten aturan.
- Schema.org Validator — validates terhadap vocabulary.
Quotes dari sumber
pada—record statements dari Google, Bing, dan spec. setiap tautan jumps untuk quoted passage pada sumber halaman di mana halaman exposes text.
Google docs — recommendation dan nuance
«- “In general, Google recommends using JSON-LD for structured data if your site’s setup allows it, as it’s the easiest solution for website owners to implement and maintain at scale (in other words, less prone to user errors).” Jump to quote » (Terjemahan) (Ringkasan bahasa Indonesia untuk bagian delapan puluh dua, bagian kecil satu: teks sumber dipertahankan agar dapat diperiksa dalam tinjauan penutur asli.) «- “All 3 formats are equally fine for Google, as long as the markup is valid and properly implemented per the feature’s documentation.” Jump to quote » (Terjemahan) (Ringkasan bahasa Indonesia untuk bagian delapan puluh dua, bagian kecil dua: teks sumber dipertahankan agar dapat diperiksa dalam tinjauan penutur asli.) «- “Google Search can understand and process structured data that’s available in the DOM when it renders the page.” Jump to quote » (Terjemahan) (Ringkasan bahasa Indonesia untuk bagian delapan puluh dua, bagian kecil tiga: teks sumber dipertahankan agar dapat diperiksa dalam tinjauan penutur asli.)
Google docs — policies
- “Don’t mark up content that is not visible to readers of the page.” (terjemahan) “jangan mark up konten itu adalah tidak terlihat untuk readers dari halaman.” Jump untuk quote
- “Use the most specific applicable type and property names defined by schema.org.” (terjemahan) “gunakan paling spesifik applicable jenis dan property names didefinisikan oleh schema.org.” Jump untuk quote
John Mueller, Google — JSON-LD preference dan peringkat
- “We saat ini prefer JSON-LD markup. I think paling dari itu new structured data itu kind dari come out adalah untuk JSON-LD pertama. So itu adalah apa we prefer.” (terjemahan) “kami saat ini prefer JSON-LD markup. I think sebagian besar dari baru data terstruktur itu jenis dari come out adalah untuk JSON-LD pertama. So itu adalah apa kami prefer.” — Google Webmaster Hangout, March 2019. Coverage
- pada rankings: “Structured data won’t make your site rank better.” (terjemahan) “data terstruktur tidak akan membuat Anda situs peringkat better.” — 2025. (Relayed melalui mesin pencari Roundtable; konfirmasi verbatim terhadap original post.) Coverage
Bing / Microsoft
- JSON-LD “makes defining links and relationships between data and entities between the data present on your pages easy because it supports nested data.” (terjemahan) “membuat defining tautan dan relationships antara data dan entities antara data present pada Anda halaman easy karena ini mendukung nested data.” — Bing Webmaster alat docs. Jump untuk quote
- “Webmasters should be very alert as to not put invalid and incorrect information in the markup, as even though the markup is not visible on your page, it is still read by the search engines.” (terjemahan) “Webmasters seharusnya menjadi very alert sebagai untuk tidak put tidak valid dan incorrect informasi di markup, sebagai bahkan though markup adalah tidak terlihat pada Anda halaman, ini adalah masih baca oleh mesin pencari.” — Bing Webmaster alat docs. Jump untuk quote
Fabrice Canel, Microsoft Bing — schema dan LLMs
- di SMX Munich (March 2025), Canel confirmed schema markup helps Microsoft’s model bahasa besar memahami web konten. (Paraphrased di seluruh coverage; konfirmasi verbatim terhadap conference recording atau LinkedIn sebelum treating apa pun single phrasing sebagai akhir.) Coverage
** spec — json-ld.org**
«- “JSON-LD is a lightweight Linked Data format. It is easy for humans to read and write. It is based on the already successful JSON format and provides a way to help JSON data interoperate at Web-scale.” Jump to quote » (Terjemahan) (Ringkasan bahasa Indonesia untuk bagian sembilan puluh dua, bagian kecil satu: teks sumber dipertahankan agar dapat diperiksa dalam tinjauan penutur asli.)
Note: Mueller 2019 quote dan Mueller 2025 peringkat statement adalah reproduced dari sekunder coverage (mesin pencari Journal, mesin pencari Roundtable); Canel SMX Munich remark adalah paraphrased di seluruh coverage. Konfirmasi setiap terhadap -nya original sumber sebelum treating tepat wording sebagai akhir. Google-doc dan Bing-doc quotes adalah dari langsung documentation halaman.JSON-LD syntax — quick reference
** wrapper**
<script type="application/ld+json">
{ ...your markup... }
</script>** reserved keywords**
| Keyword | Apa ini melakukan | Typical nilai |
|---|---|---|
@context | Declares vocabulary (diperlukan) | "https://schema.org" |
@type | Declares entity jenis | "Article", "Product", "Organization" |
@id | Stable URI untuk identify/reference sebuah entity | "https://example.com/#org" |
@graph | Array dari multiple entities di satu block | [ {…}, {…} ] |
Single entity
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Widget",
"offers": { "@type": "Offer", "price": "19.99", "priceCurrency": "USD" }
}Nesting — sebuah child entity adalah sebuah nested object (atau sebuah array dari objects):
"author": { "@type": "Person", "name": "Patrick Stox" }** @graph pattern** — define setelah, reference oleh @id:
{
"@context": "https://schema.org",
"@graph": [
{ "@type": "Organization", "@id": "https://ex.com/#org", "name": "Ex Co" },
{ "@type": "WebSite", "publisher": { "@id": "https://ex.com/#org" } }
]
}umum properties oleh jenis
Article/BlogPosting:headline,author,datePublished,image,publisherProduct:name,image,brand,offers(→price,priceCurrency,availability)Organization:name,url,logo,sameAs(social/Wikidata URIs)BreadcrumbList:itemListElement→ListItem(position,name,item)FAQPage:mainEntity→Question→acceptedAnswer→Answer
aturan dari thumb
@contextadalah"https://schema.org"untuk sebagian besar SEO markup — itu’s sebuah convention, tidak sebuah spec requirement. gunakan straight quotes, tidak pernah smart quotes.- Tidak trailing commas — JSON adalah strict.
- gunakan sebagian besar spesifik
@typetersedia. - Mark up hanya apa terlihat pada halaman.
- Place di
<head>atau<body>— keduanya valid. @iddan@graphhelp Anda cross-reference dan organize entities tetapi tidak diperlukan — blank nodes dan lainnya layouts adalah valid too.- untuk crawler Anda haven’t verified execute JavaScript (several AI crawler, GPTBot dan ClaudeBot disertakan, memiliki tidak di testing), render server-side.
- Validate sebagai terpisah layers: Rich hasil Test (oleh URL) untuk Google eligibility + Schema.org Validator untuk vocabulary — satu passing tidak berarti lainnya melakukan.
alat untuk validating JSON-LD
- Schema.org Validator — lebih luas vocabulary periksa. sebuah block dapat lulus di sini dan masih fail Google’s fitur-spesifik aturan.
- Google Rich hasil Test — test deployed URL ketika rendering penting, terutama untuk client-side-injected markup. ini test covers Google’s didukung rich hasil, tidak setiap schema.org jenis.
JSON-LD mistakes untuk hindari
Marking up facts pengunjung cannot see. sebuah rating, price, author, atau lainnya claim di JSON-LD harus agree dengan terlihat halaman. Hidden atau misleading data terstruktur dapat cost halaman -nya rich-hasil eligibility. melakukan alih-alih: generate markup dari sama sumber kebenaran sebagai terlihat konten.
Treating valid JSON sebagai valid schema. sebuah parser dapat accept perfectly formed JSON milik siapa property names melakukan tidak exist di schema.org. melakukan alih-alih: jalankan keduanya sebuah JSON-LD vocabulary periksa dan target fitur’s Google requirements.
menggunakan smart quotes atau trailing commas. JSON adalah strict; typographic quotes dan sebuah comma setelah akhir property dapat invalidate entire block. melakukan alih-alih: serialize data alih-alih assembling JSON strings oleh hand.
Choosing sebuah generic jenis ketika sebuah spesifik satu ada. Thing atau broad Article
markup throws away berguna meaning ketika halaman adalah dengan jelas sebuah Recipe, Product, atau
NewsArticle. melakukan alih-alih: gunakan paling spesifik applicable schema.org jenis.
Duplicating entities dengan conflicting detail. Multiple Organization blocks dengan
berbeda names, logos, atau URLs membuat graph ambiguous. melakukan alih-alih: memberikan
entity satu stable @id, define ini setelah, dan reference itu identifier elsewhere.
Assuming schema.org validity jaminan sebuah Google rich hasil. Google mendukung sebuah subset dari jenis dan menambahkan diperlukan properties dan konten policies dari -nya own. melakukan alih-alih: validate vocabulary pertama, lalu test eligibility untuk spesifik Google fitur.
Injecting JSON-LD di JavaScript dan assuming setiap crawler sees ini. Google dapat render client-side markup, tetapi JS-skipping AI crawler dapat tidak pernah menerima ini. melakukan alih-alih: server-render JSON-LD ketika itu consumers penting, dan test langsung URL alih-alih hanya pasted code.
Prove sebuah JSON-LD deployment took effect
Test 1 — langsung halaman berisi valid, halaman-matching JSON-LD
- Test untuk jalankan — Fetch deployed URL dengan Schema Markup Validator dan bandingkan detected entities dan nilai dengan terlihat halaman.
- Yang diharapkan hasil — JSON parses, semua properties belong untuk schema.org,
@idreferences resolve di dalam graph di mana yang dimaksud, dan claims such sebagai names, prices, ratings, dan dates match apa pengguna see. - Failure interpretation — Parser errors poin untuk malformed JSON; vocabulary warnings poin untuk misspelled atau unsupported properties; mismatched nilai poin untuk terpisah konten dan schema data sources drifting apart.
- Monitoring window — Immediate setelah deployment dan cache clearance.
- Rollback trigger — hapus atau revert baru block jika ini publishes salah terlihat-konten claims, breaks sebuah previously valid graph, atau cannot menjadi parsed.
Test 2 — target penelusuran fitur recognizes dirender markup
- Test untuk jalankan — Jalankan deployed URL melalui Google’s Rich hasil Test, lalu gunakan Rich-hasil Eligibility Checker untuk inspect missing diperlukan dan recommended fields oleh jenis.
- Yang diharapkan hasil — Google detects yang dimaksud didukung jenis tanpa critical errors; apa pun client-side-generated block muncul di dirender HTML.
- Failure interpretation — sebuah Schema.org Validator lulus paired dengan sebuah Google failure biasanya berarti jenis adalah tidak sebuah didukung Google fitur, sebuah Google-diperlukan field adalah missing, sebuah konten policy adalah unmet, atau renderer tidak pernah diterima block.
- Monitoring window — Immediate di keduanya tests; Search Console perubahan tunggu untuk sebuah recrawl.
- Rollback trigger — Roll back client-side injection jika ini membuat previously terlihat data terstruktur disappear dari dirender hasil, atau hapus unsupported fitur claims dari launch until diperlukan konten adalah present.
Uji pemahaman Anda: JSON-LD
Five quick pertanyaan pada JSON-LD format. Pick sebuah jawaban untuk setiap, lalu periksa.
Resources worth Anda time
My related writing
- Schema Markup: Easy cara untuk Mendapatkan Rich hasil — Ahrefs guide untuk data terstruktur, schema jenis, dan rich hasil ( fitur layer pada top dari JSON-LD).
- Beginner’s Guide untuk SEO teknis — di mana data terstruktur fits di lebih luas teknis picture.
- JavaScript SEO Issues & Best Practices — rendering side: mengapa JS-injected markup behaves differently untuk crawler itu jangan jalankan JavaScript.
- Memenuhi baru Web crawler — my Cloudflare Radar analysis dari AI crawler (GPTBot, ClaudeBot dan friends) — bot itu skip Anda JS-injected schema.
Official
- Google’s Intro untuk Bagaimana data terstruktur Markup berfungsi — JSON-LD recommendation dan “all 3 formats” (terjemahan) “semua 3 formats” nuance, straight dari sumber.
- Google’s Generate data terstruktur dengan JavaScript — dynamic-injection metode dan Product caveat.
- JSON-LD 1,1 — W3C Recommendation dan json-ld.org — format itself.
«From around the industry
- Google On Which Structured Data It Prefers — Search Engine Journal — the write-up of Mueller’s “we currently prefer JSON-LD” comment.
- Microsoft Bing Copilot uses schema for its LLMs — Search Engine Land — Fabrice Canel’s SMX Munich 2025 confirmation that schema helps Bing’s LLMs.
- What Is JSON-LD Structured Data & Why Do You Need It? — Ignite Visibility — a solid beginner-level walkthrough.
- A Beginner’s Guide to JSON-LD Schema for SEOs — SALT.agency — practical syntax-and-implementation guide aimed at SEOs. » (Terjemahan) (Ringkasan bahasa Indonesia untuk bagian seratus tiga puluh enam, bagian kecil satu: teks sumber dipertahankan agar dapat diperiksa dalam tinjauan penutur asli.)
Log perubahan
Diperbarui 18 Jul 2026.
Ringkasan editorial dan detail perubahan yang tercatat.Detail perubahan
-
Catatan perubahan terperinci saat ini tersedia dalam bahasa Inggris.
-
Catatan perubahan terperinci saat ini tersedia dalam bahasa Inggris.
-
Catatan perubahan terperinci saat ini tersedia dalam bahasa Inggris.
-
Catatan perubahan terperinci saat ini tersedia dalam bahasa Inggris.
Perbandingan lengkap tidak tersedia — tidak ada cuplikan sebelumnya yang diarsipkan untuk revisi ini.
Diperbarui 17 Jul 2026.
Ringkasan editorial dan detail perubahan yang tercatat.Detail perubahan
-
Catatan perubahan terperinci saat ini tersedia dalam bahasa Inggris.
Perbandingan lengkap tidak tersedia — tidak ada cuplikan sebelumnya yang diarsipkan untuk revisi ini.