Tracking clicks on shared links

A click count from a redirect service and a page-view count from your analytics measure different things, and they will never agree. The redirect sees every request to the link, including preview crawlers and bots; your analytics sees only visitors whose browser ran your script. Both are useful and neither is “the real number”.

Understanding the gap prevents a lot of pointless reconciliation.

What a redirect counts

Every HTTP request to the short URL. That includes:

  • Real people clicking.
  • Preview crawlers fetching the URL to build a card — often several per platform, sometimes repeatedly.
  • Security scanners in email and chat systems, which follow links to check them.
  • Feed readers and archivers.
  • Anything that saw the link in a page it crawled.

So a fresh link posted to a few platforms accumulates requests immediately, before anyone has seen it. On a link with modest real traffic, non-human requests can be a large share of the total.

Good shorteners filter obvious bots by user agent. It’s a partial fix — plenty of automated requests present as ordinary browsers.

What your analytics counts

Sessions where a browser loaded your page and ran your script. Excludes crawlers, and also excludes:

  • Visitors blocking the script.
  • People who left before it loaded.
  • Browsers with the relevant features restricted.

So this number is lower than reality for humans, while the click count is higher. Neither brackets the truth neatly, but the direction of each error is knowable, which is most of what you need.

Which to use for what

Comparing two links, or two channels, in the same period. Click counts are fine. The bot component is roughly similar across comparable links, so relative differences survive even though absolutes don’t.

Understanding what visitors did. Only analytics can tell you this. A click count knows nothing about whether the page was read.

Attribution. Analytics with UTM parameters, because it connects arrival to behaviour.

Whether anything happened at all. Click counts, immediately. Useful in the first hour of a campaign when analytics hasn’t settled.

The mistake is treating them as two attempts at one number. They’re two instruments measuring two things.

Making click data less noisy

Look at the shape, not the total. A campaign’s click curve — spike, decay, plateau — is informative even when the absolute number is inflated.

Compare like with like. Same platform, same time of day, same age of link.

Ignore the first minutes. The initial burst is heavily crawler traffic as each platform builds its card.

Watch for a flat baseline. Steady clicks on an old link with no fresh sharing is usually automated re-checking rather than a durable audience.

Use one link per placement. Distinct short links per channel gives you a per-channel count without UTM parameters in the visible URL. Practical for print, QR codes, and anywhere the URL is read by a human.

The privacy dimension

Click tracking is surveillance, at small scale, and worth being deliberate about.

A redirect service sees who clicked what and when — IP address, user agent, referrer, timing. That’s personal data in most jurisdictions, and it’s held by whoever runs the redirect. If that’s a third party, you’ve routed your readers through them.

Reasonable positions:

Track at the aggregate level you actually need. A count per link per day answers most real questions. Per-click detail with IP addresses usually answers none of them and creates an obligation.

Set a retention period and honour it. Click logs kept indefinitely are liability without value.

Prefer first-party. A redirect on your own domain, with logs you control, is better than a third party accumulating your readers’ click history alongside everyone else’s.

Don’t put personal identifiers in URLs. A link containing an email address or a user ID leaks that identifier to every system the link passes through — chat clients, security scanners, and anyone the link is forwarded to.

What the numbers won’t tell you

Whether the preview worked. A card with a broken image can still get clicks; a beautiful one can get none. Neither count isolates the card’s contribution.

Whether the audience was right. Clicks measure attention, not fit.

Why people didn’t click. The vast majority of impressions produce no click, and nothing in your data distinguishes “didn’t see it” from “saw it and wasn’t interested”.

So click data is best at comparison and worst at explanation. Use it to tell whether this performed better than that, and use analytics to understand what happened next.

A minimal setup that works

For most people: one short link per placement for counting, UTM parameters on channels where attribution is otherwise impossible, og:url set to the clean canonical address so shares consolidate, and analytics on the destination for anything about behaviour.

That gives you comparison and understanding from the instruments suited to each, without pretending either number is the truth.