Menu
Request a storefront

LinkToLooks · Guides

Creator economy · Link mechanics

How do you audit 500 affiliate links in an afternoon?

The method we run before every publish, and the status-code table that stops you deleting links that work.

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.

Part of: For creators

Only 17 of 80 live product URLs answered a plain automated request with a 200 on 3 September 2026. Twenty-eight returned 403, twenty-eight returned 429, six failed to connect and one was a genuine 404. Every one of those URLs came out of a retailer's own in-stock product feed minutes earlier.

So the first rule of auditing links at scale is the one nobody puts first: a non-200 is not a dead link. A checker that treats it as one would have told us 79% of a working catalogue was broken, and a creator acting on that report would delete sixty-three good links.

Backpack-style car storage organiser photographed for a retailer product listing
Eighty of these, picked at random from a live feed. Sixty-three of them refused an automated request and all but one were fine. Image: Wayfair North America product listing
Zero-earnings disclosure: LinkToLooks holds no affiliate network approvals and has earned $0 in commission to date. We publish no income screenshots, no creator case studies and no testimonials, because we have none. Every figure here is either computed from live data during this run and dated, or quoted from a named source, or flagged as something we could not verify.

The status codes, and what each one is worth

This is the table to keep. The counts are from our own 80-URL sample; the interpretations are what each response means when you are checking somebody's shopping links rather than monitoring your own server.

ResponseHow many of 80What it usually meansWhat to do
20017The page served. Still worth a glance: a soft 404 is a 200.Pass, but spot-check the title.
40328Bot protection refused an automated client. The link works in a browser.Do not delete. Re-check by hand or with a real browser.
42928Rate limited — you asked one host for too much, too fast.Slow down and retry. This one is your fault, not the retailer's.
Connection error6DNS, TLS or a timeout. Frequently transient.Retry once, later, before believing it.
4041The only unambiguous failure in the sample.Fix or drop the link.

Notice which line is the smallest. One link in eighty was actually dead. Everything else in that table is a story about how the retailer treats robots, and the most common failure in a link audit is not a broken link at all — it is a checker being told to go away.

The five passes

This is the sequence we run before every deploy, on a site where the count is in the hundreds. It works on a spreadsheet of links just as well.

  1. Pass one: the internal pass. Before touching the outside world, check that every link you wrote points at something that exists on your own side. Ours repairs or drops links to pages that were never published, and it is the cheapest pass because it needs no network at all.
  2. Pass two: status codes, slowly. One request per URL, a real browser user agent, and a delay between requests to the same host. The 28 rate-limited responses in our sample are what happens when you skip the delay: twenty of the eighty URLs were on one domain.
  3. Pass three: follow the redirects, deliberately. Record every hop rather than only the destination. A link that now lands on a category page instead of the product is technically alive and commercially dead, and only the chain shows you that.
  4. Pass four: the images. A HEAD request per image URL. Product images rot independently of product pages, and a post with a broken packshot looks abandoned even when every link works.
  5. Pass five: eyes on the survivors. Whatever returned 200, open a sample by hand. A soft 404 — a ‘this product is no longer available’ page served with a 200 — passes every automated check ever written.

Keep reading

What we found about redirects

We expected chains and did not find them. Of the 80 URLs:

The practical reading is that a raw retailer product URL arrives short. Every hop between your reader and that page — a network's redirector, a shortener, a link-in-bio tool — is a hop somebody in the chain added on purpose. That is not an argument against adding them. It is an argument for knowing how many you have added, because each one is a thing that can drop a parameter, and two of our three did.

Cast iron dutch oven photographed on a white background for an industrial supplier listing
Two of the three redirects we observed dropped query parameters. Parameters are where the tracking lives. Image: Zoro product listing

Images are a separate audit

Product images fail on their own schedule, and a HEAD request answers the question in a fraction of the traffic a page fetch costs. Run them as their own pass. An earlier study on this site found 34 of 86 image hosts refusing or failing in one sample, which is a high enough rate that any post older than a few months deserves the check.

One caution that applies to images more than to pages: an image host that answers a HEAD request today can start refusing them tomorrow without the image having changed. Re-check before you conclude the picture is gone.

Triage: what to actually fix

Five hundred links produce a long report and most of it is noise. In priority order:

  1. Genuine 404s and soft 404s. These are the only ones costing you a reader right now.
  2. Redirects that lost a parameter. The link works, the tracking may not, and nothing in your dashboard will tell you.
  3. Links to products that resolved but are out of stock. A live page selling nothing is worse than a 404, because the reader spends effort before finding out.
  4. Broken images. Cosmetic, cheap to fix, and the first thing a reader notices.
  5. Everything that returned 403 or 429. Bottom of the list, and usually nothing to do at all.

Do the audit on a schedule rather than after a complaint. Ours runs before every publish, which is often; a creator with a back catalogue would get most of the benefit from once a quarter and all of the benefit from once a month.

What this method cannot do

Frequently asked

How do I check hundreds of affiliate links quickly?

Five passes: internal links first, then status codes with a real user agent and a delay per host, then redirect chains recorded hop by hop, then images by HEAD request, then a human sample of whatever returned 200.

Does a 403 mean my affiliate link is broken?

Almost never. In our 3 September 2026 sample, 28 of 80 live product URLs returned 403 to an automated request and the pages were fine in a browser. Only one URL in eighty was a genuine 404.

Why do I get 429 errors when checking links?

Rate limiting. You are requesting too much from one host too quickly. Twenty of our eighty sampled URLs sat on a single domain, which is exactly how it happens.

What is a soft 404?

A page that says the product is unavailable but returns HTTP 200. It passes every automated check, which is why the last pass has to be a person opening a sample.

How often should a creator audit their links?

On a schedule rather than after a complaint. Monthly captures most of the decay; quarterly is a reasonable floor for a large back catalogue.

Method

Keep reading

Last verified 3 September 2026 against 80 live product URLs sampled from this run's catalogue pull and requested individually

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 3 September 2026.