A post that earned well in its first three months and earns nothing in its second year has usually not been outranked. Check the analytics and the traffic is often still there: same impressions, same position, same readers arriving. What changed is what happens after they arrive.
This is the most expensive failure in affiliate publishing because it is completely silent. Nothing errors. Nothing looks broken. Your dashboard shows a slow decline you will probably explain to yourself as seasonality.
The four things that actually break
1. The product sold out
Your card still says Buy. The reader clicks, lands on a page telling them the item is unavailable, and leaves — not just the merchant, usually your post too. You lose the commission and some of the trust that made them click.
This is the most common one and the least visible: the link works perfectly. Nothing you could scan for would flag it.
2. The price moved
You wrote "€89" in March. It is €134 now. The reader arrives, sees a number that does not match what you promised, and reads it as either carelessness or bait. Discounts cut the other way and cost you just as much: a product that dropped to €59 is a much better pitch than the one you are still making.
3. The merchant left the network
This one is genuinely nasty. The link still resolves, the product page still loads, the reader still buys — and you earn nothing, because your tracking parameter now belongs to a partnership that ended. Every metric on your side looks healthy. The money simply stops.
4. The URL changed
Merchants restructure their shops. Old product URLs 404, or redirect to a category page, or to the homepage. A redirect to the homepage is the worst outcome of the four, because it looks like a working link to any checker you might run.
How to audit what you already have
You can do this by hand for a small site, and you should do it once even if you plan to automate afterwards — the result tends to be more sobering than expected.
- List your product posts. Sort by earnings if your network lets you, and start with the ones that used to earn most. That is where the money is leaking.
- Open the top ten and click every product link. Not a link checker — those catch 404s and miss all four failures above. Actually look at what loads: is it the product you wrote about, is it in stock, does the price match?
- Check your network's merchant list against the merchants in those posts. Any that no longer appear are the silent case: working links, no commission.
- Write down the ratio. Dead or wrong versus total. That number is what you are deciding about.
Ten posts is an hour or two. It is worth doing before you decide this is not a problem you have.
Why a link checker will not save you
The obvious tool is a broken link checker, and there are good ones for WordPress. They will find genuine 404s, which is one quarter of the problem.
They cannot tell you that a product is out of stock, because the page loads. They cannot tell you the price changed, because they do not read prices. They cannot tell you a merchant left the network, because the URL still works. And a redirect to the merchant's homepage passes as a healthy link.
A link checker verifies that a page exists. Almost none of what costs you money is about a page not existing.
Fixing it once versus fixing it for good
Whatever you find in the audit can be repaired by hand: replace the sold-out product, correct the price, swap out the departed merchant. That takes an afternoon and buys you a few months, because the same four things start happening again the moment you close the tab.
The reason they keep happening is that your posts hold a copy of the product, made once at the moment you wrote them. The merchant's actual product moves on; your copy does not.
Working from a product feed removes the copy. The card in your post points at a record that is re-read from the merchant every night, so the price in a two-year-old post is the price the merchant charges today, and a product that sells out is marked as such wherever it appears. Getting a feed into WordPress is a ten-minute job and covered separately.
Two of the four failures need more than fresh data, though, because they need a decision from you:
- A product that disappears entirely has to be replaced by something, and only you know with what. What the plugin can do is tell you it happened and list every post affected — MyFeeds Pro flags dead products and names the posts that still link to them, which turns an afternoon of clicking into a short list.
- A merchant leaving the network is a commercial event, not a technical one. Nothing in WordPress can see it. Compare your network's merchant list against the feeds you have connected, once a quarter.
The habit worth keeping either way
Whether you automate or not, put a recurring reminder in your calendar: every quarter, open your five best-earning posts and click through them as a reader would. Not a scan — actually look.
Automation keeps the data correct. It does not tell you that the product you recommended in 2024 has been superseded by a better one, that your top post now recommends something you would no longer stand behind, or that the merchant you send everyone to has become unpleasant to buy from. Those are editorial questions and they stay yours.
What you should never be doing is finding out from a reader.