FeedMender

Google Shopping feed repair

Your data source has errors.
Fix them once, for good.

FeedMender reads your product file, finds every issue Google acts on, and repairs what can be repaired from your own data. You get back a supplemental data source that keeps applying, including after tonight's sync overwrites everything else.

  • Free scan, every finding shown before you pay
  • One payment for the fix, no subscription
  • No account needed to look
AS YOUR SHOP SYNCS IT id 10482-M title SALE! Merino jumper now €49 gtin 8712345678901 color #1F2A44 size M availability available price 119,95 image_link /img/jumper.jpg 404 one supplemental data source, joined on id WHAT FEEDMENDER WRITES id 10482-M structured_title Merino wool crew neck jumper, navy, M gtin 8712345678905 color Navy size M availability available price 119,95 image_link /img/jumper-1500.jpg written left as it is corrected by rule, never pinned

Drop your data source here

csv · tsv · xlsx · xml · json · zip · gz

Your file is sent to our server, scanned, and deleted within six hours. You can delete it sooner with one click. The demo scan never leaves your browser.

A real scan takes about a minute on 4,000 products. You see every finding before you pay anything.

What comes back

Every finding against the attribute it belongs to, with the row count and what we write. Ordered by how often it occurs.

Results from a demo feed scan.

0products read
0issues found
0repaired deterministically
0rewritten under a grounding check

    Why this is a one-time job

    1. 1

      Your master feed stays as it is

      Your shop keeps exporting on its own schedule. Nothing in your CMS changes and nothing in your primary data source is rewritten.

    2. 2

      You add one supplemental data source

      A second source in Merchant Center that matches on id and overrides only the attributes we corrected. The file is yours: it goes into a spreadsheet in your own Google account, which Merchant Center reads every day. That daily read is also what keeps the data from expiring, because product data lapses 30 days after its last refresh.

    3. 3

      It applies to every sync after that

      Google lays the supplement over your primary source each time it processes it, so tonight's regenerated feed does not undo the corrections. That is what makes this a purchase instead of a subscription.

    Why the nightly sync cannot undo it. Nothing is ever written back into your file, so there is nothing in it for your shop to overwrite. Google keeps the two sources apart and rebuilds the product it serves out of both, every single time it fetches: your row is read first, our corrections are laid over it afterwards, matched on id. Your shop can regenerate the file at three in the morning, rewrite the descriptions and reorder the columns. The next fetch reads that new file, then applies the same overlay again. It stops applying on one of two events, both yours: you remove the data source, or a product's id disappears from your feed.

    Price and stock are corrected with a rule, not with a value. Their format is as broken as anything else and it has to be fixed. But writing 119.95 EUR into the supplement freezes the price we happened to see, and your next sale would serve the old one. For these fields the report hands you an attribute rule instead: replace the comma, append the currency, map your own stock wording onto Google's four values. A rule runs against whatever your feed says tonight, so it fixes the format for good rather than for one day. You paste it once, in the same screen where you add the data source.

    What a supplemental source cannot do. It only updates products whose id already exists in your primary feed, so products you add after the scan are not covered until you run it again.

    Rewritten text is declared. Titles we rebuild ship as structured_title carrying digital_source_type trained_algorithmic_media, because Google requires generated content to be declared. Google uses title when both attributes are present, so a rewritten title also needs one attribute rule in Merchant Center that clears the original. The report tells you which products and where to click. Every rewrite is checked word by word against your own row first: anything introducing a fact your data does not contain is discarded and your original title is kept.

    225 checks against the current specification

    Google publishes several hundred pages of product data requirements. FeedMender enforces the part a file can prove, from GS1 check digits to the image dimensions that become mandatory on 2027-01-31. Verified against the Help Center in July 2026.

    Import integrity

    Encoding, byte order marks, delimiter chosen by field count consistency, per row width, unclosed quotes, XML well-formedness. Rows that cannot be parsed are counted and named, never dropped in silence.

    Price and currency

    Decimal and thousands separators, missing ISO 4217 code, sale_price currency mismatch, sale windows without a sale price, unit_pricing_measure against a base measure from another family.

    Identifiers

    GS1 mod-10, restricted prefixes 2, 02, 04, coupon prefixes read off the zero padded 13 digit form, scientific notation, ISBN-10 and UPC-E conversion, identifier_exists contradictions, duplicate and over-long id.

    Titles and descriptions

    Editorial requirements, 150 and 5,000 character limits, capitalisation against an acronym list, HTML markup, term coverage too thin for the queries the product should match.

    Availability and dates

    Closed enum with NL, FR and DE wording mapped in, ISO 8601 on every date field, expiration_date horizon, availability_date on preorder and backorder, stock contradictions reported rather than resolved.

    Variants and attributes

    Closed value lists for color, size_system, size_type, gender and age_group, concatenated colour values, item_group_id integrity across a variant group, apparel attribute completeness.

    Images, video, robots.txt

    Every distinct URL fetched, sixteen in parallel: response code, pixel dimensions against the current and the 2027 minimum, declared versus actual format, megapixel and byte ceilings. Then Googlebot, Googlebot-image and AdsBot-Google checked separately, because AdsBot ignores the wildcard group.

    EU requirements

    Unit pricing where the price indication directive applies, EPREL certification shape, energy_efficiency_class restricted to CH, NO and GB since April 2025, shipping mandatory for BE and NL. The part tools built for the US market leave out.

    What a file cannot tell us

    We would rather be short about this than have you find out afterwards.

    • Your live pages. Whether the price on the landing page still matches the price in the feed needs a crawl of your shop, not a read of your file.
    • Merchant Center status. What Google finally processed, per country product status and account problems need account access. We do not ask for it and we do not claim it.
    • History. A product count that dropped overnight or a column that quietly disappeared is only visible to something watching every upload. We see one file, once.
    • Judgement. Whether a well formed barcode belongs to this particular product, or whether the accessory in the photograph is included in the price, is review work and stays review work.

    One payment, by catalogue size

    The scan and the full report are free. You pay when you download the fix.

    up to 1,000 productsShown after the scan
    up to 5,000 productsShown after the scan
    larger cataloguesContact us

    One catalogue, one charge, no renewal. The corrections go into a spreadsheet in your own Google account, so there is nothing of ours left to keep paying for. Re-run it in six months and you pay again, only if you want to.

    Scan your feed

    Putting it in place

    Nine steps, once. Everything stays in your own Google account, and nothing you do here can touch the feed your shop exports.

    In your own Google account

    1. 1

      Download both files

      The report, and the corrections as a spreadsheet file. The corrections are what Merchant Center will read; the report is for you.

    2. 2

      Import it into a new Google Sheet

      In Google Sheets: File, Import, Upload, and replace the spreadsheet. Give it a name you will still recognise in six months, something like "FeedMender corrections, shop.example.com".

    3. 3

      Check two cells before you go on

      Find a product id and a barcode that starts with a zero. If the zero has disappeared, or a barcode now reads 8.71E+12, the import turned text into numbers. Import again with that conversion switched off. Everything in our file is stored as text, so this only happens when the spreadsheet is asked to be clever.

    In Merchant Center

    1. 4

      Settings, Data sources, Supplemental sources

      Then Add supplemental product data. If there is no Supplemental sources tab, look under Settings, Add-ons first.

    2. 5

      Choose Google Sheets, and pick the sheet you just made

      Not the template, the existing spreadsheet. Merchant Center connects through your own Google account, so the sheet stays private and we never see it. On a managed Workspace an administrator may have to allow the Merchant Center service account once.

    3. 6

      Attach it to the right primary source

      Feed label and language have to match the source it belongs to. A supplemental source only updates products whose id it finds there, and it cannot add or remove products, which is also why it cannot break anything.

    4. 7

      Leave the schedule alone

      Google reads the sheet every 24 hours by default. That daily read is also what stops the data lapsing, which it would do 30 days after its last refresh.

    5. 8

      Paste the attribute rules from the report

      These are the corrections we deliberately do not pin to a value: the price format, your stock wording, and the one rule that lets a rewritten title through. The report gives the exact text and the field each rule belongs to.

    6. 9

      Then wait for Google

      Products come back when Merchant Center reprocesses them, not the moment you press save. Nothing more is asked of you after this, and removing the data source later does not delete your sheet.

    Questions people ask

    Before you upload

    Does anything change in my shop?
    No. FeedMender writes one new file and hands it to Merchant Center. Your CMS, your export and your primary data source are untouched.
    Do you need access to my Merchant Center account?
    No. You give us a file, we give you a file. There is no permission to grant, which also means we cannot see what Google finally decided about your products. We tell you what your data says. Merchant Center tells you what Google did with it.
    Where does my file go?
    To our server, where it is scanned and then kept for up to six hours, long enough for you to read the report and decide, because the repair needs the file again. After that it is deleted automatically, and there is a button on the report to delete it sooner. We keep no copy of the corrections either: those go into a spreadsheet in your own Google account, and Merchant Center reads them from there. Image URLs are fetched from our server, so your own shop sees those requests rather than you.
    Couldn't I do this myself with an LLM?

    Partly, and we use one ourselves. Rewriting a thin title is a language job and a model is good at it, so that step does go to one. The rest is not a language job. A GS1 check digit is arithmetic, and a model will wave through a barcode that fails it. Whether an image is 480 by 480, or answers at all, is only knowable by fetching every URL in the file. Whether AdsBot-Google is disallowed sits in a file on your server. Our scan itself never calls a model at all.

    The bigger problem is that it becomes a loop. A model corrects what you thought to ask about and leaves untouched the ninety-nine faults you did not know were there, so the way you find the rest is to upload and let Google refuse them. That verdict arrives on Merchant Center's schedule rather than yours, and by the time it does, your shop has exported the file again over the top of your work. Every round waits on Google. We run the whole list in one pass and then check that the corrections did not break each other.

    Being right is harder than it looks, too. Ours once proposed "Blue" for a television, because the colour column read Blue on most of the catalogue. Grounded in the merchant's own data, and still wrong. What stopped it was a relevance filter and a word by word check against the source row, both written after we watched it happen.

    And a correct rewrite still has to arrive somewhere: as structured_title with the generated content declared, knowing Google uses title when both are present, in a supplemental source that cannot add products and expires 30 days after its last refresh. The scan is free, so the quickest way to settle all of this is to run it and see whether what comes back is what you would have found.

    Do you invent product information?
    No. Every generated value is checked word by word against your own row. If a claim is not in your data it is discarded and the original is kept. Rewritten titles are declared to Google as generated content.
    What formats do you read?
    csv, tsv, xlsx, xml, json, and zip or gz archives of any of those. Dutch, French, German and English column headers are recognised without configuration.
    Are you part of Google?
    No, and nothing here is endorsed by them. What we do have is seven years of Google Ads work in house, across a great many Shopping accounts and a great many feeds with errors in them. FeedMender is the checklist we kept rebuilding by hand.

    After the scan

    What if my feed turns out to be fine?
    Then you pay nothing. The scan says so, there is nothing to download, and that is a perfectly good outcome.
    What do I have to do in Merchant Center?

    Put the file we generate into a spreadsheet in your own Google account, and add that sheet in Merchant Center as a supplemental data source. Google reads it every 24 hours from there.

    It does not have to be public and we never see it. Merchant Center connects to your sheet through your own Google account rather than through a link you publish, so the corrections stay inside your workspace, under your retention and your access rules. On a tightly managed Workspace an administrator may first have to allow the Merchant Center service account, which is one setting rather than a project.

    The report comes with it: the attribute rules to paste for the fields we deliberately do not pin, and the primary source, feed label and language your sheet has to match.

    What happens when my feed regenerates tonight?
    Google applies the supplemental source on top of your primary source every time it processes it, matching on id. Your export can regenerate as often as it likes.
    My prices have commas in them. Do you fix that or not?
    We fix it, with an attribute rule rather than with a value. A value would pin the price we saw: drop the product to 99.95 next month and the supplement would keep serving 119.95. A rule replaces the comma and appends the currency in whatever your feed says tonight, so it holds for every sync after that. The report gives you the rule and where to paste it. Stock wording works the same way.
    I add new products every week. Are those covered?

    Partly, and it is worth knowing which part. The rules live in your account rather than in a file, so they run over every row your shop sends from then on, including products that did not exist when we scanned. The corrections that had to be written per product, a rebuilt title or a repaired barcode, cover the products that were in the file we read.

    The report is the other half of the answer. Almost nothing we find is a one-off: your export makes the same mistake in the same field every time, and the report says which faults are systematic and where they come from, so they can be fixed at the source and new products arrive clean. Scanning again is free, so you can check whenever you like, and you only pay if there is something new worth repairing.

    How soon will I see the difference?
    Not immediately. Google refetches your sources on its own schedule, reprocesses the products, and lifts the disapprovals it agrees with. Your part is done the moment the data source is in place. The rest is Google's timing, not ours or yours.