Product disapproved in Merchant Center: reasons and fixes
The most common disapproval reasons in Merchant Center, the order to fix them in and how to trigger a new review. With a reason and fix table.

Contents
When a product is disapproved in Merchant Center it appears nowhere: not in Shopping ads, not in the free listings. That makes disapprovals the most common reason those channels bring in less than planned. The good news is that nearly all of them trace back to about a dozen recurring causes. This article walks through them, sets the order to fix them in, and explains what makes Google review the item again.
First: account level or product level?
Before you touch a single item, work out which level the problem sits on. That often saves hours.
Account level. If the account is suspended or the website is not verified, every product is affected and feed fixes change nothing. Typical triggers: an unverified or unclaimed website, missing required pages in the store (contact details, shipping and return policy, secure payment), or a policy violation that affects the whole account.
Feed level. If feed processing hits errors, whole columns or product groups go missing. Check the processing log of the last few fetches before you analyze individual items.
Product level. This is where the classic reasons live: price difference, missing identifier, image problem, shipping. You find these in the product issues view, grouped by problem. Sort by number of affected items and work top down.
Setting the account up properly is the prerequisite for all of this; the groundwork is in the Google Merchant Center setup walkthrough.
Why a product gets disapproved in Merchant Center: the common reasons
1. Price does not match the landing page
The classic. Google opens your product page, reads a price and compares it to the feed. If they differ, the item is disapproved. Usual causes:
- Pre-tax instead of consumer price. The feed has to carry the amount a customer pays in the target market.
- Sale price and regular price mixed up. The regular price belongs in
price, the promotional one insale_price. Putting the sale price inpricewhile the page shows both creates a conflict. - Price loaded by JavaScript. What the crawler does not see on the first pass, it cannot match.
- Price varies by country, currency or customer group. If the store switches by IP or login, Google sees a different number than your customers.
- The feed is stale. With frequent price changes, a daily fetch is often not enough.
The most stable fix is clean markup on the product page, because then Google has one unambiguous price instead of a number somewhere in the text. See product schema markup for what that looks like. On top of that, automatic item updates pull price, sale_price, availability and condition from the marked-up page instead of disapproving the item immediately. They are on by default and can be switched off in the account. Treat them as a safety line, not a substitute for a correct feed. The full diagnosis is in the article on fixing a Merchant Center price mismatch.
2. Availability does not match
Same principle for availability. If the feed says in_stock but the page says unavailable or has no buy button, the item is disapproved. The risky setups are stores that keep sold-out items online and feeds that refresh once a day while stock turns over quickly. Use backorder or preorder only when the page actually states a delivery date.
3. Missing or invalid identifier
Google lists gtin as recommended for every product the manufacturer assigned one to — the UPC or EAN from the product or its packaging. Products with a missing or incorrect GTIN may have limited visibility, and they drop out of price benchmarking; for well-known brands the system reacts more sharply. Common errors: invented numbers, the manufacturer's GTIN for a different article, a wrong check digit, or one variant carrying the number of another size.
Keep the two severities apart here: a GTIN that is simply missing usually produces a warning about limited performance, while an invalid or wrong number gets the item disapproved.
If a product objectively has no manufacturer identifier, such as handmade goods, own-label items, custom work or antiques, you set identifier_exists to no and supply brand and a permanently stable id. For branded goods this is not a shortcut: Google recognises those products from title and brand and warns anyway. For spare parts and accessories without a GTIN, the combination of brand and mpn is the right route. Details and the individual message types are in the article on missing or invalid GTIN.
4. Image problems
Images are the second-biggest error source and split into three groups:
- Image not fetchable. The server blocks Google's crawler, the URL returns an error, the host rate-limits, or the image sits behind a login. Test the feed URL in a private window.
- Image content not allowed. Promotional overlays like "Sale", discount banners, watermarks, logos over the product, borders, text in the image, placeholder or thumbnail images. The main image shows the product and nothing else.
- Quality too low. Resolution too small, or a product that fills only a fraction of the frame.
If you need promotional graphics, they belong in additional_image_link, and the image policies apply there too. A practical split: lifestyle and detail shots as additional images, the cut-out product as the main image.
5. Shipping information missing
Every target country needs a shipping cost, either through the account shipping settings or through shipping in the feed. If both are missing for a country, the item does not serve there. Typical stumbling block: oversized or freight items where the standard rule does not fit. Set the cost per product in the feed for those.
6. Website not verified or not claimed
Nothing runs without a verified and claimed website. Verification uses the usual site ownership methods: an HTML tag, a file upload, an existing Google tag, or a Search Console property under the same account. Important: the domain in the link attribute has to match the verified domain, including www and https.
7. Restricted products and policy violations
Some categories are not allowed or only conditionally allowed, among them alcohol, tobacco and e-cigarettes, weapons and weapon parts, prescription drugs, gambling, certain financial products and counterfeit goods. On top of that come content violations: misleading health claims, unclear pricing, prohibited comparisons. A feed correction is not enough for these. You change the product data and the landing page, then request a review. The current rules are in the Shopping ads policies.
8. Landing page unreachable or blocked
Redirect chains, error pages, a consent layer that blocks the content entirely, a URL disallowed in robots.txt, or a country redirect that sends Google's crawler somewhere else: in all of these cases Google sees no valid product page. Watch out for session IDs in URLs that expire after a short time, too.
Table: reason and fix
| Message / reason | Likely cause | Fix |
|---|---|---|
| Price mismatch | pre-tax feed price, sale price, JS price, stale feed | consumer price, use sale_price correctly, mark up the page, fetch more often |
| Availability mismatch | stock outdated, sold-out page still live | shorten the stock sync, submit out_of_stock |
| GTIN missing or invalid | no barcode in the store, wrong variant mapping | real GTIN per variant; without one, identifier_exists: no plus brand |
| Image cannot be fetched | crawler blocked, broken URL, login required | make the image URL publicly reachable, check rate limits |
| Promotional text in image | sale banner, watermark, logo | neutral main image, promo graphic at most as an additional image |
| Shipping information missing | no shipping rule for the target country | add shipping settings or set shipping per product |
| Website not verified | ownership open, domain differs | verify and claim, align link with the verified domain |
| Restricted product | category only conditionally allowed | check eligibility, adjust the data, request a review |
| Policy violation | content on the page or in the feed | correct product data and landing page, request a review |
| Landing page unreachable | error page, redirect, robots.txt | point link straight at the product page, allow access |
| Duplicate or unstable id | id regenerated on every import | use a permanently stable id, group variants with item_group_id |
Step by step: work through disapproved products
- Check account status. Is there an account-level message, or is the website unverified? Fix that first; everything else would be wasted work.
- Sort issues by count. A problem affecting 800 items almost always has one shared cause in the feed mapping and one single fix.
- Trace three sample items by hand. Put the feed value and the product page side by side, and open the page in a private window without login and without a country redirect.
- Fix in the system, not in the export. Correct the store or the feed rule, not a file that the next import overwrites.
- Re-deliver the feed. After the correction, trigger a fetch so Google has the new values. For price and availability errors, that is what actually triggers the new review.
- For policy issues, request a review. These do not resolve on their own. Request it only once the change is actually live: Google's help on account-level enforcement notes that, depending on the violation, there can be extra verification steps and a limit on how many reviews you can request. So a request without a real fix is a request wasted.
- Allow processing time. Google states the crawls after a fix usually finish within 24 to 48 hours; policy reviews take longer. If nothing changes after that, the cause was not the one you assumed.
- Prevent the repeat. Write down which feed rule you changed. Most waves of disapprovals come back because an import overwrites the fix.
Checklist: harden the feed against disapprovals
idpermanently stable, unique, not regenerated on each exporttitleanddescriptionwithout marketing filler and without ALL CAPSpriceidentical to the product page, promotions viasale_priceavailabilityfrom real stock, synced more than once a day where possiblelinkstraight to the product page, no redirect chain, no session IDimage_linkpublicly fetchable, main image without text, banners or watermarksgtincorrect per variant, otherwiseidentifier_exists: noplusbrandandmpnwhere it appliesconditionset if you sell anything other than new goodsgoogle_product_categoryandproduct_typefilled- Variants grouped with
item_group_id, pluscolor,sizeandmaterial - Shipping rules for every target country, special rates for oversized items per product
- Product page marked up with structured data for price and availability
Once you have pulled these straight, the work shifts from firefighting to improvement: better titles, more complete attributes, more matching queries. Products that are approved and serving are also the input for Performance Max campaigns, which cannot compensate for a catalog that is half disapproved.
What to keep an eye on permanently
Disapproved products are not a state you fix once. Every catalog change, every discount, every new feed plugin can trigger a new wave. A fixed weekly look at two numbers pays for itself: the count of active products and the count of disapproved products, each compared to last week. Making that part of a fixed weekly ecommerce routine means you find the cause before the revenue drop shows up in your reports. In ecomando the Merchant Center product status runs alongside revenue in the Google Shopping section, so a drop becomes visible next to the money rather than at your next Merchant Center login.
The second point is prioritization. Ten disapproved items from a discontinued line do not matter; one disapproved bestseller costs money every day. Sort disapproved products by revenue or margin over the last 90 days and work that list, not the alphabetical one.
Frequently asked questions
Why are my products disapproved in Merchant Center?
In most cases for one of four reasons: price or availability in the feed do not match the product page, an identifier such as the GTIN is wrong or invalid, the image cannot be fetched or carries promotional text, or the website is not verified. Google names the exact reason per item in the product issues view.
What is the difference between disapproved and limited?
Disapproved means the item does not serve at all. Limited means it serves in principle, but not everywhere or not in every program, for example because shipping information for one target country is missing.
How long does it take for a corrected product to serve again?
After a feed update Google re-reviews automatically, and Google states that the page crawls usually finish within 24 to 48 hours. Policy violations need a review request, which takes longer; depending on the violation, the number of review requests can be limited.
Can I advertise products without a GTIN?
Yes, if the product genuinely has no manufacturer identifier, for example handmade or custom goods. Then you set identifier exists to no and supply brand and a stable id. For branded goods that do have a GTIN, this is not a shortcut.
Why is a product disapproved when the price on the page is correct?
Google's crawler often sees a different price than you do: because of a country variant, a customer login, a struck-through price, pre-tax versus consumer price, or a price loaded by JavaScript. Clean structured data on the product page makes the valid price unambiguous.


