Performance Chat Summary: 25 February 2025

The full chat log is available beginning here on Slack.

Announcements / Reminders

  • Core Performance Team Rep nominations deadline ending this Friday, Feb 28.
  • WordPress 6.8 BetaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. 1 is next Tuesday, Mar 4. Therefore any feature or enhancementenhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature. tickets must be completed or punted by Monday.

WordPress Performance TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets

Discussion of performance tickets for the upcoming 6.8 release:

  • @westonruter added two tickets to the milestone yesterday: #43258 and #63007
    • @flixos90: #43258 seems like a pretty big change to start working on this late in the cycle. It looks like there’s no PR yet?
    • @westonruter: No PR yet, but it has been in GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ (client-side navigation experiment) for awhile now, and in Optimization Detective as well. The patchpatch A special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing. would be small.
    • @flixos90: Since WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. has never included an output buffer (whether for good reasons or not), I think this requires more discussion that would not be possible to have in just a few days.
    • @westonruter: I’ll open a PR and we can discuss. If no consensus  then we’ll puntpunt Contributors sometimes use the verb "punt" when talking about a ticket. This means it is being pushed out to a future release. This typically occurs for lower priority tickets near the end of the release cycle that don't "make the cut." In this is colloquial usage of the word, it means to delay or equivocate. (It also describes a play in American football where a team essentially passes up on an opportunity, hoping to put themselves in a better position later to try again.).
  • @pbearne believes his tickets are ready
    • @flixos90: Some PRs like the one on #62124 may be ready, but they haven’t had any reviews from committers yet. So depending on bandwidth, they may not make it
  • @flixos90: It looks like most of the 6.8 performance enhancements have had some updates in the last few days, so hopefully they’re moving along. I’m going to check in on the ones without recent updates later, and can do another last-minute scrub to either commit or punt on Monday.
  • @joemcgill is curious about #58001 and #57496, which are both close, but the deadline for Beta 1 is coming very quickly. #58001 was marked early and is at risk of getting punted this week without follow-up.
    • @spacedmonkey: I need to add unit tests right? Is there anything else needed?
    • @joemcgill: @flixos90 left feedback on the PR that is not resolved, but once you two are happy with it being committed, it seems good to go
    • @flixos90: Beyond my feedback that hasn’t been addressed yet, the #58001 PR needs a review by someone else. I explicitly mentioned that the metadata lazyloader changes that are part of it fall outside my domain too much so I wouldn’t be comfortable approving those changes. Alternatively, the PR could be split into two pieces, as I’m happy and more confident to review the WP_User changes
    • @joemcgill: Oh right. I’ll look again, but it seemed ok to me. Could be good to get @peterwilsoncc‘s feedback given he’s also looking at #57496.

Performance Lab 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 (and other performance plugins)

  • @flixos90 opened https://github.com/WordPress/performance/pull/1883 yesterday to use the now merged WP Core 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. for Speculative Loading conditionally if available

Open Floor

  • @westonruter: From doing performance audits at WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more. Asia (and previous WordCamps), something I’ve been seeing more and more being the performance bottleneck is render-blocking stylesheets in the HEAD. This often shows up as a render delay when the LCP element is text, e.g. a paragraph or heading. I started investigating further and I found that Twenty Twenty-Two and Twenty Twenty-Five are not inlining their style.css files when they should be, so I opened this ticketticket Created for both bug reports and feature development on the bug tracker. with a patch to implement: #63007
    • @westonruter: When all stylesheets are inclined a dramatic reduction in LCP(-TTFB) results when I tested with a Slow 3G networknetwork (versus site, blog) condition: 4196.1 ms (poor) down to 2230.8 ms (good). Related to that, I found that no stylesheets in core themes are getting minified, so I opened #63012 to address that.
    • @westonruter: Additionally, I think we should investigate increasing the styles_inline_size_limit from 20,000 bytes to maybe 50,000 bytes. I intend to do some benchmarks to show the performance tradeoff of inlining versus having a cached stylesheet for repeat visits. Relatedly, the landing of Speculative Loading means additional byte size of documents with inclined CSSCSS Cascading Style Sheets. will now result in less of an impact due to prefetching.
    • @spacedmonkey: There is some push back to minify theme css right?
    • @flixos90: I think the concern is related to 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. themes specifically, since end users are more in touch with them than they were with classic themes, e.g. you can export a theme etc. from making changes in the UIUI User interface. So the lines between end user and developer territory blur. I’m not sure about whether that should block us from implementing minification, but all I’m saying is the implications differ between block themes and classic themes.
    • @westonruter: But with block themes users don’t edit any CSS file in the Site Editor, right? It’s separate from Global Styles.
    • @flixos90: Worth highlighting https://core.trac.wordpress.org/ticket/58519#comment:2 too (and other comments of similar nature) that highlight that before we allow inlining default theme CSS, we should minify the files to avoid more HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. bloat. So potentially #63007 should depend on #63012.
  • @westonruter: I wanted to mention that the talk I gave at WordCamp Asia about Optimization Detective is available: https://weston.ruter.net/2025/02/21/boosting-performance-with-optimization-detective/

Our next chat will be held on Tuesday, Mar 11, 2025 at 16:00 UTC in the #core-performance channel in Slack.

#core-performance, #hosting, #performance, #performance-chat, #summary