Imagine the typical case when a user posts a link to twitter from some external app. Then the tweet gets sent to the user’s facebook account (via some account synchronization app). What happens when one of his friend clicks the link:
- The URL which l.php redirects to is actually http://t.co/xxxxxxx, because twitter now shortens every URL that gets sent. Twitter does that for similar reasons to those above – to track what gets clicked. Internally, twitter looks for the actual URL behind the t.co url and redirects the browser to that URL
- The user has already shortened the link with bit.ly (or any other shortener), so the browser is now at http://bit.ly/xxxxxx. Bitly loads the corresponding target link, which is now the actual link that was initially shared, and redirects the browser to it. People do that because the 3rd party shortener gives them important analytics about interaction with the link. Analytics that twtiter and facebook don’t give them (I don’t know whether facebook insights show such information, but regular users don’t get it anyway)
- If the user opening the link is on a mobile device, the site may detect that and send another redirect to a mobile version of the site.
So, these are 4 redirects to get to the target URL. A “redirect” means a server sends special instructions (header) to the browser to let it know where it should go. This means there are 4 different requests, to 4 different servers just to get to the desired URL, and one more to actually load it (one less if you are not on mobile). Imagine some of the servers are down or are responding slowly. That makes opening a single link, which is at the core of the web, a very slow action. Just because of a bad combination of tools.
Why this happened? Because of twitter, its char limit, its lack if initiative to introduce their own shortener early, and their strange decision to shorten every link that gets tweeted without providing any analytics. Because of facebook and its lack of link analytics. And because of social network clients that just don’t think it’s important to integrate properly with t.co. Virtually all clients I’ve seen do nothing about it, even though the API provides the original link.
How can this improve?
- twitter and facebook should duplicate the analytics functionality provided by URL shorteners
- tools should integrate with t.co properly. For example my tool (welshare) is currently the only one I’ve seen that calculates the length of the actual twitter message containing a link (due to t.co tweets can be longer than 140 characters), and it automatically expands t.co links. It also expands them when resharing a tweet to facebook, which means no t.co link appears on facebook.
That way there will be only 1 or 2 redirects, which is sort of OK.