Back to Blog

Best URL Shorteners That Filter Bot Clicks From Analytics

Nearly every shortener filters bots. The question worth asking is whether it will tell you how many it removed, and what it does with the fast-growing fourth category: AI assistants fetching your link on someone's behalf.

Karan Bhakuni
Karan Bhakuni
Founder, Flyn
ComparisonAug 30, 202615 min readUpdated Aug 30, 2026
Best URL Shorteners That Filter Bot Clicks From Analytics

Your Click Count Is Four Things Wearing One Number

A short link reports 400 clicks. That number is a blend of at least four populations that behave nothing alike, and the useful question is not how big it is but what it is made of.

A stacked bar splitting raw clicks into human, bots, link previews and AI agents, above three questions a tool should answer about filtering, disclosure and AI traffic
Every shortener answers the first question. Most answer the second. Almost none answers the third.

Real people

The population you actually want. Everything else is noise dressed as signal, and a safety checker hitting your link counts as noise too.

Crawlers and scanners

Search engine bots, security scanners checking whether your link is malicious, uptime monitors, and scrapers. These arrive fast, often in bursts, and can outnumber humans entirely on a link that has been posted somewhere public.

Slack, WhatsApp, iMessage, Discord and Twitter all fetch a URL to build a preview card the moment someone pastes it. One person sharing your link in a busy channel can generate dozens of fetches before a single human clicks.

AI assistants

The newest category and the one nobody had to think about two years ago. An assistant fetching your page to answer somebody's question is not a visitor, but it is also not a crawler indexing you. It represents a person who asked about your thing, which makes it genuinely interesting rather than merely noise.

Note

This is signal-based screening, everywhere. Every vendor here classifies by user agent and request pattern, and none can promise certainty about any single visitor. Bitly says so plainly, warning that its reports "may still contain some clicks generated by bots". Treat all of these numbers as good at scale rather than exact.

Everyone Filters. Fewer Will Show You the Number

We checked nine shorteners against their own documentation in August 2026. All of them filter. The interesting split is disclosure.

Table of nine shorteners showing whether the filtered bot count is visible, with Flyn, Linkly, TinyURL, Short.io and Cuttly showing it, Rebrandly on paid exports only, and Bitly, Dub and T.LY removing silently
Six of nine show the number. This is not the moat we assumed it was.
ToolFilters botsShows the filtered countWhere
FlynYesYes, on the free planPer link, plus an all-time human share
LinklyYesYesBeside the click total, plus a Robots tab by bot name
TinyURLLabels rather than removesYesBot Clicks and Human Clicks as separate metrics
Short.ioYesYesThree separate places in the product
CuttlyYesYes, paid plansA Bots chart, one bar per bot type
RebrandlyYesPaid exports onlyHuman and bot columns in custom reports
BitlyYesNo, silentNot documented anywhere
DubYesNo, silentStated only in a 2023 changelog entry
T.LYYesNo, silentFilters crawlers, publishes no count

We were wrong about this being rare

Worth stating outright, because we had it in our own notes as a differentiator: showing the bot count is common. Linkly puts it directly beside the total. TinyURL treats bot and human as two labelled metrics rather than filtering at all. Short.io surfaces it in three places. If a comparison tells you only one vendor does this, it has not checked.

TinyURL's approach is different in kind

TinyURL labels rather than removes: it captures Bot Clicks and Human Clicks as separate metrics and exposes a per-click flag through its API. That is arguably more honest than filtering, since nothing is discarded, and it does mean the headline total on a TinyURL link includes bots unless you read the split.

A filtered number you are never shown is just a smaller number you still cannot verify.

The Gap That Actually Exists

If bot disclosure is common, what is not? Treating AI-assistant traffic as its own thing.

Three panels showing Flyn reporting AI assistant traffic as a per-link channel, Bitly exposing a 90-day account total via API only, and seven other vendors not documenting it at all
One vendor reports it per link. One reports an aggregate you have to go and fetch. Seven do not describe it at all.

Why it is worth separating

An assistant fetching your link is a signal about demand, not just noise. Somebody asked a question, an AI went to your page to answer it, and no human ever saw your analytics-tracked visit. Lumped into "direct traffic" that is invisible. Filtered out entirely, it is deleted. Named as its own channel, it is a measurement of how often you are the answer.

What Flyn does

The bot-excluded human count is the headline number on every plan including free, and the traffic-quality view showing human beside filtered-bot is free too. Pro adds the AI Assistants channel alongside the geo, city, device, OS, browser and referrer breakdowns, so assistant traffic sits in the same report as everything else rather than being thrown away.

ToolAI-assistant trafficGranularityWhere you read it
FlynNamed channelPer linkIn the analytics report, Pro
BitlyA 90-day totalWhole group, one figureAPI or MCP only, not the dashboard
RebrandlyNot documentedn/an/a
Short.ioNot documentedn/an/a
LinklyNot documentedn/an/a
CuttlyNot documentedn/an/a
TinyURLNot documentedn/an/a
DubNot documentedn/an/a
T.LYNot documentedn/an/a

What the rest do

Rebrandly, Short.io, Linkly, Cuttly, TinyURL, Dub and T.LY do not document AI-assistant traffic as a category anywhere. That is not an accusation of a missing feature; it means the vendor does not describe it, so do not buy expecting it.

Bitly Is More Interesting Than the Simple Version

Bitly deserves its own section because the easy summary is wrong, and we published the easy summary ourselves before checking properly.

Two stacked panels showing that Bitly filters agentic traffic out of click data in the product while exposing an agentic_traffic 90-day group total through its API
Both statements are true simultaneously, which is why the loose version of this claim keeps circulating.

In the product, it is gone

Bitly's help centre is direct: agentic traffic is filtered out of your click data the same way crawlers are, and the numbers on the Links page and Analytics dashboards reflect visits from people.

In the API, it is a number

Bitly also added an agentic_traffic dataset to its group analytics, described in its own tools reference as counting clicks from AI agents and assistants, always returning a fixed 90-day total. So the data exists: group-level, one rolled-up figure, reachable through the API or its MCP server.

What you can and cannot say about it

You cannot say Bitly discards AI traffic, because it does not. You can say you will not find it per link, over time, or anywhere in the dashboard. We corrected our own article on which clicks came from ChatGPT for exactly this, and the correction is worth more than the original claim was.

Watch out

Vendor behaviour in this area is changing quickly and most third-party comparisons are stale. Bitly's agentic dataset landed in August 2026. Anything written before that describes a different product. Check the changelog, not the listicle.

What Bot Traffic Does to Decisions

The reason any of this matters is that unfiltered numbers change what you do, usually in the direction of wasting money.

A/B tests break first

Bots do not distribute evenly across a weighted rotation. A scraper that hammers one branch will hand you a winner that is not a winner. If your rotator reports per destination but your click count includes crawlers, the comparison is between one real page and one crawled page.

Affiliate campaigns look better than they are

Affiliate links attract scrapers, and a click count inflated by them makes a poor offer look promising. This is why cloaked affiliate links deserve a filtered count underneath them.

If you judge a channel by clicks and a share of those clicks are automated, you will scale spend into a number that cannot convert. Our guide to click fraud prevention covers the diagnostics for spotting it.

Pro tip

Do one audit before you trust any tool's numbers: post a fresh link into a busy Slack or WhatsApp group and click it exactly once yourself. If the tool reports more than one human click, its preview filtering is not working, and every number after that is suspect.

Choosing on This Criterion

Four decision cards covering wanting the bot count free, wanting AI traffic per link, being on a tool that filters silently, and auditing a suspicious spike
Four situations, and the tools each points at.

If you just want the number, free

Flyn, Linkly and TinyURL all show it without a paid plan, and Short.io surfaces it in three places. Any of these is a reasonable answer, and we are not going to pretend ours is the only one.

If you need to audit a suspicious spike

Cuttly and Linkly break filtered traffic down by bot name, which the others do not. If you are trying to work out whether one scraper is responsible, that breakdown is the feature you want, and neither is us.

If AI traffic is the question

This is the one place we would argue Flyn is genuinely ahead: a named channel, per link, sitting in the same report as your other breakdowns. It is a Pro feature at $12/month, or $9 billed annually. You can start on the free plan and see the human-versus-bot split before deciding.

If you are on a silent filterer

Bitly, Dub and T.LY all filter without showing you the number. That is a defensible engineering choice and it does mean you have no way to sanity-check the total. If your traffic looks strange, you will have nothing to check it against.

Reading a Traffic-Quality Report Properly

Once you can see the split, a few habits make it useful rather than decorative.

Watch the ratio, not the count

Bot volume rises with exposure, so a growing bot count on a link that is being shared more is normal. A sudden change in the share is the signal. A link that was 15% bots and is suddenly 60% has been found by something.

Expect previews to spike at publication

The first minutes after you post a link are dominated by preview fetchers. Judging a campaign on its first hour of raw clicks will always flatter it.

Do not chase zero

No filter reaches zero, and a vendor claiming it does is overselling. The goal is a number stable enough to compare week over week, not a perfectly clean one.

Keep the human number as your reported number

Whatever you put in a report to a client or a manager should be the filtered human count, with the bot figure available if anyone asks. That is the whole reason disclosure matters more than filtering: you can defend a number you can decompose. Our guide to tracking clicks covers the rest of the reporting surface, and the clicks API returns the same split programmatically.

Frequently Asked Questions

Do all URL shorteners filter bot clicks?
Every one of the nine we checked in August 2026 does, so filtering itself is not a differentiator. Bitly, Short.io, Rebrandly, Cuttly, Linkly, Dub and T.LY all exclude crawler traffic from the headline click number, and Flyn does the same on every plan including free. TinyURL is the exception in approach: rather than removing bot clicks it labels them, capturing Bot Clicks and Human Clicks as separate metrics with a per-click flag in its API. What varies is not whether they filter but whether they will tell you how much they removed.
Which shorteners show how many bot clicks they removed?
Six of nine. Flyn shows the filtered count per link plus an all-time human share, on the free plan. Linkly shows it directly beside the click total and adds a Robots tab breaking it down by bot name. TinyURL exposes bot and human as separate dashboard metrics. Short.io surfaces it in three separate places. Cuttly has a dedicated Bots chart with a bar per bot type, on paid plans. Rebrandly includes human and bot columns but only in paid exports. Bitly, Dub and T.LY filter silently and publish no count anywhere.
Does Bitly show AI or agentic traffic?
Partly, and the common summary of this is wrong. Bitly filters agentic traffic out of the click data shown on your Links page and Analytics dashboards, the same way it filters crawlers. Separately, it added an agentic_traffic dataset to its group analytics that returns a fixed 90-day total of clicks from AI agents and assistants, reachable through its API or MCP server. So the number exists but is account-level, a single rolled-up figure, and absent from the dashboard. You cannot see it per link or as a time series, and saying Bitly discards the data is inaccurate.
What counts as a bot click?
Broadly four things, and vendors classify them slightly differently. Search engine crawlers indexing your destination. Security and safety scanners checking whether a link is malicious, which fire on nearly every newly created short link. Link preview fetchers from Slack, WhatsApp, iMessage, Discord and social platforms, which generate a burst whenever someone pastes your URL somewhere busy. And increasingly AI assistants fetching a page to answer a question. All classification here is signal-based, using user agent and request patterns, so treat it as reliable at scale rather than certain for any individual click.
Why does bot filtering matter for A/B testing?
Because bots do not distribute evenly across a weighted split. A rotator divides clicks randomly, but a scraper that repeatedly hits one destination will pile traffic into that branch and make it look like the winner. If your tool reports clicks per destination but the underlying count includes crawlers, you are comparing a page that real people saw with a page a bot visited a thousand times. Filtering makes the comparison valid, and seeing the filtered count lets you tell the difference between a genuine result and one branch getting crawled.
Can I trust a filtered click number?
More than an unfiltered one, and not absolutely. Every vendor here uses signal-based detection and none claims certainty. Bitly is unusually candid, warning that reports may still contain some bot-generated clicks and that its system is not designed to counteract deliberate traffic inflation. The practical test is stability: a filtered number you can compare week over week is useful even if it is imperfect. The bigger risk is a tool that filters silently, because you have no way to sanity-check the total or notice when the filtering changes.
How do I check whether my shortener filters link previews?
Run a one-click audit. Create a fresh short link, paste it into a busy Slack or WhatsApp group where several people will see it, wait for the preview cards to render, then click it exactly once yourself. Check the tool's reported human clicks. If it says more than one, the preview fetches are being counted as people and every number that tool gives you is inflated in proportion to how widely you share. This takes two minutes and tells you more than any vendor feature page will.
Which shortener is best for clean analytics?
Depends what you mean by clean. For simply seeing the filtered count without paying, Flyn, Linkly, TinyURL and Short.io all qualify, so pick on other criteria. For investigating a suspicious spike, Cuttly and Linkly break filtered traffic down by bot name, which nobody else documents. For seeing AI-assistant traffic as its own channel per link, Flyn is the only one, and it is a Pro feature. For anyone on Bitly, Dub or T.LY, the filtering is happening but you will never see its size, which is the real limitation.

Ready to try Flyn?

Free plan includes 25 links/month, full analytics, and access to all 30+ free tools above. No credit card required.

Already a member? Log in

Karan Bhakuni
Karan Bhakuni· Founder, Flyn

Karan Bhakuni is the founder of Flyn. He writes about branded links, click analytics, and the link-management tooling growth teams and creators actually need, drawn from building Flyn and reading a lot of user feedback.

Find these guides useful? Add Flyn as a preferred source so more of them show up in your Google results.