Merchant Center Product Disapprovals in 2026: Feed Diagnostics That Work
Merchant Center product disapprovals rarely explain themselves. Half your catalog flips to “Disapproved,” Shopping impressions drop overnight, and the reason Google shows you is something vague like “Mismatched price” or “Image issue.” Nine times out of ten that label points at a symptom, not the cause. The actual problem sits somewhere else: in structured data that contradicts the feed, in a landing page that blocks the crawler from another country, or in a feed attribute the specification quietly retired two quarters ago.
This is a working diagnostic method for disapproved products in 2026: how the statuses actually differ, the seven root causes behind most rejections, a 20-minute triage checklist, how to fix problems at the template level instead of one SKU at a time, and what realistically happens after you push the fix.
Rule one of feed triage: never fix “all disapproved products.” Fix the products that made money or could have. A 40,000-SKU catalog always carries a long tail that is not worth an hour of anyone’s time.
Where the real data lives
Merchant Center Next gives you two views of the same problem, and they answer different questions.
- Products → All products. SKU-level status, filterable by issue and by country. This answers “which items.”
- Products → Issues / Overview. Aggregated issues with affected item counts and severity. This answers “what to fix first.”
Always start with the aggregated view. A single mistake in a feed template hits thousands of SKUs at once, so one rule change often clears most of the report. Going item by item only makes sense when the failures are few and genuinely unrelated to each other.
Three statuses people keep confusing
| Status | What it means | Priority |
|---|---|---|
| Disapproved | Zero visibility — no Shopping ads, no free listings, no product surface in PMax | Fix first: direct loss of impressions |
| Limited / limited visibility | The item serves, but not everywhere: missing data blocks certain formats and surfaces | Fix second: usually missing GTIN, size, color, age group |
| Pending / under review | Uploaded, not yet through review | Wait — typically a few hours to three business days (directional) |
There is a fourth situation worth naming: items marked Active that still get no impressions. That is not a feed problem. Look at bids, competition and limited ad serving in Google Ads before you touch the feed at all.
Seven root causes behind Merchant Center product disapprovals
1. Price and availability mismatch against the landing page
The single most common rejection. Google fetches the product URL, compares price and stock against your feed, and rejects on any meaningful gap. The gap rarely comes from carelessness — it comes from timing. Your feed refreshes daily; your pricing engine changes numbers hourly during promos.
What actually fixes it:
- Move from scheduled file fetches to the Content API or automatic price and availability updates, so site changes reach Merchant Center in near real time.
- Confirm that
pricecarries the full price a shopper pays, andsale_pricecarries the promotional price — inverting the two is a classic silent failure. - Match currency per target country, including the currency shown on the localized landing page.
- Keep sold-out items in the feed with
availability: out_of_stockinstead of deleting them. Deleting resets the item’s accumulated history.
2. Structured data that contradicts the feed
A nasty one because the page looks fine to a human. Your feed says $89, the visible page says $89, and the schema.org markup still carries $119 from before the promo, or a price excluding tax. Google reads structured data too, and the mismatch is enough to disapprove the item.
Validate with Google’s Rich Results Test and a schema validator. The durable fix is generating markup from the same source of truth that generates the feed, rather than maintaining two independent representations of the same price.
3. Missing product identifiers
Missing gtin, mpn or brand usually produces “limited,” not “disapproved” — the item serves but loses eligibility on comparison surfaces. For genuinely custom or handmade products, the correct pattern is identifier_exists: no plus populated brand and mpn, not empty fields left blank and hoped over.
4. Image problems
Watermarks, promotional overlays, “SALE” badges, borders, collages and generic no-photo placeholders all get rejected. So do images that return 404 or that your CDN serves only to certain regions or user agents. Google’s fetcher must be able to retrieve the image as freely as an ordinary shopper’s browser does.
5. Misrepresentation
The most dangerous group, because the wording is broad and the consequence can be a full account suspension rather than item-level rejection. What gets checked: a real, findable returns policy; shipping costs and timelines; working contact details; the business name matching between site and account; no surprise fees at checkout; a checkout flow that completes without forcing account creation.
6. Specification drift
The feed spec changes several times a year, and a template built two years ago slowly rots into a rejection generator. Things worth checking against the 2026 spec:
- Installment offers now describe a down payment; the item price must still represent the total cost of the product, not the monthly payment.
- Regional availability and pricing lets you override price and stock at sub-country region level — useful for retailers with warehouse-dependent pricing.
- For the EU and UK, tax is no longer a separate attribute: the feed price is expected to be VAT-inclusive.
A quarterly template review against the current specification costs an hour and prevents a week of firefighting.
7. The landing page itself
The URL 404s or 500s, is blocked in robots.txt, redirects mobile traffic elsewhere, requires login, geo-blocks the country you advertise in, or is simply too slow for the fetcher to complete. That last one connects directly to site performance — the measurement and fixes are covered in our guide to landing page speed and Core Web Vitals for paid traffic.
The 20-minute triage checklist
- Open the aggregated issues view and sort by affected item count. Write down the top three — they usually account for the bulk of the damage.
- Filter by target country. Many issues exist in exactly one market because that market has a different landing page, currency or tax treatment.
- Intersect disapproved SKUs with revenue-producing SKUs. Export the Google Ads product report, match on item ID, and push the zero-click items to the bottom of the queue.
- Walk the crawler’s path manually for one item in the top issue: open the feed URL in a private window, compare price, availability and currency, inspect the markup.
- Re-test from the target country. If the page works from your location but not from the market you advertise in, the cause is a redirect or geo-block, not your data.
- Decide the fix level: site, feed template, feed rule, or supplemental feed. Systemic errors get fixed at the source.
- Ship the fix, request review, log the date. Re-check in three to five days against that date.
Fixing at scale instead of one item at a time
| Tool | Use it when | Limitation |
|---|---|---|
| Feed rules | You need to rename values, set constants, concatenate fields, strip characters | Cannot invent data the source does not contain |
| Supplemental feed | You need to add GTINs, categories, custom labels or regional overrides for a subset of SKUs | Joins on item ID — any ID drift breaks it silently |
| Primary feed / Content API | The data itself is wrong, or prices and stock move faster than a daily fetch | Requires engineering time |
Custom labels deserve a mention here. If you use them to encode margin band, stock turnover and seasonality, your product campaigns become steerable: budgets and targets can differ by product group instead of treating a 40,000-item catalog as one undifferentiated blob. The full logic of feed structure and product campaign architecture is in our guide to Google Shopping product feeds.
What happens after you fix it
Products do not come back instantly. A realistic sequence — directional, not guaranteed:
- The feed is re-fetched on schedule or on upload: minutes to a day.
- Review after the fix lands: usually up to three business days.
- Impression volume recovers over several more days as items rebuild performance data.
Three things to avoid: deleting and recreating items with new IDs to “reset” a status, requesting review repeatedly without changing anything, and migrating the catalog to a fresh Merchant Center account. All three destroy accumulated history and usually make recovery slower, not faster.
Why Performance Max hides the damage
In a Shopping campaign the consequence is obvious: no item, no impression. In Performance Max the loss is disguised. When a large share of the catalog is disapproved, the campaign redistributes budget toward the surfaces it can still serve on — video, display, non-product search inventory. Spend continues, conversions keep arriving, and it takes a while to notice that the product-driven portion of the mix, typically the most profitable one, quietly collapsed.
Practical rule: before you diagnose a PMax slump by changing budgets or targets, check the share of active products in the feed. Campaign-level diagnosis is covered in the complete Performance Max guide, and the wider account sequence in our Google Ads account audit checklist.
Turning disapprovals into a number the business understands
“We have 3,000 disapproved products” moves nobody. Lost revenue per day moves everybody, including the engineer whose time you need.
- Export the Google Ads product report for the 30 days before the issue appeared: item ID, clicks, cost, conversions, conversion value.
- Join it to the disapproved SKU list on item ID.
- Sum conversion value across the intersection and divide by the number of days. That is the daily cost of the issue.
- Multiply by your realistic time to fix — site change plus review is usually about a week.
A sentence like “this costs roughly $X per day and takes two hours of dev time” resolves prioritization arguments instantly. The same math tells you which issue to fix first when several compete: rank by lost revenue, never by SKU count. The broader framework for tying spend to actual profit is in our breakdown of unit economics and LTV for media buyers.
Three patterns you will see repeatedly
Pattern 1: a site release nukes the catalog
Symptom: active product share drops from 96% to 40% in a day, same issue across all SKUs. Do not open the feed — open the deploy log. Usual suspects: a new product template where price renders client-side and the crawler never sees it, a URL structure change that left the feed pointing at old paths, or a fresh robots.txt rule. The fix belongs on the site.
Pattern 2: one market fails, the others are fine
Symptom: US catalog healthy, UK catalog rejecting on price. Open a product URL through that market’s IP. You will usually find a regional redirect serving a different price and currency, or a region-selector interstitial covering the content. Fix: country-specific feeds with correct link values per market, and VAT-inclusive pricing where required.
Pattern 3: the slow “limited” leak
Symptom: almost no disapprovals, but product campaign impressions decline for months. Check the limited status instead. Typically half the catalog lacks GTINs, or apparel items are missing required attributes — size, color, gender, age group. Fix with a supplemental feed; recovery is gradual, roughly two to three weeks.
A monitoring routine that catches problems early
| Cadence | What to check | Trigger |
|---|---|---|
| Daily | Share of active products | Drop of more than 5 percentage points in 24 hours |
| Weekly | Top five issues, disapprovals by country, limited-status items | A new issue touching more than 1% of the catalog |
| Monthly | Disapproved SKUs intersected with revenue-producing SKUs | Any top-100 revenue item in a rejected state |
| Quarterly | Feed template against the current specification | New or retired attributes |
Active product share is the one number worth a daily glance: it aggregates every cause at once and moves before your spend reports show anything. For building the reporting layer around it, see how we approach paid traffic analysis with GA4 Explorations, and for separating genuine loss from noise in click data, our piece on invalid clicks and budget protection.
Common mistakes
- Fixing everything. Most of a large catalog’s rejected tail never earned a click. Prioritize by revenue.
- Taking the error label literally. “Price mismatch” frequently means “crawler could not read the page.”
- Hand-editing what a template generates. The next export undoes your work.
- Ignoring “limited.” It looks harmless and often costs more impressions than outright disapprovals.
- Not logging fix dates. Without a date you cannot tell whether your change worked or the items recovered on their own.
Feed diagnostics is work that pays back once and then stays paid: a properly wired CMS-to-feed pipeline needs almost no attention afterward. If nobody on the team owns the chain from catalog to campaign, a single expert session usually clears the backlog — see what we do at PPC Rebels.
FAQ
What is the difference between disapproved and limited in Merchant Center?
Disapproved means zero visibility for that item. Limited means it still serves, but not on every surface or format, usually because required data such as GTIN, size, color or age group is missing. Fix disapprovals first, limited items immediately after.
How long does review take after a fix?
As a directional figure, up to three business days once the corrected data has actually reached Merchant Center. Repeatedly requesting review without changing anything does not speed it up.
Why is an item disapproved for price when the site price matches?
Three usual causes: structured data carries a different price than the visible page, the price changes dynamically between feed refreshes, or the crawler never reached the page and treated the value as unverified.
Should I remove out-of-stock products from the feed?
No. Keep them with availability: out_of_stock. Removing an item resets its history, and when it returns you rebuild performance from scratch.
My account was suspended for misrepresentation — what now?
Bring the site into compliance: complete returns and shipping policies, working contact information, transparent pricing with no surprise fees at checkout, consistent business identity. Then request a review describing exactly what changed. Suspensions lift on genuine fixes; there is no shortcut around this.
Is GTIN mandatory?
For branded, manufacturer-produced goods it is effectively required — without it you lose eligibility on comparison surfaces. For custom-made products use identifier_exists: no together with populated brand and mpn.
Can I fix everything in the feed without touching the website?
Partially. Feed rules and supplemental feeds can transform and enrich data. But when the problem is the landing page itself — price, availability, markup, accessibility — feed-side edits just create a new mismatch.
How do disapprovals affect Performance Max?
The campaign keeps spending but shifts budget to non-product surfaces. Spend looks stable while the product mix erodes, so check active product share before touching campaign settings.
What is an acceptable disapproval rate?
A small percentage is normal in a large catalog — some SKUs are always in transition. What matters is the trend and the composition: a rising share, or any revenue-driving item falling out, both warrant immediate work.
What causes a sudden mass disapproval overnight?
Almost always a site-side change: a new page template, URL restructure, CMS upgrade, robots.txt edit, or a change in how prices render. Check deploys before you suspect Google.
Would moving to a new Merchant Center account help?
No. Feed and site problems migrate with the catalog, and you lose accumulated history. Fix the cause in the account you already have.