From January 31, 2027 Google will reject a product whose image is under 500 × 500 px.
Merchant Center already flags such products with a warning. Width and height both count: an 800 × 450 px image will not pass.
Products that sold last year but can't be bought today. GTINs Google will reject. Photos too small for Merchant Center. Merchlint reads your store's catalog and orders, lists each problem next to what that product earned, and never changes anything.
Merchlint 0.3.5 on a demo store with 30 audio and photo products, priced in dollars. Every row links to the product in your admin and shows the fields it read.
Merchant Center already flags such products with a warning. Width and height both count: an 800 × 450 px image will not pass.
WooCommerce never warns about an empty identifier field, and a feed plugin sends whatever is in it.
Of the 79 stores with ten or more products, only one was clean. We checked them from the outside, as a shopper would, without signing in.
Merchlint checks every product in the catalog and shows next to each problem what that product earned in the last 12 months, so you know where to start.
The product sits in the store, in an ad or in a newsletter, and nobody can buy it — or it sells for nothing, or cheaper than you meant. The revenue disappears without a trace.
Merchant Center rejects or limits the product without telling you. All you notice is fewer sales from Shopping ads.
A customer compares you with a competitor in three seconds. A missing photo, a thin description and a product with no category lose that comparison.
All twenty-three checks run in the free plugin, on every product, with no cap. Twelve more are being prepared as a Pro add-on.
Every check, and how sure each one is →Hidden from the catalog, left as a draft, or published and still not displayed. It keeps selling through direct links while nobody can find it.
Merchlint · 2 checksSince WooCommerce 11.2 a CSV import matched by GTIN fails the row when two products share the code — and doesn't say which product holds the other copy.
Duplicate SKU and GTIN Finder · freeWhich WooCommerce field breaks which Google requirement — identifiers, price, availability, images — and the query that finds each case in your database.
Merchlint · 23 checksWhat WooCommerce sends to Google as the GTIN, where the field is since 9.2, and why a code you typed can vanish on the way to the feed.
Merchlint · no GTIN · duplicate GTINFrom January 31, 2027 Google wants every product image at 500 × 500 px or larger. A store that has added products for years has hundreds of smaller ones and no way to see them.
Image Size Checker · freeMerchlint · Photo too small Install →Products with no category, duplicate codes, variations with no price, photos that never arrived — the things an import log never mentions.
Merchlint · 23 checksEvery check has a page with the SQL query or WP-CLI command to run it by hand, in English and Polish, and for the identifier checks also in German and Spanish.
All 23 checks, and how sure each one is →Run one scan, open the three products at the top of the list, fix them in your own admin. Nothing else changes.
Everything in the admin has an equivalent on the command line, and two scans of an unchanged store give the same list, item for item.
# nine commands: scan, status, cancel, findings, rule, export, hide, unhide, hidden
wp plugin install merchlint --activate
wp merchlint scan
wp merchlint export > audit-2026-10.csv The chapter your audit report doesn't have — what the catalog itself is costing the client — across every store you look after.
# safe on a client's live store: read-only, small batches, resumes if interrupted
for site in client-a client-b client-c; do
wp --path="/srv/$site" merchlint scan
wp --path="/srv/$site" merchlint export > "reports/$site.csv"
done We read the public catalogs of WooCommerce stores that agencies feature in their portfolios — in Poland, the UK and the US — the way a customer sees them, without signing in. Among stores with at least ten products, each market had exactly one clean catalog.
Share of stores with each finding, scanned on October 5, 2026. Some sold-out and unpriced products are deliberate — we count what any visitor can see. Method, corrections and the CSV files: Zero clean: 72 WooCommerce stores. Numbers under CC BY 4.0.
Scan your own storefront →No configuration, no account. The plugin only reads: no capability to write or delete anything.
Products, categories, stock, orders without any customer data. It never changes anything: there is no “Fix it” button, and there never will be.
What costs the most is at the top. A separate screen shows what changed since the last scan, and whether the change came from your store or from a rule of ours.
It compares items, not totals: “37 before, 37 now” can mean five fixed and five new.
We read the public catalog — the one every customer sees — and show what doesn't add up. No account, no admin access.
GTINs checked in your browser: empty cells, duplicates and wrong check digits. The file never leaves your computer.
Drag a CSV or XLSX export from your storeA demo store with the plugin opens on WordPress.org in about a minute — the “Live Preview” button on the plugin page. Nothing to install.
Open the live preview on WordPress.orgTwenty-three checks across money, catalog, content, media, environment and identifiers, ranked by the revenue of the products behind them.
Three checks and nothing else: two products with the same SKU, a product with no GTIN, two products with the same GTIN.
Every image your store sends to Google, listed when it is under 500 × 500 px, with a verdict: quick swap when a larger original is already on the server, or new photo needed.
No. It reads your catalog and reports what it finds. Every change is made by you, in your own admin. This is enforced in the code, not just promised: an automated check refuses to build the plugin if it calls any function that would modify products, categories, media or orders.
The scan runs in the background, in short slices, and it only touches the admin side. Your storefront is not involved. If the scan is interrupted — a server restart, a deployment — it picks up where it left off and gives the same result as an uninterrupted run.
Yes. A scan of 50,000 products completes in about 90 seconds and the results are paginated, so a rule with twelve thousand findings still opens instantly.
Yes. Translations of one product are counted as one product: their SKU is shared deliberately, and their stock is one physical stock, so we never report the same goods twice or double the amount at stake. Polylang is tested with the plugin itself; WPML is recognized through its translation table, which we test against the same data it produces.
Yes, with HPOS on and off. Both modes give identical results, amounts included.
Nothing. Deleting the plugin removes its tables, the options it saved and its scheduled tasks, on every site of a multisite network — the WordPress.org directory requires a plugin to leave nothing behind. Deactivating it deletes nothing: switch it off for a while and the audit results are still there when you switch it back on.
GPL-2.0-or-later, the whole plugin in the WordPress.org repository — including the Pro add-on when it ships.
No product, price, stock level, order, option or media file is ever modified. Enforced by an automated gate on every build, not by convention.
If a check can't run, the report tells you which one. “No data” and “no problems” are different answers, and you get the right one.
237 stores in three markets, the method, the corrections we made and the CSV files — under CC BY, for anyone to re-count.
0.3.10 published on October 31, 2026. New checks every quarter, with a changelog you can read before you update.
Baltano, an independent software developer. Not Automattic, not Google. One address for every question: contact@merchlint.com, answered within a day.
A catalog audit for WooCommerce: GTIN, UPC, EAN and ISBN identifiers and Google Merchant Center, product image size for Google, sold-out and unpriced products, duplicate SKUs, what to check after a CSV import. Each guide shows where to look in the WooCommerce admin, with the query or WP-CLI command, without installing anything.
Doesn't match what you see in your store? Email us with the store address — we never need passwords or admin access. Answered within a day.
Baltano — the developer of Merchlint. Independent of Automattic and Google.