- Avoid creating broken links with pushState
- Avoid creating two different links that link to the same content with pushState
- Avoid cloaking. (Here's an article Bing published about their cloaking detection in 2007)
- Support browsers (and crawlers) that can't handle pushState.
- Make sure you can handle the load of the crawlers.
They may be built to recognise some classic snippets like onchange="window.location.href=this.options[this.selectedIndex].value;" or onclick="window.location.href='blah.html';", but they don't bother with things like content fetched using AJAX. At least not yet, and content fetched like that will always be secondary anyway.