Hallway Hangout: Performance Improvements for WordPress 6.4

Following up on the prior performance related hallway hangout for WordPress 6.3, @flixos90 @joemcgill and @clarkeemily will be co-hosting an upcoming hallway hangout to discuss happenings for 6.4.

If you’re interested in joining, the Hallway Hangout will happen on 2023-10-19 15:00. a Zoom link will be shared in the #core-performance SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. channel before starting.

At a high level, we will go through quick intros (what each person does/focuses on) before reviewing WordPress 6.3 performance impact in the field, diving into WordPress 6.4 performance improvements and looking ahead at what can be learned for WordPress 6.5. 

As a reminder, hallway hangouts are meant to be casual and collaborative so come prepared with a kind, curious mind along with any questions or items you want to discuss around this important area of the project, especially since the agenda is intentionally loose to allow for it.

Noting this specifically for folks who have expressed interest previously or who are involved directly in this work cc @hellofromtonya @aristath @oandregal @tweetythierry @desrosj @youknowriad @spacedmonkey @swissspidy @westonruter @adamsilverstein @mukesh27 @joemcgill @johnbillion @10upsimon @thekt12 @linsoftware @pereirinha

Recording

Attendees

@mukesh27 @joemcgill @thekt12 @flixos90 @clarkeemily @adamsilverstein @westonruter @pbearne @swissspidy @10upsimon

Notes

Overview of 6.4 performance improvements

During the call, @joemcgill discussed the benchmark results from WordPress 6.4 where we have identified good improvements for classic themes in particular, and a hypothesis for where those improvements came from was discussed. Currently, it’s difficult to identify where the improvements to classic themes in WordPress 6.4 comes from, but the team are planning to spend additional time investigating this.

@adamsilverstein discussed whether we can start to identify these differences using automated testing, but the variance is difficult to assess. @adamsilverstein suggested having the data in Opentelemetry or Grafana where you can map a trendline with all the data. However, the set up that you use for testing makes a large difference to results.

@flixos90 mentioned that the old approach for benchmarking provided different results compared to the new approach. @joemcgill discussed important considerations for benchmarking, saying that lab results are instructive, however this does not necessarily translate to what we see in the field. @pbearne suggested a query string switch and for people to disable a range of variables, and potentially we could build in A/B testing, this could be a headerHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes.. This could point towards a third method, lab in the field benchmarking!

@flixos90 shared this spreadsheet where benchmarks were compared from previous WordPress versions to WordPress 6.4, as we know so far. This contains only one negative number which is a great result! The results from the GitHubGitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ actions workflow built by @swissspidy are relatively consistent. @pbearne discussed diminished returns as we do the benchmarks, and discussed how best we set expectations around these improvements.

@flixos90 one thing the performance team needs to work on is consistency in benchmarks. The WordPress 6.3 in the field post was discussed. It was great to see lazy loading and fetchpriority contributed to these improvement and improvements to LCP were discussed. The CWV tech report which looks at overall WordPress, using all sites that are listed in the httpHTTP HTTP is an acronym for Hyper Text Transfer Protocol. HTTP is the underlying protocol used by the World Wide Web and this protocol defines how messages are formatted and transmitted, and what actions Web servers and browsers should take in response to various commands. archive dataset, was also shared and discussed at length. Between July this year, and September this year, the CWV passing rate went from 39% to 41.5% passing rate which is a significant improvement in a short space of time.

Performance dev notesdev note Each important change in WordPress Core is documented in a developers note, (usually called dev note). Good dev notes generally include a description of the change, the decision that led to this change, and a description of how developers are supposed to work with that change. Dev notes are published on Make/Core blog during the beta phase of WordPress release cycle. Publishing dev notes is particularly important when plugin/theme authors and WordPress developers need to be aware of those changes.In general, all dev notes are compiled into a Field Guide at the beginning of the release candidate phase. for WordPress 6.4

Upcoming Improvements in WordPress 6.5

@joemcgill took us through some upcoming improvements for WordPress 6.5, including:

  • Sever Timing
    • Performant translations pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party (see #59656)
    • Template loading (includes WP_Theme_JSON improvements)
    • BlockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. HooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same. follow-up
  • Review Fonts APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.
  • Image optimizations
    • Better sizes calculations (to be completed after 6.5)
    • Block template image optimizations (#59464, #59577)
    • Continue improving LCP heuristics (fetchpriority, lazy-loading)
  • Database optimization
    • Auto-loaded options next steps
  • Measurement

The future of WebP images was discussed at length towards the end of the meeting.

#hallwayhangout, #performance