Blog

SMS link length: how one URL costs you a second segment

160 characters is 153 once a message splits, and one emoji drops you to 67. Where the link fits, what to cut, and how to keep the tracking anyway.

By Wasim Idrishi · Updated · 4 min read

An SMS is billed by the segment, not the message, and the boundaries are not where people think. 160 characters is the limit for a single message. Cross it and every segment drops to 153, because concatenation adds a header that eats into the payload. Put one emoji anywhere in the text and the whole message re-encodes to UCS-2, where the numbers become 70 and 67.

That is the whole cost model, and a URL is usually the single largest item in it.

The arithmetic

EncodingSingle messagePer segment when splitTriggered by
GSM-7160153Latin letters, digits, common punctuation
GSM-7 with extensions160, but some characters cost 2153Square brackets, curly braces, backslash, tilde, caret, vertical bar, euro sign
UCS-27067Any emoji, curly quotes, most non-Latin scripts
Characters available per message, by encoding

The extension set deserves a line of its own. Those nine characters are encoded as an escape plus the character, so each one costs two of your 160. A curly apostrophe pasted from a word processor is worse still — it is not in GSM-7 at all, so it drags the entire message into UCS-2 and cuts your budget by more than half.

Where the URL fits

LinkCharactersLeft for words
https://example.com/summer-sale-2026?utm_source=sms&utm_medium=sms&utm_campaign=summer8674
https://example.com/summer-sale-202636124
https://gc.mw/abcde19141
gc.mw/abcde11149
gc.mw/sale10150
What a link costs out of a 160-character message

The tagged URL in the first row is not an exaggeration; it is what a marketing platform produces by default. It takes over half the message before you have written a word, and it pushes almost any real sentence into a second segment — which doubles the bill for the entire send, not for the overflow.

The last two rows are the same campaign with the same tracking. The parameters moved onto the link, where they are applied during the redirect and can be edited afterwards, instead of being spelled out in every copy of the message.

Put the link last. People scan the first few words to decide whether to read, and a URL at the start reads as spam to both humans and filters.

Say who you are in the first three words. Rana Motors: costs 12 characters and prevents the reply that says "who is this".

Drop the pleasantries. Hi there! We hope you're doing well. is 36 characters — a quarter of the message — that nobody has ever been glad to receive in an SMS.

Use one link. Two links in a 160-character message is a message with no room for a reason to click either.

  1. Write the message with a placeholder for the link

    Get the words right at 140 characters or fewer, before the URL exists.

  2. Create one short link per campaign, and per segment if you have segments

    Separate links beat one link with different UTM values, because the click counts stay separate at the source.

  3. Attach UTM parameters to the link, not the message

    On Pro, in the UTM parameters section of the link editor. The message stays short; the destination still sees utm_medium=sms.

  4. Send one to yourself first

    On the real route, to a real handset. This catches the two failures that matter: a message that split, and a link the handset did not turn blue.

SMS is the channel with the least native measurement. There is no open rate, no pixel, and no referrer — clicks from a text message arrive with an empty referrer and land in the direct bucket in your website analytics.

The redirect is the only reliable event in the whole flow. It gives you the click count, the unique visitor count, the country and the device, timestamped, before the destination has loaded. For a channel you are paying for by the segment, that is the number the invoice should be measured against.

Questions people ask

Why does my 155-character message cost two segments?

Because a single message holds 160 GSM-7 characters, but the moment a message must be split, each part carries a 6-byte user data header — leaving 153 characters per segment. There is no 161 to 306 zone: at 161 characters you jump straight to two segments of 153.

Does one emoji really cost that much?

Yes. A character outside the GSM 7-bit alphabet forces the whole message into UCS-2, which holds 70 characters in a single message and 67 per segment when split. One emoji in a 150-character message turns one segment into three.

Do I need https:// in front of the link?

Most modern handsets linkify a bare host with a dot in it, so gc.mw/abcd usually works and saves 8 characters. Behaviour varies by handset and by aggregator, and some carriers refuse messages containing bare hosts, so test on the route you actually send through before removing it from a campaign of 50,000.

Which characters silently cost double?

The GSM extension set: square brackets, curly braces, the backslash, tilde, caret, vertical bar and the euro sign. Each is encoded as an escape plus the character, so it counts as two. A URL containing a tilde is quietly more expensive than it looks, which is one more reason not to send raw URLs.

Can I still track clicks if the link is that short?

Yes, and the short link is where the tracking lives. Attach the campaign parameters to the link rather than the URL, so the message carries eleven characters and the destination still receives the full tagged URL.

Sources

  1. ETSI TS 123 038 — Alphabets and language-specific information (GSM 03.38) — checked 5 September 2026

Try it with your own link

Paste a long link and get a 10-character gc.mw link with a QR code. No account needed for 30 days; free forever with one.