Epic Creative
LibraryInsightsAbout
Search/
© 2026 Epic Creative
AboutLibraryInsights
Digital & SEO

What Is JSON-LD Structured Data?

Learn what JSON-LD structured data is, how it relates to Schema.org, how websites implement it and why valid markup does not guarantee enhanced search results.

19 Aug 202610 min read2,142 words
In this guide
  1. Separate the JSON-LD format from the vocabulary it carries
  2. Understand where JSON-LD normally sits in a page
  3. Choose types according to what the page genuinely represents
  4. Build a trustworthy source of values
  5. Validate JSON syntax separately from search-feature rules
  6. Avoid duplicate and conflicting markup from plugins
  7. Keep structured data aligned with canonical and language versions
  8. Understand why valid markup cannot promise a rich result
  9. Test the implementation after publishing and future changes
  10. JSON-LD, Schema.org and rich-result eligibility: which layer needs fixing?
  11. JSON-LD structured data: five questions

JSON-LD is a way to describe information using JavaScript Object Notation for Linked Data. On a website, it is commonly used to express structured facts about the page and the entities it represents, such as an organisation, article or product. Search engines can interpret supported information when it is implemented correctly, but a valid block does not guarantee a particular search appearance or ranking. A dependable implementation starts with accurate visible content, chooses the appropriate vocabulary and validates the data delivered by the public site. It is not simply a script to paste into every page in the hope that a search result will become more prominent.

Illustrative breadcrumb navigation showing hierarchical relationships that can also be described using relevant structured data
Illustration of breadcrumb navigation by Sophivorus, original Wikimedia Commons file and author record, CC0 1.0 public-domain dedication, unchanged. This is a conceptual breadcrumb interface, not a JSON-LD code sample or proof of a rich result on Epic Creative.

Separate the JSON-LD format from the vocabulary it carries

JSON-LD is a data format and processing model. It extends JSON with conventions that allow terms to be interpreted as linked data. Schema.org is a vocabulary of types and properties that developers often use within JSON-LD. These are different layers: a JSON-LD document can be syntactically correct while describing the wrong type of entity, and an appropriate Schema.org type can still be written with invalid JSON syntax. Google Search's supported structured-data features form another layer, with their own eligibility and content requirements.

For example, the visible page may describe a product. A developer could express its supported name and other truthful properties using a suitable Schema.org type and JSON-LD syntax. That does not mean every Schema.org property is used by Google or that a product rich result will appear. Search eligibility depends on the relevant feature documentation, page quality and Google's decisions. Read the W3C JSON-LD 1.1 recommendation for format semantics and Schema.org's getting-started material for the vocabulary context.

This distinction is useful in technical discussions. A business may ask for 'schema', but the implementation team needs to know which entity is being described, what facts the page supports, which representation is being used and what search feature is actually relevant. Clarifying those points before writing code prevents a great deal of invalid or misleading markup.

Understand where JSON-LD normally sits in a page

For HTML pages, JSON-LD is often provided inside a script element whose type is application/ld+json. The script's content is data rather than executable application behaviour. It can be generated server-side, output by a CMS template or inserted by a tool that understands the page's properties. The content should describe the actual published page and the entities it presents; it should not be used to create hidden claims that a visitor cannot verify.

One reason JSON-LD can be convenient is that the structured description can be maintained separately from the visible paragraphs and headings. This does not remove the need for data consistency. A product price changed in a visible catalogue but not in structured markup can mislead downstream systems. A new article title or author may remain paired with an old JSON-LD value if the template uses a stale default. The right architecture draws relevant properties from the same reliable source of truth as the public page whenever feasible.

Do not assume that placing a script in the editor guarantees it appears in public output. Themes can strip unsupported markup, content-security rules can affect delivery, and some plugins replace or duplicate generated blocks. Inspect the actual HTML and rendered output from the exact published URL, including any caching layers. An editor's preview or successful database save is not enough to certify the final result.

Choose types according to what the page genuinely represents

Begin with page purpose. An article may describe its headline, author or publication details when the facts are supported. A product page may provide suitable product-specific information. A breadcrumb trail can communicate the page's position within a genuine navigation structure. Different types use different properties and may have different search eligibility rules. A single generic schema template applied indiscriminately to all URLs is likely to produce incomplete or misleading results.

The accompanying breadcrumb illustration demonstrates one possible page relationship. It does not show a real JSON-LD implementation or establish that this website has accurate breadcrumb markup. If a breadcrumb structure exists on a page, its structured representation should reflect the visible hierarchy and actual destination URLs. Do not invent a path solely to satisfy a validator. Likewise, an organisation entity should reflect genuine contact and identity information rather than a copied example containing another company's details.

When selecting properties, distinguish required information for an intended search feature from merely available Schema.org properties. A vocabulary can describe more concepts than any one search engine chooses to use. Consult the current feature-specific documentation rather than assuming a green syntax result makes a page eligible for every enhanced presentation. Record which type and feature each template is intended to support, so later editors can understand why the markup exists.

Build a trustworthy source of values

Structured-data failures often originate in business data, not punctuation. A website can publish an outdated address, missing logo, copied product name or unverified rating across many pages because a global template was configured once and forgotten. Audit the fields feeding the structured data before generating blocks at scale. For an organisation, confirm approved identity and contact details. For an article, confirm headline, publication information and responsible creator where relevant. For a product, ensure offer and availability information follows actual inventory and commercial policy.

Never add fabricated reviews, ratings, awards or professional qualifications to make a page eligible for a search appearance. A technically valid JSON-LD block can still be deceptive when its values are false. If the underlying page cannot substantiate a property, omit it where appropriate or correct the content and data source first. When operational information changes, update the relevant structured representation through the same maintenance workflow. This reduces the risk that invisible machine-readable content becomes inconsistent with what visitors are told.

Make ownership clear. Developers may control the output format, editors may control article metadata, and product managers may own current availability. A reliable implementation connects these responsibilities instead of asking one person to type everything into a plugin without verification. Keep a test record covering representative pages with complete values and pages with optional fields missing. Good defaults prevent errors, but defaults must not create false facts.

Validate JSON syntax separately from search-feature rules

Syntax validation checks whether the data can be parsed and interpreted according to the relevant JSON-LD structure. Search-feature validation asks a different question: does the content satisfy a specific search engine's supported markup and eligibility requirements? A page can pass JSON-LD syntax checks while failing a rich-result test because the type is unsupported, an expected property is absent or the page content does not meet feature rules.

Use Schema.org Validator to inspect structured-data representation and Google's Rich Results Test for supported Google search appearances. They serve different purposes, so one green result should not be reported as approval from every system. Google also offers documentation for structured data and general content guidelines. Record the tested URL or code, tool, date and any limitation to the test.

Warnings are not always equivalent to errors, and neither necessarily proves a customer-facing problem. A warning for an optional property may represent a chance to add useful information, but only when that information is genuine and relevant. An error preventing eligibility for an intended feature requires targeted investigation. Do not satisfy a required field by inventing a value. Fix data relationships and test the actual public markup again after deployment.

Avoid duplicate and conflicting markup from plugins

Many CMS platforms can generate structured data automatically. That may be helpful for a small business without a developer, but it also creates a risk when a theme, SEO plugin, ecommerce extension and manually pasted script all output overlapping descriptions. Several blocks can be legitimate where they describe related entities consistently; contradictory names, URLs or values are not. Inspect which component owns each generated block before adding another.

Review the markup on representative page types rather than only the homepage. An article may contain an old default organisation address while a product template uses a current value. A breadcrumb plugin may generate a path inconsistent with the actual navigation. A template upgrade may alter property names or duplicate a block. Keep a short registry of implemented types, generating components and approved data sources. This makes future migrations and troubleshooting considerably easier than treating structured markup as a collection of snippets pasted into editors.

Do not remove all existing markup merely because a validation tool lists multiple items. Determine whether they describe separate valid entities or conflict. A page can discuss an organisation, include an article and present breadcrumbs without necessarily being wrong. The analysis should focus on accurate relationships and feature requirements, not a blanket rule that every URL may contain only one script element.

Keep structured data aligned with canonical and language versions

A multilingual or multi-regional website may have separate URLs for translated pages. The structured data on each version should correspond to that version's visible content, language and relevant page identity. Hreflang manages alternate-language relationships and is not a substitute for JSON-LD. Similarly, canonical tags indicate preferred URL representatives and do not automatically correct outdated structured values. Review these systems together during site migrations, but do not confuse their functions.

Use current preferred URLs in appropriate markup properties when the specification calls for a URL. A redirected obsolete destination can make the output harder to maintain. If an article has been consolidated into a new page, update its structured representation and relevant internal links. After changes to slugs or hostnames, test the actual public output rather than assuming a database migration updated every generated script. The same principle applies to HTTPS changes and revised breadcrumbs.

For business listings, ensure local details reflect genuine operations. Structured data does not create eligibility for an address or a service area a company does not actually have. When a product or offer is not available to a given market, do not describe it as universally available simply because a shared template makes that convenient. Search markup should communicate verified information, not create fictional commercial reach.

Understand why valid markup cannot promise a rich result

Google may use structured data to understand eligible page information and provide enhanced appearances. It decides which features to show based on its systems and current policies, and a valid implementation is not a guaranteed display. Some features have additional restrictions or are limited to particular content types. Changes to feature availability can make old plugin demonstrations misleading. An agency promising a rich result merely because it inserted a script is overstating its control.

Track observable outcomes accurately. A successful deployment can be verified by inspecting the public markup and the intended feature test. Later Search Console observations may reveal relevant search appearances for a verified property, but the absence of a feature is not automatically proof that JSON-LD is invalid. Do not invent click-through gains, indexation effects or ranking improvements from successful validation. Treat the result as a technical capability whose usefulness depends on accurate content and search-engine eligibility.

A good handover describes the entity represented, properties used, source of values, responsible owner, test outcome and maintenance trigger. This is far more meaningful than a claim that the website now has '100 per cent schema SEO'. It shows what the system actually does and leaves enough evidence for another developer to inspect the implementation safely.

Test the implementation after publishing and future changes

Create a small test matrix: one general article, a product or service page if applicable, a page with breadcrumbs and one page with missing optional values. Inspect live JSON-LD, confirm that important values match visible content, and run the relevant validators. On mobile, check that content and navigation remain usable; structured-data changes should not break the public layout or application. Keep JavaScript, template and caching changes under regression testing where they affect multiple pages.

Repeat the review after major CMS upgrades, site migrations, product imports, business-detail changes and template releases. Record what was tested and what was not. A native database read-back confirms saved content but cannot certify that a public renderer displays it correctly; if internal editor notes are exposed, that is a separate public-output defect requiring a code-level fix. Structured data should be part of routine web engineering, maintained alongside accurate content and navigation, not a one-off code insertion forgotten after an initial green validator result.

The durable method is to distinguish format, vocabulary and feature eligibility, describe only facts the page supports and verify the actual public output. Consult the W3C JSON-LD standard, Schema.org documentation and Google Search Central's structured-data introduction for complementary scopes. No single source or test can promise how Google will display an individual page.

JSON-LD, Schema.org and rich-result eligibility: which layer needs fixing?

These are different parts of a structured-data implementation. The comparison helps decide whether an error belongs in the representation, the vocabulary or the feature requirements, rather than promising an enhanced Google result.

Five decisions across structured-data layers
DecisionData-format and vocabulary checkGoogle search-feature check
What is being verified?Parseable JSON-LD with appropriate Schema.org types and propertiesSupported type and eligibility for a specific search appearance
Suitable referenceW3C JSON-LD recommendation and Schema.org vocabularyGoogle Search Central feature-specific documentation
Useful test toolSchema.org Validator and direct JSON-LD inspectionGoogle Rich Results Test for supported features
Typical errorInvalid syntax, mistaken type or inaccurate generated propertyMissing required feature property or ineligible page context
What passing meansData can be interpreted within the supported representationTool finds eligible supported markup; display still not guaranteed

Decision: confirm accurate page facts first; then check JSON-LD and vocabulary correctness before assessing any intended search feature. Source A: W3C JSON-LD 1.1 and Schema.org getting started (format and semantic vocabulary, general web scope, checked 30 October 2026). Source B: Google structured data introduction and Rich Results Test (Google feature eligibility, checked 30 October 2026). They concern different scopes, so a valid JSON-LD document must not be presented as a numerical prediction of enhanced search visibility.

JSON-LD structured data: five questions

Is JSON-LD the same as Schema.org?

No. JSON-LD is a data format, while Schema.org supplies types and properties frequently expressed using that format. A search engine's supported rich-result features impose separate rules.

Where is JSON-LD placed on a website?

It is commonly supplied in a script element with type application/ld+json in the HTML document. Inspect the actual public output, since CMS and template behaviour can alter it.

Does valid JSON-LD guarantee a Google rich result?

No. Technical validity and feature eligibility are distinct, and Google ultimately determines whether an enhanced appearance is shown.

Do small businesses need to hand-code JSON-LD?

Not always. A suitable CMS or plugin may generate it, but the resulting values, type choices and public output still require periodic review and validation.

What should be checked after changing structured data?

Verify that machine-readable values match visible content, test the intended URL with appropriate validators and inspect representative page templates after deployment. Do not treat a saved field as public frontend proof.

PreviousInternal Linking for Small Business SEONextHow to Review Google Search Changes Without Chasing Updates

More from Digital & SEO

View all →
3 min read

How to Prioritise SEO Content Refreshes for Small Business Sites

8 min read

How Small SEO Agencies Can Triage Technical Audit Findings

8 min read

A Practical Keyword Mapping Review for Small SEO Agencies

7 min read

A Practical Local SEO Client Intake Process for Small Agencies