What t.co Does to Your Links on X, and How to Still Track Clicks
Paste a link on X and the platform quietly replaces it. What your readers see looks like your URL; what they click is t.co/something. If you have ever wondered why your X traffic shows up as direct, why a preview card refused to render, or whether your tracking survives the trip, this is the mechanics, from someone who built a link tracker that lives downstream of t.co.
What actually happens to your URL
The moment you post, X stores your original URL and substitutes a t.co short link in the post body. The display text still shows your domain, but the anchor underneath is t.co. This happens to every link, in every post, reply and DM. There is no setting to turn it off.
When someone clicks, the chain is: X app or site, then t.co, which redirects to your original URL, then your page. On the way, X counts the click for its own analytics and checks the destination against its spam and malware lists. That safety check is the original reason t.co exists: if a destination turns malicious after posting, X can neutralize every copy of that link at once.
What survives, what does not
Your destination survives. t.co redirects to the exact URL you posted, query parameters included. If you tagged the link with UTMs, the tags arrive at your site on that first click.
The referrer mostly does not. Clicks from the X apps frequently arrive with no referrer at all, and web clicks show t.co as the source at best. Your analytics sees a visitor from nowhere, or from t.co, and cannot tell which post, let alone which reply, sent them. Multiply by every re-post and quote, and X traffic melts into the "direct" bucket, the same failure documented across platforms in the UTM alternative guide.
The link's afterlife is lossy. People copy the visible text instead of the anchor, screenshot posts, or re-share a t.co link that then gets wrapped again. Each hop is a chance for your carefully tagged URL to become a bare one. Attribution that lives inside the URL erodes; attribution that lives server-side, keyed to the link itself, does not.
The preview card is a separate machine
Link previews on X are not fetched by the reader's browser. When you post, X's crawler (Twitterbot) visits your URL, reads its Open Graph and Twitter Card tags, and builds the card. Two practical consequences:
First, your page must serve proper meta tags to bots, or the post shows a bare link. Second, if you use any redirect link, the redirect service has to answer the bot with the destination's card data rather than blindly redirecting it. This is a detail I had to get right building PasteTrack: bots get an HTML page carrying the destination's Open Graph tags, humans get the redirect. If your shortener does not do this, your posts lose their preview, and previews are a real share of the clicks.
Links in posts vs links in replies
Creators have reported for years that top-level posts containing external links tend to reach fewer people than link-free posts. X has been ambiguous about the details, and the algorithm shifts, so treat any hard number with suspicion. The pattern that survives the ambiguity: put the substance in the post, put the link in the first reply or in a quote of your own post.
This also happens to be the honest format. The post has to earn attention on its own; the link is there for the people who want to go deeper. When PasteTrack wraps a link on X, the recommended flow is exactly this: the tracked link goes in a reply or quote-tweet, X rewraps it into t.co, and the click still routes through the tracked link underneath.
Tracking clicks through t.co anyway
Here is the full chain with a tracked link in play: reader clicks, t.co redirects to your pst.to link, which logs the click server-side (with the context you attached when you created it: this reply, this conversation) and redirects on to the destination in a few hundred milliseconds.
Notice what did not matter: the referrer. The t.co hop can strip whatever it likes; the tracked link is the identifier, and it was tied to its placement at the moment you pasted it. That is the design principle that makes X traffic attributable at all, and it is the same one that works on Reddit, where the failure modes differ but the cure is identical, as covered in how to track Reddit link clicks.
Two honest caveats. A tracked redirect adds one hop of latency, so the redirect has to be fast (PasteTrack's budget is under 300 milliseconds, and a slow shortener is a real cost). And a shortener domain in a reply is visible as t.co to readers anyway, so the aesthetic cost on X is zero; nobody sees your short link's domain unless they inspect it.
The practical checklist
- Assume every X click arrives with no usable referrer; design attribution that does not need one.
- Keep UTMs if you like, but treat them as bonus data, not the system of record.
- Make sure whatever link you post serves Open Graph tags to Twitterbot, directly or through your redirect service, so the preview card renders.
- Substance in the post, tracked link in the reply or quote.
- Measure per placement, and judge X by signups per conversation, not impressions.
t.co is not your enemy; it is just plumbing you do not control. Attribution that survives it has to live in the one thing you do control: the link you create, at the moment you create it.
FAQ
Why does X wrap all links in t.co?
Three official reasons: spam and malware protection (X can kill a malicious destination platform-wide by disabling its t.co link), click measurement for X's own analytics, and normalizing how much of a post a URL consumes. Every link gets wrapped, there is no opt-out.
Do UTM parameters survive t.co?
Yes, the t.co redirect points at your full original URL including query parameters. What breaks attribution on X is not parameter loss at t.co, it is referrer loss in apps and re-shares that copy a bare or re-wrapped link. Your tags survive hop one and get lost in the messy afterlife of the link.
Does t.co hurt SEO?
Not meaningfully. t.co links are redirects and X links are treated as nofollow anyway, so they were never going to pass ranking equity. Judge X by the humans it sends, not by link juice.
Can I avoid t.co on X?
No. Every URL in posts, replies and DMs is wrapped, even if it displays as your domain. The practical response is to make your link resilient to it: a server-side tracked link keeps attribution intact regardless of what the referrer or the wrapper does.