At a glance
Number of products with broken images, missing image files, or upload errors. Broken images immediately reduce trust and conversion. A shopper landing on a PDP with a placeholder or 404’d image typically bounces within 3 seconds. Unlike most catalogue issues, image errors are fully merchant-controlled, the fix is technical (re-upload, fix URL, repair CDN) and produces an immediate, measurable conversion lift on the affected products.
| What it counts | The count of active products where the primary image is missing, returns a 4xx/5xx response, has no image_url populated, or is flagged as “error” in BC’s image processing. Excludes products that intentionally have no images (rare, typically B2B service products). |
| Sample type | Backend API data from BigCommerce catalogue + image-fetch validation, refreshed on the standard data refresh. |
| Why image errors matter | (1) Conversion: PDPs without working images convert at near-zero. Even a single missing-image PDP loses every visitor it gets. (2) SEO: Google Image Search and Google Shopping require working product images to surface the product; broken images = excluded from those traffic sources. (3) Trust: a shopper seeing a placeholder image in a category grid forms an immediate impression that the entire site is poorly maintained. (4) Ad performance: Google Shopping and Meta product feeds reject products with broken images, reducing ad reach. |
| Reading the value | (1) 0: ideal; entire active catalogue has working primary images. (2) 1-5: typical operational state; address bestsellers urgently. (3) Above 5: alert state; investigate CDN, image-host, or recent bulk-upload integrity. (4) Cross-reference bc_revenue_by_brand to identify whether high-revenue products are affected. (5) Pair with out_of_stock_count and missing_desc for the full catalogue-health picture. |
| Currency | absolute count. |
| Time window | snapshot. |
| Alert trigger | file_errors > 0 (BAD threshold at 5). |
| Sentiment key | file_errors (LOWER_IS_BETTER in SentimentClassifier; GOOD = 0, BAD ≥ 5). |
| Roles | owner, operations, merchandising |
Calculation
Worked example
A UK-based BigCommerce home-and-garden store, image errors reading on Wednesday 15 May 26.| Issue type | Count | Top product affected | Root cause | Recommended action |
|---|---|---|---|---|
| Image URL returns 404 | 14 | ”Garden Hose 30m” (top-50 SKU) | CDN purge wiped cache, source files moved | Re-upload originals |
| Image URL returns 5xx | 3 | Various | Image host intermittent | Retry; switch CDN if persistent |
| Image URL is empty/null | 18 | Recent imports from Brand X | Bulk import didn’t carry image URLs | Re-import with image mapping |
| Image fails validation (truncated) | 5 | Various | Upload errors during peak | Re-upload originals |
| Total file errors | 40 |
- 40 active products are showing broken or missing images to shoppers. Each PDP that loads with a placeholder converts at roughly 5-10% of the rate of a working PDP. Estimated direct revenue impact: at AOV £100 and category conversion of 2%, each broken-image PDP that should be earning £2-£4 per session is earning near-zero.
-
Decompose by issue type to fix in priority order:
- Empty/null image URLs (18, largest bucket): bulk-import gap. Re-import the affected source data with image URLs mapped. Single batch fix.
- 404s (14): CDN/host issue. The source files were either moved, deleted, or the CDN cache was purged without recaching. Re-upload originals to the canonical CDN path.
- Truncated/validation failures (5): upload errors during a high-volume operation. Re-upload originals; some may need source-file regeneration.
- 5xx server errors (3): image host intermittent issue. Retry; if persistent across 24 hours, escalate to image-host or switch CDN.
-
Triage by revenue exposure.
- The “Garden Hose 30m” being a top-50 SKU is the single highest-priority item. Fix that one first; revenue uplift is immediate.
- Cross-reference each broken-image SKU against the top-1,000 by revenue. High-revenue + broken image is the urgent fix list.
- Long-tail broken images (low revenue, low traffic) can be fixed in batch over the following week without urgency.
- The ad-performance angle. Google Shopping and Meta Catalog will reject any product with a broken image URL during the next feed refresh (typically 24-48 hours). Broken images quietly disable ad reach for those products; the merchant may not notice immediately because the ad accounts continue to spend on other products. Audit ad-feed errors as a complementary check.
-
Recommended response, in priority order:
- Hour 1: Identify the highest-revenue broken-image SKUs. Re-upload primary images.
- Day 1: Run bulk re-import for the 18 empty-URL products from Brand X.
- Day 1-2: Re-upload the 14 404’d products from local source archives.
- Day 2-3: Investigate the 5xx pattern; switch CDN if needed.
- Day 3-5: Re-upload truncated files.
- Result: file_errors moves from 40 to 0-2 within a week; revenue uplift on bestseller items immediate (within 24 hours of re-upload + cache propagation); ad feeds re-accept the products on next refresh cycle.
-
Prevention pattern. Most file_error spikes trace to one of:
- Bulk imports without image-URL mapping (recurring; standardise the import template).
- CDN migrations that don’t cache-warm (preventable; require cache-warm step in migration runbook).
- Source-file deletions that purge CDN (preventable; treat source files as primary, CDN as secondary).
- Upload failures during peak operations (mitigatable; queue uploads, retry on failure).
- Read the count. Above 5 triggers alert.
- Decompose by issue type (empty, 404, 5xx, truncated).
- Apply per-issue remediation (re-import, re-upload, retry, switch CDN).
- Triage by revenue exposure within each bucket.
- Re-audit at 24 hours to confirm fix.
| Time horizon | Action |
|---|---|
| First 1 hour | Identify highest-revenue affected SKUs. Re-upload. |
| First day | Bulk re-import for largest issue bucket. |
| First week | All file errors closed; ad feeds resubmitted. |
| Day 14 | Confirm Search Console and ad accounts clean. |
| Ongoing | Standardise import template; cache-warm policy. |
Sibling cards merchants should reference together
| Card | Why merchants reach for it |
|---|---|
missing_desc | Catalogue thin-content companion. |
missing_seo | SEO-metadata companion. |
empty_collections | Other thin-content failure. |
out_of_stock_count | Inventory companion. |
bc_revenue_by_brand | Brand-level revenue exposure. |
gads_wasted_spend | Ads spending on broken-image products. |
Reconciling against the vendor’s own dashboard
Where to look in BC: Products → Product list with image-status filter; Storefront → CDN settings; the affected PDP URLs directly. Why our number may differ:| Reason | Direction | What to do |
|---|---|---|
| CDN cache. BC may show a working image because it’s serving from cache; the canonical URL may be 404’d. | BC may understate | Test direct URL with cache busting. |
| Variant images. BC counts variant images separately; this card focuses on the primary. | Match scope | Use the same scope when reconciling. |
| Validation depth. BC’s check may be HEAD-status-only; Vortex IQ also validates content-type and minimum size. | Vortex IQ stricter | Confirm validation policy. |
gsc_image_index and Google Merchant Center diagnostics.
Quick rule: open the affected PDP URL in incognito to see what shoppers actually see.
Known limitations / merchant FAQs
Q: Our card shows 40 file errors but the storefront looks fine. Why? Because the storefront is serving from CDN cache. The canonical image URL may be 404’d, but the CDN edge node still has a cached copy. This is unstable, when the CDN cache expires (typically 24 hours to 7 days), the broken image will start to show. Fix the canonical URL now to avoid the future surprise. Q: Does this card check variant images or only primary? Primary by default. Variant-image errors (e.g., a product with 5 colour variants where the blue swatch image is missing) are a separate concern, tracked at the variant level if the merchant configures variant-image monitoring. Q: We have B2B service products with no images intentionally. Are they counted? Configurable. By default, products configured in BC with no images are treated as “intentional”; only products that have an image URL but it’s broken are flagged. If your store is mostly service-products, double-check the profile setting. Q: We re-uploaded the images but the card still shows errors. Why? The card’s validation runs on the standard data refresh (typically 30-60 minutes). After re-upload, give one cycle for re-validation. If it still shows after 2 hours, force a manual refresh or check whether the canonical URL changed (a re-upload may produce a new URL while the old one is still referenced). Q: Google Shopping rejected our products. Is that this card? Yes, broken-image is one of the top reasons Google Shopping rejects products. Fix the file_errors here, then refresh the Shopping feed. Most rejections clear within 24-48 hours of feed reprocessing. Q: We use a third-party DAM (digital asset manager). How does this card interact? The card validates the URLs BC stores. If your DAM serves images via signed URLs that expire, BC may have a stale URL even if the asset still exists. Configure your DAM to use stable URLs or set up automatic URL refresh in BC. Q: Should we delete products with broken images? No, unless the product is also discontinued. For active products, fix the image; for discontinued products, hide or 301-redirect. Deletion loses SEO equity, customer wishlist links, and ad-feed identifier continuity. Q: How does this card differ frommissing_desc?
missing_desc covers products without text descriptions; this card covers products without working images. A product can have rich descriptions and broken images (or vice versa). Both contribute to PDP quality; remediation is independent.