Merchant Center feeds, Shopify Markets and geo redirects
By Beacon Wave Studio · · 8 min read
Google Shopping has one rule that outranks every other: the price in your product feed has to be the price on the page a shopper lands on. Google checks it by crawling your landing pages and comparing. When the numbers disagree, offers are disapproved, and if it keeps happening the account gets a warning with a deadline. Stores selling in several countries through Shopify Markets have more ways to fall foul of this than single-market stores, and a geolocation redirect is one of the things merchants worry will tip them over.
This post explains what Google actually verifies, how Shopify's Google & YouTube channel builds a feed per market, where the mismatches come from in practice, and why GeoBeacon is designed so that none of this involves it. It also touches on why the feed matters more this autumn than it did last year.
What Google checks, in its own words
Merchant Center's help page on inaccurate price status lists the causes it sees for mismatches. Two are relevant here. The first is that the data is simply out of sync, a sale started on the site before the feed caught up. The second is quoted close to verbatim because it is the one that concerns geolocation: do not change the price of your product on your landing page based on a user's location, and do not change it based on cookies, browsers, devices or any other factor. The newer page on regional availability and pricing repeats it for Shopify stores specifically: do not use IP geolocation to automatically change prices on your landing page, because Google's crawlers may not find the correct regional price.
The logic is simple. Google's crawler visits from a Google data centre, usually in the United States. If your page shows a different price to a visitor from Germany than it shows to that crawler, Google cannot verify the German offer, and from its point of view the landing page is unreliable. Note the wording: it is the price on the landing page that must not move. A page that offers to take the visitor somewhere else is a different thing from a page that quietly changes its own numbers.
How Shopify builds one feed per market
Shopify's Google & YouTube channel does not send one global feed. Merchant Center's guide to syncing products from Shopify describes the setup: in the channel's settings, under Product sync, you open Countries and languages and switch on each country you want to advertise in. Each country is synced from the Shopify market it belongs to, carrying that market's currency and prices, and the landing-page URL for that market, whether that is a subfolder, a subdomain or a separate domain. The market has to have shipping rates for the country, or the sync skips it.
A detail worth knowing if your markets overlap: when the same country appears in more than one Shopify market, the channel pulls it out into its own standalone data source, labelled with the two-letter country code rather than the market name, to avoid two sets of prices for one country. That split raises your offer count and any attribute rules you built on the market-level source have to be copied across. There is also an option to sync future countries automatically as you add them to Markets, which is the sensible default if you expand often.
The upshot is that a Canadian shopper clicking a Canadian Shopping ad already lands on your Canadian market URL in Canadian dollars. The feed did the geolocation before anyone reached your store.
Where mismatches really come from
With the feed built per market, the mismatches we see fall into four groups, and only one of them has anything to do with a redirect.
- Sale timing. A sale starts at midnight on the store, the feed re-syncs later, and for a few hours the ad shows full price while the page shows the sale. Google's advice is to update site and feed together; on Shopify that mostly means scheduling the sale and letting the channel re-sync, and checking the feed after any bulk price change.
- Market pricing drift. Prices in a market are set by rounding rules and adjustments on top of your base price. If someone edits the base price and the market adjustment produces a new figure the feed has not picked up, the Canadian ad and the Canadian page disagree for a while.
- Structured data. Themes emit product JSON-LD with a price. If a theme or app hardcodes the base currency in that markup while the visible price is in the market's currency, Google sees two prices on one page. Run the Rich Results Test on a market URL and check that the currency in the markup matches the one on the screen.
- Server-side geo pricing. Anything that changes the price in the HTML depending on the visitor's IP, before the page is delivered. This is the case Google's policy describes, and it is the one a badly built redirect app could create if it rewrote prices rather than moving the visitor.
Why GeoBeacon does not get in the way
GeoBeacon moves shoppers between markets; it never touches a price. Four design decisions follow from the policy above.
- It runs in the browser, after the page has rendered. The HTML Shopify serves is identical whether GeoBeacon is installed or not. A crawler fetching your Canadian product page gets the Canadian price in the Canadian page, which is what the Canadian feed promised.
- It skips crawlers. Googlebot, Bingbot and the usual link-preview fetchers are recognised by their user agent and left alone, with the option switched on by default. Google verifies the page it was given; GeoBeacon does not offer it a popup or move it anywhere.
- It does nothing when the visitor is already in the right market. A Canadian shopper arriving from a Canadian ad at /en-ca/products/jacket is where the rules want them, so no popup, no redirect. The redirect only fires when the detected country and the market being viewed disagree.
- When it does move someone, it keeps the path and query string. /products/jacket?gclid=abc becomes /en-ca/products/jacket?gclid=abc. The shopper lands on the same product in their own market, and the click ID survives, which the Google Ads post covers in detail.
The one scenario left is a shopper who is in a different country from the one the ad was targeted at: a Canadian on holiday in the US clicking a US ad, or a US feed that was accidentally enabled for Canada. Here the redirect would take them from the US page they clicked to the Canadian page at a different price. That is a genuine landing-page change for a human, even though Google's crawler is unaffected. Our recommendation is to run GeoBeacon as a popup rather than a silent redirect on stores that advertise internationally. The shopper sees the price the ad promised, is offered their local market, and chooses. The popup copy that converts without misleading is in the popup copy post.
Setting it up so the two systems agree
- In Shopify Markets, make sure every country you advertise in belongs to exactly one market with shipping rates. Overlaps create the standalone sources described above and are the usual cause of a country's feed pointing at a URL you did not expect.
- In the Google & YouTube channel, enable those countries under Countries and languages, and check in Merchant Center that each data source's landing URLs use the market's domain or subfolder.
- In GeoBeacon, build rules whose destinations are those same markets. A rule that sends Canada to the Canada market is in agreement with a feed that sends Canadian clicks to the Canada market; neither will ever act on the other's traffic.
- Keep crawler skipping on, keep the current path and query string on, and choose the popup for stores with international ad spend.
- Test from your desk: open each country's feed URL with
?geobeacon=CA,?geobeacon=DEand so on appended. A correct setup shows nothing on the matching country and a popup on the others. The method is described in the testing post.
Why the feed matters more this season
Shopify's agentic storefronts, on by default for eligible stores and managed under Sales channels > Agentic, make your products available inside Google's AI Mode and Gemini through the Google & YouTube channel or Merchant Center, with a Shopify-powered checkout that can complete the purchase without the shopper ever opening your site. Google's in-chat checkout is limited to eligible US retailers for now. The same Merchant Center data that drives Shopping ads is now feeding a storefront you do not render at all, so the price in the feed and the price on the page have to be the same number in one more place. Keeping markets, feed and redirect in agreement is the same work it was in August; the cost of getting it wrong has gone up.
None of this requires a redirect app to be clever. It requires it to be absent from the parts of the page Google reads. GeoBeacon stays out of the HTML, out of the crawler's way and out of the price, and it is free to install while you check your own feed against the steps above.
Frequently asked questions
Does a geolocation redirect cause Google Merchant Center price mismatches?
It can, if the redirect runs on the server or changes the price Google's crawler sees. Google's policy is explicit that landing-page prices must not change based on IP detection. A redirect that runs in the browser after the page has loaded, skips crawlers and leaves the page untouched does not alter what Google verifies, which is how GeoBeacon is built.
How does Shopify send products for several countries to Merchant Center?
Through the Google & YouTube channel's Countries and languages setting. Each enabled country is synced from the Shopify market it belongs to, with that market's currency and that market's URL, provided the market has shipping rates. A country placed in more than one market is split into its own standalone data source named by country code.
Should ad clicks from another country be redirected to their market?
Ideally they should not need to be. If the feed for Canada points at your Canadian market URL, a Canadian click already lands in the right place and GeoBeacon does nothing. Redirects are for the traffic that arrives at the wrong market anyway: organic search, direct visits and shared links. Where a correction is needed on ad traffic, prefer a popup over a silent switch.
How do I test that my redirect and my feed agree?
Open the destination URL from each country's feed with ?geobeacon=XX appended, where XX is that country's code. If the page loads with no popup and no redirect, the feed and the redirect agree. Then open the same URL with a different country's code to confirm the redirect only fires for visitors who are genuinely in the wrong market.