A catalogue in Merchant Center is not "uploaded": it is maintained. Every day the website changes prices, stock and pages; every day Google crawls and compares; every day something stops adding up. This lesson is that maintenance — and why a clean catalogue is a competitive advantage, not a formality.
Reading Diagnostics
Merchant Center → Products → Diagnostics (or Needs attention):
- Account issues: they affect everything (policies, website, shipping). Absolute priority.
- Product issues: by reason, with the number of products affected and the specific products (downloadable). There are three levels of severity: errors (disapproval), warnings (the product serves, but limited or at risk) and notifications (improvements).
- Data source issues: the file was not processed properly (columns, encoding, invalid rows).
Product statuses:
| Status | What it means | Action |
|---|---|---|
| Approved | It serves across every destination | — |
| Approved (limited) | It serves, but with less visibility (thin data, image, no GTIN, "limited by performance") | Enrich it |
| Disapproved | It does not serve | Fix the cause; it reprocesses on the next update |
| Pending | Under review (a new product: up to 3 working days) | Wait |
| Expired | More than 30 days with no update from the source | Reactivate the feed |
Diagnostics has a history by date: a jump in disapprovals lines up with some change (a redesign, a migration, a VAT change): it is the first place to look when Shopping "goes down".
The number one problem: prices and stock out of sync
Google crawls the page and compares it with the feed; if the price or the availability do not match at the moment of the crawl, it disapproves. The causes: flash sales, per-variant prices, VAT, rounding, stock running out between updates, website caching.
Three solutions by size:
- Small shop (daily fetch): a feed scheduled for the hour when prices change (after the ERP update), correct structured data on the product page and automatic item updates switched on (Google corrects price and availability from the page without disapproving, within a margin).
- Medium shop (several times a day): a daily primary feed + a
price/stock supplemental feed every 1-2 hours (just
id,price,sale_price,availability) — light and frequent. - Large shop or dynamic pricing (real time): the Merchant API (formerly the Content API): the shop pushes every price/stock change instantly. This is the definitive answer; the big platforms do it for you.
Structured data (schema.org/Product → Offer with price,
priceCurrency, availability, itemCondition): Google reads it to
verify. Without it, automatic item updates do not work and the
comparisons are less reliable. Check it with the rich results tool.
Catalogue quality: from "approved" to "competitive"
Approved is not enough. Google grades data quality and uses it in the Shopping auction (relevance) and in visibility (free listings, comparison listings):
- Completeness: the more valid attributes (additional images, highlights, detail, colour/material/size, GTIN), the more contexts where you can appear.
- Consistency: price/stock/shipping = website.
- Images: quality, size, background, several views.
- Identifiers: a GTIN matches you to Google's catalogue → aggregated reviews, "compare prices", the price competitiveness report (lesson 5).
- Limited by performance: Google throttles delivery for products with thin data that are also not performing; the way out is enriching them.
Catalogue quality is the one Shopping factor your competitors cannot see and cannot copy: it is your silent advantage.
The real update frequency
- Scheduled fetch: once a day (you choose the hour); more often, via the API.
- Reprocessing after a fix: the product goes to pending and gets reviewed within hours (up to 3 days if it is new).
- Expiry: a product with no update for 30 days → expired; abandoned feeds empty themselves out.
- Price changes on the website with no feed change: disapproval until the next fetch (which is why frequency matters).
Weekly maintenance routine (30 min)
- Diagnostics: account issues → zero; errors by reason (the trend against last week).
- Disapprovals on price/availability: if > 1-2%, raise the frequency or fix the sync.
- Limited items: the 20 best-selling products marked "limited" → enrich them.
- New products pending for more than 3 days → investigate.
- Expired products, or products with stock and no impressions → titles/category.
- Supplemental feed: titles for the products with the most spend and the fewest sales (lesson 2).
- Alerts: switch on the Merchant Center emails and, better still, automate them.
🔧 The Shopping Ninja script solves this: it reads per-product performance from Google Ads and cross-references it with the client's spreadsheet (real sales, margins) to flag products that are disapproved, getting no impressions, or spending without selling; it generates optimised titles for a supplemental feed and lets you exclude or negativise with a checkbox, keeping a history. It is catalogue maintenance turned into a spreadsheet with actions, instead of a weekly manual inspection.
What to remember
- Diagnostics is the dashboard: account issues first, then product errors by reason, with the history to spot the change that caused them.
- The number one problem is price/stock going out of sync: a fetch at the right hour + structured data + automatic item updates; a frequent supplemental feed; the API for real time.
- Approved is not enough: data quality (completeness, images, GTIN) decides relevance and visibility; "limited" is fixed by enriching.
- A 30-minute weekly routine — or an automated one.