Google using # instead of search? in URL. Why?

A quick Google search (using the good ol' ?q= method...) turns up this:

Has Google.com changed to google.com/#q=flowers for FireFox users? (I was expecting google.com/url?q=flowers)

a couple months ago Google tested some search results that added a # into the URL. This created a big problem for people interested in seeing which keywords were driving traffic to their site (anything in the URL after a # doesn't get passed in the referrer... this is particularly a problem for web analytics products), so we worked with the search team to stop that test until they could find a better solution.

So, at one time this URL format was used for some subset of users, as part of one of the many tests that Google runs on unsuspecting subsets of its users. It caused problems for analytics software, so they switched to a different format for future tests, but still support the old hash-query URLs (by silently redirecting them to normal ?-query URLs).


My google still uses the search? prefix, however the benefit of using the hash (#) is that it does not require reloading the page. Adding a query string (?) forces the page to reload in all browsers.

By using the hash they can keep an item in 'memory' by allowing it to persist in the browser element. Adding the hash also creates a history object for the page. This maintains forward and back functionality, while allowing them to process your search using AJAX. Basically this means they can process your search quicker by only having to fetch a subset of the HTTP headers required to load an entire page without losing functionality of a full load.

Tags:

Ajax

Url

Hash