Fifteen checks, all free
Free Missing weights on shipped products and on variations with nothing to inherit. Incomplete dimensions. Products with no shipping class, on a store whose rates charge by class and set no cost for items that have none. Weights far beyond anything a courier carries, which is usually a misplaced decimal point. Products published with no price, which WooCommerce quietly makes unbuyable. Variable products with no purchasable variations. Stock management switched on with no quantity ever set. Virtual products carrying shipping data. Missing SKUs, images, GTINs. Downloadable products with no file. Products left in the default category.
Grouped so you can act on it
Free One screen under WooCommerce, grouped by check and then by product. A product with two hundred variations missing a weight is one row, not two hundred. A variation that correctly inherits its parent's weight is never reported. Every check says what it costs you, not just what is missing.
Quiet on stores it does not apply to
Free Dimensions are only checked on stores that set dimensions somewhere, so a store pricing purely by weight is never told its whole catalogue is broken. The same holds for SKUs, images, GTINs and categories because each check first asks whether your store uses that field at all.
Findings you can trust
Free Dismiss a finding and that product stops being reported for that check; a rescan never undoes it, because the scan decides whether a fault is still there, not whether you care about it. Switch a check off entirely if it does not fit how you work, and existing findings are kept so switching it back on restores them.
Regressions are visible
Free Findings are remembered between scans, and every product listed under a check shows how long it has been failing it. A fault that was fixed and has come back keeps the date it first appeared, so it reads as a regression rather than as something this scan turned up.
Enforcement at publish
Premium Choose, per check, whether it says nothing, warns, or refuses the save. Warn is the default and blocking is opt-in, because a rule that blocks everything would lock you out of your own catalogue. The new product editor and the REST API get a real error so the save genuinely fails; the classic editor cannot refuse a save at that point, so the product is kept as a draft and told why. Imports are never blocked because stopping a nightly supplier feed would be worse for the business than the data problem.
Scheduled scans and a digest
Premium Scan every day or every week in the background, and get emailed only what is new since the last digest. A mail that repeats the same forty problems every week stops being read. Nothing is mailed when nothing changed, and it mails nobody until you say so.
Fix findings in bulk
Premium Fix a check's findings from the check's own list. Virtual products carrying shipping data, and stock statuses that contradict their quantity, can be fixed with one button because the finding already says what is wrong. The rest take one value, such as a weight, missing dimensions, a stock quantity, or a category, applied to a selection the check has already narrowed. Variations missing a weight are the best of it, because setting the parent's weight once clears every variation that inherits it, so a product with two hundred of them takes a single value. A check whose fix would be a guess is never offered one, since writing a wrong value under the banner of a fix is worse than the fault.
Export the work list
Premium Download the open findings as CSV, all of them or one check at a time. Each row carries both the check's key for a script to match and its readable name for a person to read. Dismissed findings are left out, because the export is the work list.