My Conclusions from Twitter Chat #2 for Web Performance Optimization
Do you know there is a monthly Twitter Chat for Web Performance Optimization? It is fairly cool that the leading experts in web performance come together and exchange ideas in an open forum like this. Check it out https://www.wpochat.org. Yesterday it was the 2nd #WPOChat. Patrick Meenan(@patmeenan) from Google/WebPageTest is the moderator for the chat. Pat did an awesome job at putting together the list of questions.
Below is a quick recap of the chat and my conclusions to these questions:
What optimization technique has been the most challenging to implement?
Conclusion: Deferred JS loading, Third party widgets and Spriting. @eitanmk (from NYTimes) says “Defer loading of JS. One reason: third-party code.”. I(@coachwei) replied with “Async JS”. @patmeenan said “Spriting was pretty painful because it is so manual”. @jonathanklein(from CSNStores and Boston Web Performance Meetup organizer) responded with “I think managing third party content is the most challenging thing, it usually violates a number of rules”. @derSchepp said “I fully agree: deferred JS loading + 3rd party widgets”.
Is hand-optimizing feasible for most sites or are automated solutions the best way to go (or a hybrid)?
- Conclusion: automated solutions will eventually win out but still not as mature as it needs to be yet.
Is it worth it to hand optimize for different browsers? Like how many domains you shard across based on user agent?
- Conclusion: Browser-specific optimizations is a runtime thing that should be automated.
Do you use any tool to check real user performance (not test sites like WPT)? If so, then which tools?
- Conclusion: no conclusion here. Many names were mentioned: Gomez, Coradiant for RUM, GA, Yottaa Direct UX Script, Boomerang…
What optimization technique you implemented turned into a nightmare when rolled to production?
- Conclusion: Caching! (Big surprise to me!). I said “Async JS”. Pat said “Sadly, serving jQuery from Google’s servers bit me because IT idiots had DNS blocks in place for google.com”. But many people replied with something similar to “Caching + CDNs – did not think CDNs would follow the headers meant for proxies”(From @dritans).
Are optimization scores helpful or is it better to learn to interpret waterfalls and use optimization checks as a reference?
- Conclusion: some people said scores are useless. But the general consensus is that both are valuable. “Scores” gives a high level indicator that can be easily understood by less technical people while waterfalls allow technical people to do some detailed analytics.
Modern browsers load up to 8 components in parallel. Is it still advisable to split components across domains?
- Conclusion: domain sharding is ideally handled on a browser by browser basis. Sharding doesn’t help much for newer browsers. Very useful for old browsers.
How effective is JS concatenation? Maybe not much nowadays?
- Conclusion: JS concatentation can work well. However, lumping all your JS into one file doesn’t make sense if you have some that needs to be in the head and some can be deferred.
Is there consensus on the right way to handle @font-face?
- Conclusion: Rule number one about font-face is… don’t use font-face 😉 (from @cweekly).
Anyone experimenting with using HTML 5 apps + App Cache for content sites?
- Conclusion: no conclusion here. Different people have different opinion. NewYork Times “for Chrome app is almost entirely local and async. It screams in Chrome.” While some others said “No. None of the companies we consulted for do either. Too much other low hanging performance fruit. Maybe in 2-3 years”.
Fairly awesome. I personally learned quite a bunch and got some homework assignments from the chat. Please see https://www.wpochat.org for the chat archive.