This is my scenario :
I'm on example.com. My user clicks a link: href="example.com/blog"
pushState captures the click, updates the URL, grabs a JSON file from somewhere, and creates the listing of blog posts in the content area.
Google knows to go to the escaped_fragment URL to get their static content because of hashbangs.
With pushState, Google just sees nothing as it can't use the JavaScript code to load the JSON and subsequently create the template.
The only way to do it is to render the template on the server side, but that completely negates the benefits of pushing the application layer to the client.
"use pushState rather than hashbang" I have been hearing this a lot but how can it be search engine friendly if we don't use hashbangs?