Why
Mobile site's performance is subpar compared to Desktop (takes longer to show useful content).
Taking into account the devices and network conditions that the site targets it should be much more performant given the slower network capabilities and less capable browsers that mobile devices feature.
Goals
Make mobile site performance at least on par with the Desktop version.
How
Methodology
- Measure, establish baseline data.
- Plan hypothesis.
- Implement, local measuring. If good deploy.
- Measure with change deployed. Evaluate impact. Write down results.
- Go to 1 or 2.
Objectives
- Expose performance metrics for analysis and after-hypothesis measuring.
- Network payload performance detailed reports.
- Browser performance detailed reports.
- Hypothesis gathering.
- Prioritize and plan implementations.
- Implement->Measure cycle.
- Set up performance tracking tools (to identify regressions after Q1's work).
Notes from performance meeting
- Don't brainstorm and blindly implement ideas. Usually any ideas we can come up with will imply complex changes (like only loading the lead section) but won't have the expected return.
- Measure and report, identify key metrics.
- Performance work is hard to measure (predict outcomes) beforehand, you usually never know how it's going to unfold.
- Suggested workflow is: 1. Measure and analyze. 2. Formulate hypothesis based on concrete data. 3. Implement hypothesis and goto 1.
- Seems like for being effective on accomplishing performance goals, a continued effort through quarter will be needed (considering ^ previous point) instead of a laser focused half quarter effort.
- Broad first-sight insights:
- Server side time (only accountable if cache miss or logged in) is negligible compared to other factors.
- Browser side performance is mobile's site biggest bottleneck. Roughly half time (~2s) parsing script and (~3s) rendering.
- Looks like there's wins to be gained from optimizing on browser performance.
- We need to research and communicate before hypothesizing.
- Tools:
- Besides Grafana dashboards using the graphite data we'll coordinate with the Performance team to track other types of metrics coming from other tools like,
- Speedcurve.com for browser/front-end based performance reports.
- Maybe sitespeed.io for tracking regressions.
- How to do it:
- Measure, establish baseline data.
- Plan hypothesis.
- Implement, local measuring. If good deploy.
- Measure with change deployed. Evaluate impact. Write down results.
- Go to 1 or 2.