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.
Bahasa
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 describe 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 one alasan: ini adalah easiest format untuk implement dan maintain di scale, because ini sits di -nya own block dan tidak pernah touches Anda terlihat HTML. semua three formats berfungsi equally well when implemented correctly. syntax spine adalah @context ( vocabulary — schema.org untuk sebagian besar SEO markup, tetapi not satu-satunya valid nilai), @jenis ( entity), dan @id (sebuah berguna tetapi optional stable URI untuk linking entities — basis dari @graph pattern, itself one valid cara untuk organize multiple entities, not 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 — don't execute JavaScript; itu's provider- dan date-spesifik, not sebuah universal aturan, so verify directly jika sebuah particular crawler penting untuk Anda dan server-render markup Anda dapat't confirm otherwise. data terstruktur adalah not sebuah sinyal peringkat; ini governs rich-hasil eligibility dan entity understanding, dan ini harus describe konten actually terlihat pada halaman.
TL;DR — JSON-LD adalah sebuah kecil block dari code Anda tambahkan untuk sebuah halaman untuk spell out what halaman adalah tentang — itu ini adalah sebuah artikel, sebuah product, sebuah recipe — di sebuah format mesin pencari dan AI sistem read easily. ini sits di -nya own
<script>tag dan tidak pernah perubahan anything pengunjung see. Google recommends ini di atas lainnya two formats because ini adalah easiest untuk tambahkan dan pertahankan tidy. ini won’t membuat Anda peringkat higher, tetapi ini dapat membuat Anda hasil look richer (stars, prices, FAQs).
What JSON-LD adalah
When Anda publish sebuah halaman, sebuah human dapat read ini dan figure out “oh, this is a recipe for banana bread.” (terjemahan) “oh, ini adalah sebuah recipe untuk banana bread.” sebuah mesin pencari memiliki untuk guess itu dari kata. Structured data adalah how Anda stop guessing — Anda label halaman di machine-readable code so mesin know ini adalah sebuah recipe, who author adalah, what rating adalah.
JSON-LD adalah paling popular cara untuk write itu label. name stands untuk
JavaScript Object Notation untuk ditautkan data. Evidence for this claim JSON-LD is a structured-data format that can express Schema.org types and properties in a script block. Scope: Schema.org JSON-LD guidance; JSON-LD is a format, not the vocabulary itself. Confidence: high · Verified: Schema.org: JSON-LD Anda tidak perlu untuk know what
itu berarti untuk gunakan ini. dalam praktik, JSON-LD adalah sebuah chunk dari code itu looks like sebuah
list dari labelled facts, tucked inside 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 thing: itu block lives separately dari kata pada Anda halaman. ini doesn’t perubahan sebuah single thing Anda pengunjung see. ini adalah hanya instructions untuk robots.
Why Google likes ini
ada actually three cara untuk write data terstruktur — JSON-LD, Microdata, dan RDFa. lainnya two berfungsi oleh sprinkling extra code ke Anda terlihat HTML, tangled up dengan Anda heading dan paragraphs. JSON-LD mempertahankan ini semua di one neat box.
itu’s why Google recommends JSON-LD: ini adalah easiest untuk tambahkan, easiest untuk pertahankan correct, dan Anda’re far lebih kecil kemungkinannya untuk break something. Google’s kata: ini adalah “the easiest solution for website owners to implement and maintain at scale.” (terjemahan) “ easiest solusi untuk situs web owners untuk implement dan maintain di scale.” semua three formats adalah fine — JSON-LD adalah hanya paling sedikit error-prone.
Evidence for this claim Google Search supports JSON-LD, Microdata, and RDFa and recommends JSON-LD when practical. Scope: Google Search structured-data guidance; supported formats do not guarantee feature eligibility. Confidence: high · Verified: Google: Structured data introductionWhat ini actually melakukan untuk Anda
Two honest things, dan one myth:
- ini dapat membuat Anda search hasil look richer. Recipe ratings, product prices, FAQ dropdowns, event dates — itu “rich results” (terjemahan) “rich hasil” come dari data terstruktur.
- ini helps mesin (dan AI) memahami Anda konten. ini connects Anda halaman untuk known things — Anda business, sebuah author, sebuah product.
- ini melakukan not membuat Anda peringkat higher. ini adalah myth. menambahkan JSON-LD adalah not sebuah peringkat boost. Google memiliki said ini plainly dan repeatedly.
one aturan itu penting
hanya mark up what’s actually pada halaman. Don’t claim sebuah 5-star rating di Anda JSON-LD jika no rating adalah ditampilkan untuk pengunjung. Don’t describe sebuah price itu isn’t there. data terstruktur memiliki untuk match terlihat halaman — describing things itu aren’t there adalah terhadap aturan dan dapat get 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 what membuat ini ditautkan data, not hanya JSON. ini adalah data terstruktur format Google recommends because ini adalah easiest untuk implement dan maintain di scale dan tidak pernah touches terlihat HTML; Microdata dan RDFa adalah equally valid when correct. syntax spine adalah@context(vocabulary — schema.org untuk sebagian besar SEO markup, though spec allows lainnya contexts),@type(entity),@id(sebuah berguna tetapi optional stable URI untuk cross-referencing entities — basis dari@graph, itself one valid pattern among others, not 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) don’t execute JS, tetapi itu’s provider- dan date-spesifik — verify directly alih-alih assuming ini untuk setiap AI crawler, dan server-render what Anda dapat’t confirm. data terstruktur adalah not sebuah sinyal peringkat — ini drives rich-hasil eligibility dan entity understanding, dan ini harus describe konten terlihat pada halaman.
JSON-LD adalah sebuah format, not sebuah vocabulary
pertama, sebuah distinction itu clears up sebuah lot dari confusion: JSON-LD adalah format;
schema.org adalah vocabulary. JSON-LD adalah how Anda write
markup; schema.org’s Article, Product, Organization jenis adalah what Anda
say. Rich hasil adalah fitur layer pada top dari both. 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 predates -nya SEO adoption dan adalah designed untuk umum ditautkan-data
interoperability di seluruh web, not specifically untuk search. itu history adalah why sebuah
property like @id exists di semua, dan ini adalah spec-tingkat poin sebagian besar SEO guides
skip: JSON-LD adalah not hanya JSON. ini adalah dibangun pada JSON syntax, tetapi @context
declaration adalah what membuat data ditautkan — identifiable dan connectable di seluruh
web. Strip @context dan Anda’ve got data sebuah parser dapat’t interpret.
JSON-LD juga isn’t 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 “what format” (terjemahan) “what format” while schema.org adalah one jawaban,
umum one untuk search dan AI-search markup, untuk “what vocabulary.” (terjemahan) “what vocabulary.” sebuah halaman dapat
validly gunakan JSON-LD dengan sebuah berbeda vocabulary; ini hanya wouldn’t menjadi schema.org
markup anymore.
JSON-LD vs. Microdata vs. RDFa
ada three cara untuk express data terstruktur, dan Google mendukung semua dari them:
| JSON-LD | Microdata | RDFa | |
|---|---|---|---|
| Where ini lives | sebuah separate <script> block | Inline itemprop attributes pada Anda HTML | Inline property attributes pada Anda HTML |
| Touches terlihat HTML? | No | Yes | Yes |
| dapat menjadi injected oleh JS / tag manager? | Yes (cleanly) | Awkward | Awkward |
| Google’s stance | Recommended | didukung | didukung |
| Error-proneness | Lowest | Higher (tangled dengan markup) | Higher (tangled dengan markup) |
Google’s recommendation adalah explicit tetapi 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) “di umum, Google recommends menggunakan JSON-LD untuk data terstruktur jika Anda situs’s setup allows ini, sebagai ini adalah easiest solusi untuk situs web owners untuk implement dan maintain di scale (di lainnya kata, less prone untuk pengguna errors).”
nuance competitors biasanya drop — dan one worth keeping — comes dari sama Google halaman: “All 3 formats are equally fine for Google, as long as the markup is valid and properly implemented per the 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, not parsing speed atau peringkat advantage. menggunakan Microdata adalah not sebuah penalty. JSON-LD hanya wins dalam praktik because ini doesn’t entangle data terstruktur dengan markup sebuah designer mungkin edit tomorrow.
syntax: @context, @jenis, @id, properties, nesting
Here’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 framework ( vocabulary). untuk schema.org SEO markup ini adalah typically"https://schema.org", tetapi itu’s sebuah convention, not 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, etc. 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 one entity dari lainnya (see@graphbelow), dan ini adalah worth setting pada anything Anda’ll cross-reference — tetapi ini adalah not 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 above) atau arrays dari objects.
@graph pattern ( scalable approach)
sebagian besar halaman perlu more daripada one entity: sebuah Organization, sebuah WebSite, sebuah
BreadcrumbList, dan Article atau WebPage itself. naive approach adalah four
separate <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 (separate typed blocks, nested
objects without sebuah top-tingkat @graph, blank nodes dengan no @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:
One Organization is referenced as publisher by the WebSite and Article. The WebPage belongs to the WebSite and is connected to the Article. Each entity is declared once, and the same stable ID string is reused for every 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 once, lalu poin di ini dengan { "@id": "...#org" } everywhere
else alih-alih repeating name, logo, dan URL. ini adalah how major CMS schema
plugins bangun mereka output, dan ini adalah why @id exists. Bing membuat yang sama case untuk
JSON-LD’s nesting: ini “makes defining links and relationships between data and
entities… easy because it supports nested data.” (terjemahan) “membuat defining tautan dan relationships antara data dan
entities… easy because ini mendukung nested data.”
Where untuk place ini: <head> atau <body>
Google confirms both berfungsi — “You can put the JSON-LD data in the <head> or
the <body> of the page.” (terjemahan) “Anda dapat put JSON-LD data di undefined atau
undefined 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 “in the
header, body or foot of the page.” (terjemahan) “di
header, body atau foot dari halaman.” Don’t burn time relocating sebuah valid block dari
body untuk head; ini perubahan nothing. Evidence for this claim Google permits JSON-LD in either the head or body of an HTML document for supported structured-data features. Scope: Google Search JSON-LD guidance; markup must still match visible page content. Confidence: high · Verified: Google: Structured data introduction
Generating JSON-LD dynamically — dan AI crawler catch
Anda dapat bangun JSON-LD pada fly dengan JavaScript, dan Google documents two cara untuk melakukan ini:
Evidence for this claim Dynamically generated structured data is acceptable to Google when it is rendered and complies with content and quality guidelines. Scope: Google Search JavaScript and structured-data guidance; crawlability and rendering remain prerequisites. Confidence: high · Verified: 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);ini berfungsi untuk Googlebot, because Google renders halaman: “Google Search can understand and process structured data that’s available in the DOM when it renders the page.” (terjemahan) “Google Search dapat memahami dan process data terstruktur itu’s available di DOM when ini renders halaman.” So far, so baik.
Here’s catch sebagian besar guides miss, stated carefully. Several AI crawler — including GPTBot dan ClaudeBot, sebagai commonly tested — memiliki not executed JavaScript. jika Anda JSON-LD hanya exists setelah sebuah client-side script runs, sebuah JS-skipping crawler tidak pernah sees ini — ini adalah invisible untuk itu bot bahkan though Googlebot reads ini fine, because Google documents rendering DOM sebelum ini looks untuk data terstruktur.
Two honest caveats pada itu AI-crawler perilaku: ini adalah Google’s own documentation itu establishes Googlebot side; AI-crawler side comes dari testing dan reporting pada individual providers, not 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 directly. Don’t 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 actually care tentang (atau default untuk server rendering when Anda dapat’t periksa). jika ini isn’t di server-rendered HTML dan Anda haven’t confirmed crawler executes JS, assume ini dapat’t see ini. untuk AI-search visibilitas, render JSON-LD server-side ke static HTML unless Anda’ve verified otherwise. (ini adalah JavaScript-rendering masalah dari sebuah structured-data angle — see JavaScript SEO.)
There’s sebuah kedua caveat untuk ecommerce: Google warns itu dynamically generated Product markup “can make Shopping crawls less frequent and less reliable,” (terjemahan) “dapat membuat Shopping melakukan crawl less frequent dan less reliable,” which adalah sebuah nyata masalah untuk fast-changing 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) “Don’t mark up konten itu adalah not terlihat untuk readers dari halaman.”
- “Don’t mark up irrelevant or misleading content, such as fake reviews.” (terjemahan) “Don’t 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 describes.”
- “Use the most specific applicable type and property names defined by schema.org.” (terjemahan) “gunakan paling spesifik applicable jenis dan property names defined oleh schema.org.”
- Don’t block Anda structured-data halaman dari Googlebot via robots.txt atau noindex.
terlihat-konten aturan adalah one untuk internalize. Schema itu describes konten not ditampilkan pada halaman memiliki selalu telah sebuah violation; enforcement dari “invisible” (terjemahan) “invisible” schema memiliki tightened. Bing puts 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) “bahkan though markup adalah not terlihat pada Anda halaman, ini adalah masih read oleh mesin pencari, dan putting spam data di markup dapat hamper Anda presence.”
umum JSON-LD mistakes
- Markup itu doesn’t match terlihat halaman — #1 policy masalah (sebuah rating di JSON-LD itu no pengunjung sees).
- Malformed JSON — sebuah trailing comma, sebuah unescaped quote, atau kata smart quotes
(
"alih-alih") itu silently break whole block. JSON-LD adalah strict. - Wrong property names — inventing properties itu aren’t di schema.org, atau misspelling nyata ones, so parser ignores them.
- sebuah generic jenis where sebuah spesifik one exists —
ThingatauArticlewhereRecipeatauNewsArticleadalah 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 not, dan itu’s worth verifying per crawler ( catch above).
Validating JSON-LD
Four berbeda pertanyaan get ditanyakan di bawah “is my JSON-LD valid,” (terjemahan) “adalah my JSON-LD valid,” dan mereka’re not sama pertanyaan — passing one doesn’t pass others:
| Test | Proves | melakukan not prove |
|---|---|---|
| JSON parses (apa pun JSON linter, atau Rich hasil Test’s parse langkah) | syntax adalah legal JSON — no trailing commas, unescaped quotes, atau smart-quote breakage | itu apa pun property name adalah nyata schema.org vocabulary, atau itu Google akan tampilkan anything |
| 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 meets Google’s requirements untuk sebuah spesifik didukung rich-hasil jenis, pada rendered halaman Anda tested | itu Google akan actually display rich hasil — eligibility isn’t sebuah guarantee — atau itu lainnya search/AI sistem parse ini yang sama cara |
| Google Search Console — Enhancements / rich hasil reports | What Google actually parsed pada live, di-crawl halaman, di scale, dengan nyata errors | nyata-time state — reports lag behind sebuah recrawl |
- Test oleh URL, not pasted code, untuk JS-rendered halaman. Rich hasil Test’s code-input mode doesn’t run Anda scripts atau resolve relative references cara live-URL testing melakukan — ini dapat’t tell Anda what 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 don’t render JavaScript (see AI-crawler caveat above) — testing rendered URL confirms what Google sees, not what sebuah JS-skipping bot menerima.
melakukan JSON-LD help SEO?
Set expectations honestly:
- Not sebuah sinyal peringkat. John Mueller memiliki said data terstruktur won’t membuat sebuah situs peringkat better. Full stop.
- Rich-hasil eligibility. ini adalah what membuat Anda eligible untuk enhanced SERP fitur (stars, prices, FAQs, breadcrumbs) — eligibility, not sebuah guarantee.
- CTR, indirectly. Richer-looking hasil dapat earn more clicks, which adalah nyata payoff untuk sebagian besar situs.
- Entity understanding. ini helps mesin connect Anda halaman untuk known entities dan graf pengetahuan.
- AI search. 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, not sebuah direct citation lever.
So: implement JSON-LD untuk rich-hasil eligibility, entity clarity, dan AI/LLM comprehension — not 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 ini adalah: JSON-LD (JavaScript Object Notation untuk ditautkan data) adalah sebuah
data terstruktur format, not sebuah vocabulary — sebuah
<script type="application/ld+json">block. pada SEO side ini adalah typically paired dengan schema.org vocabulary, tetapi@contextdapat poin elsewhere. sebuah W3C Recommendation since 2014; dibangun pada JSON, tetapi@contextadalah what membuat ini ditautkan data, not plain JSON. - Why Google recommends ini: ini adalah “the easiest solution… to implement and maintain at scale” (terjemahan) “ easiest solusi… untuk implement dan maintain di scale” dan tidak pernah touches terlihat HTML. tetapi semua three formats (JSON-LD, Microdata, RDFa) adalah equally valid when correct — edge adalah error rate, not parsing atau peringkat.
- Syntax spine:
@context(vocabulary — schema.org untuk sebagian besar SEO markup, not hanya valid nilai) ·@type(entity, gunakan paling spesifik) ·@id(berguna, optional stable URI untuk cross-referencing; unidentified blank nodes adalah juga valid JSON-LD) · properties (key/nilai) · nesting (objects/arrays). @graphpattern: one block, sebuah array dari entities cross-referenced oleh@id— defineOrganizationonce, reference ini everywhere. sebuah scalable approach untuk multi-entity halaman, not sebuah spec atau Google mandate; lainnya valid graph layouts exist.- Placement:
<head>atau<body>— Google accepts either; don’t relocate valid blocks. - Dynamic injection + AI caveat: Googlebot renders JS so injected JSON-LD berfungsi untuk Google; several AI crawler — GPTBot dan ClaudeBot disertakan, sebagai tested — memiliki not executed JS, tetapi itu’s provider- dan date-spesifik, not sebuah universal aturan, so verify per crawler dan server-render what Anda dapat’t confirm. Dynamic Product markup juga risks less-frequent Shopping melakukan crawl.
- Policies: mark up hanya terlihat konten; match halaman; sebagian besar-spesifik jenis; don’t block halaman dari crawler. Enforcement dari “invisible” (terjemahan) “invisible” schema memiliki tightened.
- umum mistakes: mismatched/invisible markup, malformed JSON (smart quotes, trailing commas), wrong property names, generic jenis, missing diperlukan properties.
- Validation: four separate memeriksa (JSON syntax, schema.org vocabulary, Google rich-hasil eligibility, live Search Console parsing) itu don’t substitute untuk setiap lainnya — Rich hasil Test (oleh URL, not pasted code), Schema.org Validator, GSC Enhancements, Bing Markup Validator.
- SEO effect: not sebuah sinyal peringkat. Drives rich-hasil eligibility, CTR, entity understanding, dan LLM comprehension (Canel, Bing, 2025).
Official documentation
Primary-source documentation dari mesin pencari dan spec.
- Intro untuk How 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, don’t 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-rendered halaman).
Bing / Microsoft
- Marking Up Anda situs dengan data terstruktur — Bing recommends JSON-LD, accepts header/body/footer placement, dan warns tentang invalid markup.
- Introducing JSON-LD mendukung di Bing Webmaster alat (Aug 2018) — when 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 Started dengan Schema.org — vocabulary JSON-LD expresses, dan terlihat-konten aturan.
- Schema.org Validator — validates terhadap vocabulary.
Quotes dari source
pada—record statements dari Google, Bing, dan spec. setiap tautan jumps untuk quoted passage pada source halaman where 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).” (terjemahan) “di umum, Google recommends menggunakan JSON-LD untuk data terstruktur jika Anda situs’s setup allows ini, sebagai ini adalah easiest solusi untuk situs web owners untuk implement dan maintain di scale (dengan kata lain, less prone untuk pengguna errors).” Jump untuk quote
- “All 3 formats are equally fine for Google, as long as the markup is valid and properly implemented per the 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.” Jump untuk quote
- “Google Search can understand and process structured data that’s available in the DOM when it renders the page.” (terjemahan) “Google Search dapat memahami dan process data terstruktur itu’s available di DOM when ini renders halaman.” Jump untuk quote
Google docs — policies
- “Don’t mark up content that is not visible to readers of the page.” (terjemahan) “Don’t mark up konten itu adalah not 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 defined oleh schema.org.” Jump untuk quote
John Mueller, Google — JSON-LD preference dan peringkat
- “We currently prefer JSON-LD markup. I think most of the new structured data that kind of come out are for JSON-LD first. So that is what we prefer.” (terjemahan) “kami currently 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 what kami prefer.” — Google Webmaster Hangout, March 2019. Coverage
- pada rankings: “Structured data won’t make your site rank better.” (terjemahan) “data terstruktur won’t membuat Anda situs peringkat better.” — 2025. (Relayed via mesin pencari Roundtable; confirm 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 because 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 not put invalid dan incorrect informasi di markup, sebagai bahkan though markup adalah not terlihat pada Anda halaman, ini adalah masih read 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; confirm 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.” (terjemahan) “JSON-LD adalah sebuah lightweight ditautkan data format. ini adalah easy untuk humans untuk read dan write. ini adalah berdasarkan sudah successful JSON format dan menyediakan sebuah cara untuk help JSON data interoperate di Web-scale.” Jump untuk quote
JSON-LD syntax — quick reference
** wrapper**
<script type="application/ld+json">
{ ...your markup... }
</script>** reserved keywords**
| Keyword | What 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 one 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 once, 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, not sebuah spec requirement. gunakan straight quotes, tidak pernah smart quotes.- No trailing commas — JSON adalah strict.
- gunakan sebagian besar spesifik
@typeavailable. - Mark up hanya what’s terlihat pada halaman.
- Place di
<head>atau<body>— both valid. @iddan@graphhelp Anda cross-reference dan organize entities tetapi aren’t 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 not di testing), render server-side.
- Validate sebagai separate layers: Rich hasil Test (oleh URL) untuk Google eligibility + Schema.org Validator untuk vocabulary — one passing tidak berarti lainnya melakukan.
alat untuk validating JSON-LD
- Schema.org Validator — broader vocabulary periksa. sebuah block dapat pass here dan masih fail Google’s fitur-spesifik aturan.
- Google Rich hasil Test — test deployed URL when rendering penting, terutama untuk client-side-injected markup. ini test covers Google’s didukung rich hasil, not 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 instead: generate markup dari sama sumber kebenaran sebagai terlihat konten.
Treating valid JSON sebagai valid schema. sebuah parser dapat accept perfectly formed JSON whose property names melakukan not exist di schema.org. melakukan instead: run both 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 instead: serialize data alih-alih assembling JSON strings oleh hand.
Choosing sebuah generic jenis when sebuah spesifik one exists. Thing atau broad Article
markup throws away berguna meaning when halaman adalah clearly sebuah Recipe, Product, atau
NewsArticle. melakukan instead: 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 instead: give
entity one stable @id, define ini once, dan reference itu identifier elsewhere.
Assuming schema.org validity guarantees sebuah Google rich hasil. Google mendukung sebuah subset dari jenis dan menambahkan diperlukan properties dan konten policies dari -nya own. melakukan instead: 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 instead: server-render JSON-LD when itu consumers penting, dan test live URL alih-alih hanya pasted code.
Prove sebuah JSON-LD deployment took effect
Test 1 — live halaman berisi valid, halaman-matching JSON-LD
- Test untuk run — Fetch deployed URL dengan Schema Markup Validator dan compare detected entities dan nilai dengan terlihat halaman.
- Expected hasil — JSON parses, semua properties belong untuk schema.org,
@idreferences resolve di dalam graph where intended, dan claims such sebagai names, prices, ratings, dan dates match what pengguna see. - Failure interpretation — Parser errors poin untuk malformed JSON; vocabulary warnings poin untuk misspelled atau unsupported properties; mismatched nilai poin untuk separate 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 search fitur recognizes rendered markup
- Test untuk run — Run deployed URL melalui Google’s Rich hasil Test, lalu gunakan Rich-hasil Eligibility Checker untuk inspect missing diperlukan dan recommended fields oleh jenis.
- Expected hasil — Google detects intended didukung jenis without critical errors; apa pun client-side-generated block appears di rendered HTML.
- Failure interpretation — sebuah Schema.org Validator pass paired dengan sebuah Google failure biasanya berarti jenis adalah not 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 both tests; Search Console perubahan wait untuk sebuah recrawl.
- Rollback trigger — Roll back client-side injection jika ini membuat previously terlihat data terstruktur disappear dari rendered hasil, atau hapus unsupported fitur claims dari launch until diperlukan konten adalah present.
Test yourself: 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 Get 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 — where data terstruktur fits di broader technical picture.
- JavaScript SEO Issues & Best Practices — rendering side: why JS-injected markup behaves differently untuk crawler itu don’t run JavaScript.
- Meet 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 How data terstruktur Markup berfungsi — JSON-LD recommendation dan “all 3 formats” (terjemahan) “semua 3 formats” nuance, straight dari source.
- 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.
dari sekitar industry
- Google pada Which data terstruktur ini Prefers — mesin pencari Journal — write-up dari Mueller’s “we currently prefer JSON-LD” (terjemahan) “kami currently prefer JSON-LD” comment.
- Microsoft Bing Copilot menggunakan schema untuk -nya LLMs — mesin pencari Land — Fabrice Canel’s SMX Munich 2025 confirmation itu schema helps Bing’s LLMs.
- What adalah JSON-LD data terstruktur & Why melakukan Anda perlu ini? — Ignite visibilitas — sebuah solid beginner-tingkat walkthrough.
- sebuah Beginner’s Guide untuk JSON-LD Schema untuk SEOs — SALT.agency — practical syntax-dan-implementation guide aimed di SEOs.
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.