Ten thousand flagged products, and the overlay that caused them
The problem
A product catalogue synced to a major advertising platform had ten thousand items flagged with issues, stopping them serving in ads and organic shopping, with no obvious cause.
The number was the clue. Not roughly ten thousand flagged products, but exactly as many as there were products. When a fault count matches your row count precisely, you are not looking at a data quality problem. You are looking at something applied to everything.
The plugin
It composites branded frames onto product photographs and feeds the result into the advertising catalogue. Three screens: designing or generating the frames, assigning them to product categories with a priority order, and global settings behind a single master switch. Composites are cached on disk and rebuilt automatically whenever the product image or the frame changes.
The diagnosis
- The obvious suspect was the CDN blocking the platform’s crawler. Ruled out first, by fetching the files exactly as the crawler would: everything returned a 200, and some were even cache hits.
- A directory listing then found roughly ten thousand per-product images, about a gigabyte, left behind by an older renderer that nothing referenced any more.
- Those images had sale badges, price stickers and title strips baked into them. The platform’s catalogue policy prohibits promotional text and overlays on the product image itself. The count matched exactly.
The fix, and the judgement behind it
Switch the injection off, force a resync so the platform reads clean original photographs again, and add a one-click housekeeping action that removes the orphaned files and reports how much space it freed.
The larger lesson is about which layer the branding belongs in. A catalogue image is used everywhere — paid ads, organic shopping surfaces, the shop tab — so anything promotional baked into it is subject to review on all of them. Applying the frame at the ad creative level instead affects only the ad, which is where a promotional treatment actually belongs. A plugin that can do the wrong thing efficiently is not an improvement.
The outcome
A custom plugin for branded catalogue imagery, a diagnosis of the flags that matched the product count exactly, and a one-click cleanup of a gigabyte of orphaned files.
