There is a lot of discussion going on right now about the hashbang (#!) URL’s. If you’re contemplating using them, this article should help you to decide one way or another.
How it Works – The Good
The hashbang works mainly with AJAX, which is super cool. The distinguishing feature of hashbang is that it creates a change in the URL to load another “page” within your current page. The theory behind this is that users will not feel like they are navigating away from your home page. It will work very much like a traditional application in terms of appearance and concept. It also allows for neat page transitions, which are possible with the more traditional AJAX.
The biggest thing going for hashbang is that it allows search engine to index the site. Unfortunately, that’s only in theory. When it comes to practice, the hashbang syntax doesn’t work as well with SEO as it was originally supposed. Google does recognize the syntax and indexes accordinglly, but none of the other search engines recognize the hashbang, which makes for a less than desirable result.
What it Breaks – The Bad
The other unfortunate part of the URL is that not all users can remember abstract characters like they might be able to remember a SEO-friendly URL. The popular social media sites, such as Twitter, YouTube, and FaceBook have URL’s down to where the only thing after the site address is the user’s username. (example: http://www.facebook.com/BarsnessSolutions) This makes it easy for users to remember URL’s if they’re going to. Since most SEO-friendly sites do use this syntax, departing from it makes the whole thing less user-friendly, if only for the small percentage that type URL’s instead of googling and clicking every time.
What it Replaces – The Ugly
The great part about hashbangs is that it is compatible across platforms. Regular AJAX can do this, but without the URL change essential to search engines. The other (and perhaps better) alternative is HTML5’s Push-State, which allows the same activity, but with cleaner URL’s and universal recognition by search engines. The biggest disadvantage of the Push-State implementation is that it is only partially recognized by Safari and not at all in Internet Explorer before version 10.
In summary, I think that the concept of hashbang syntax is absolutely right, but the world of web is not ready to accept it. I think that in the long term, the HTML5 implementation will take precedence and hashbang will go away. Until then, however, the choice is yours.