Guide

Fixing disapproved products in Google Merchant Center

Disapproved products in Google Merchant Center have two kinds of cause: data in the feed that is wrong or missing, and problems on the site or with policy that no feed can change. The first kind (missing GTIN, over-long or promotional titles, price and availability that do not match the page) is fixed once with a feed rule and stays fixed. Sort the issues by type in Merchant Center, then fix each type with one rule.

We connect your store, build the feed and keep it in sync. Updated 2026-10-27.

At a glance

  • Find the issues in Merchant Center: Products → Needs attention, filter by issue, and download the CSV of affected products. Textfinity cannot read disapprovals from Merchant Center; this step is yours.
  • Feed-fixable: missing or invalid GTIN, title over 150 characters or with promotional text, mismatched price, mismatched availability, incorrect language.
  • Not feed-fixable: policy violations, unavailable or 404 landing pages, prices rendered by JavaScript, promotional overlays on images, account suspensions.
  • After a fix, Google re-crawls automatically, which typically takes 24 to 72 hours; manual reviews can take up to 7 business days.

What Textfinity can and cannot see

Textfinity does not import Merchant Center diagnostics: it cannot read which products Google disapproved or why. What it can do is change the data Google receives, at the rule level, for every product at once, and profile the catalog before Google sees it. Feed hygiene flags empty GTIN columns, titles over the 150-character limit, mixed languages and malformed URLs, which are the data behind several of the most common disapprovals.

So the workflow is: read the issue list in Merchant Center, group it by type, find the data behind each type, change the rule in Textfinity, and let the next fetch carry the fix. One rule fixes every product that shares the cause, including future ones. You send us the issue list; we change the rules.

Disapprovals the feed can fix, and how

Merchant Center issueUsual cause in the dataFeed rule in Textfinity
Missing or incorrect GTIN [gtin]Barcode column not mapped; supplier export lacks GTINs; restricted prefixes (2, 02, 04)gtin: rename Barcode; merged source keyed by SKU for supplier GTINs; leave empty if it matches regexp ^(2|02|04)
Product has no identifiersCustom or private-label goods sent without identifier_existsidentifier_exists: static value no, with the condition Barcode matches regexp ^\s*$, on the custom-made range only
Title too long / promotional textVariant options and promo words appended; titles over 150 characters are truncatedtitle: remove from regexp (?i)\b(free shipping|sale|% off)\b; combine fewer fields; AI title within 150 characters
Mismatched priceSale shown on site but not sent; currency missing; feed refreshed less often than prices changeprice from compare-at, sale_price from price when a sale exists; currency suffix; shorter shop sync schedule
Mismatched availabilityStock quantity not translated to Google's values; preorders without a dateavailability: advanced if/then on stock; availability_date for preorder
Incorrect languageUntranslated fields in a translated feedOne feed per language; translated title and description via AI config or store locale

Issue names and rules from Google Merchant Center Help (title, GTIN, identifier_exists, availability, mismatched price), checked 2026-10-27.

Disapprovals a feed cannot fix

  • Policy violations (restricted or prohibited products, misrepresentation): these concern what you sell and how the business presents itself. Fix the site or appeal in Merchant Center.
  • Landing page unavailable or returning 404: fix the URL on the site. A feed rule can only correct links that are malformed in the data.
  • Price rendered by JavaScript or changed by IP geolocation: Googlebot reads the HTML the server returns, so the site has to show the price there.
  • Promotional overlays or watermarks on images: Textfinity does not edit images. If the store has a clean second image, map that column to image_link.

Fixing a GTIN missing error in Google Merchant Center

Google calls GTIN recommended for every product that has one assigned by the manufacturer, and warns that a product with a GTIN that is not submitted could be disapproved; missing or incorrect values can also limit visibility. Accepted lengths are 8, 12, 13 or 14 digits with a valid check digit; spaces and dashes are ignored.

If the store holds the barcode (Shopify's Barcode field, a WooCommerce meta column), rename it to gtin. If only the supplier has it, join the supplier file as a merged source on SKU. If the product has none (custom, private label), send brand and mpn where you can and identifier_exists no.

Examples

Worked examples, by situation

Four stores, four disapproval patterns, four rules that cleared them in bulk.

Electronics · Google Shopping · WooCommerce CSV, 1,800 SKUs

Missing GTIN on 640 products, GTINs in the supplier file

Before

id: HP-2201
gtin: (empty)
supplier_prices.csv: HP-2201;0840268915432

After

id: HP-2201
gtin: 0840268915432

How we set it up

We join the supplier CSV as a merged source on SKU and map gtin by rename from the supplier's EAN column, with the store's own barcode first through a conditional rule (if Barcode matches regexp ^\s*$, use the merged column). Feed hygiene completeness on gtin goes from 64% to the share the supplier covers.

Fashion · Google Shopping · Shopify, 3,500 variants

Titles truncated and flagged as promotional

Before

title: SALE!! Organic Cotton Hoodie - Free Shipping - Heather Grey / XL / Relaxed Fit / Eco Collection 2026

After

title: Organic Cotton Hoodie
color: Heather Grey
size: XL

How we set it up

We map title with remove from regexp (?i)(sale!*\s*|\s+-\s+free shipping.*$) on the Shopify title; color and size go to their own attributes by rename instead of being appended. Feed hygiene's length distribution confirms no title is over 150 characters.

Furniture · Google Shopping, Sweden · Shopify, 700 SKUs

Mismatched price during a sale

Before

price: 4995 SEK
site shows: 3995 kr, was 4995 kr

After

price: 4995.00 SEK
sale_price: 3995.00 SEK

How we set it up

We map price with an advanced rule: if [variant_compareAtPrice] is not empty then [variant_compareAtPrice] + " SEK" else [variant_price] + " SEK"; sale_price gets a conditional rule: if variant.compareAtPrice matches regexp ^\s*$, leave empty, else advanced [variant_price] + " SEK". The shop's sync schedule is tightened for the sale week so the feed follows price changes.

Toys · Google Shopping · Magento CSV export, 450 SKUs

Availability mismatch from raw stock numbers

Before

availability: 0
availability: 14
availability: preorder (no date)

After

availability: out_of_stock
availability: in_stock
availability: preorder + availability_date: 2026-12-01

How we set it up

We map availability with an advanced rule: if [qty] equals "0" then "out_of_stock" else "in_stock", with a conditional rule for the preorder tag first, and availability_date by rename from the release_date column of the Magento export.

Copy this plan

Plan: clear a wave of disapprovals in one pass

Step 1 happens in Merchant Center; steps 3 to 5 are rules we set up in Textfinity; step 6 is back in Merchant Center.

  1. 01

    Export the issue list from Merchant Center

    Open Products → Needs attention, group by issue, and download the CSV of affected products for each issue type. Textfinity cannot pull this list, so you send it to us.

  2. 02

    Sort issues into feed-fixable and site-fixable

    Use the two lists above. Send policy, landing-page and image-overlay issues to whoever owns the site; keep the data issues.

  3. 03

    Find the shared cause in the data

    Open a few affected products and compare the source value with what the feed sends. Run a hygiene check to see how many products share the pattern.

    What we set up: We compare the per-product mapping output in the product explorer and run a new feed hygiene check.
  4. 04

    Fix the rule, not the product

    Change the mapping for the column involved: gtin, identifier_exists, title, price, sale_price, availability or link.

    What we set up: We change that column's rule: rename, advanced, remove from regexp or add suffix.
  5. 05

    Hold back what cannot be fixed yet

    Products with no possible GTIN and no brand, or with no valid image, can be excluded until the data exists.

    What we set up: We add an exclude filter: [product.featuredImage.url] is blank (or the export's own image column).
  6. 06

    Let Google re-fetch and re-crawl

    The edited feed is rebuilt within about five minutes. Merchant Center picks it up on its next fetch; re-crawls typically take 24 to 72 hours, and you can request a review for products you believe were flagged in error.

Customization tips

Make it yours

Fix by issue count, largest first

One rule that clears 600 GTIN warnings is worth more than ten hand edits. The trade-off is that a bulk rule can be wrong in bulk: check twenty products before the next fetch.

Do not answer a price mismatch by excluding the product

Excluding hides the symptom and loses the sales. Send the sale correctly with sale_price and sale_price_effective_date, and refresh the feed as often as prices change.

Never fake identifiers

Inventing GTINs or setting identifier_exists to no on branded products to silence a warning creates a worse problem. Google checks check digits and warns when a product marked no has a known GTIN.

Edit in the feed, not in Merchant Center

Edits made on a product inside Merchant Center are overwritten by the next fetch of the feed. A rule in the feed survives every rebuild.

FAQ

Questions about google merchant center disapproved products

Why are my products disapproved in Google Merchant Center?

Either the product data breaks a requirement (missing GTIN, title over 150 characters, price or availability that does not match the landing page, wrong language) or the product, page or business breaks a policy. Products → Needs attention in Merchant Center lists each issue per product.

How do I fix a GTIN missing error in Google Merchant Center?

Map the product's barcode to the gtin attribute (8, 12, 13 or 14 digits with a valid check digit). If the store lacks barcodes, join them from a supplier file by SKU. If the product has no GTIN at all, such as custom or private-label goods, send brand and mpn where available and set identifier_exists to no.

How long does it take for disapproved products to be approved after a fix?

Google re-crawls automatically, typically within 24 to 72 hours of the corrected data arriving. Manual reviews you request can take up to 7 business days.

Can Textfinity show me which products are disapproved?

No. Textfinity does not import Merchant Center diagnostics. It fixes the data behind disapprovals with feed rules, and its feed hygiene check flags missing identifiers, over-long titles, mixed languages and broken URLs before the feed reaches Google.

Set up for you

Have the data behind your disapprovals fixed once, for every product.

Send us your store and the issue list from Merchant Center. We rebuild gtin, title, price and availability with feed rules in Textfinity and profile the catalog before Google fetches it.

Have us fix your feedOr email support@textfinity.io

Tell us your store and channels. We reply within 24 hours.