Twitter Backing Away From Hashbang URLs

The big news from Twitter’s Improving performance on was the first step in backing away from hashbang (#!) URLs:

… our primary reason for this change is to improve initial page-load performance.

The first thing that you might notice is that permalink URLs are now simpler: they no longer use the hashbang (#!). While hashbang-style URLs have a handful of limitations, our primary reason for this change is to improve initial page-load performance.

When you come to, we want you to see content as soon as possible. With hashbang URLs, the browser needs to download an HTML page, download and execute some JavaScript, recognize the hashbang path (which is only visible to the browser), then fetch and render the content for that URL. By removing the need to handle routing on the client, we remove many of these steps and reduce the time it takes for you to find out what’s happening on

I’m not surprised that they found doing one thing faster than doing that one thing plus four more.

I, like many others, are happy to see this go. Rafe Colburn put it this way:

It feels good to see terrible ideas die, even when it takes awhile.

Dion Almaer concludes:

It’s about the experience stupid.

Providing a good user experience with “traditional” methods is better than providing a poorer user experience using the hotest new trends.

The sad part about Twitter’s path down the hashbang road is that they are now left with two unappealing options. Either they continue to include a backwards compatibility piece of Javascript on every page load, or break all of the previous hashbang URLs. So far it appears that they are going with the first option, including a piece of Javascript on each page that looks for a hashbang URL.