Merchant Center tells you what is wrong with a product, but rarely why, and almost never what to change so it does not happen again next week. Here are the disapprovals and warnings that account for most of the volume in real accounts, what actually causes each one, and the fix that keeps.
Mismatched value (page crawl): price
What it means: Google fetched your landing page, read a price there, and it is not the price in your feed.
What causes it:
- VAT. Your shop stores net prices; the feed sends them unchanged; the page shows gross. Any market where you advertise to consumers expects the price shoppers pay.
- Currency by location. The page shows prices in the visitor's currency, and Google's crawler sees a different one from the feed.
- Rounding.
89.876in the database becomes89.88on the page and89.87in the feed. - Stale rebuilds. The shop changed the price hours ago; the feed was built before that.
- Discounts applied in the basket. The page shows the full price; the feed sends the discounted one.
The fix: send the price shoppers pay, from the same source the page uses, and rebuild the feed after price
changes rather than on a fixed daily schedule. If the price needs VAT added, add it with a rule (price × 1.20,
rounded) so every product gets the same treatment. And send sale_price separately rather than replacing price
with the discounted figure — the channel wants both.
Mismatched value (page crawl): availability
What it means: the feed says in stock, the page says otherwise — or the other way round.
What causes it: stock changed since the last rebuild; the page shows "only available in store"; the product page loads availability with JavaScript that the crawler does not run; or the feed includes products the shop considers unavailable but still displays.
The fix: rebuild more often, and decide clearly what "available" means. Many shops are better off excluding
out-of-stock products from the feed entirely than sending them as out_of_stock — it keeps budget on products
people can buy. Both are valid; what is not valid is disagreeing with your own page.
Google treats repeated mismatches as critical, and they can grow into an account-level problem: our misrepresentation and price mismatch checklist covers the causes and the store-side fixes, and FeedManager's Page Checks compares a daily sample of product pages with your feed.
Missing or invalid GTIN
What it means: you sent no identifier, or one that fails the check-digit test.
What causes it: the GTIN field in the shop is empty, contains the supplier's internal code, has lost a leading zero in a spreadsheet, or carries several codes in one field.
The fix:
- Send
gtinfor every product the manufacturer assigned one to. Digits only, no spaces or hyphens. - Watch the leading zero: an 8- or 12-digit code that passed through Excel is often wrong. Keep the column as text in every export.
- For products that genuinely have no identifier — your own brand, handmade, custom-made — send
identifier_existswith the valuenoand make surebrandandmpnare right. - Never invent numbers. A wrong GTIN matches your product to somebody else's listing, which is worse than none.
Missing required attribute
What it means: id, title, description, link, image_link, availability, price or brand is
missing for at least one item.
What causes it: an export that leaves fields empty for some products — usually the ones added last, or the ones imported from a supplier file with different columns.
The fix: validate before publishing. Your feed tool should tell you how many items were left out and why, rather than leaving you to discover it in Merchant Center. Where a value can be derived, derive it: a missing brand that is always your own shop name is a one-line rule.
Image problems
Three different messages, three different causes:
Image too small. Google is raising the minimum to 500 × 500 pixels, with enforcement starting 31 January 2027.
Many shops send a thumbnail URL without realising it — check what the image_link in your feed actually resolves
to, not what the product page displays.
Image not accessible / crawl error. The CDN blocks unknown user agents, the URL needs a session, the file
returns 403 to anyone without a referrer, or the shop rate-limits crawlers. Try fetching the image URL with curl
and no headers; if that fails, Google's fetch fails too.
Promotional overlay. Badges like "-30%" or "Free shipping" burned into the image are not allowed. If your shop generates those overlays automatically, send the clean original in the feed.
Landing page not working or blocked
What it means: the URL in link returned an error, redirected somewhere unexpected, or is blocked by
robots.txt.
What causes it: country redirects that send the crawler to a different domain; tracking parameters that break
on a second visit; staging URLs left in an export; a robots.txt that disallows the crawler for product pages;
geo-blocking that refuses requests from outside your country.
The fix: make the link the canonical product URL without session or tracking parameters, and check that it returns 200 to a request with no cookies. If you add campaign parameters, add them in a way the page tolerates.
Excessive capitalisation, promotional text in the title
What it means: the title contains SHOUTING, or text like "Free shipping!!", "Best price", "★★★★★".
The fix: a rule that rewrites titles from structured fields rather than passing through what the shop's
marketing team typed. {brand} {product} – {colour}, {size} never breaks this rule by accident.
Missing shipping or tax information
What it means: for some countries Google needs to know shipping costs, and in the United States it needs tax settings.
The fix: this is usually a Merchant Center account setting rather than a feed problem: configure shipping
services at account level, and only send shipping in the feed when a product genuinely differs from the account
rules. Sending shipping per product as a matter of course makes feeds large and fragile.
Item disapproved for policy
Alcohol, medical claims, recalled products, counterfeits, adult content and a long list of restricted categories are handled by Google's policies rather than by feed rules. The feed side of the fix is making sure the products you may not advertise never reach the file — a filter on category or a label is enough, and far better than an account-level warning.
A routine that stops the same errors coming back
- Look at the diagnostics by cause, not by product. Ten thousand disapprovals are usually three causes.
- Fix the cause where the data is shaped — in the rules that build the feed, not in Merchant Center, and not in your shop if the shop is right for shoppers.
- Validate while building. Required fields, allowed values, lengths — all of it can be checked before publishing.
- Rebuild after changes, not only on a timer, so prices and stock in the feed match the shop.
- Watch warnings as well as errors. Missing GTIN, missing product category and missing brand quietly cost reach.
- Keep the last good file. If a build fails, keep serving the previous valid feed rather than a broken or empty one.
Merchant Center is strict, but it is consistent. Once each cause is fixed in the data rather than patched on a product, the diagnostics page turns into something you glance at instead of something you dread.
Google's own reference: the product data specification lists every attribute, its format and its limits.
Frequently asked questions
How long does it take for a fixed product to be approved again?
Merchant Center re-checks a product after the next feed fetch, and page-crawl checks can take longer — usually a day, sometimes up to three. Re-uploading the same unchanged file does not speed it up; changing the data does.
Why is a product disapproved when the data looks right?
Most often because Google is comparing the feed with what it sees on the landing page, and the page shows something else — a different price after VAT, an out-of-stock banner, a currency picked from the visitor's country, or a cookie banner that hides the price from the crawler.
Do warnings matter if the product is still approved?
Yes. Warnings mark missing recommended attributes such as GTIN, brand, or product category. The product is shown, but it matches fewer searches and competes less well than the same product from a seller who sends them.
Should I fix products in Merchant Center or in the feed?
In the feed, always. Supplemental feeds and manual edits solve one product for one day; a rule in your feed set-up solves every product like it, every rebuild.
Publish this feed with FeedManager
Connect your store, shape the data with rules and let each channel fetch a valid file — the Free plan covers 500 products with no credit card.
Private beta — accounts by invitation.