2
3 Comments

Link rot is quietly an attribution problem, not just a broken-link problem

Spent part of this week auditing every live link across trimy.io's own directory-submission assets (screenshots, listing URLs, the demo video description) and got reminded of something that doesn't get talked about enough: link rot isn't just "oops, 404" - it's a slow, silent attribution leak.

This version will actually use up your data, not just be a useless click.

A broken link is upfront about its problem. As soon as someone tries to use it, they'll know it's not working - either because they get an error message or because they can see that nobody's been able to click on it. It's frustrating, but at least you find out right away and can fix it.

The real issue is when a link quietly sends you somewhere different than expected, or gets changed without anyone noticing. This can happen when old campaign links are reused for new campaigns, or when the tracking codes, like UTM parameters, are edited by hand and mistakes are made. Sometimes, the page that the link sends you to might be replaced with something new, and this can affect how people interact with it. The problem is, even though these changes happen, the click data keeps coming in like nothing is wrong. There are no error messages or alerts to warn you that something is off. This means that your numbers for one quarter might be mixed up with numbers from another quarter, and you won't even know it's happening. It's like having bad data sneaking into your reports without you realizing it.

The audit that actually catches this:

  • Pull every live campaign link older than 90 days
  • For each one, check: does the destination URL still match what the UTM parameters claim it's for?
  • Check edit history if your tool keeps one - a link that's been edited 3+ times since creation is a candidate for "quietly means something different now than when the data started accumulating"
  • Flag anything where the answer isn't an immediate, obvious yes

Here's the thing: when you really dig in, you'll often find that most teams have a few links that are still being tracked, but nobody can quite recall what campaign they were supposed to be for in the first place. And yet, the click data from these links is still being counted and affecting the numbers in some dashboard or another. It's a pretty uncomfortable discovery, to be honest.

Worth a recurring quarterly audit, not a one-time cleanup - link rot in this sense keeps accumulating as long as links keep getting reused.

Has anyone developed actual tools to automate this process, or are we limited to doing it manually every quarter?

posted to Icon for group Growth
Growth
on August 10, 2026
  1. 1

    On your closing question: the automation exists, but it's mostly something you build once, not a product you buy.

    The move that kills this whole class of bug is to stop putting the destination and the channel tag inside the UTM string where a human can edit them, and route every campaign link through a redirect endpoint you own, so the destination and code resolve server-side at click time.

    Then "what does this link point to now" is a lookup, not an archaeology dig, and you can run a nightly job that flags any code whose resolved destination changed since it was first seen.

    The failure mode that bit me hardest wasn't a changed destination though, it was an unknown or mistyped code silently defaulting to a real bucket (a typo'd channel quietly filed under cold email), so it never 404s and never looks wrong, it just pollutes a segment that matters.

    Fixing that was one line of intent: unknown codes resolve to a loud "unknown" bucket, never to a plausible default.

    Are your links already going through your own redirect layer, or straight to the destination with UTMs, because that one choice decides whether any of this is auditable?

  2. 1

    The real measurement problem here is that broken attribution looks exactly like good data until you audit it. A 404 is a measurement that something is wrong - the signal is immediate. Silent attribution drift has no signal at all. The URL still works, the tracking code still fires, the numbers still accumulate.

    What you've identified is a fundamental gap in how most teams measure campaign data: they measure "did the click happen" when they should measure "is this click still counting what we intended it to count." Those are completely different measurement systems.

    The quarterly audit you describe is essentially a check on your measurement system itself - not "are the links working" but "is our measurement process still tracking what we think we're tracking." Most teams never audit their measurement system. They audit the results the measurement system produces, which is why silent attribution leaks persist for months.

    That's the leverage here. Once you make "is our attribution measurement system still valid" a recurring question with a real answer (not just a guess), you catch these leaks in weeks instead of quarters. And you can then ask systematically: which measurement boundaries have gotten fuzzy, which UTM parameters have drifted, which campaign definitions are no longer tracking what they claim to track.

  3. 1

    The silent attribution part is much more interesting than the broken-link problem. A 404 gets fixed because someone notices it; incorrect attribution can keep looking like valid data for months. The edit-history check is a particularly good signal too.

Trending on Indie Hackers
Co-founders suck… User Avatar 82 comments I built an AI that finds the right product for your customers User Avatar 45 comments I built a tool to find people already talking about problems your product solves User Avatar 34 comments The easiest version of generation history was probably the least useful one User Avatar 32 comments What 100B+ Claude tokens actually look like inside a tiny company User Avatar 24 comments 4 months to go. Chrome extension live. Web search integrated. 4 users. $0 revenue. Still here. User Avatar 15 comments