In short. Use one distinct product URL per currency and describe that offer with the matching price and priceCurrency values.
Definition: A currency-specific product page is a distinct URL for a product offer in one currency. Google's product snippet documentation says that a product sold in multiple currencies needs one distinct URL per currency.
Key facts
- Google's product snippet guide says that a product offered in multiple currencies needs a distinct URL for each currency, with separate URLs for Canadian and US dollars as its example.
- Product rich results support pages focused on one product or multiple variants of that product. The same guide includes variants where each product variant has a distinct URL.
- An
Offermust providepriceorpriceSpecification.pricefor the offer price, according to Google's product snippet property table. - Google documents
priceCurrencyas a three-letter ISO 4217 currency value. It is recommended for product snippets and required for merchant listing experiences. - Google recommends putting
Productstructured data in the initial HTML when a merchant is optimizing for all types of shopping results.
What does Google's per-currency rule require?
As of 8 September 2026, Google's product snippet technical guidelines say: “When offering products for sale in multiple currencies, have a distinct URL per currency.” The example treats Canadian dollars and US dollars as two URLs. The rule concerns the page URL, so changing only a displayed currency label while keeping one URL does not match the documented arrangement.
Each currency page also needs offer data that describes its price. Google's property table accepts price directly on Offer, or priceSpecification.price inside the offer. It describes priceCurrency as the currency used for the product price and says to use a three-letter ISO 4217 format.
Google's example uses this Offer shape:
{
"@type": "Offer",
"url": "https://example.com/anvil",
"priceCurrency": "USD",
"price": 119.99
}
The page URL in that example is illustrative. For a multi-currency catalogue, apply the same property pattern to each distinct currency URL and keep the price and currency values for that offer together.
Does the URL need a particular format?
The product snippet guidance specifies that the URLs must be distinct per currency. Google's URL structure documentation warns that overly complex URLs, especially those with multiple parameters, can create unnecessarily high numbers of URLs pointing to identical or similar content. It describes that situation as a crawling problem because Googlebot may consume more bandwidth or Google Search may be unable to index all the content.
That guidance leaves room for a site's URL design. A currency path or a currency parameter can be evaluated against the same practical requirements: each URL must identify one currency page, remain accessible to Google, and avoid creating unrelated URL combinations. The product snippet page does not prescribe a particular path, subdomain, or query-parameter spelling, so the entry uses Google's requirement for distinctness without choosing a URL pattern for every shop.
How should you validate the separate pages?
Google's product snippet implementation guidance says to validate the code with the Rich Results Test and fix critical errors. It also recommends deploying pages with structured data and using URL Inspection to test how Google sees them. Test each currency URL as its own page, including the rendered offer price and priceCurrency value.
The same documentation recommends putting Product markup in the initial HTML for merchants targeting all types of shopping results. It warns that JavaScript-generated markup can make Shopping crawls less frequent and less reliable for fast-changing product availability and price. Schema.org's Offer definition describes priceCurrency as the currency of the price and gives standard formats such as ISO 4217, for example USD.
Related terms
- Product structured data
- Offer structured data
- Canonical URL
- URL parameters
- How should product variants be represented in structured data?
FAQ
Should you use one page with a currency selector?
Google's product snippet guidance calls for a distinct URL per currency when the product is offered in multiple currencies. A selector can still be part of the site experience, but the documented markup arrangement uses separate URLs.
Which currency code belongs in priceCurrency?
Use the three-letter ISO 4217 format documented by Google for product snippets. Schema.org also describes priceCurrency as the currency of the price and lists ISO 4217 as a standard format.
Should the price be visible before JavaScript runs?
Google recommends putting Product structured data in the initial HTML for merchants targeting all types of shopping results. Its product snippet guide warns that JavaScript-generated markup can make Shopping crawls less frequent and less reliable for fast-changing prices.
Sources
- Google Search Central, "Product snippet (Product, Review, Offer) structured data", updated 8 September 2026
- Google Search Central, "URL structure", updated 10 December 2025
- Schema.org, "Offer", undated
Check how a page reads to answer engines. Open the GEO score analyzer