You add a tracked link to a campaign so you can finally see who clicked. The blast goes out. A week later your delivery rate is down eight points, your reply rate cratered, and you can't figure out why — the copy was fine, the list was clean, the timing was normal. The thing you added to measure performance is the thing that tanked it.

This happens more than people admit, and the cause is almost always the link. Specifically: the domain your link lives on. Carriers read that domain, check its reputation, and make a filtering decision in milliseconds. If it's a shared shortener that thousands of other senders (some of them spammers) also use, your perfectly compliant message inherits their reputation. You get filtered silently — no bounce, no error, the message just never arrives.

Full disclosure: I work for Ready, an SMS platform. We handle link management and deliverability for senders, so I have a stake here. But the mechanics below are true regardless of what platform you use, and I'll tell you where a plain shared shortener is actually fine.

Why carriers care about your link at all

A2P (application-to-person) traffic on registered 10DLC routes gets inspected. Carriers and the aggregators between you and them run content filtering that looks at message body, sender reputation, and — importantly — the URLs inside the message.

URLs are one of the strongest spam signals available. A phishing text and a legitimate promo text look structurally similar, so the domain becomes a proxy for intent. Carriers maintain reputation on domains the same way email providers do. A domain that's been used in reported spam, high-complaint campaigns, or outright scams gets a low score. Messages carrying a low-score domain get throttled or dropped.

Here's the part that catches people: the filter doesn't know you're a good sender. It knows the domain. If your link is bit.ly/xyz123, the reputation being evaluated is bit.ly's aggregate reputation across everyone — not yours.

The shared-shortener problem

Public URL shorteners — bit.ly, tinyurl, ow.ly, t.co and the rest — are convenient and free. That's exactly why spammers love them, and exactly why carriers treat them with suspicion.

Two things go wrong when you route campaign links through a shared shortener:

  1. Reputation pooling. Your link's trust score is diluted by every other sender on that domain. One bad actor's phishing run can drag the whole domain into filtered territory, and you go down with it.
  2. Redirect opacity. Short links hide the destination. Carriers dislike not being able to see where a link resolves, because that's a classic cloaking pattern. Some filters now block or downgrade any known public shortener in SMS on principle.

A few major U.S. carriers have gone as far as effectively blocking public shortener domains in A2P traffic. So the very tool that used to be the easy answer for "how do I fit a long URL in a text" is now one of the fastest ways to get filtered.

Why you still want tracking

None of this means you should send bare, untracked links. If you're spending money on SMS you need to know:

  • Which segment clicked (so you can build a re-engagement list of clickers)
  • Which offer or subject line pulled better
  • What your actual click-through rate is, campaign over campaign
  • Where in the flow people drop off

Untracked links throw all of that away. For opted-in lists, click-through on a well-targeted SMS often lands somewhere in the rough range of 10–30% — but you can only optimize toward that number if you're measuring it. Flying blind is worse than the filtering risk, not better.

So the goal isn't "stop tracking." It's "track without borrowing a stranger's domain reputation."

The branded short domain fix

The answer is a dedicated short domain you control — something like go.yourbrand.com or yb.link — used exclusively for your own links.

When every tracked link in your campaigns resolves through a domain only you send on, three things become true:

  • The reputation being scored is yours alone. No pooling, no inheriting a spammer's history.
  • The domain visibly matches your brand, which recipients recognize and carriers can associate with a registered 10DLC brand.
  • You still get full click analytics, because the redirect and tracking happen on infrastructure you own.

You keep the measurement. You drop the shared-reputation liability. That's the whole trade.

How to set one up

  1. Register a short domain (or use a subdomain of your existing one). Shorter is better for segment count — more on that below.
  2. Point it at a link-tracking service that supports custom/branded domains via a CNAME or DNS record.
  3. Warm it gradually if you're a high-volume sender. A brand-new domain has no reputation, which is neutral, not positive. Ramp volume over your first few sends rather than blasting 200k on day one from a cold domain.
  4. Keep it consistent. Use the same branded domain across campaigns so the reputation compounds instead of resetting.
  5. Match it to your registered brand. A branded link on a domain that ties back to the same entity you registered for 10DLC is a coherent trust signal. If you're fuzzy on registration, our 10DLC explainer walks through it.

The segment-math catch nobody mentions

Branded domains help deliverability but they cost you characters, and characters cost money. Every URL eats into your 160-character GSM-7 segment.

Here's the math on a Ready Standard segment ($0.02 + $0.0045 carrier = $0.0245 all-in):

Link styleExampleApprox. chars
Public shortenerbit.ly/3xY9zQp~14
Long branded shortgo.yourbrandname.com/summer-sale~32
Tight branded shortyb.co/s24~9

Say your message body is 145 characters plus the link. With a 14-char shortener you're at 159 — one segment. Swap in a 32-char branded long URL and you're at 177 characters, which splits into two multipart segments (153 chars each). On a 20,000-contact blast:

  • One segment each: 20,000 × 1 × $0.0245 = $490
  • Two segments each: 20,000 × 2 × $0.0245 = $980

That's a $490 difference driven entirely by an 18-character link. The fix is a tight branded domain — a short root and short slugs — so you get owned-domain reputation without doubling your segment count. Trim the domain, not the tracking.

If shaving segments is a recurring theme for you, we wrote a whole piece on reducing SMS costs that goes deeper on the character-count game.

Where a shared shortener is actually fine

Honesty check: if you send low volume, transactional-only, one-off links to people who already know you — a single appointment confirmation with a reschedule link, say — a public shortener probably won't sink you. Filtering pressure scales with volume and marketing intent. A dentist confirming 40 appointments a day is a very different risk profile than a 100k promo blast.

The branded-domain setup earns its keep once you're (a) sending marketing/promotional content, (b) doing it at volume, or (c) actually building segments off click data. Below that, don't over-engineer it.

How Ready handles the link + delivery side

Ready sends on registered 10DLC routes across redundant carrier infrastructure, with the full compliance stack — brand and campaign registration in-app, automatic STOP handling, quiet-hours enforcement, and litigator/DNC scrubbing — because clean sender behavior is the other half of not getting filtered. Link reputation and sender reputation compound together; a branded domain on a sloppy, high-complaint sender still gets filtered.

For GHL users, inbound and outbound sync two-way per sub-account, so click and reply data lands where the rest of your CRM lives. And the volume rate drops to $0.016/segment automatically past 50,000 segments in a month — no plan to pick.

The practical takeaway

Tracked links are worth keeping. Shared shortener domains are worth dropping. Put your links on a short, branded domain you own, keep the root tight so you don't split into extra segments, warm it if you're sending big, and pair it with clean sender behavior on registered routes.

If you want to see how the segment math shakes out for your actual list size and copy, spin up a free account — 2,500 credits, no card — and send a real campaign against a branded link before you commit to a monthly volume.