2

I've yet to find specifics, but does anyone know if google's page speed score account for the fact that your app may be a single page application(SPA)? This could in theory change the results of the scores

// per google

Page Speed Insights measures the performance of a page for mobile devices and desktop devices. It fetches the url twice, once with a mobile user-agent, and once with a desktop-user agent.

From my understanding, the score used to only account server side rendered pages.. what about SPAs? do the scores reflect a SPA influenced web application?

thanks!

5
  • In what ways do you mean "account for"? It renders pages for the given URL (including URLs for SPA pages too) on their server as a client desktop and mobile device does, so if you have Render-Blocking JavaScript for example, it will trigger that rule and affect your score. Note that's a common warning, even for the AngularJS site (by Google): developers.google.com/speed/pagespeed/insights/…
    – dan
    Dec 8, 2016 at 4:15
  • I understand that render blocking JS is one of the most common impact scores and that google uses a mobile-user agent, BUT someone in my team is concerned that the speed scores only score server side rendered pages and that any SPA app may not be properly scored.. I need to make a substantiative finding that the scores are not only for server side pages. So far I can't seem to find anything that disproves my teammate's take on this. Anything will help. Thanks!
    – Danny
    Dec 8, 2016 at 16:48
  • It sounds like there's some miscommunication. Server-side rendering is not the same as "server side pages", or page load, which most speed tests measure. Rendering simulates what occurs in the client, like processing JavaScript and CSS, which can affect the total time necessary to fully render/display the content in the client. If PageSpeed Insights were to somehow recognize SPA URLs differently and not preform rendering, that would result in grossly inaccurate scores. I would explain to your client that the score is based on fully loading and rendering the page...
    – dan
    Dec 8, 2016 at 23:38
  • though content may still be visible while that is occurring. You can also use Developer Tools in browsers to view waterfalls, resource loading, and many more details to get a much more accurate picture than just an automated/canned "performance" score.
    – dan
    Dec 8, 2016 at 23:42
  • Thanks @dan, some of the page speed insights have actually helped our website's performance.. still need to find out if the page speed score will be affected differently since we have an Angular1 SPA..
    – Danny
    Dec 12, 2016 at 18:22

1 Answer 1

0

The short answer is NO. Google's PageSpeed tool does not monitor SPAs properly. It only downloads all the resources, but, for example if you were using Angular, there is a delay from when the assets got loaded to the when the app is actually running. This process is called bootstrapping. This is the main reason why the Angular team is working on Angular Universal, a server side Angular rendering engine that pre-compiles Angular apps on the server. Only then can your project be observed properly with PageSpeed. This will also give the possibility for your SPA to be crawled for SEO.

4
  • do you know of any resources that could help an angular1 app?
    – Danny
    Dec 12, 2016 at 18:19
  • The only third party service I know is prerender.io. It renders all your Angular routes and caches them in the server(you can pay a subscription fee to have them host the files or get the source code and set it up on your own server)
    – borislemke
    Dec 13, 2016 at 4:17
  • sweet! I'll look into prerender.io, hope there's plenty of support for ng1, I see angular universe is only supporting ng2 thanks a million @borislemke
    – Danny
    Dec 13, 2016 at 17:43
  • @Danny no worries, glad I could help!
    – borislemke
    Dec 13, 2016 at 17:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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