Sample report
What your first audit looks like
This is a representative first audit for a fictional outdoor retailer, "Alpine Trail Co.", with a 2,384-item catalogue and the problems most real feeds arrive with. The store is invented; the checks, severities, and guidance below are imported from the live product, word for word. Your own first audit lands minutes after you connect a feed.
Feed quality
8.1/10
Illustrative result for a fictional store. It is not a customer benchmark.
Ready to serve
1,217
of 2,384 items
Could be improved
1,010
performance left on the table
Fix required
157
will be disapproved
Required fixes
These stop items serving at all. Fix these first.
96 items Missing availability availability
Why it matters: Required field. The item is disapproved without it.
How to fix it: Map the stock status column. SKULayer normalises common values (yes/no, true/false, 1/0) automatically.
e.g. ALP-1204, ALP-1207, ALP-1311, …
43 items Price is zero price
Why it matters: Zero-price items are disapproved outside specific programmes. They are usually placeholder rows rather than real listings.
How to fix it: Usually placeholder rows or out-of-stock exports. An exclude rule on "price eq 0" keeps them out of the channel until fixed.
e.g. ALP-0088, ALP-0092, ALP-2210, …
12 items Missing image imageLink
Why it matters: Shopping is a picture format. No image means disapproval, and near-zero clicks anywhere else.
How to fix it: Map the image column, or fix items whose image field is genuinely empty in the platform.
e.g. ALP-1544, ALP-1548, ALP-1550, …
6 items Duplicate product ids id
Why it matters: Channels either reject duplicates outright or merge them unpredictably. You lose control of which price and image shows.
How to fix it: Usually variants exported without a variant suffix. Fix the export, or use a rule to combine id with a distinguishing column (size, color).
e.g. ALP-0450, ALP-0450, ALP-0731, …
Recommended improvements
Items still serve, but weaker than they should.
486 items Google product category not in the taxonomy googleProductCategory
Why it matters: googleProductCategory must come from Google’s product taxonomy, as the full path ("Furniture > Sofas") or its numeric id. Unrecognised values get ignored, so Google guesses your category instead: wrong searches, wrong price comparisons, and policy checks applied to the wrong product kind.
How to fix it: Use Categorize products on the feed page to map your product types onto valid categories in one pass, or fix single values with a set rule. The builder suggests valid categories as you type. Note: SKULayer validates against the en-US taxonomy; feeds using a localised (non-English) taxonomy can flag here even when Google accepts them.
e.g. ALP-0012, ALP-0013, ALP-0019, …
217 items Non-standard availability value availability
Why it matters: Channels only accept in stock, out of stock, preorder, backorder. Anything else is rejected.
How to fix it: A lookup or replace rule mapping your values to the standard set. SKULayer already normalises the common ones on ingest.
e.g. ALP-0301, ALP-0305, ALP-0344, …
210 items Image served over http imageLink
Why it matters: HTTP image URLs are worth reviewing for reliability and consistency. A broken or unreachable image can stop a product from serving.
How to fix it: A replace rule on imageLink from "http://" to "https://". Most CDNs serve both.
e.g. ALP-0801, ALP-0802, ALP-0810, …
132 items No GTIN, MPN or brand gtin
Why it matters: Identifiers connect your item to Google’s product graph. Where identifiers exist, providing the correct GTIN, brand and MPN helps Google understand which product the offer represents. Gaps here can be difficult to diagnose because they may not appear as a hard disapproval.
How to fix it: GTINs (barcodes) come from your supplier; failing that, set brand + MPN with rules. Even brand alone helps.
e.g. ALP-1901, ALP-1912, ALP-1940, …
74 items Missing description description
Why it matters: Descriptions feed the matching engine. Without one the item shows for fewer, less relevant searches.
How to fix it: Copy another text column across with a rule as a stopgap; write real descriptions for your best sellers first.
e.g. ALP-2101, ALP-2107, ALP-2118, …
58 items Title over 150 characters title
Why it matters: Google truncates at 150 and mostly shows ~70. Anything important buried at the end is invisible in the ad.
How to fix it: Front-load brand, product type and key attribute. A replace rule can strip boilerplate suffixes ("| Free Delivery | Shop Now") that eat the limit.
e.g. ALP-0501, ALP-0577, ALP-0603, …
31 items Title in ALL CAPS title
Why it matters: All-capital titles can breach editorial requirements and are harder to scan.
How to fix it: Fix the source export, or use a case-normalisation rule and preview the result before saving.
e.g. ALP-1101, ALP-1108, ALP-1119, …
17 items Sale price not lower than price salePrice
Why it matters: Google only shows the sale annotation (the struck-through original next to the new price) when the sale price is lower than the base price, and when the discount lands between 5% and 90%. At or above the base price there is no sale to show, so you carry the sale attributes and get nothing for them.
How to fix it: Usually the price and sale price columns are the wrong way round, or a finished sale was left in the export at full price. Clear sale price when there is no sale rather than repeating the base price.
e.g. ALP-1702, ALP-1719, ALP-1733, …
And what you sent us, field by field
Every field in the file gets a row, in your own words, with the number of products carrying a value for it. Six of Alpine Trail Co.'s are below. This is the part that tells you whether a problem is a missing field or a missing value, and those need opposite fixes.
product_name Read as a shopping attribute 2,384 of 2,384
ean Kept, pointed at nothing 1,873 of 2,384
web_category Kept, pointed at nothing 2,372 of 2,384
google_product_category Read as a shopping attribute 486 of 2,384
short_desc Read as a shopping attribute 2,310 of 2,384
colour Empty on every item 0 of 2,384
Then the attributes that are not in your file at all
- GTIN (barcode) Not under a name Google reads. The barcodes are in the file, sitting in a column called ean, on 1,873 items.
- MPN (part number) Nothing in the file carries one. This is the identifier a supplier has to give you, so it is a real gap rather than a mapping job.
An audit can only flag what it can see. A product with no barcode and a product whose barcode is sitting in a column called ean look identical in every report you have ever read, and only one of them is a five-minute fix.
Then the findings become rules
Six rules fix this catalogue: clicked from a pack, described in a sentence, or drafted by your AI. Each one previews against real items before it saves.
Standardise availability wording
A lookup rule maps "In Stock", "yes", "1", and "usually ships in 2 days" onto the four values Google accepts.
Resolves 313 findings (96 missing after fallback, 217 non-standard).
Serve images over https
Replace http:// with https:// on every image and landing-page URL.
Resolves 210 findings in one pass.
Map product types to Google categories
A reviewed lookup table maps 168 product types onto the Google taxonomy; AI drafts it, a human approves every row.
Resolves 474 of 486 category findings; 12 unmatched types stay flagged.
Fill missing brands from the manufacturer field
A fallback rule fills empty brands from a source column that already holds them.
Resolves 91 of 132 identifier findings; 41 items with no usable source stay flagged.
Shorten titles on a word boundary
Titles over 150 characters lose their boilerplate suffix, never mid-word.
Resolves 49 of 58; 9 need a human look. Plus 31 ALL-CAPS titles normalised, 17 stale sale prices cleared.
Exclude placeholder rows
Items with a zero price and no stock are excluded until the source fixes them.
Excludes 43 items (and their 43 findings) rather than shipping broken listings. Duplicate ids combined with a variant suffix.
The next run, source vs delivered
Every audit from then on shows both sides, so "here is what the rules fixed" is a screenshot rather than a claim.
In the source feed
1,382
issues across 2,384 items
Resolved by rules
1,234
fixed or excluded before delivery
In the delivered feed
148
score 9.8/10 · nothing new introduced
The 148 that remain are the honest tail: 74 descriptions and 41 identifier gaps only the source can supply, 12 unmatched categories, 12 missing images, 9 titles worth a human look. The audit keeps saying so until they are fixed, and one-off items can be corrected by hand from the product page.
A note on honesty: Alpine Trail Co. does not exist, and these counts are illustrative. The check inventory, severity levels, and every word of the why-and-how guidance are the live product's own, imported from the same source the app renders. Connect a real feed and the same report arrives about your catalogue, in minutes.
The Free plan re-audits your feed daily, with one-click fixes for what it finds and a weekly digest email when something changes. No card needed.