Affiliate Link Audit: Finding the Broken Links That Look Fine

Heads up: this article contains affiliate links. If you buy through one we may earn a small commission, at no extra cost to you. It does not change what we recommend — see our affiliate disclosure.
A broken affiliate link does not look broken. That is the whole problem. It returns a 200, the page loads, the product is right there, the customer buys — and the commission goes somewhere else, or nowhere. Every automated link checker you could point at your site will report it as healthy, because by every measure those tools use, it is.
Which means affiliate links are the one category of link on your site that a standard crawler cannot audit for you. They need checking a different way, and almost nobody does it until they notice earnings that do not match traffic.
Why link checkers cannot help you here
A link checker asks one question: does this URL return an error? Affiliate tracking lives in the query string, and the query string has no bearing on whether the page loads.
Strip the tag entirely and the link still works perfectly. Change one character of it and the link still works perfectly. Point it at a product that was discontinued last year and, on most large retailers, you land on a search page or a category listing — still a 200, still no error, still no commission.
So the audit has to check the thing the crawler ignores: whether the tracking survived, and whether the destination is still the product you wrote about.
The four ways affiliate links fail silently
1. The tag is wrong rather than missing
This is the worst one, because it defeats every check you are likely to invent. A missing tag is at least visible if you look. A tag that is present, correctly formatted, and belongs to nobody looks identical to a working link.
Singular versus plural, a missing prefix, the wrong numeric suffix — these pass a glance, and a glance is what most audits amount to. We hit exactly this on this site, and the full account of how it happened is worth reading if you want the version with the near-miss in it. The short version: the tag in our own database looked authoritative and was wrong, and the only thing that settled it was resolving a link generated from the affiliate account itself.
2. Redirects that eat the query string
Any hop between your page and the merchant is a chance for parameters to be dropped. URL shorteners, some cloaking plugins, a site-wide HTTPS redirect that rebuilds the URL, a merchant migrating domains — each can arrive at the right page having quietly discarded the tracking.
The tell is that the final URL in the address bar is shorter than the one you published.
3. The product moved, was discontinued, or was replaced
Hardware gets superseded on a roughly annual cycle. A review written about a second-generation product, linked to a first-generation listing, converts badly and reflects poorly on the review — the reader arrives at something that does not match what they just read.
We found one of these during an audit: a review covering the current generation, pointing at the previous generation’s listing. Nothing errored. It simply sent readers to the wrong product.
The worse variant is a link that lands on a search results page rather than a product page. It still returns 200. It converts close to zero, because the visitor now has to shop rather than buy.
4. Formatting damage from copy and paste
Mundane and common: a smart quote where a straight one belonged, an encoded ampersand breaking the parameter chain, a trailing space, a line break inserted by a text editor. All of these produce a link that works and a tag that does not parse.
The audit, step by step
This takes an afternoon the first time and about twenty minutes a quarter afterwards.
Step 1: Get every outbound link in one place
Export all external links from your site. Any site crawler will do this, and if you have REST access you can pull post content directly and extract the anchors. Filter to the merchant domains you actually work with.
The output you want is a flat list: page, anchor text, destination URL.
Step 2: Count your tags before you check anything else
Before testing a single link, group the list by tracking tag and count. You are looking for the number of distinct tags. If you expect one and see two, you have just found your problem in about thirty seconds — and this is the single highest-value step in the entire audit.
Two variants of your own tag is the classic finding. So is a tag from an old account, or a stray one that came in with copied content from a template.
Step 3: Verify the tag against the source of truth
Do not verify against your own site, your notes, or your memory. All three can be confidently wrong.
Log into the affiliate dashboard, generate a fresh link for any product, open it, and read the tag from the URL you land on. That value came from the account that pays you, and it is the only one that cannot be mistaken.
Then compare it character by character against what your site outputs. Not against what you think it should be.
Step 4: Follow the redirects
For a sample from each merchant and every shortened or cloaked link, follow the chain to its end and inspect the final URL. You are checking that the tracking parameter is still attached after the last hop.
Any tool that shows the full redirect chain will do. What matters is comparing the parameters at the start and the end, not just confirming you arrived somewhere valid.
Step 5: Check destinations against what you wrote
The slowest step, and the one that catches the mismatches. For each product link, confirm the destination is the specific product the article discusses — right generation, right variant, right capacity.
Two things to flag: links landing on search or category pages rather than a product, and links to a different generation than the article covers.
Step 6: Confirm the compliance markup survived
While you have the list open, check that affiliate links still carry the disclosure attributes your programme requires. Theme updates, migrations and content rebuilds strip these more often than you would expect, and it is a policy problem rather than a revenue one.
Step 7: Prove it end to end
The steps above verify the markup. Only one thing verifies the money: click one of your own live links and confirm the visit appears in your affiliate dashboard the next day.
Everything before this is inference. This is evidence, and it is the step most people skip.
What we actually found
Running this on this site turned up three things, none of which had produced any visible symptom:
- A tag that was subtly wrong across every product page — present, plausible, and not ours.
- A review pointing at the previous generation of the product it reviewed.
- Nine products linking to search results pages rather than specific listings, which convert close to zero.
Not one of these would have shown up in a link checker, an analytics report, or a site audit. The only reason any of them surfaced is that someone went looking at the query strings.
Doing it at scale
Past a couple of hundred links, manual checking stops being realistic. Two things make it tractable.
Centralise the tag. If every affiliate link on your site draws its tracking value from one place — a setting, a constant, a filter that rewrites links on output — then fixing a wrong tag is a one-line change instead of an edit to every post. It also means the failure mode becomes “all links wrong” rather than “some links wrong”, which is far easier to notice.
The catch worth knowing: if a filter rewrites tags on output, your stored content can be wrong indefinitely while your live pages look correct. That is a safety net, not a fix, and it hides the problem from exactly the audit you are running. Fix the source as well.
Automate the counting, not the judging. Extracting links and grouping them by tag is trivial to script and catches the highest-value error. Deciding whether a destination matches the article still needs a person.
How often
| When | What to check |
|---|---|
| Every new post | Tag correct, destination is the exact product, disclosure attributes present |
| Monthly | Tag count across the site — one query, catches the worst failure |
| Quarterly | Full destination check, redirect chains, one real click verified in the dashboard |
| After any migration, theme change or bulk edit | Everything. These are when links break silently. |
Related reading
The narrative version of the tag failure, including how we nearly “fixed” it with the wrong value, is in the tracking ID mistake that broke every link. If you are earlier than that and still choosing a model, AdSense versus affiliate marketing covers what each pays, and how affiliate marketing works is the starting point.
Frequently asked questions
Will a broken affiliate tag show up in analytics?
No. The click leaves your site normally and the destination loads normally. Analytics records an outbound click either way. The only place the absence appears is your affiliate dashboard, as earnings that do not match traffic.
How do I know which tag is really mine?
Generate a fresh link from inside your affiliate dashboard, open it, and read the tag from the resolved URL. Do not trust your site, your notes or your memory — all three can be wrong with total confidence.
Do shortened links break tracking?
They can. A shortener that forwards to the full URL preserves parameters; one that rebuilds the destination may not. Follow the chain and inspect the final URL rather than assuming.
What if a product is discontinued?
Point the link at the current generation and update the article to match, or remove the link. Leaving it pointed at a dead listing or a search page is worse than having no link, because the reader arrives somewhere that contradicts what they just read.
How long does the audit take?
An afternoon the first time on a site with a few hundred links. Twenty minutes a quarter after that, provided you fix the source rather than patching individual posts.
Reference. The disclosure and link requirements described here come from the Amazon Associates Program Operating Agreement.
Do the tagging half automatically: paste your links into the Amazon Affiliate Link Checker.