2

Is it possible to make single page application (SPA) crawlable without HTML snapshots with help of HTML5 History API pushState?

I have found contradictory meanings. Can you support or refute one of them?

  1. YES, it's possible to make SPA crawlable w/o server rendering.

    The only explanation I found is - when Google crawler goes through <a href="site.com/go"> it subscribes to onpopstate and waits you'll trigger HTML5 History pushState. After you get all async content, you trigger pushState and crawler start crawling.

    Do really Google knows how to subscribe onpopstate events?

  2. No, that impossible. I came to the same conclusion, the same is said in this article. It says that pushState is a replacement of hashbangs to make the same URL for both user and crawler.

P.S. If it's impossible with pushState, are there any other acceptable ways?

-1

Trying to answer my question, what I've read and understood. Correct me please if I'm wrong:

At some point of time Google decided: "why spend own server resources to execute JS if isomorphic get popular, let's force everyone to do JS on their own servers", and depracated JS execution by bots. Can't say if at this moment Google support JS, but it can stop supporting it any moment.

Moreover, I heard Google may degrade PageRank if you're not supporting server rendering.

If to speak about solution of making google bot waiting for AJAX content with History API pushState - than yes that worked (or work if Google haven't stopped JS support yet). Does this solution need JS? Or in other words how google bot subscrite onpopstate event without JS?

Conclusion: Also there are another SEO besides Google, haven't any idea if they support JS. So my conclusion is that pushState solution is not reliable and unversal.

  • @StephenOstermiller pls look at my answer, am I right in my conclusion? Maybe you have something to add? – VB_ Feb 18 '16 at 9:29
  • That ping won't notify anyone. Also, pinging a random person for help is discouraged. – grg Feb 18 '16 at 11:28
  • @grgarside why a random person? We have a discussion in comments with Stephen, but looks like it was removed (don't know how) – VB_ Feb 18 '16 at 12:10
  • Googlebot does execute JavaScript and render pages to see what text is visible to users. Googlebot also supports URL changes with pushState. It should be possible to build a site that Google understands using those mechanisms, but I don't have any experience doing so. – Stephen Ostermiller Apr 18 '16 at 10:16
  • At some point of time Google decided: "why spend own server resources to execute JS if isomorphic get popular, let's force everyone to do JS on their own servers", and depracated JS execution by bots — The deprecated Ajax crawling scheme required people to generate the crawlable content on their own servers. So you're wrong about that. – Quentin May 18 '16 at 13:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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