Menu
Request a storefront

LinkToLooks · Guides

Original research

1 in 5 retailer image hosts served us no image at all

We requested images from every host that appeared in a day of live US affiliate product feeds. One host in five served nothing at all, and the failures were mostly refusals rather than missing files.

Some links here are affiliate links — if you buy, the retailer may pay us a commission at no extra cost to you. We have earned $0 from them so far. Here’s how it works.

We requested images from every host that appeared in a day of live US affiliate product feeds. Of 61 distinct image hosts, 12 (19.7%) returned no usable image on any sampled URL, and those 12 hosts supplied 981 of the 3,642 distinct image URLs in the sample — 26.9% of them. 23 of the 29 individual failures were HTTP 403 Forbidden: the host answered and refused. Sample and method below; measured 2 September 2026.

A glass batter bowl photographed for a US home retailer listing in September 2026
This image loads. We cannot show you one that does not, which is exactly the problem: a refused image is invisible in every check except an actual request.Image: Wayfair product listing

The finding

MeasureValue
Distinct image hosts in the sample61
Hosts returning no usable image on any sampled URL12 (19.7%)
Hosts returning some but not all3
Distinct image URLs collected3,642
URLs sitting behind a fully failing host981 (26.9%)
Individual requests made160
Requests returning a usable image131 (81.9%)
Failures that were HTTP 403 Forbidden23 of 29

All figures measured on 2 September 2026 during a single run.

The sentence worth lifting: on live US affiliate product feeds on 2 September 2026, about one image host in five served no image at all, and more than a quarter of the image URLs in the sample sat behind one of those hosts.

Method

  1. Query the CJ product API for US advertisers across 32 keyword pulls spanning kitchen, apparel, electronics, books, toys, beauty, sport, pet, tools, jewellery, furniture, baby, outdoor, grocery, automotive and office categories.
  2. Collect every distinct imageLink returned: 3,642 URLs across 61 hosts.
  3. Group by host and sample up to 4 URLs per host, chosen with a fixed random seed so the run is repeatable.
  4. Request each sampled URL once with an ordinary desktop Chrome user-agent and image Accept headers, 12-second timeout, no referrer.
  5. Count a response as a usable image only when it returns HTTP 200, an image/ content type, and more than 200 bytes of body. A host counts as failing when no sampled URL passes that test.

160 requests, not 3,642: we sampled deliberately rather than crawling every URL, because hammering a retailer’s image CDN to make a point about retailers’ image CDNs would be a poor way to behave.

Which hosts failed, and how

Image hostURLs in sampleOutcome on every sampled URL
images.replacements.com953HTTP 403 Forbidden
covers.vitalsource.com7HTTP 403 Forbidden
sc-images.jcpenney.com6HTTP 403 Forbidden
www.maxaroma.com6HTTP 403 Forbidden
covers1.booksamillion.com2HTTP 403 Forbidden
covers3.booksamillion.com1HTTP 403 Forbidden
covers4.booksamillion.com1HTTP 403 Forbidden
image.sportsmansguide.com1HTTP 403 Forbidden
img.tjmaxx.com1HTTP 403 Forbidden
static.platform.michaels.com1HTTP 403 Forbidden
g.christianbook.com1Answered 200 with a non-image body
images.fun.com1Connection failed

Hosts are named because the finding is not interpretable without them: one host carries 953 of the 981 affected URLs, and a percentage alone would hide that.

The concentration is the story. One host, images.replacements.com, accounts for 953 of the 981 URLs behind a failing host — and it is the dominant image supplier for replacement china, glassware and discontinued dinnerware in these feeds. For a publisher working in that vertical, the practical position is that the deepest catalogue available comes with no usable photographs.

A glass food storage set photographed for a US deal retailer listing in September 2026
Hosts that answered were emphatic about it: 131 of 160 requests returned a real image body on the first try.Image: Woot! product listing

Three different failures wearing one name

Refusal (23 of 29 failures)

HTTP 403. The host is up, the path is right, and it declines. This is a policy decision somewhere in a CDN configuration, and it is invisible to any check that does not actually fetch the bytes.

Absence (2 of 29)

HTTP 404. The feed references an image that is no longer there. This is the failure everyone expects and it turns out to be the rarest.

Malformed URLs in the feed itself (2 of 29)

Two sampled URLs could not be requested at all, because they were not valid URLs. Checking that host’s full pool, 28 of its 82 image URLs contained unescaped spaces, in the pattern .../full/Harvey Performance Co DBA Harvey Tool_...png. A supplier name with spaces in it had been concatenated into a path without encoding. That is not rot, it is a feed defect, and it fails before any network request is made.

Keep reading

What this data cannot show

It cannot distinguish a block from a rate limit, a geography rule or a referrer policy. A 403 tells you the host refused this request from this address at this moment. It does not tell you it refuses everybody.

It is one network location and one moment. A host that answered at 06:00 might refuse at 18:00, and a host that refused us might serve a request from a different address without complaint.

Small pools produce coarse verdicts. Eight of the twelve failing hosts contributed fewer than 10 URLs, so a single unlucky sample would move them. The 19.7% host figure is therefore softer than the 26.9% URL figure, which is dominated by one large, consistently refusing host.

It says nothing about whether images are correct. We measured whether bytes arrive, not whether the photograph shows the product it claims to.

Last verified 2 September 2026 against 32 live CJ product-feed pulls and 160 individual image requests made during this run, with outcomes recorded per host

Why it matters to anyone publishing product content

Because every automated quality gate a publisher runs will pass a page whose images are dead. Markup validates. Structured data parses. Internal links resolve. The alt text is present and descriptive. And the reader sees a column of grey boxes.

We ran this because the images on our own pages come from these feeds, and we wanted a number rather than an impression. The number changed what we published the same day: the kitchen guides written in this run all avoid the host in the first row of that table, despite it holding the deepest catalogue we found.

Some links here are affiliate links. LinkToLooks has earned $0 from them to date — no network has approved us yet — so nothing on this page is picked to hit a payout.

Frequently asked

How much retailer image rot is there in affiliate feeds?

In our sample, 12 of 61 image hosts (19.7%) returned no usable image on any sampled URL, and those hosts accounted for 981 of 3,642 distinct image URLs, or 26.9%. Measured 2 September 2026 on live US product feeds.

What causes it?

Mostly refusal rather than absence. 23 of the 29 failed requests returned HTTP 403 Forbidden, meaning the host answered and declined to serve the image. Only 2 were 404 Not Found.

Is this the same as a broken product link?

No. These are the image URLs the feed supplies, not the destination links. A product link can work perfectly while its image refuses to load, which is why the failure is easy to miss.

Does the study prove those hosts block everyone?

No, and we say so explicitly. It measures what happened from one network location, at one moment, with one browser user-agent. A 403 can be a block, a rate limit, a geography rule or a referrer policy, and this method cannot tell them apart.

What should a publisher do about it?

Check image hosts before building pages on them, not after. A host that refuses your server will refuse your readers' browsers in the same way, and no amount of markup validation catches it.

Sources and scope

Keep reading

How this guide was made. We research and draft these guides with AI, then a person checks every price, link and factual claim against the source before it publishes. We work this way because it lets us re-verify prices across hundreds of guides in a day, which is what keeps the numbers here current; it does not decide what we recommend. Anything we could not verify is labelled as unverified rather than filled in.

LinkToLooks identification desk — we identify objects out of real photographs and check every listing by eye before we link it. Empty beats wrong. About the desk · published 2 September 2026.