Published September 2, 2026

Short links in SMS, and why shared domains get filtered

Carriers and messaging platforms treat public shortener domains as a spam signal. What that means for a campaign, why a shared domain is a shared reputation, and what changes on a domain the sender owns.

An SMS campaign goes out, the delivery report looks fine, and the click count is a fraction of what the same message produced by email. Often the messages were never delivered, and the reason is the link.

Carriers and messaging platforms treat public shortener domains as a spam signal, because for years that is largely what they carried. Bandwidth's guidance on the subject names two of the outcomes directly: AT&T blocks public shorteners outright, and T-Mobile filters messages that pass through multiple redirects.

The filtering is not only at the carrier. ActiveCampaign's own rules prohibit free and public link shorteners in SMS and block those messages before they are sent. A sender using one can therefore be stopped twice, once by the platform and once by the network, and neither stop necessarily produces an error anyone reads.

Sample data from a demonstration workspace.

A shared domain carries a shared reputation

The mechanism is worth being precise about, because it explains why this is not solved by choosing a better-behaved shortener.

A filter sees a domain, not an account. Every link on a shared shortener domain inherits the behaviour of every other link on it, including links made by people the sender has never heard of. One campaign of fraudulent messages is enough to move the reputation of the whole domain, and every legitimate sender on it pays for that.

That applies here too. uhm.co is a shared domain, and messages carrying a uhm.co link can be filtered exactly like messages carrying any other shortener's. Access to this product is by request and review, which is how the domain is kept clean and why it is worth keeping clean. It is a policy for reducing the risk, not an exemption from it, and no shortener can honestly offer the exemption.

What an owned domain changes

A link on a domain the sender owns has a reputation of its own, built by that sender's own traffic. It is not pooled with anyone, and it is recognisable to the recipient, which matters for a message that arrives with no branding around it.

This is not a contrarian position. Bitly's own support documentation tells senders to use a custom domain for SMS, and Text-Em-All's guidance compares a branded link with a generic one for the same reason. The industry agrees with itself here.

Setting one up is a subdomain, a TXT record to prove ownership, a record pointing it here, and a certificate issued automatically on the first request. Which plans include a custom domain is on the pricing page.

What it does not change

An owned domain is a deliverability measure, not a compliance one. It does nothing about consent, about the content of the message, about identifying the sender, or about honouring an opt-out. A campaign that would be unwelcome on a shared domain is unwelcome on a private one, and a domain with no history is a domain with no goodwill to spend either.

Two practical notes that survive the domain question. Every redirect in the chain is a hop a filter can count, so a link that goes through a tracking redirect before reaching a shortener before reaching the destination is the shape most likely to be dropped. And a link that has been in a campaign for months is a known quantity to filters, which is an argument for keeping a short link and editing its destination rather than minting a new one for every send.

What to check when messages stop arriving

Delivery reports from a bulk provider report acceptance, not arrival, so a clean report and a quiet click count together are the signal worth acting on rather than either one alone.

Compare the same message with the link removed, then with a link on an owned domain, to the same small test group. That isolates the link from the copy and the sender ID. Then look at the click record: a shortener that counts at the redirect will show a click for every message that arrived and was opened, which makes the difference between "not delivered" and "delivered and ignored" visible instead of theoretical.

All posts