Lately, I read a lot about hash-bang urls versus history.pushState to build SEO-friendly AJAX-Sites. It seems that everyone agrees that pushState is the better approach so I want to use it.
Here is the problem: I have a Single-Page Website and (on the Server) a database with around three million entries – I do not have static pages for all these entries but fetch them with AJAX and insert them in the site (if a user clicks a certain link or performs a search).
With HashBang-URLs I know that the Spider will look for a different URL (escaped_fragment…) so on the server-side I can serve an 'ugly' page that contains no styles but only the content i want to be indexed.
Users can bookmark the URLs and get pretty content because the URLs are different (#!…) and Javascript will generate the content.
With history.pushState on the other hand, I will be forced to use URLs like '…getItem.php?itemid=356375' (right?) – but now, I can no longer serve ugly content here, because users might bookmark these URLs.
So, in a nutshell:
Hash-Bang allows us to focus on client-side pretty content-rendering via javascript while serving 'ugly' content-only pages to search engines – PushState forces us to serve pretty content all the time without using javascript?
Is there any workaround for that? Any way to not have to serve pretty content on the server-side (in my case PHP) while still making it possible for users to bookmark URLs that serve pretty content (via Javascript)?