LazySEOLazySEO

LazySEOBlog › Multilingual Structured Data Best Practices for AI Search

← All articles

Multilingual Structured Data Best Practices for AI Search

Key takeaways

  • Give every language or regional version a unique, crawlable URL and connect alternatives with reciprocal hreflang.
  • Make JSON-LD match the localized visible content, including language, prices, availability, FAQs, breadcrumbs, images, and video metadata.
  • Reuse stable @id values only for the same real-world entity; separate products, variants, offers, editions, and legal entities when they differ.
  • Treat hreflang as a page-level language and region signal, not as a JSON-LD relationship.
  • Distinguish translation from regional localization, especially for currency, eligibility, shipping, legal copy, contact details, and service availability.
  • Validate syntax, Google feature eligibility, rendered output, canonicals, hreflang relationships, crawlability, and indexation before and after launch.
  • Structured data can support machine understanding, but it does not guarantee rankings, rich results, AI citations, or AI Overview inclusion.
Multilingual Structured Data Best Practices for AI Search

Multilingual structured data works best when every language or regional version has its own crawlable URL, accurate reciprocal hreflang annotations, and JSON-LD that matches the localized page users can see. Use stable entity identifiers only when pages describe the same real-world entity, and create separate identifiers when products, offers, services, or legal entities differ.

There is no special Schema.org vocabulary required for Google AI Overviews or AI Mode. Google’s AI features guidance says that standard Search requirements remain the foundation: pages should be crawlable, indexable, useful, and eligible to appear with a snippet. Structured data can reinforce page and entity meaning, but it does not guarantee rankings, rich results, AI citations, or inclusion in an AI-generated answer.

Implementation checklist

Before publishing a multilingual page, confirm that:

  • The translation or regional version has a unique, stable, crawlable URL.
  • The visible content and JSON-LD use the same language and market details.
  • The page has a self-referencing canonical URL.
  • Hreflang annotations are reciprocal, use valid language-region codes, and point to indexable URLs.
  • inLanguage accurately describes the page or content language.
  • Global entities use stable @id values only when they represent the same real-world entity.
  • Regional prices, currencies, availability, shipping, and eligibility match the visible offer.
  • Structured data describes the page where it appears and does not contain unsupported or hidden claims.
  • JSON-LD passes the Schema Markup Validator and, where applicable, Google’s Rich Results Test.
  • Rendered-page checks, URL Inspection, crawl monitoring, and indexation reports are part of the launch process.

What multilingual structured data can and cannot do

Structured data provides machine-readable facts about a page, its subject, and related entities. In a multilingual implementation, it can express relationships such as:

  • This is the French version of a particular WebPage.
  • The page describes a specific Product or Service.
  • The page was written by a particular author and published by an Organization.
  • Several pages refer to the same global company or product.
  • A service provider supports particular customer languages.

These are documented Schema.org and search-engine concepts. It is reasonable to infer that consistent, accurate relationships may make a site easier for automated systems to interpret, but that inference should not be presented as proof that a page will receive more AI citations or brand mentions. Search engines and AI systems use many signals, including page content, links, crawlability, reputation, structured data, and eligibility for particular search features.

Structured data cannot fix a poor translation, an inaccessible URL, a mismatched price, an incorrect product identity, or a page that is blocked from indexing.

Give every localized version a crawlable URL

Use separate URLs for language and regional versions. For example:

  • `https://example.com/en/product/widget%60
  • `https://example.com/fr/produit/widget%60
  • `https://example.com/en-gb/product/widget%60

Google recommends using dedicated URLs rather than relying only on cookies, browser settings, or automatic language redirects. A URL-based architecture gives crawlers and users a stable address for each version. See Google’s guidance for managing multi-regional and multilingual sites.

Do not assume that a translated page is automatically a duplicate. Two pages may describe the same product or article while still being distinct localized pages with different visible text, prices, legal information, or regional availability. Each page should have a canonical URL that reflects its own indexable version unless there is a specific reason to consolidate it.

Google’s structured-data policies require markup to describe the content of the page on which it appears. The relevant rule is not that every page should receive identical markup or that markup should appear only on the canonical URL. Instead, each indexable page should contain accurate markup for that page. See Google’s structured-data policies.

Use hreflang and structured data for different jobs

Hreflang and structured data complement each other, but they are not interchangeable:

  • Hreflang is a page-level language and regional targeting signal. It connects alternate URLs intended for different language or market audiences.
  • Structured data describes the page, its content, and its entities using Schema.org vocabulary.
  • Canonicalization identifies the preferred URL among substantially duplicate versions. It is not a replacement for hreflang.

Hreflang is not a relationship inside the JSON-LD graph. Do not try to replace HTML, HTTP-header, or XML-sitemap hreflang annotations with a Schema.org property.

Hreflang example

```html

<link rel="alternate" hreflang="en-US" href="https://example.com/en-us/widget" />

<link rel="alternate" hreflang="en-GB" href="https://example.com/en-gb/widget" />

<link rel="alternate" hreflang="fr-FR" href="https://example.com/fr/widget" />

<link rel="alternate" hreflang="x-default" href="https://example.com/choose-language" />

```

Each alternate should include the other relevant alternates, including itself. Hreflang annotations can be implemented in the HTML head, HTTP headers, or XML sitemaps. Google documents the syntax in its localized versions guidance.

Common hreflang failures

Check for these problems during testing:

  • The English page references the French page, but the French page does not reference the English page.
  • Language or region codes are invalid, such as using a country code where a language code is required.
  • Tags point to redirected, blocked, noindex, or non-canonical URLs.
  • Canonical tags conflict with the URLs listed in hreflang.
  • One locale uses HTTP while the rest use HTTPS.
  • Alternate URLs return soft 404s or substantially different content.
  • A regional page is listed for a market that it does not actually serve.
  • The same URL is used for multiple locales even though the content changes based on cookies or headers.

Use x-default only when a genuine fallback or language-selector page exists. It is optional. It should not automatically point to the homepage unless the homepage is truly the best fallback for users who do not match a listed locale.

Separate translation from regional localization

Language and market are related but different dimensions. A translation changes the language of the content. Regional localization may also change:

FieldTranslation questionRegional localization question
name and descriptionAre the words natural in the target language?Does the product name or legal wording differ by market?
PriceIs the currency label understandable?Is the price actually valid in that country or region?
AvailabilityIs the status translated?Can customers in that market buy or receive the item?
ShippingIs the shipping copy translated?Are delivery areas, costs, and delivery times accurate?
Legal copyIs the text translated correctly?Does the market require different terms, warranties, or disclosures?
Contact detailsIs the department name translated?Is the phone number, address, and support channel correct locally?
OrganizationIs the brand name represented correctly?Is the page describing the global company or a separate local entity?
Service languagesIs the page written in the target language?Does the provider actually offer the service in that language?

Do not label a page fr-CA merely because it is French if the content, offer, and eligibility are intended for France. Likewise, do not create separate Organization entities for every translated page unless the pages represent legally or operationally distinct organizations.

Choose stable entity identifiers carefully

A stable @id is useful when multiple pages describe the same real-world entity. For example, English and French pages may both refer to the same global Organization:

```json

{

"@type": "Organization",

"@id": "https://example.com",

"name": "Example Corporation",

"url": "https://example.com"

}

```

However, stable identity is not the same as identical markup. Use a different identifier when the subject is materially different, such as:

  • A product variant with a different SKU, GTIN, size, color, or configuration.
  • A regional offer with different price, currency, availability, or eligibility.
  • A country-specific edition with different features or legal terms.
  • A local subsidiary that is a separate legal entity.
  • A separately operated service provider or location.
  • A translated article that is not a direct translation but a different editorial work.

A practical rule is: reuse an @id when the pages identify the same real-world entity; create a new @id when the entity, offer, edition, or legal relationship is different.

Correct and incorrect identity patterns

Correct when the product is globally the same:

```json

{

"@type": "Product",

"@id": "https://example.com/products/widget",

"name": "Widget",

"sku": "W-100"

}

```

The English and French pages may reference this Product while translating name and description, provided the underlying product is the same.

Incorrect when regional products differ:

```json

{

"@id": "https://example.com/products/widget",

"sku": "W-100-US",

"offers": {

"priceCurrency": "EUR",

"availability": "https://schema.org/OutOfStock"

}

}

```

This graph creates confusion if the identifier represents a global product while the SKU, currency, and availability describe a different regional item or offer. Use separate Product or Offer nodes when the distinction is real, and connect them only where the relationship is accurate.

Localize the fields that users can see

The JSON-LD should reflect the language and market of the page. Common localized fields include:

  • name
  • description
  • headline
  • articleBody, where used
  • FAQ questions and answers
  • Breadcrumb labels
  • Image captions and text alternatives
  • Video names, descriptions, and captions
  • Product variant names
  • Offer currency, price, availability, and eligibility
  • Organization or Service descriptions

Do not translate a field mechanically if the localized page uses a different approved brand name, product name, legal entity, or product variant. Maintain a translation glossary and a market-specific terminology list.

Which Schema.org properties and types matter?

The following properties are useful for semantic graphs, but they do not all produce a Google rich result. Google supports specific properties for specific search features, and eligibility changes by feature. Always compare your implementation with the relevant Google structured-data feature documentation.

Type or propertyWhat it describesSearch-feature status
WebPageThe page itself, including language and relationshipsGeneral semantic description; not a universal rich result by itself
ArticleAn article, news story, or blog postUsed by Google’s Article structured-data feature when requirements are met
ProductA product and, where applicable, its offers and identifiersUsed by Google’s Product rich-result and merchant-related features when eligible
OrganizationA company, brand, or other organizationCan support organization-related search understanding and features, but is not a guarantee of a knowledge panel or rich result
ServiceA service offered by a providerUseful semantic vocabulary; no general Service rich result is guaranteed
BreadcrumbListThe page’s breadcrumb pathUsed by Google’s breadcrumb feature when eligible
FAQPageA page containing qualifying frequently asked questions and answersEligibility is restricted; valid markup does not guarantee an FAQ rich result
inLanguageThe language of the creative work or page descriptionSemantic property; not a guarantee of a language-specific search feature
mainEntityThe primary entity described by a pageSemantic graph relationship
aboutThe subject matter of a CreativeWorkSemantic graph relationship
author and publisherAttribution and publishing relationshipsImportant for content identity; feature support depends on the enclosing type
offersAn offer for a product or serviceUsed in types and features that support offers; values must be accurate and visible

mainEntity, about, author, publisher, and isPartOf are useful relationships even when they do not trigger a visible search feature. Treat them as descriptive graph properties, not as guaranteed ranking or AI-answer controls.

JSON-LD examples for localized pages

Localized WebPage

Use WebPage to describe the page itself. The page’s inLanguage should match the primary visible language.

```json

{

"@context": "https://schema.org",

"@type": "WebPage",

"@id": "https://example.com/fr/produit/widget",

"url": "https://example.com/fr/produit/widget",

"name": "Widget | Exemple",

"description": "Découvrez le Widget pour les équipes internationales.",

"inLanguage": "fr-FR",

"isPartOf": {

"@id": "https://example.com"

},

"about": {

"@id": "https://example.com/products/widget"

}

}

```

Localized Article

Use Article when the page is genuinely an article. Translate the visible headline, description, and other editorial fields.

```json

{

"@context": "https://schema.org",

"@type": "Article",

"@id": "https://example.com/fr/guides/donnees-structurees",

"url": "https://example.com/fr/guides/donnees-structurees",

"headline": "Bonnes pratiques des données structurées multilingues",

"description": "Un guide pour relier les pages localisées et leurs entités.",

"inLanguage": "fr-FR",

"author": {

"@id": "https://example.com/authors/alex-martin"

},

"publisher": {

"@id": "https://example.com"

},

"about": {

"@type": "Thing",

"name": "Données structurées multilingues"

}

}

```

Localized Product

inLanguage identifies the language of the Product description or content representation. It does not automatically localize every Product field or establish a market. Market details belong in accurate offers, availability, shipping, and eligibility data.

```json

{

"@context": "https://schema.org",

"@type": "Product",

"@id": "https://example.com/products/widget",

"name": "Widget",

"description": "Un outil de collaboration pour les équipes internationales.",

"inLanguage": "fr-FR",

"sku": "W-100",

"brand": {

"@id": "https://example.com"

},

"offers": {

"@type": "Offer",

"url": "https://example.com/fr/produit/widget",

"priceCurrency": "EUR",

"price": "49.00",

"availability": "https://schema.org/InStock",

"priceValidUntil": "2026-12-31",

"eligibleRegion": "FR"

}

}

```

The offer must match the price and availability shown to users in France. Do not use a euro offer on a page that visibly presents a US-dollar price, and do not claim InStock when the product cannot be purchased or delivered in the target market. Use the appropriate Schema.org region representation for the implementation, and verify that shipping and eligibility statements agree with the visible page.

For products with variants, decide whether the page describes a parent Product, a specific variant, or both. A variant with a distinct SKU or market offer should not silently share the identity of a different variant.

Localized Organization

Use one stable Organization identifier when translated pages describe the same organization. Create separate nodes for separate legal entities when that distinction matters.

```json

{

"@context": "https://schema.org",

"@type": "Organization",

"@id": "https://example.com",

"name": "Example Corporation",

"url": "https://example.com/fr",

"description": "Entreprise technologique internationale.",

"logo": "https://example.com/images/logo.png",

"inLanguage": "fr-FR",

"contactPoint": {

"@type": "ContactPoint",

"contactType": "customer support",

"telephone": "+33-1-00-00-00-00",

"availableLanguage": ["fr-FR", "en"]

}

}

```

The organization’s global identity can remain stable while contact details, legal names, addresses, and support channels vary by market. Do not use one global node to imply that every subsidiary has the same legal identity.

Localized Service

availableLanguage can be used on a Service to describe languages in which that service is available. It can also be used on a ContactPoint when the property describes languages supported by a support channel. The value may be a language code such as en, fr-FR, or es-MX, or a suitable Schema.org language value.

```json

{

"@context": "https://schema.org",

"@type": "Service",

"@id": "https://example.com/services/support",

"name": "Support client international",

"description": "Assistance technique pour les clients professionnels.",

"inLanguage": "fr-FR",

"availableLanguage": ["fr-FR", "en-US", "de-DE"],

"provider": {

"@id": "https://example.com"

},

"areaServed": "FR"

}

```

Here, inLanguage describes the language of the page or service description, while availableLanguage describes languages in which the service itself is available. Do not list a language merely because the page is translated; the business must actually provide the service in that language.

Handle FAQs, reviews, breadcrumbs, images, and video

Translated FAQs

Translate the questions and answers that users can see on each localized page. Do not place English FAQ text in French JSON-LD or mark up FAQs that are hidden from users. FAQPage markup may be semantically appropriate, but Google’s FAQ rich-result eligibility is limited and valid markup does not guarantee a result.

If translations change the meaning, answer, eligibility, or legal qualification, have a subject-matter reviewer approve the localized answer rather than treating it as a literal translation.

Reviews and ratings

Reviews must be genuine, visible, and associated with the correct product, service, or organization. Keep review language and rating context accurate. Do not aggregate reviews from different products, variants, markets, or entities merely because their names are translated versions of one another.

Breadcrumb labels should match the visible localized navigation. The URLs should resolve to the corresponding localized pages when localized category pages exist. Do not use English breadcrumb labels in a Spanish page’s BreadcrumbList unless English is genuinely what users see.

Images

Use the image that represents the page or entity being described. Localize caption, name, and accessible alternative text when those fields are represented in the graph or visible interface. If packaging, screenshots, labels, or promotional text differ by market, use the correct regional asset rather than reusing an image that makes a false claim.

Video captions and transcripts

For localized video pages, align the structured data with the visible video title, description, thumbnail, transcript, and caption tracks. A translated page should not claim that a caption track exists unless users can access it. Where VideoObject is used, keep language, caption, and transcript relationships consistent with the actual media experience.

Localize offers without creating errors

Offers are one of the highest-risk areas in multilingual structured data because translation and regional commerce are not the same thing. For every localized offer, confirm:

  • priceCurrency matches the displayed currency.
  • price matches the visible current price and formatting after accounting for the site’s pricing rules.
  • priceValidUntil is present only when the date is accurate and maintained.
  • availability reflects whether the user can actually purchase or obtain the item.
  • eligibleRegion or equivalent regional data matches the market served.
  • Shipping costs, delivery areas, taxes, and return terms are not contradicted by the markup.
  • The offer URL resolves to the localized product or checkout experience.
  • The visible offer and JSON-LD are updated together when pricing changes.

A French translation of a US product page is not automatically a French offer. If the product is not sold in France, do not create a French Offer that implies French availability simply because the description is translated.

Keep XML sitemaps and canonicals consistent

List canonical, indexable localized URLs in XML sitemaps. Large sites can use multiple sitemap files and a sitemap index. Google’s sitemap documentation describes current file and URL limits and the supported sitemap-index structure.

XML sitemaps can also carry alternate-language information, but they do not replace internal links, canonical tags, or accessible pages. A robust implementation keeps these systems aligned:

  • The sitemap lists the URL that the page declares as canonical.
  • The canonical page is crawlable and not marked noindex.
  • Hreflang references use the same final HTTPS URLs.
  • Structured data uses the page’s final URL in url and relevant @id values.
  • Redirect chains and inconsistent trailing-slash or parameter versions are removed.

Validate before launch and monitor after indexing

A multilingual implementation needs both page-level validation and relationship-level validation.

1. Validate Schema.org syntax

Run representative URLs through the Schema Markup Validator. Test every major template and at least one URL for each language and regional combination. Check for invalid properties, incorrect value types, duplicate identifiers, and disconnected nodes.

2. Test Google feature eligibility

Use Google’s Rich Results Test for types that can support Google search features, such as Product, Article, Breadcrumb, or qualifying FAQ implementations. A passing test indicates that Google can parse the markup and may find it eligible; it does not guarantee that a feature will appear.

3. Inspect the rendered page

Verify the HTML and rendered DOM, not only the server template. Confirm that:

  • The localized JSON-LD is present on the intended URL.
  • JavaScript has not replaced the wrong language values.
  • Visible prices, availability, headlines, FAQ answers, and breadcrumbs match the graph.
  • The page is not serving a default language to crawlers or users unexpectedly.

4. Use URL Inspection

In Google Search Console’s URL Inspection, inspect representative localized pages after deployment. Review the indexed URL, canonical selected by Google, crawl status, and rendered content. Repeat the process when templates or localization logic changes.

5. Validate hreflang relationships

Use a crawler or a dedicated hreflang validation process to check every locale cluster for self-reference, reciprocity, valid codes, final URLs, indexability, and canonical consistency. Test both directions of every relationship rather than checking only the source-language page.

6. Monitor crawl and indexation

Track server logs, crawl statistics, sitemap processing, index coverage, canonical selection, and localized impressions. Investigate sudden differences between locales, especially when one language loses indexed URLs, serves another language, or receives a different canonical than intended.

7. Monitor AI visibility separately

AI-answer visibility and citations are outcomes, not validation states. If a company tracks AI mentions, record the query, language, country, date, answer, cited URLs, and product or entity referenced. Use this data for editorial and technical investigation, not as proof that a particular Schema.org property caused an answer.

Establish a multilingual governance model

Large multilingual sites need ownership rules, not only markup templates. Assign responsibility for the following areas:

Ownership

  • SEO or technical teams own URL architecture, canonical tags, hreflang, sitemaps, and validation tooling.
  • Developers own JSON-LD generation, entity-ID logic, rendering, and deployment safeguards.
  • Product or commerce teams own SKU, price, currency, availability, and regional eligibility data.
  • Legal and local-market teams own regulatory language, contact details, warranties, and market-specific disclosures.
  • Editorial and translation teams own localized headlines, descriptions, FAQs, reviews, captions, and terminology.

QA gates

Require automated checks before publication for valid language codes, absolute HTTPS URLs, reciprocal hreflang, canonical alignment, required rich-result fields, offer consistency, and duplicate or conflicting @id values. Add manual review for high-risk content such as medical, financial, legal, product-safety, and regulated claims.

Translation review

Maintain an approved glossary for brands, products, features, legal terms, and technical vocabulary. Review structured-data values together with the visible page so that a translation change cannot leave the JSON-LD describing an older version.

Identifier rules

Document which identifiers are global and which are market-specific. Keep stable IDs for the same real-world Organization, Person, or Product. Create new IDs for materially different products, variants, offers, subsidiaries, editions, or editorial works. Never generate IDs from translated labels alone.

Change management

Treat localization changes as schema changes when they affect language, market, price, availability, entity identity, or page relationships. Test a sample of every locale after deployment, monitor crawl and indexation signals, and keep a rollback path for defective translations or incorrect commercial data.

Final checklist

Use this compact checklist for every multilingual template:

  • Unique, stable, crawlable URL for each language or regional version.
  • Localized visible content, including headings, descriptions, offers, FAQs, breadcrumbs, and media text.
  • Self-referencing canonical URL that is consistent with sitemap and hreflang URLs.
  • Reciprocal hreflang annotations using valid language and region codes.
  • Optional x-default pointing to a genuinely suitable selector or fallback page.
  • Correct inLanguage value on the page or creative work.
  • Stable entity IDs for the same real-world entities only.
  • Separate IDs for distinct products, variants, offers, editions, or legal entities.
  • JSON-LD that describes the page where it appears and matches visible content.
  • Accurate currency, price, validity, availability, regional eligibility, and shipping information.
  • Validation with Schema Markup Validator, Rich Results Test, rendered-page checks, URL Inspection, and hreflang tests.
  • Ongoing monitoring of crawlability, canonicals, indexation, sitemap processing, and localization errors.

FAQ

Do I need special Schema.org markup for Google AI Overviews or AI Mode?

No. Google’s AI features documentation does not require special Schema.org markup for these features. Standard requirements still apply: the page should be crawlable, indexable, useful, eligible for a snippet, and accurately represented by its structured data. No markup guarantees an AI-generated answer or citation.

Should every language version have its own URL?

Generally, yes. Use a separate, stable URL for each language or regional version so users and crawlers can access a deterministic page. Do not rely solely on cookies, browser settings, or automatic redirects to select the language.

Should translated pages use the same structured data?

They should preserve the same entity relationships when they describe the same real-world entities, but they should not blindly copy every value. Translate visible names, descriptions, headlines, FAQs, breadcrumbs, and media metadata. Localize offers and market details only when they are genuinely valid for that region.

Should translated pages use the same @id?

Use the same @id only when the pages refer to the same real-world entity, such as one global Organization or one identical Product. Use separate identifiers for different variants, regional editions, offers, subsidiaries, services, or editorial works.

Does inLanguage on a Product localize the whole product?

No. inLanguage identifies the language of the Product description or content representation. It does not automatically translate every Product field, determine the sales market, set the currency, or establish regional availability. Those details must be represented accurately in the relevant fields and offers.

How should I mark up a product sold in different countries?

Represent the product identity consistently when it is the same product, then create accurate regional offers where appropriate. Match priceCurrency, price, availability, validity dates, eligibility, shipping information, and visible page content. Use separate Product or Offer identities when regional versions are materially different.

Is hreflang part of JSON-LD?

No. Hreflang is a page-level language and regional targeting signal implemented in HTML, HTTP headers, or XML sitemaps. Structured data describes the page and its entities; it does not replace reciprocal hreflang annotations.

Is x-default required?

No. x-default is optional. Use it when you have a genuinely suitable fallback or language-selector page for users who do not match a listed language or region. Do not point it to the homepage automatically unless the homepage is the appropriate fallback.

Can I copy English FAQ, review, or breadcrumb markup onto a translated page?

Only if users actually see the same English content. Otherwise, localize the questions, answers, review context, and breadcrumb labels so the markup matches the page. Do not mark up hidden translated or untranslated content.

Does valid structured data guarantee rich results or AI visibility?

No. Valid markup only means that a validator can parse it or that a page may satisfy some feature requirements. Search engines can choose not to display a rich result, and AI systems may use or ignore structured data. Crawlability, content quality, accuracy, eligibility, and broader search signals remain important.

References

  • https://developers.google.com/search/docs/advanced/crawling/managing-multi-regional-sites
  • https://`
  • https://developers.google.com/search/blog/2023/05/x-default
  • https://schema.org/inLanguage

FAQ

Do I need special Schema.org markup for Google AI Overviews or AI Mode?

No. Google does not require special Schema.org markup for these features. Pages should be crawlable, indexable, useful, eligible for a snippet, and accurately represented by structured data. No markup guarantees an AI-generated answer or citation.

Should every language version have its own URL?

Generally, yes. Use a separate, stable URL for each language or regional version so users and crawlers can access a deterministic page. Do not rely solely on cookies, browser settings, or automatic redirects.

Should translated pages use the same structured data?

Preserve the same entity relationships when pages describe the same real-world entities, but localize visible names, descriptions, headlines, FAQs, breadcrumbs, media metadata, and valid market details.

Should translated pages use the same @id?

Use the same @id only when pages refer to the same real-world entity. Create separate identifiers for different variants, regional editions, offers, subsidiaries, services, or editorial works.

How should I mark up a product sold in different countries?

Use a consistent Product identity when the product is the same, then create accurate regional offers. Match currency, price, availability, validity dates, eligibility, shipping information, and visible content. Use separate identities when regional versions are materially different.

Is hreflang part of JSON-LD?

No. Hreflang is a page-level language and regional targeting signal implemented in HTML, HTTP headers, or XML sitemaps. Structured data describes the page and its entities.

Is x-default required?

No. Use x-default only when a genuinely suitable fallback or language-selector page exists. It should not automatically point to the homepage.

Does valid structured data guarantee rich results or AI visibility?

No. Valid markup may satisfy parsing or feature requirements, but search engines can choose not to display a rich result and AI systems may use or ignore structured data.