Glossary · Technical SEO

What is JSON-LD?

JSON-LD is a format for representing linked data in JSON. On websites, it commonly appears in a script element to describe content without changing the visible page layout.

Updated

What is JSON-LD?

JSON-LD is a JSON-based format for expressing linked data through explicit meanings and relationships. On websites, it often carries structured descriptions using Schema.org vocabulary. It is a serialization format, not a search feature or a claim of factual accuracy, so check the syntax, represented information, and consumer requirements as separate layers of the implementation.

  • The W3C JSON-LD specification, accessed October 8, 2026, defines the format.

    Ordinary JSON stores values and nested structures. JSON-LD adds mechanisms for interpreting terms and identifying relationships, so a consumer can understand more than the local property spelling within one application’s data object.

  • Schema markup provides vocabulary that JSON-LD can express.

    The same serialization can use other appropriate vocabularies. Those roles differ: a correctly parsed JSON-LD document does not prove that its chosen schema types match the visible page or that Google supports a rich result for them.

  • Google’s structured-data introduction recommends JSON-LD where it suits the site because separate data can be easier to maintain.

    That recommendation does not eliminate the need to verify live output. A configured object can fail during serialization or remain stale after the page content changes.

  • The practical goal is an accurate machine-readable description of the real resource.

    More keywords or deeper nesting do not create authority by themselves. Each statement should have a justified meaning and verified source rather than exist merely to make the block longer or clear an automated suggestion.

See the relationships

The meaning-bearing parts of JSON-LD

JSON-LD: related considerationsConceptual connections between JSON-LD and @context, @type, @id, Properties and values. Connections group considerations; they do not represent measured effects or mandatory sequence. Explanations follow below.JSON-LD@context@type@idProperties andvalues
  • @context

    Defines how terms map to linked-data identifiers and meanings.

  • @type

    Identifies the kind of subject being described.

  • @id

    Provides an identifier that can connect descriptions or references.

  • Properties and values

    Express the facts and relationships of the described subject.

JSON-LD connects terms, identities, and values. Valid serialization does not establish factual accuracy or feature eligibility.Conceptual illustration informed by JSON-LD 1.1.

What does the context actually do?

A context gives terms their intended meaning by mapping compact names to identifiers and defining relevant interpretation rules. It is not a declaration that every value is correct. Inspect the context alongside the properties, because identical short names can represent different concepts under different mappings, and a parser accepting the JSON does not establish the resulting linked-data meaning.

  • The W3C context definition describes mappings and interpretation.

    A common website context identifies Schema.org vocabulary. Structured data remains broader than that one context, and consumer-specific requirements still determine which statements are useful for a supported application or search appearance.

  • Do not change the context to solve an unrelated content defect.

    A missing author source or false service location needs factual correction. A term interpreted under the wrong vocabulary needs semantic correction. Those causes can both produce confusing output, but they should not receive the same indiscriminate template edit.

  • Review contexts introduced by plugins or nested components.

    An embedded context can alter interpretation within its supported scope. A developer reading only the first line of the block may overlook that change. Use a suitable JSON-LD processor where semantic expansion matters, rather than checking only whether a generic JSON parser accepts the document.

How should a JSON-LD data block be embedded in HTML?

Embed a JSON-LD data block using the appropriate script type and valid serialized content within the delivered page. The block describes information rather than running as an ordinary application script. Verify the actual HTML and parsed data, because a source object or CMS setting does not demonstrate that the public page receives a complete readable description.

  • The W3C embedding guidance describes the application/ld+json data block.

    Google’s structured-data introduction discusses supported placement and implementation. Use those requirements rather than assuming every script-like container has the same meaning to the intended consumer.

  • Illustrative syntax, not a live website finding:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "WebPage",
  "url": "https://example.com/service-guide/"
}
</script>

This example demonstrates the wrapper and basic structure. It does not establish a dedicated Google feature, and it should not be pasted unchanged as an accurate description of another page. The actual URL, subject, properties, and supported purpose must match the real resource being published.

Inspect the block after any template transformation. Escaping or rendering helpers can alter output, and malformed boundaries can leave truncated content. Check the delivered document rather than treating the repository’s object definition as final evidence. The relevant artifact is what the public consumer can obtain and parse.

Why is valid JavaScript not necessarily valid JSON?

Valid JavaScript is not necessarily valid JSON because JSON uses its own restricted grammar for representing data. An object that runs in application source can fail when copied into a data block. Parse the actual serialized text before investigating vocabulary or search eligibility, so punctuation errors are not mistaken for missing properties or unsupported schema types.

  • The MDN JSON.parse documentation describes parsing valid JSON and syntax errors.

    A JSON-LD block still needs that basic syntax. A generic parser can verify readability, but it does not understand whether the linked-data terms or visible facts are appropriate.

  • Check string quoting and separators.

    Comments and trailing commas commonly appear in development examples but are not ordinary JSON syntax. Copying such examples into production can create unreadable output. The error should be repaired in serialization rather than compensated for by adding more schema properties to the same invalid block.

  • Review strings containing quotes or line breaks.

    Building output through ad hoc concatenation can produce malformed text when real content includes those characters. Use an appropriate serialization path for the actual environment and inspect its output. A test using unusually simple dummy labels can conceal the defect encountered by published content.

  • Validate representative real records after the fix.

    An apostrophe, accented character, or descriptive sentence should not unexpectedly break the description. The goal is correct complete data delivery, not merely a successful parse of one hand-written miniature example that never exercises the production content path.

How do identifiers connect descriptions of the same subject?

Identifiers connect descriptions by referring to the intended node rather than relying entirely on repeated names. Use them consistently and understand what they identify. A page, provider, and author can be different nodes, so copying one page address into every identity field can collapse relationships that should remain distinct or create confusing descriptions after a route move.

  • The W3C node-identifier guidance describes the role of @id and node references.

    Schema.org’s data-model discussion adds relevant distinctions among page and entity relationships. A reference should connect the intended subject, not merely resemble a plausible web address.

  • A canonical tag expresses a preferred equivalent page representation.

    It does not automatically supply the identity of everything described on that page. One organization can appear across many resources without becoming a new organization for every slug, while one page can discuss several entities without making them all identical.

  • Compare output from different data producers.

    A plugin can use one organization identifier while application code uses another. Different identifiers are not automatically wrong, but contradictory descriptions of the same subject require review. Confirm the intended relationship instead of merging everything by display name or deleting all additional nodes.

  • Do not use identifiers or identity links to fabricate affiliation.

    A real external profile can identify a subject only when that relationship is true. Machine-readable references should clarify verified information, not borrow perceived authority from an unrelated institution or imply an endorsement absent from the page.

What is the difference between nested objects and references?

A nested object provides a description within another item’s relationship, while a reference points to an identified node that may be described elsewhere. Both can express connections, but their correctness depends on the actual subject and context. Choose a clear representation that avoids contradictory copies without assuming that deeper nesting or more references automatically improves search treatment.

What is the difference between nested objects and references?
Point to considerExplanation and application
The W3C specification explains node objects and references.An author relationship can connect an article with a person description. The article remains different from its author. A provider relationship similarly connects an offering with the entity supplying it rather than turning the offering into an organization.
Inline descriptions can be convenient for small complete items.Shared references can reduce repeated identity details where several nodes connect to the same verified subject. The implementation still needs coherent source data. A shared node can spread an inaccurate address or role widely if the common record is wrong.
Review the expanded or parsed graph when a relationship is unclear.JSON indentation reflects nesting, but it does not itself establish the intended business meaning. A description can be visually tidy while connecting the wrong subject or assigning a property to an inappropriate node.

How should multiple values and ordering be interpreted?

Multiple values and ordering need interpretation because an ordinary collection of linked-data values does not necessarily establish meaningful sequence. Use the supported representation for the actual relationship. An author set, ordered steps, and breadcrumb positions can have different semantics, so an array that parses correctly is not sufficient evidence that a consumer understands the intended order.

  • The W3C value-ordering guidance describes sets and lists, including explicit list structures.

    Schema.org’s data-model guidance discusses similar collection distinctions. These standards should not be flattened into a claim that every plain array has guaranteed ordered meaning for all applications.

  • Breadcrumbs have a supported Google feature with its own item relationships and requirements.

    Follow that feature guide instead of substituting an arbitrary general linked-data list merely because the underlying serialization supports one. Standard syntax capability and a consumer’s specific pattern are different layers.

  • Check what each value represents.

    Several names can identify distinct people, or they can be alternate names for one subject depending on the property. The visible content and property meaning should settle that difference. Do not add repeated values to increase item count without a real relationship to describe.

  • Verify updates that alter collection membership.

    A removed member can remain in generated data while disappearing from the visible list. Pagination can also change which resources a delivered portion contains. The description should reflect the appropriate resource rather than imply that every stored record is visible on the current page.

How do typed values differ from ordinary strings?

Typed values carry an explicit datatype or another supported interpretation, while an ordinary string is text unless the context defines additional meaning. Distinguish dates, identifiers, quantities, and descriptive text according to the property and consumer. A value that looks right to a reader can still express the wrong semantic form in the resulting linked-data document.

How do typed values differ from ordinary strings?
Point to considerExplanation and application
The W3C value guidance describes typed and language-tagged values, as well as context-based interpretation.This allows precise representation when the application needs it. It does not justify adding unsupported detail or artificial precision to a fact the visible page never establishes.
A publication date and a displayed editorial phrase can come from different CMS fields.Select the source matching the asserted event. A date-only fact should not become an invented precise timestamp simply because the server can generate one. Timezone meaning also needs verification where a real time is supplied.
Numbers deserve the same care.A price, count, and identifier have different purposes. Do not convert a textual identifier into a numeric amount or fabricate a rating count to satisfy a recommendation. Basic JSON parsing cannot establish that a numeric field represents a true commercial or editorial fact.
For a Google feature, use its current documented property forms.A general JSON-LD datatype can be valid while an application expects another structure. Keep technical correctness and consumer eligibility separate, choosing explicit representations only where they accurately support the intended use rather than embellish the block.

How can graph containers remain understandable without becoming oversized?

Graph containers remain understandable when each node has a clear purpose and justified relationship to the real page. A top-level graph can group relevant descriptions, but the wrapper does not make every included statement useful. Inspect the actual subjects and references rather than treating a large number of nodes as evidence of greater authority or broader search eligibility.

  • The W3C graph guidance explains @graph and related structures.

    For website publishing, a graph can contain descriptions such as the page and its verified subject. Google still evaluates supported feature requirements and content accuracy rather than reward the mere presence of a graph keyword.

  • Avoid unrelated entity expansion.

    A service article may mention a technology or place without making it the main subject. Adding extensive external descriptions can obscure the useful page relationship. The graph should explain the actual resource, not become a speculative catalogue of everything associated with its industry.

  • Shared nodes need accurate consistent facts.

    Several page descriptions can refer to one provider, but its identity should not drift across templates. Compare real output and source records where multiple producers operate. Centralizing one incorrect statement would spread the defect rather than improve semantic clarity.

  • Keep implementation complexity proportional to the purpose.

    If a simple supported item expresses the verified information clearly, additional graph structures need a reason. A clearer maintained description is more useful than advanced syntax inserted solely to make an audit report look sophisticated without adding a relevant relationship.

How should generated JSON-LD remain consistent with visible content?

Generated JSON-LD should use verified sources that correspond to the visible page and update when those facts change. Test delivered output rather than configuration alone. A cached block, reused component, or client-side transition can retain another resource’s values even while the heading and explanation change, leaving a technically readable but inaccurate machine description.

  • Google’s general structured-data guidelines require representative current information.

    A hidden data block is not permission to assert facts absent from the page. Review names, roles, dates, images, and applicable offering details according to their actual property meanings.

  • JavaScript SEO becomes relevant where scripts insert or replace the block.

    Google can process dynamically added data under its supported conditions, but rendering still needs to succeed. A fresh direct request and an already initialized owner session can receive different output, so test the relevant public states separately.

  • Inspect route transitions when the application avoids a full reload.

    The visible article can change while its author or subject description stays stale. A metadata library’s intended API call is implementation evidence; the actual rendered document is the evidence that the correct values were delivered to the consumer.

How should parsing, linked-data interpretation, and feature checks be sequenced?

Sequence checks by verifying readable JSON, examining linked-data meaning, and then evaluating the intended consumer’s feature requirements and visible accuracy. These checks answer different questions. A parser error should be fixed before interpreting a graph, but a successful parse cannot establish vocabulary correctness, factual truth, or eligibility for every search appearance the business hopes to obtain.

  • JSON.parse documentation supports the first layer.

    The W3C specification defines the linked-data layer. Google’s structured-data introduction explains feature testing. Read each tool’s scope rather than treating all green results as the same certification.

  • A vocabulary validator can recognize a generic item that has no dedicated supported Google rich appearance.

    That difference does not make the serialization unreadable. Conversely, the Rich Results Test can flag missing required information even when broad JSON-LD processing succeeds. The error needs its correct consumer and feature context.

  • Warnings require factual interpretation.

    An optional value may not exist legitimately. Another message may expose a wrong type or incomplete relationship. Do not insert dummy ratings, credentials, or offers merely to clear the report. Accurate omission is preferable to a technically complete false description.

  • After correction, test the live page as well as isolated code.

    An access restriction or failed route can prevent public processing. Noindex is a separate instruction, and a pasted block does not prove that the resource is available for the intended search use.

Why can a valid JSON-LD block remain absent from search enhancements?

A valid block can remain absent from search enhancements because serialization validity is not equivalent to supported-feature eligibility or actual display. Google can select another presentation even when technical requirements are met. Diagnose the specific evidence without assuming that no enhancement means broken JSON or that adding more graph statements necessarily changes the result.

  • Google’s general guidelines distinguish technical and quality requirements and explain display limitations.

    The chosen type can be readable but unrelated to the page’s actual main content. A recognized vocabulary term can also lack a dedicated supported search feature.

  • Check the live resource’s response and accessibility.

    A 404 error can detach an otherwise readable data block from the intended working page. Other restrictions can affect processing too. Verify the delivered document and available search evidence rather than diagnose every missing appearance solely from the serialized text.

  • Review the applicable current feature documentation.

    General examples found in the specification illustrate syntax, not promises about Google results. A standard permitting a structure does not mean Google uses it to create the expected appearance. Keep those purposes distinct when deciding whether a real implementation change is necessary.

  • Avoid changing accurate facts to provoke display.

    Correct genuine output or eligibility issues and assess later observations honestly. The immediate implementation outcome is a verified description under tested conditions, not an invented click-through increase or guaranteed search feature inferred from a successful parser or validator.

What would a precise JSON-LD repair demonstrate?

A precise repair demonstrates that the actual public block parses, expresses the intended relationships, and agrees with visible verified information under relevant page states. It then checks the supported purpose where applicable. The conclusion should name the corrected defect and observed output, while leaving unmeasured search or customer outcomes outside the implementation claim.

  • Illustrative diagnosis, not client data.

    A template builds its data through string concatenation, and a published article title containing quotation marks breaks the JSON. The developer corrects the serialization path and tests actual titles from the content inventory, rather than replacing them with simplified dummy text to conceal the failure.

  • The review confirms complete strings and correct node relationships after parsing.

    It checks direct route output and any relevant transition that regenerates the description. A feature validator is then used for the applicable supported type. No invented author qualification or missing rating value is added merely to produce a cleaner result.

  • Google’s introduction discusses evaluating later effects with suitable observations.

    A readable block alone is not causal proof of increased visits. Record any available outcome evidence separately and do not transfer another industry’s published case-study results to this site’s implementation.

  • Report the serialization defect, corrected delivered behavior, consumer scope, and remaining limits.

    That makes the change useful to a reviewer and keeps JSON-LD connected to real information. Further work should address an actual unsupported relationship or processing gap rather than expand the block without a meaningful purpose.

Questions about JSON-LD

Does @context identify the meaning of the terms used in JSON-LD?

Yes. It maps terms to identifiers and supplies interpretation rules. It does not independently establish that the described facts are true.

JSON-LD 1.1 ↗
Can @id connect separate descriptions of the same entity?

Yes. Identifiers can connect references and descriptions. Use them consistently for the intended entities and relationships.

JSON-LD 1.1 ↗
Can JSON contain JavaScript comments or trailing commas?

Strict JSON parsing rejects comments and trailing commas. A JavaScript object literal is not automatically valid JSON.

JSON.parse() - JavaScript ↗
Does valid JSON-LD guarantee a Google rich result?

No. Syntax, supported feature requirements, content policies, and Google’s presentation decisions are separate considerations.

General Structured Data Guidelines ↗

Continue learning

Connect this to your website

  • technical SEO services →

    Correct verified serialization and representation errors while checking supported feature requirements separately.

Sources

JSON-LD 1.1 ↗Accessed October 8, 2026Intro to How Structured Data Markup Works | Google Search Central  |  Documentation  |  Google for Developers ↗Accessed October 8, 2026JSON.parse() - JavaScript | MDN ↗Accessed October 8, 2026Data model - Schema.org ↗Accessed October 8, 2026General Structured Data Guidelines | Google Search Central  |  Documentation  |  Google for Developers ↗Accessed October 8, 2026

Published . Definitions and examples link to their supporting sources. Our SEO methodology →

SEO · Content · Local · Web Design

Connect the website work to your business.

We assess the pages, search demand, and customer actions that matter to your business, then explain where to focus the work.