Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EPIC: xPRO performance improvements #1908

Closed
3 tasks done
briangrossman opened this issue Sep 3, 2020 · 3 comments
Closed
3 tasks done

EPIC: xPRO performance improvements #1908

briangrossman opened this issue Sep 3, 2020 · 3 comments
Assignees
Labels

Comments

@briangrossman
Copy link
Contributor

briangrossman commented Sep 3, 2020

As a user, I am experiencing significantly slow load times on the xpro.mit.edu site. The slow load time causes me to leave the site, before I can find anything I am looking for.

Designs and Mockups

Here is what Google recommends to help solve the load time issue: https://developers.google.com/speed/pagespeed/insights/?utm_source=analytics&tab=mobile&url=http%3A%2F%2Fxpro.mit.edu%2F

Issues:

  • 1919 - xPRO Catalog page performance improvements
  • Home page performance (details below)
  • 1920 - xPRO Product page performance improvements

Out of Scope

@ahmed-belal ahmed-belal self-assigned this Sep 8, 2020
@ahmed-belal
Copy link
Contributor

Findings

Following are the findings using the Google PageSpeed tool URL linked above.

  • Initial server response time (TTFB) is quite high ~790ms
  • We have multiple render-blocking CSS files included (8 to be exact) that should be bundled up and served as a single resource (this does not include the external Zendesk stylesheet)
  • The icons/logos slider near the bottom of the page is using huge images (~2000px in one dimension) however the actual render size is very small (~170px in one dimension). This is wasting quite a lot of network traffic that could potentially be saved.
  • We need to preload the icomoon font as it is pretty much being used on all pages (used in the slick slider)
  • We have a lot of external scripts included that are blocking the main render thread. Specifically the Zendesk widget script is blocking render for close to half a second. This needs to be deferred and loaded async.
  • Wagtail-served images have a cache policy of 30 days. Consider increasing this value.
  • Zendesk widget JS is quite slow and script evaluation takes on average ~550ms, blocking main thread. This needs to be deferred.

@briangrossman
Copy link
Contributor Author

@ahmed-belal
There are lots of good thoughts here. Thanks!

Did you get this data from the Google report, or your own testing? If you didn't use the Google report, make sure you check that out, too, for additional suggestions?

To help determine what makes sense to do, we should see not only what makes the most impact, but also what's easy vs. hard. Items can be easy or hard and will have big or small impact.

Can you rank the items you've found (and any additional ones you see as useful from the Google analysis) assuming we'd want them ordered as:

  1. easy-big
  2. easy-small and hard-big
  3. hard-small

Some specific questions:

  • server response time - do you have any suggestions for improving this?
  • Zendesk issues - for the two Zendesk issues, do you see any complications with deferring / loading asynchronously? (This might be helpful)

Thanks!

@ahmed-belal
Copy link
Contributor

@briangrossman I did go through the Google report and gleaned action items from that. Once that is done I'll do another pass on the page with my own stress/load tests (locally) and see if there's anything we can improve over there.

Effort/Impact

Easy/Medium

  • Logo image resize on homepage (use correctly sized images for carousel)
  • Zendesk widget connectOnLoad setting (does not apply, this only works for the chat-enabled widget)
  • Move Zendesk init snippet into after page load
  • Increase cache expiry header policy
  • Google Fonts enable font swapping to keep fonts visible during CSS load

Hard/Big

  • Optimize home page queries, perfomance to reduce TTFB

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants