Hướng dẫn về JSON-LD

JSON-LD là đó script-based dữ liệu có cấu trúc format Google khuyến nghị — easiest để implement, không bao giờ touches visible HTML, và typically pairs với schema.org cho SEO.

Xuất bản lần đầu: 26 thg 6, 2026 · Cập nhật lần cuối: 8 thg 8, 2026 · Advanced
Ngôn ngữ
1 tín hiệu bằng chứng trên trang này

JSON-LD (JavaScript Object Notation cho Linked Dữ liệu) là một dữ liệu có cấu trúc format đó lives trong một <script type="application/ld+json"> tag; on đó SEO side đây là typically paired với đó schema.org vocabulary để mô tả trang nội dung, though JSON-LD itself có thể carry other vocabularies cũng. đây là một W3C tiêu chuẩn (2014), và Google khuyến nghị điều này over Microdata và RDFa cho một reason: đây là đó easiest format để implement và maintain tại quy mô, vì điều này sits trong của nó own block và không bao giờ touches của bạn visible HTML. All three formats hoạt động equally well khi implemented correctly. Đó syntax spine là @context (đó vocabulary — schema.org cho hầu hết SEO markup, nhưng không đó chỉ hợp lệ giá trị), @loại (đó entity), và @id (một hữu ích nhưng tùy chọn ổn định URI cho linking entities — đó basis of đó @graph pattern, itself một hợp lệ way để organize multiple entities, không một requirement). Đó catch hầu hết các hướng dẫn miss: Googlebot renders JavaScript so dynamically injected JSON-LD hoạt động cho Google, nhưng several AI các crawler — GPTBot và ClaudeBot được bao gồm, as tested — không execute JavaScript; đó là provider- và date-cụ thể, không một universal rule, so verify trực tiếp nếu một particular crawler matters để bạn và máy chủ-render markup bạn không thể xác nhận nếu không. Dữ liệu có cấu trúc không phải một tín hiệu xếp hạng; điều này governs rich-kết quả eligibility và entity understanding, và điều này phải mô tả nội dung thực ra visible on đó trang.

Tóm tắt — JSON-LD (JavaScript Object Notation cho Linked Dữ liệu) là W3C Khuyến nghị từ 2014 — được xây dựng on JSON, nhưng @context là Điều gì làm nó linked dữ liệu, không chỉ JSON. nó dữ liệu có cấu trúc format Google khuyến nghị vì nó easiest để implement và maintain tại quy mô và không bao giờ touches visible HTML; Microdata và RDFa là equally hợp lệ Khi đúng. syntax spine là @context (vocabulary — schema.org cho phần lớn SEO markup, though spec cho phép khác contexts), @type (entity), @id ( hữu ích nhưng tùy chọn ổn định URI cho cross-referencing entities — basis của @graph, itself một hợp lệ pattern among others, không requirement). Place nó trong <head> hoặc <body> — Google accepts either. Googlebot renders JS so dynamically injected JSON-LD hoạt động cho Google; several AI các crawler (GPTBot, ClaudeBot được bao gồm, as tested) không execute JS, nhưng đó provider- và date-cụ thể — verify trực tiếp thay vì assuming nó cho mỗi AI crawler, và máy chủ-render Điều gì Bạn có thể’t xác nhận. Dữ liệu có cấu trúc là không tín hiệu xếp hạng — nó drives rich-kết quả eligibility và entity understanding, và nó phải mô tả nội dung visible on trang.

JSON-LD là format, không vocabulary

đầu tiên, phân biệt đó clears lên lot của confusion: JSON-LD là format; schema.orgvocabulary. JSON-LD là Cách bạn ghi markup; schema.org Article, Product, Organization types là Điều gì bạn chẳng hạn. Rich kết quả là feature layer bên cạnh cả hai. điều này trang là về format. ( vocabulary-cho-AI angle lives trong Schema Markup cho AI.)

JSON-LD là W3C Khuyến nghị, đầu tiên published trong 2014 — nó có trước của nó SEO adoption và là designed cho chung linked-dữ liệu interoperability trên web, không cụ thể Đối với tìm kiếm. đó history là Vì sao thuộc tính như @id tồn tại all, và nó spec-cấp độ point phần lớn SEO các hướng dẫn skip: JSON-LD không phải chỉ JSON. nó được xây dựng on JSON syntax, nhưng @context declaration là Điều gì làm dữ liệu linked — identifiable và connectable trên web. Strip @context và bạn’ve đã nhận dữ liệu parser có thể’t interpret.

JSON-LD cũng không married để schema.org. Đó spec lets @context reference bất kỳ published vocabulary — của nó own các ví dụ link để non-schema.org contexts — so JSON-LD là đó right câu trả lời để “điều gì format” trong khi schema.org là một câu trả lời, đó phổ biến một cho tìm kiếm và AI-tìm kiếm markup, để “what vocabulary.” (bản dịch) «điều gì vocabulary.» MỘT trang có thể validly dùng JSON-LD với một khác nhau vocabulary; điều này chỉ sẽ không là schema.org markup anymore.

JSON-LD so với. Microdata so với. RDFa

có three ways để express dữ liệu có cấu trúc, và Google hỗ trợ tất cả them:

JSON-LDMicrodataRDFa
nơi nó livestách biệt <script> blockInline itemprop các thuộc tính on của bạn HTMLInline property các thuộc tính on của bạn HTML
Touches visible HTML?Không
có thể là injected by JS / tag manager?Có (cleanly)AwkwardAwkward
Google stanceĐược khuyến nghịSupportedSupported
lỗi-pronenessLowestCao hơn (tangled với markup)Cao hơn (tangled với markup)

Google khuyến nghị là rõ ràng nhưng 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).” (bản dịch) «Nhìn chung, Google khuyến nghị dùng JSON-LD cho dữ liệu có cấu trúc nếu trang web của bạn setup cho phép điều này, as đây là đó easiest giải pháp cho website owners để implement và maintain tại quy mô (nói cách khác, ít hơn prone để người dùng các lỗi).»

Đó nuance các đối thủ thường drop — và đó một worth giữ — xuất hiện từ đó giống nhau Google trang: “All 3 formats are equally fine for Google, as long as the markup is valid and properly implemented per the feature’s documentation.” (bản dịch) «All 3 formats là equally fine cho Google, miễn là đó markup là hợp lệ và properly implemented theo đó feature tài liệu.» So đó khuyến nghị là về implementation ease và lỗi rate, không phân tích cú pháp speed hoặc xếp hạng advantage. Dùng Microdata không phải một hình phạt. JSON-LD chỉ wins trong thực tế vì điều này không entangle dữ liệu có cấu trúc với đó markup một designer có thể edit tomorrow.

syntax: @context, @loại, @id, properties, nesting

Ở đây 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). cho schema.org SEO markup nó typically "https://schema.org", nhưng đó convention, không rule: @context maps terms để identifiers, và spec lets nó point để khác vocabularies. nó tells parser Cách interpret mỗi thuộc tính name đó follows. Đây là part đó làm nó linked dữ liệu.
  • @type — declares entity: Article, Product, Organization, BreadcrumbList, etc. nó maps để schema.org loại. sử dụng phần lớn cụ thể applicable loạiNewsArticle over Article nếu nó fits.
  • @id — unique URI identifying tài nguyên. nó mechanism đó lets bạn reference một entity từ một (see @graph dưới), và nó worth setting on bất cứ điều gì bạn’ll cross-reference — nhưng nó không universally bắt buộc. JSON-LD spec permits unidentified blank nodes, so hợp lệ JSON-LD có thể omit @id on entities bạn không bao giờ cần để reference elsewhere.
  • Properties — ordinary JSON mấu chốt/giá trị pairs, sử dụng vocabulary terms từ @context.
  • Nesting — child entities là expressed as nested JSON objects ( author object trên) hoặc arrays của objects.

@graph pattern ( scalable approach)

phần lớn các trang cần nhiều hơn một entity: Organization, WebSite, BreadcrumbList, và Article hoặc WebPage itself. naive approach là four tách biệt <script> chặn đó repeat dữ liệu. scalable alternative là single block với @graph — array của entities, cross-referenced by @id. Neither JSON-LD spec nor Google mandates @graph as ** pattern — nó syntax cho expressing graph, và khác hợp lệ layouts exist (tách biệt typed chặn, nested objects không có top-cấp độ @graph, blank nodes với không @id tại all) — nhưng on trang web với several cross-referenced entities, nó pattern đó tránh repeating giống nhau Organization hoặc WebSite dữ liệu on mỗi trang:

Declare each entity once and connect the graph with stable `@id` references instead of repeating full objects. Nguồn: Nested Schema

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 khi, thì point tại điều này với { "@id": "...#org" } mọi nơi khác thay vì repeating đó name, logo, và URL. Này là cách đó major CMS schema plugin xây dựng của họ output, và đây là vì sao @id tồn tại. Bing làm đó giống nhau case cho JSON-LD’s nesting: điều này “makes defining links and relationships between data and entities… easy because it supports nested data.” (bản dịch) «làm defining links và relationships giữa dữ liệu và entities… easy vì điều này hỗ trợ nested dữ liệu.»

nơi để place nó: <head> hoặc <body>

Google xác nhận cả hai hoạt động“You can put the JSON-LD data in the <head> or the <body> of the page.” (bản dịch) «Bạn có thể put đó JSON-LD dữ liệu trong đó thẻ head hoặc đó thẻ thân phản hồi of đó trang.» <head> là conventional, nhưng plenty of CMS plugin inject điều này near đó end of <body>, và đó là fine. Bing agrees điều này có thể sit “in the header, body or foot of the page.” (bản dịch) «trong đó header, thân phản hồi hoặc foot of đó trang.» không burn time relocating một hợp lệ block từ thân phản hồi để head; điều này thay đổi không có gì. 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 — và AI crawler catch

Bạn có thể xây dựng JSON-LD on fly với JavaScript, và Google documents hai ways để làm nó:

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
  1. Google Tag Manager — một Custom HTML tag containing đó JSON-LD, pulling các giá trị từ GTM variables. (Tránh duplicating dữ liệu giữa đó trang và đó tag.)
  2. Custom JavaScript — tạo đó script element programmatically:
    const script = document.createElement('script');
    script.setAttribute('type', 'application/ld+json');
    script.textContent = structuredDataText;
    document.head.appendChild(script);

Này hoạt động cho Googlebot, vì Google renders đó trang: “Google Search can understand and process structured data that’s available in the DOM when it renders the page.” (bản dịch) «Google Search có thể understand và xử lý dữ liệu có cấu trúc đó là khả dụng trong đó DOM khi điều này renders đó trang.» So far, so good.

Ở đây catch phần lớn các hướng dẫn miss, stated cẩn thận. Several AI các crawler — including GPTBot và ClaudeBot, as commonly tested — có không executed JavaScript. nếu của bạn JSON-LD chỉ tồn tại sau khi client-side script chạy, JS-skipping crawler không bao giờ sees nó — nó invisible để đó bot mặc dù Googlebot đọc nó fine, vì Google documents kết xuất DOM trước khi nó looks cho dữ liệu có cấu trúc.

Hai honest caveats on đó AI-crawler behavior: đây là Google own tài liệu đó establishes đó Googlebot side; đó AI-crawler side xuất hiện từ kiểm thử và reporting on riêng lẻ providers, không một spec bất kỳ of them publish, so đây là provider- và date-cụ thể — một crawler JavaScript hỗ trợ có thể thay đổi, và I haven’t verified mỗi provider trực tiếp. không treat “AI crawlers skip JS” (bản dịch) «AI các crawler skip JS» as một universal rule để xây dựng on; treat điều này as một reason để kiểm tra đó crawler bạn thực ra care về (hoặc default để máy chủ kết xuất khi bạn không thể kiểm tra). Nếu điều này không trong đó máy chủ-được kết xuất HTML và bạn haven’t confirmed đó crawler executes JS, assume điều này không thể see điều này. Cho AI-khả năng hiển thị trên tìm kiếm, render JSON-LD máy chủ-side vào đó static HTML trừ khi bạn đã verified nếu không. (Này là đó JavaScript-kết xuất vấn đề từ một structured-dữ liệu angle — see JavaScript SEO.)

có một second caveat cho ecommerce: Google warns đó dynamically generated Sản phẩm markup “can make Shopping crawls less frequent and less reliable,” (bản dịch) «có thể làm Shopping crawl ít hơn frequent và ít hơn reliable,» mà là một real vấn đề cho fast-thay đổi price và availability. Cho các sản phẩm, ưu tiên máy chủ-side kết xuất regardless of AI.

policies (những điều này có teeth hiện tại)

Google dữ liệu có cấu trúc guidelines là ngắn và load-bearing:

  • “Don’t mark up content that is not visible to readers of the page.” (bản dịch) «không mark lên nội dung đó không phải visible để readers of đó trang.»
  • “Don’t mark up irrelevant or misleading content, such as fake reviews.” (bản dịch) «không mark lên irrelevant hoặc misleading nội dung, such as fake reviews.»
  • “Put the structured data on the page that it describes.” (bản dịch) «Put đó dữ liệu có cấu trúc on đó trang đó điều này mô tả.»
  • “Use the most specific applicable type and property names defined by schema.org.” (bản dịch) «Dùng đó hầu hết cụ thể applicable loại và thuộc tính names được định nghĩa by schema.org.»
  • không block của bạn structured-dữ liệu các trang từ Googlebot qua robots.txt hoặc noindex.

Đó visible-nội dung rule là đó một để internalize. Schema đó mô tả nội dung không shown on đó trang có luôn đã một violation; enforcement of “invisible” schema có tightened. Bing diễn đạt đó 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.” (bản dịch) «mặc dù đó markup không phải visible on trang của bạn, điều này là vẫn đọc by đó các công cụ tìm kiếm, và putting spam dữ liệu trong đó markup có thể hamper của bạn presence.»

phổ biến JSON-LD mistakes

  • Markup đó không match visible trang — #1 policy vấn đề ( rating trong JSON-LD đó không khách truy cập sees).
  • Malformed JSON — trailing comma, unescaped quote, hoặc Word smart quotes (" thay vì ") đó silently break toàn bộ block. JSON-LD là strict.
  • sai thuộc tính names — inventing properties đó không phải trong schema.org, hoặc misspelling thực ones, so parser bỏ qua them.
  • ** generic loại nơi cụ thể một tồn tại** — Thing hoặc Article nơi Recipe hoặc NewsArticle là warranted.
  • Duplicate, inconsistent Organization chặn trên các trang với conflicting names/logos.
  • Bị thiếu bắt buộc properties cho rich kết quả bạn’re targeting (mỗi feature lists của nó own bắt buộc các trường).
  • JS-injected markup assumed để là visible để mỗi crawler — Google renders nó, nhưng some AI các crawler có không, và đó worth verifying theo crawler ( catch trên).

Validating JSON-LD

Four khác nhau các câu hỏi nhận asked dưới “is my JSON-LD valid,” (bản dịch) «là my JSON-LD hợp lệ,» và họ là không đó giống nhau câu hỏi — passing một không truyền đó others:

Kiểm thửProveskhông prove
JSON parses (bất kỳ JSON linter, hoặc Rich Kết quả Kiểm thử parse step)syntax là legal JSON — không trailing commas, unescaped quotes, hoặc smart-quote breakageđó bất kỳ thuộc tính name là thực schema.org vocabulary, hoặc đó Google sẽ hiển thị bất cứ điều gì
Schema.org Validatorproperties và types exist trong schema.org vocabularyđó Google hỗ trợ loại as rich kết quả, hoặc đó bắt buộc các trường cho cụ thể feature là present
Rich Kết quả Kiểm thửmarkup đáp ứng Google requirements cho cụ thể supported rich-kết quả loại, on được kết xuất trang bạn testedđó Google sẽ thực ra display rich kết quả — eligibility không phải bảo đảm — hoặc đó khác tìm kiếm/AI các hệ thống parse nó giống nhau way
Google Search Console — Enhancements / rich kết quả các báo cáoĐiều gì Google thực ra parsed on trực tiếp, được crawl các trang, tại quy mô, với thực các lỗithực-time state — các báo cáo lag behind recrawl
  • Kiểm thử by URL, không pasted code, cho JS-được kết xuất các trang. Rich Kết quả Kiểm thử code-input chế độ không chạy của bạn scripts hoặc resolve relative references way trực tiếp-URL kiểm thử làm — nó có thể’t tell bạn Điều gì client-side-injected block looks như sau khi kết xuất.
  • Bing Quản trị viên web Tools — Markup Validator — Bing có validated JSON-LD since August 2018.
  • None của những điều này các kiểm thử speak cho các crawler đó không render JavaScript (see AI-crawler caveat trên) — kiểm thử được kết xuất URL xác nhận Điều gì Google sees, không Điều gì JS-skipping bot nhận.

Làm JSON-LD help SEO?

đặt expectations honestly:

  • không tín hiệu xếp hạng. John Mueller có đã nói dữ liệu có cấu trúc sẽ không làm trang web xếp hạng tốt hơn. đầy đủ dừng.
  • Rich-kết quả eligibility. nó Điều gì làm bạn eligible cho enhanced SERP features (stars, prices, FAQs, breadcrumbs) — eligibility, không bảo đảm.
  • CTR, indirectly. Richer-looking kết quả có thể earn nhiều hơn clicks, mà là thực payoff cho phần lớn các trang.
  • Entity understanding. nó helps engines connect của bạn trang để known entities và Knowledge Graph.
  • AI tìm kiếm. Fabrice Canel (Bing) confirmed trong 2025 đó schema markup helps Microsoft LLMs understand nội dung — nhưng note controlled-nghiên cứu caveat từ Schema Markup cho AI: nó infrastructure cho disambiguation, không trực tiếp citation lever.

So: implement JSON-LD cho rich-kết quả eligibility, entity clarity, và AI/LLM comprehension — không as xếp hạng hack.

điều này bài viết sits trong dữ liệu có cấu trúc hub. cho AI-cụ thể take on schema.org vocabulary, see Schema Markup cho AI; cho kết xuất mechanics behind dynamic injection, see JavaScript SEO.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.