social · marketing

Short Links for Social Media: A Platform-by-Platform Guide

How Instagram, X, TikTok, LinkedIn, YouTube and WhatsApp treat links, what a branded link tells readers, and how to run a link-in-bio on your domain.

7 min read1,572 wordsUpdated
Guide cover: best URL shortener for social media, platform by platform

There's no single best URL shortener for social media, because "social media" is eight platforms with eight different attitudes to links. Some display them, some hide them, some wrap them in their own tracker, some limit how many you get. What a shortener needs to do for you on Instagram is not what it needs to do on X or in a WhatsApp broadcast.

What stays constant is why you want one: a link that carries your name rather than a random code, that you can change after posting, and that counts taps per placement so you know which post, story, bio or group actually sent people. This guide goes platform by platform, then covers the link-in-bio pattern that works on all of them, and finishes with what to look for in a shortener if social is where most of your links live.

On a web page, a link is a blue word. On social, it's usually the address itself, or a preview card built from it, sitting next to your name. Readers judge it in a glance:

  • go.yourbrand.com/spring says who sent it and what it is. It looks deliberate.
  • xlyl.link/spring on a clean, well-run shortener domain is fine.
  • A random code on a domain they've seen in spam gets ignored, and a domain with a spam history is one a platform's filters may treat with suspicion.

A custom domain is one DNS record. It shows most on social, where your links are read cold by people who don't know you yet.

Platform by platform

Instagram

Links in captions aren't clickable. That leaves three places: the profile (up to five links without a subscription, per Meta's help centre), story stickers (a link per story), and DMs. Since the audience can't click a caption link, the profile links have to carry everything, which is where the link-in-bio pattern below comes from.

What a shortener does here: a branded bio link that never changes (go.you.com/links), a separate short link behind each story sticker (/story-launch, /story-sale) so each story's taps are its own number, and editable destinations so a story link can be re-pointed after the story expires — or after you notice you linked the wrong page.

Referrer data from Instagram's in-app browser is thin; the per-link count is the reliable signal.

X (Twitter)

Every link is wrapped in t.co and counted as 23 characters whatever its real length, so shortening for length is pointless. Shorten for the other reasons: the displayed address (X shows the original domain in the preview card, so a branded domain is visible), editability, and your own count separate from the platform's.

One short link per tweet, not one per campaign. When a tweet is quoted or screenshotted, its link travels with it, and you'll want to know that.

TikTok

Where TikTok lets you put a link, and how many, depends on the account and changes over time, so check the platform's current rules before planning around it. Where you have a profile link, the same approach as Instagram works: a branded, editable link and a hub page behind it. TikTok is a phone app, so build the destination for phones and patchy connections.

LinkedIn

Links are clickable in posts and comments, and LinkedIn shows a preview card with the destination's title and image. Two conventions matter here: a branded domain reads as professional in a feed full of them, and posts with the link in the first comment rather than the body are common because members believe body links reduce reach. Either way, give the link its own alias per post (/report-li, /webinar-li) so you can see whether the comment trick is doing anything.

Facebook

Clickable links in posts with a preview card, plus groups, pages and Messenger. A branded domain means your links don't share a domain, or its reputation, with strangers' links. In groups, a plain description next to the link — "Our September menu (PDF)" — tells people what they're tapping, and works as a preview for the cautious.

YouTube

Where a link is clickable depends on the placement, according to YouTube's help page on external links (checked 23 September 2026):

Placement Clickable?
Long-form video description Yes, once the channel has advanced features
Comments on long-form videos Yes, once the channel has advanced features
Shorts description and Shorts comments No
Posts No

The long-form description is long-lived and gets edited rarely, so the links in it should be short, branded and editable: a /gear link in three hundred video descriptions can be updated once, in the shortener, when the gear changes. Say the link aloud in the video, or show it on screen in a Short where it can't be tapped — which is the strongest argument for a readable alias there is.

WhatsApp, Telegram, Signal and other messaging

Links are clickable and previewed; the preview is fetched by the app (which is why the link shows a click before anyone taps — see bots and previews). Broadcasts and groups are effectively a channel of their own, so give them their own short link (/sale-wa). Messaging links get forwarded, so the count can exceed the group's size; that's reach, and it's good to know.

Threads, Bluesky, Mastodon

Clickable links, preview cards, generous limits. Treat as LinkedIn: branded domain, one alias per post, description next to the link.

Profiles hold only a few links (Instagram allows up to five) and captions often none. The common solution is a third-party "link in bio" page that lists your destinations. It works, but you're renting: the domain is theirs, the design is theirs, the click data is theirs, and the page lives as long as the service does.

The same result on your own domain takes a short link and a simple page:

One link in the bio, many destinations behind it — each one a short link with its own click count
One link in the bio, many destinations behind it — each one a short link with its own click count
  1. Make a plain page on your site listing your current destinations — latest episode, shop, newsletter, this month's event. Any page builder or a static HTML file will do.
  2. Give each destination on it its own short link: go.you.com/podcast, /shop, /newsletter, /event.
  3. Put a short link to the page — go.you.com/links — in every bio.

Now the bio never changes. When the podcast has a new episode, edit /podcast's destination. When the event is over, edit /event. And because each destination is its own link, you know which one your followers actually use, per platform if you make platform variants (/podcast-ig, /podcast-tt). You keep the domain, the data and the design.

Measuring, and what the numbers mean

Follow the rule that works everywhere: one short link per placement. Per post on X and LinkedIn, per story on Instagram, per bio, per broadcast. Then:

  • Clicks per link on the statistics page tell you which placements get clicks — by hour (when does your audience tap?), by country and by device (almost entirely phones on social; build for it).
  • Referrers are patchy on social — in-app browsers often send nothing, and a strict referrer policy can strip the rest — so don't rely on them to attribute. The per-link count is the attribution.
  • The platform's own count (taps on that post's card) and the link's count will differ. The link counts every copy of the link wherever it was pasted or forwarded, minus known bots; the platform counts one card. Use the link for reach, the platform for the post.

Known bot traffic — preview fetches, scanners that identify themselves — is filtered by user agent before counting, so the number is closer to people, though not a head count. Counting needs an account: links made without one aren't counted. Each click keeps its country, device and source; visitor IPs are never stored.

If your site analytics need to know the source too, put UTM parameters on the destination behind each short link; the shared link doesn't show them, though the destination's address bar does.

What to look for in a shortener for social

In rough order of how much difference each makes:

  1. Your own domain, with HTTPS. Recognition, and a reputation that's yours alone.
  2. Custom aliases, so links can be read aloud and recognised.
  3. Editable destinations, because posts and bios outlive the pages they point to.
  4. Per-link analytics with bot filtering, so one link per placement gives honest numbers.
  5. No interstitial or ads between tap and destination — an extra page is friction every visitor pays for.
  6. QR codes for the offline half of a campaign, encoding the same short links.
  7. An API, if you post at volume and want links created from a schedule or a sheet.

Xlyl covers all seven, free, which is why it's the answer this site gives; the comparison pages set it against the usual alternatives if you'd rather see the reasoning.

Frequently asked questions

Do social networks penalise posts with short links?
Not in any way you can rely on either way: how a network ranks posts that carry outside links changes over time, so treat reach as something to measure — compare similar posts with the link in the body, in a comment, and without one. What you can control is the domain: a short link on your own domain doesn't share a reputation with strangers' links on a generic shortener domain.
Which shortener is best for Instagram?
The one that gives you branded links for your profile (Instagram allows up to five) and a separate, editable link behind each story sticker, with a click count per link. A shortener with your own domain, custom aliases, editable destinations and per-link analytics covers the places Instagram makes links clickable.
Should I use a link-in-bio tool or a short link?
A short link on your domain can be the link-in-bio: point it at a simple page you control listing your current destinations, each of which is its own short link. You keep the domain, the data and the design, and the bio never needs updating.
Why does my post show a different click count than my link?
The platform counts taps on its own preview card; the shortener counts requests it served, minus known bots. Copies of the link pasted elsewhere, and taps that the platform's in-app browser reports differently, land in the shortener's count but not the platform's. Trust the link for reach across all copies, and the platform for engagement on that one post.

Found this useful? Pass it on.

PostShare

Keep reading

All guides →