Webmasters Stack Exchange is a question and answer site for pro webmasters. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I was creating my own Ajax-based website which means almost all of my data will be fetched via Ajax from the server and I started to have concerns about my site's SEO.

I am using popState and pushState methods after I was reading This Article and this one.

As far as I can tell, these methods manipulate the history method of a window object so we can change the address-bar information.

But will these methods affect the SEO of the site?

share|improve this question

migrated from programmers.stackexchange.com Jan 4 '14 at 18:51

This question came from our site for professional programmers interested in conceptual questions about software development.

up vote 4 down vote accepted

PushState can be used in SEO friendly ways. Google's Matt Cutts even recommends it compared to hash bang AJAX crawl syntax: http://www.seroundtable.com/google-ajax-pushstate-vs-hashbang-16464.html

One technique that works well is:

  • Put normal URIs in the <a href=""> links
  • Have JavaScript that intercepts clicks and loads content via AJAX and then uses push state to change the URL
  • Crawlers just follow the links and ignore the JavaScript

That way, users get the AJAX experience and crawlers are still able to access the entire site.

share|improve this answer

You should set up your site so that it will work without JavaScript. Although Google understands JavaScript quite well, it's not perfect and other search engines (and users) may not use JS.

You should make each link point to a specific URL. If that URL is requested directly, the server would return the complete HTML for that page.

Then your JavaScript can just add events to the links, load the appropriate content and "push the state" to change the URL for users with JS.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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