Lets say I have a link:

<a href="/about/">About Us</a>

But in Javascript [or jQuery] catches it and then adds the hash based off of the href attribute:

$('a').click(function(e) {
    // Extremely oversimplified..
    window.location.hash = $(this).attr('href');

And then we use a hashchange event to do the general 'magic' of Ajax requests. This allows for the actual href to be seen by crawlers, but gives client-side users with JS enabled an ajax-based website.

Does this 'help' the general SEO issues that come along with hashtags? I know hashbangs are 'ok', but afaik they aren't reliable?

  • 3
    What would a non-JavaScript crawler do? Because that's what they generally do... google has a method published to crawl "#!" content, which might be worth investigating.
    – pst
    Jun 25, 2012 at 23:05
  • 1
    @pst Right. So then is it 'best practice' to use hashbangs [#!] and keep the URL's, in the source, static?
    – Talasan Nicholson
    Jun 25, 2012 at 23:08
  • If your links are not static in the page then the vast majority of web crawlers will miss them because they simply send an HTTP GET request and then parse the HTML they receive. Here's Google's guide on the topic, they seem to be the pioneers in this domain: developers.google.com/webmasters/ajax-crawling/docs/…
    – Alex W
    Jun 25, 2012 at 23:12

1 Answer 1


Yes, this is search engine friendly and a good example of progressive enhancement. Because the links are still crawlable and load the same content as with JavaScript so Google, and any user without JavaScript enabled, can still find the content just fine. Your users with JavaScript will get the added benefit of a faster page load since they don't need to wait for the whole page to load when they click the link.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.