Short answer: For most businesses, the honest ranking on measured performance is InBio for speed, Short.io for free-tier generosity, and InBio for enterprise controls. We build InBio, so treat our own entry with appropriate suspicion — the raw numbers for all 8 services are below and you can re-run the test yourself with the script at the end.
Service | Median redirect | UTM tags survive | Free tier | Best for |
|---|---|---|---|---|
INBIO | 232 ms | ✅ | 50 links · 5,000 clicks | Fastest redirect, machine-readable links, keyless API |
TinyURL | 257 ms | ❌ | No click tracking | A familiar, memorable brand |
shorturl.at | 298 ms | ✅ | Click counter only | Throwaway links — but idle codes get reassigned (Block 4) |
Bitly | 307 ms | ❌ drops UTMs | 5 links, count only | Brand recognition |
Rebrandly | 310 ms | ✅ | 10 links · 100 clicks | Custom branded domains |
Cutt.ly | 313 ms | ⚠️ drops gclid | 30 links · unlimited clicks | Free click volume |
Short.io | blocked | — | 1,000 links · 50,000 clicks | Cheapest paid ($5) & most generous free tier — if you accept bot-blocking |
Dub | blocked | — | 25 links · 1,000 clicks | Developer / open-source stack |
That's the short version. The rest of this page is how we measured it, service by service — and where a competitor beats us (Short.io on free-tier generosity and price), we say so plainly.
We benchmarked 8 popular URL shorteners — Bitly, TinyURL, Rebrandly, Short.io, Dub, Cutt.ly, shorturl.at, and our own INBIO — on the things that actually matter: how fast the redirect is, whether machines can follow the link at all, whether they keep your tracking intact, whether your link still works a year from now, and what their free plans actually give you. Every link pointed at the same page, and the speed and behavior numbers are reproducible with open-source code.
Two headline results: INBIO had the fastest and most consistent redirect (232ms median), and two services — Short.io and Dub — block automated requests entirely, which means social previews, search crawlers, and AI assistants can't see what's behind their links.
We built this benchmark, and we're a URL shortener — so don't take our word for it. The code and raw data are public. Run it yourself.
How we tested
One short link per service, all pointing at the same destination, so the comparison is fair.
Speed: we timed only the shortener's own redirect response — not the destination page — 100 samples per service, from a US location. We report the median (p50) and the 99th percentile (p99), the occasional worst case your visitors actually hit.
Machine-readability: we sent a normal request and recorded whether the service answered or blocked it. We identify our probe honestly and don't try to defeat bot-blocking — a block is a finding, not a bug to engineer around.
Block 1 — Redirect speed
Milliseconds to the redirect response. Lower is better.
# | Service | Median (p50) | Worst case (p99) |
|---|---|---|---|
1 | INBIO | 232 ms | 263 ms |
2 | TinyURL | 257 ms | 404 ms |
3 | shorturl.at | 298 ms | 382 ms |
4 | Bitly | 307 ms | 402 ms |
5 | Rebrandly | 310 ms | 1,149 ms |
6 | Cutt.ly | 313 ms | 467 ms |
— | Short.io | blocked our probe | — |
— | Dub | blocked our probe | — |
The network floor from our test location was 80 ms, so that's the fastest any redirect could physically be.
INBIO wasn't just fastest on the median — it was the most consistent. Its worst case (263 ms) was better than most services' typical case. Rebrandly's median was fine, but it spiked past one full second in its slowest 1% of requests. Short.io and Dub couldn't be measured at all, for a reason that turns out to be the more important story.
Block 2 — AI-readiness: can machines read the link?
This is the test nobody runs, and it's the one that's quietly becoming the most important. A short link only helps if whatever follows it can reach the destination. We checked whether each service answers automated requests.
Service | Answers bots & AI? | What happens |
|---|---|---|
INBIO | ✅ Yes | Clean redirect |
Bitly | ✅ Yes | Clean redirect |
Rebrandly | ✅ Yes | Clean redirect |
Cutt.ly | ✅ Yes | Clean redirect |
shorturl.at | ✅ Yes | Clean redirect |
TinyURL | ⚠️ Partial | Shows a preview page — destination hidden |
Short.io | ❌ No | Blocks with an error (HTTP 403) |
Dub | ❌ No | Blocks with an error (HTTP 403) |
When a shortener blocks bots, it's not protecting you — it's hiding your link from the machines that decide who sees it:
Social previews break. Slack, iMessage, WhatsApp, Discord, and X fetch your link with a bot to build the preview card. Blocked means no title, no image — just a bare URL, which gets fewer clicks.
Search engines can't follow it. A crawler that hits a 403 never reaches your destination, so the link carries no context.
AI assistants can't read it. ChatGPT, Perplexity, Claude, and Google's AI Overviews follow links to read and cite the page behind them. A shortener that blocks bots makes your content invisible to exactly the tools that increasingly drive discovery.
A link a human can open but a machine can't is doing half its job — and in an AI-driven web, the half it's failing is the half that's growing.
Answering a bot is the floor. The ceiling — how ready a service is for an agent-driven web — is measurable too, so we scored all eight on four things you can verify yourself: does the link resolve for a bot with no JavaScript, can you shorten a URL through the API without a key, does the service publish an llms.txt machine index, and does it run an MCP server an AI agent can call.
Service | Link reachable without JS | Keyless shorten API | Publishes an llms.txt | MCP server for agents |
|---|---|---|---|---|
INBIO | ✅ | ✅ | ✅ | ✅ |
Bitly | ✅ | ❌ | ❌ | ❌ |
Rebrandly | ✅ | ❌ | ❌ | ❌ |
Cutt.ly | ✅ | ❌ | ✅ | ❌ |
shorturl.at | ✅ | ❌ | ❌ | ❌ |
TinyURL | ⚠️ interstitial | ❌ | ❌ | ❌ |
Short.io | ❌ 403 | ❌ | ✅ | ❌ |
Dub | ❌ 403 | ❌ | ❌ | ✅ |
Two honest surprises here, and neither favors us. Short.io and Cutt.ly publish a real llms.txt — yet Short.io's actual short links still return a 403 to the same bots, so its marketing site is AI-friendly while its links are not. And Dub ships an MCP server for agents, but its redirects 403 too. Only INBIO clears every column: links any bot can follow, a keyless shorten API, an llms.txt, published Content-Signals, and an MCP server at mcp.in.bio. That's the one table we set out to win — and, because every cell is a request you can repeat, the one we can defend.
Block 3 — Do your tracking tags survive?
If you run ads, the platform appends parameters to your URL (utm_source, fbclid, gclid…) and your analytics group by them. If the shortener strips them on the redirect, that attribution is gone. We appended a full set of tags — see our complete guide to UTM parameters for how to build them — and checked which reached the destination.
Service | UTM tags kept | Click IDs kept | Attribution safe? |
|---|---|---|---|
INBIO | ✅ | ✅ | ✅ Yes |
Rebrandly | ✅ | ✅ | ✅ Yes |
shorturl.at | ✅ | ✅ | ✅ Yes |
Cutt.ly | ✅ | Drops | ❌ No |
Bitly | Drops all UTMs | ✅ | ❌ No |
TinyURL | ❌ | ❌ | ❌ No (interstitial) |
Short.io / Dub | couldn't test (blocked) | — | — |
Bitly quietly dropping every utm_* tag is the one that surprises marketers most — your Facebook and Google click IDs survive, but the campaign, source, and medium you set do not.
Block 4 — Link longevity: will your link still work next year?
You can't measure this with a stopwatch — it lives in the fine print. So we read the actual terms and help docs of every service. The good news: most keep your links indefinitely. The trap is the one service that quietly disables — and then reassigns — links that go quiet.
Service | Free links expire? | The rule |
|---|---|---|
INBIO | No | Kept indefinitely. Only anonymous links (made without an account) that get zero clicks for 12 months may be pruned. |
Bitly | No | "Bitly Links never expire." |
TinyURL | No | "Our TinyURL links do not expire." |
Rebrandly | No | Don't expire — "even if you downgrade to a free account, all your links will continue to function." |
Cutt.ly | No | "Cuttly short links do not expire automatically on any plan." |
Short.io | No | No time-based expiry; the free plan is a 1,000-link lifetime cap, and links keep working. |
Dub | No | No inactivity-deletion policy in its terms, docs, or open-source code. |
shorturl.at | ⚠️ Yes | A free link is disabled if it gets fewer than one click per month — and a disabled code "may become available for use by other users." |
The shorturl.at trap is the one to know about. It's not just that a quiet link stops working — the short code can be handed to a stranger. A flyer or QR code you printed last year could, after one slow month, later point to someone else's content entirely.
And a myth worth killing: you'll read across the web that "Bitly deletes links after 30 days of inactivity," and that Dub and Short.io purge inactive free links. We went to the source — none of that is in any official terms or help doc. Bitly's own page says links never expire; Dub and Short.io document no inactivity deletion. Repeating those claims is how bad SEO content gets written. Reading the actual terms is how you avoid it.
Sources: Bitly, TinyURL, Rebrandly, Cutt.ly, Short.io, Dub, shorturl.at.
Block 5 — Free tiers and pricing: what you actually get
Most people pick a shortener on its free plan, so we pulled the current numbers from every service's pricing page. Free tiers vary wildly — from 5 links a month with no analytics to thousands of tracked clicks with a full click log.
Free plan
Service | Links / month | Clicks tracked / month | Analytics | Detailed click data |
|---|---|---|---|---|
INBIO | 50 | 5,000 | ✅ | ✅ Full click log |
Short.io | 1,000 (lifetime) | 50,000 | ✅ | ✅ (first 50k clicks) |
Cutt.ly | 30 | Unlimited | ✅ | ✅ |
Dub | 25 | 1,000 | ✅ | ✅ |
Rebrandly | 10 | 100 | ✅ Basic | ⚠️ No city or referrer |
Bitly | 5 | Unlimited | ❌ Count only | ❌ |
TinyURL | Not stated | ❌ None | ❌ | ❌ |
shorturl.at | Not stated | Counter only | ⚠️ Count only | ❌ |
"Detailed click data" means breakdowns by country, device, browser, and referrer — the difference between "you got 40 clicks" and "40 clicks, mostly from Germany, on mobile, via LinkedIn." Good analytics also filter out bot traffic, so the number you see is real people, not scrapers.
Two free tiers stand out for the wrong reasons. Bitly gives you 5 links a month and no analytics dashboard — just a running total. TinyURL's free plan tracks no clicks at all (it records them silently but won't show you a thing until you pay). If you shorten links to learn something, neither free tier does the job.
Cheapest paid plan
Service | Plan | Price / month | Links / month | Clicks / month |
|---|---|---|---|---|
Short.io | Hobby | $5 | 2,500 (lifetime) | 100,000 |
INBIO | Lite | $9 ($7.50 annual) | 500 | 50,000 |
Bitly | Core | $10 (annual only) | 100 | Unlimited |
Rebrandly | Essentials | $11 ($8 annual) | 250 | 10,000 |
TinyURL | Pro 125 | $11 ($9 annual) | 125 | Not stated |
Cutt.ly | Starter | $12 ($11 annual) | 300 | Unlimited |
Dub | Pro* | $30 ($27 annual) | 1,000 | 50,000 |
shorturl.at | Premium | Not published | Unlimited | — |
*Dub's Pro plan is no longer shown on its pricing page — the cheapest plan it now advertises is Business at $90/month. Bitly's Core is annual-billing only ($120 up front), and its cheapest plan with device- and city-level analytics is Premium, not Core.
At $9–12/month most services give you a few hundred links. But tie this back to Blocks 1–2: Short.io is cheapest, yet it was the one that blocked automated requests — cheap links that machines can't read are a different kind of expensive.
Sources: INBIO, Bitly, TinyURL, Rebrandly, Short.io, Dub, Cutt.ly, shorturl.at.
The scoreboard
Service | Speed (p50) | Machine-readable | Ad-tracking safe | Links persist |
|---|---|---|---|---|
INBIO | 🥇 232 ms | ✅ | ✅ | ✅ |
Rebrandly | 310 ms | ✅ | ✅ | ✅ |
shorturl.at | 298 ms | ✅ | ✅ | ❌ expires if idle |
Bitly | 307 ms | ✅ | ❌ | ✅ |
Cutt.ly | 313 ms | ✅ | ❌ | ✅ |
TinyURL | 257 ms | ⚠️ | ❌ | ✅ |
Short.io | blocked | ❌ | ❌ | ✅ |
Dub | blocked | ❌ | ❌ | ✅ |
Which shortener should you pick?
Running a marketing agency? You need clean separation and reporting per client, not one shared dashboard — that's a link-management-for-agencies problem more than a shortener one. Whatever tool you pick, make sure it keeps UTM tags (Bitly doesn't) and gives per-link analytics on more than a paid seat.
Want the best free shortener with no account? INBIO's URL shortener works with no sign-up and still shows a full click log; for pure free volume, Cutt.ly (30 links, unlimited clicks) is generous but wants an account. Avoid the two free tiers that show you nothing — Bitly (count only) and TinyURL (no click tracking at all).
A developer wiring links into code? INBIO shortens through POST /api/shorten with no API key — see the API docs — and every other service in this test requires a token first. If you'd rather self-host, Dub is open-source; just remember its hosted redirects block bots.
Need enterprise SSO and controls? Here a competitor earns it: Bitly and Short.io both have mature enterprise tiers with SSO, roles, and SLAs. INBIO's Business plan covers SSO and team controls too, but if you're buying for a 500-seat org, shortlist all three.
Printing links or QR codes? The link has to outlive the print run and stay repointable, which is exactly where QR codes on packaging live or die — and exactly why you should skip shorturl.at, the one service that reassigns idle codes. Generate the short link, then its QR, from the shortener.
Shortening for one platform? Each one mangles links differently — we have focused guides for Instagram, X / Twitter, LinkedIn, and YouTube.
Looking for the best Bitly alternative? On our numbers, INBIO: faster (232 ms vs 307 ms), it keeps the utm_* tags Bitly silently drops, and it gives real analytics on the free plan instead of a bare click count.
The best TinyURL alternative? Same answer, different reason — TinyURL's free plan tracks no clicks at all and shows an interstitial that hides your destination from bots; INBIO does neither.
Shortening a whole list at once? Use the bulk URL shortener — paste up to 50 links and get them back with a CSV.
Bitly vs TinyURL
Bitly is the more recognizable name, but TinyURL was faster in our test (257 ms vs 307 ms) and — unlike Bitly — didn't drop UTM tags. The catch is measurement: Bitly's free plan is 5 links with a count-only dashboard, and TinyURL's tracks no clicks at all. If you shorten links to learn something, neither free tier delivers.
Bitly vs Rebrandly
Rebrandly's pitch is branded domains, and it preserved every tracking tag we sent while Bitly dropped all UTMs. Medians are nearly identical (307 ms vs 310 ms), but Rebrandly's slowest 1% spiked past a full second where Bitly stayed under half. For attribution-safe branded links, Rebrandly; for pure brand recognition, Bitly.
Bitly vs Short.io
Short.io is cheaper ($5 vs Bitly's $10 entry) and far more generous free (1,000 links / 50,000 clicks vs 5 links). The trade-off is machine-readability: Short.io returned HTTP 403 to our probe, so its links break social previews and hide from AI assistants — something Bitly handles cleanly.
The takeaway
A short link looks like a commodity — paste a URL, get a shorter one — but five simple tests pulled the field apart.
Speed is close at the top and messy in the tail: the fastest median was 232 ms, but some services quietly spiked past a full second on their slowest requests.
Machine-readability is the dividing line. Two of eight services block bots outright, which breaks social previews and hides the destination from search engines and AI assistants — the fastest-growing way people discover links.
Tracking and longevity live in the fine print. Some shorteners silently drop your UTM tags; one disables — and reassigns — links that go quiet. Neither is something you'd notice until a campaign report comes back empty or a printed QR code points somewhere new.
Free tiers range from generous to nearly useless — from thousands of tracked clicks with a full click log down to five links a month and no analytics at all.
The links you make today should still work, still be readable, and still be measurable next year. That's the bar we built INBIO to clear — and, per the numbers above, the one it clears best: fastest redirect, every parameter preserved, readable by every bot and AI, links that don't expire, and real analytics on the free plan.
Shorten your first link — free, no account, five seconds. New to campaign tracking? Start with our step-by-step guide to shortening a URL.
How we'd test differently next time
No benchmark is the last word, and naming the limits is part of the method:
One location, one week. Speed was measured from a single US vantage point. A shortener's edge network matters, so numbers will shift for a reader in São Paulo or Jakarta — next time we'd sample from several regions.
Blocked services stay blocked. Short.io and Dub 403 automated probes, so we could not measure their redirect speed or tag handling at all. That's a real-world finding, but it also means their rows are incomplete by their own choice, not ours.
Pricing and terms move. Free-tier and longevity data were read from live pages that change; we date every figure to 2026 and re-check on updates.
Methodology: speed and redirect-behavior results come from an open-source benchmark you can run yourself; pricing, longevity, and feature data were read from each provider's official pricing pages, terms, and help docs, linked inline. Figures reflect what was published in 2026 and can change — we'll keep this comparison updated.