John Mueller of Google answered two questions around AngularJS this week, one in the Google Webmaster Help forums and one in a Google Hangout on Tuesday.
The first was why does Google's fetch and render feature in Google Search Console show the page rendered properly but the Google cache version shows nothing at all?
Google's John Mueller said this is normal. He said "At the moment, that's normal: the cached page shows the HTML page as it was fetched, not the rendered view."
So do not worry if you see this for your AngularJS site in Google.
The second question in the hangout was is it okay to generate canonicals and the like through JavaScript in the body area, not the header, will Google pick up on it with AngularJS frameworks. John Mueller said it should work fine that way as Google should render it.
The question was asked at the 43:10 mark into the video:
In an angularJS site, is the generated <head> part considered by Google? So, for example, is it ok to generate the rel="canonical" through JS? Or the render involves only the <body> part?
The answer:
Yes, that is fine. If you use JavaScript to update the head of your page, then as we render those pages we would pick that up and use that as appropriate.
Here is the video embed:
Forum discussion at Google Webmaster Help and Google+.