International Catalog Guide

Shopify Markets and AI Shopping Agent Catalog Visibility

How Shopify Markets creates regional catalog variants — and the specific structured data, hreflang, and JSON-LD currency configurations that determine whether international AI shopping agents find and recommend your products.

TL;DR Shopify Markets creates regional storefronts with per-market pricing, translated content, and separate URLs. AI agents treat each regional URL as a distinct catalog entry. Without hreflang annotations, per-market JSON-LD with correct currency, and regional sitemaps, your international catalog is effectively invisible to AI agents outside your primary market — even if your products ship globally and your Markets configuration is correct.

What Shopify Markets Creates for Each Region

When you activate a market in Shopify (for example, United Kingdom), Markets can create a regional storefront in one of three URL structures:

URL structure Example AI agent indexing behavior
Subfolder (recommended) yourstore.com/en-gb/products/widget Crawlers index as distinct URL; hreflang links it to primary. Best discoverability.
Subdomain uk.yourstore.com/products/widget Treated as separate domain by some crawlers; domain authority doesn't fully transfer.
Country domain yourstore.co.uk/products/widget Fully separate crawl budget; strong geo-signal but requires separate sitemap and structured data per domain.
Currency redirect (no URL change) yourstore.com/products/widget (currency set by cookie) Invisible — AI crawlers don't execute JavaScript and don't accept currency cookies; see only primary market prices.

The last row — currency redirect with a single URL — is the default Shopify Markets configuration for many merchants. It looks correct to a human visitor but exposes only your primary-market pricing to every AI crawler in the world.

The AI Crawler Locale Problem

AI crawlers like PerplexityBot, OAI-SearchBot (ChatGPT), and Googlebot-AI access your storefront as headless HTTP clients. They do not:

This means the only way to expose regional catalog data to AI agents is through distinct, crawlable URLs with valid hreflang annotations — not through JavaScript-driven localization.

hreflang for AI Agents: Implementation and Gaps

hreflang was designed for Google to understand language/region variants of the same page. AI agents have adopted this same signal to identify catalog variants. When your product page at /products/blue-widget has a UK variant at /en-gb/products/blue-widget, hreflang links them:

<!-- In the <head> of /products/blue-widget -->
<link rel="alternate" hreflang="en" href="https://yourstore.com/products/blue-widget">
<link rel="alternate" hreflang="en-GB" href="https://yourstore.com/en-gb/products/blue-widget">
<link rel="alternate" hreflang="de" href="https://yourstore.com/de/products/blauer-widget">
<link rel="alternate" hreflang="x-default" href="https://yourstore.com/products/blue-widget">

Shopify generates hreflang tags automatically when you use subfolder routing with Markets — but only for the languages you have explicitly configured. Common gaps:

Gap Symptom Fix
Missing x-default Agent has no clear primary URL to prefer Always include x-default pointing to your primary market URL
Hreflang without actual translated content Machine-translated pages that diverge from primary in JSON-LD product names Ensure product name in JSON-LD is translated consistently with visible content
Regional pages not in sitemap Crawler discovers hreflang but crawl budget exhausted before visiting all variants Generate per-market sitemaps and submit via Google Search Console (and IndexNow for AI agents)
Return link missing Regional page doesn't link back to primary with hreflang; one-directional annotation Both primary and regional pages must include hreflang for all variants

JSON-LD Currency and Locale for Regional Pages

The most impactful JSON-LD change for Shopify Markets is ensuring the Offer.price and Offer.priceCurrency fields reflect the regional currency, not always USD.

Correct Liquid for per-market JSON-LD pricing

{
  "@type": "Offer",
  "price": {{ product.selected_or_first_available_variant.price | money_without_currency | json }},
  "priceCurrency": {{ cart.currency.iso_code | json }},
  "priceValidUntil": "{{ 'now' | date: '%s' | plus: 2592000 | date: '%Y-%m-%d' }}",
  "availability": "https://schema.org/InStock",
  "shippingDetails": {
    "@type": "OfferShippingDetails",
    "shippingDestination": {
      "@type": "DefinedRegion",
      "addressCountry": {{ localization.country.iso_code | json }}
    }
  }
}

Key fields for regional accuracy:

Language in JSON-LD for translated stores

If you use Shopify Translate & Adapt to translate your product descriptions, the translated content should flow automatically into JSON-LD via Liquid — {{ product.description }} returns the translated content when the active locale is non-default. Verify this is working by checking your regional page's JSON-LD source vs. the primary page's JSON-LD.

Shopify Markets AI Visibility Checklist

# Check Priority
1 Regional storefronts use subfolder routing (/en-gb/, /de/) not cookie-only currency switching Critical
2 All regional product pages include bidirectional hreflang annotations with x-default Critical
3 JSON-LD priceCurrency uses cart.currency.iso_code not hardcoded "USD" Critical
4 Regional pages are included in a per-market sitemap submitted to search engines High
5 Product names in regional JSON-LD match translated h1 exactly (no English name leaking through) High
6 robots.txt allows AI crawlers to access regional subdirectories (/en-gb/, etc.) High
7 shippingDestination in JSON-LD OfferShippingDetails uses localization.country.iso_code Medium
8 Market-specific product availability (products restricted to certain markets) is reflected in Offer availability on regional pages Medium
9 IndexNow ping sent for regional URLs when new products are added to a market Medium

Related Resources

Frequently Asked Questions

Does Shopify Markets create separate URLs for each region that AI agents can index?

Yes, when using subfolders or subdomains in Shopify Markets (e.g., yourstore.com/en-gb/ or uk.yourstore.com), each regional storefront has its own crawlable URL set. AI crawlers like PerplexityBot and OAI-SearchBot follow hreflang annotations to discover regional variants. Without hreflang tags on your regional pages, crawlers may index only your primary market and miss regional pricing and language variants entirely.

How should I handle multi-currency pricing in JSON-LD for Shopify Markets?

Output JSON-LD in the currency of the page being rendered. For Shopify Markets with subfolder routing, each regional page is served in that market's currency — use Liquid's {{ variant.price | money_without_currency }} and {{ cart.currency.iso_code }} to pull the correct values. AI agents that index your regional URLs will see region-appropriate pricing in structured data. Do not hardcode USD prices across all regional pages, as this creates a structured data mismatch that AI agents flag as inconsistent.

Can AI shopping agents access Shopify Markets-restricted products?

AI crawlers behave like standard web crawlers and access the public storefront — they see what an unauthenticated visitor to your regional URL would see. Products restricted to specific markets via Shopify Markets availability settings will not appear in the catalog for markets where they are unavailable. The /products.json endpoint returns the default market's catalog unless the crawler sets appropriate locale headers, which most AI crawlers do not do.

Do I need separate sitemaps for each Shopify Market?

Yes, for full international AI agent coverage. A sitemap for each regional subdirectory (sitemap-en-gb.xml, sitemap-de.xml) that lists all regional product, collection, and page URLs enables AI crawlers to efficiently discover your localized content. Shopify's built-in sitemap.xml only covers your primary domain. Third-party sitemap apps or custom Liquid sitemap templates are needed to generate per-market sitemaps.

Check Your Store's International AI Visibility

CatalogScan scans your primary and regional storefronts for hreflang gaps, JSON-LD currency mismatches, missing per-market structured data, and regional sitemap coverage — then reports the fixes with the highest impact on international AI agent discovery.

Scan your store free