Performance Chat Summary: 16 April 2024

Meeting agenda here and the full chat log is available beginning here on Slack.

Announcements

  • Welcome to our new members of #core-performance
  • The team launched the 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 version 3.0.0 on Mon April 15

Priority Items

Structure:

  • WordPress performance TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets
    • Current release (WP 6.6)
  • Performance Lab plugin (and other performance plugins)
    • Final decision regarding streamlining PL plugin and other standalone plugins #1061
  • Active priority projects
    • Improve template loading
    • INP research opportunities
    • Improving the calculation of image size attributes
    • Optimized autoloaded options

WordPress Performance Trac Tickets

  • For WordPress 6.6:
    • Nothing to discuss this week

Performance Lab Plugin (and other Performance Plugins)

  • Final decision regarding streamlining PL plugin and other standalone plugins #1061
    • @thelovekesh added a workflow diagram on the issue itself and had some initial conversation with @swissspidy as well.
    • In the new workflow, we will be aiming to automate the other chores like:
      • auto creation of a release branchbranch A directory in Subversion. WordPress uses branches to store the latest development code for each major release (3.9, 4.0, etc.). Branches are then updated with code for any minor releases of that branch. Sometimes, a major version of WordPress and its minor versions are collectively referred to as a "branch", such as "the 4.0 branch".
      • raise a PR on the trunktrunk A directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running "trunk", then you are on the latest revision. from the release branch which will be having updated since tags and bumped version.
      • renaming of milestone and creating a next milestone.
  • @mukesh27 has the following PR ready for review PR #1148 – Warning notice about read-only file system remove even when all plugins are installed
  • @westonruter For Speculative Loading, I learned about an issue yesterday where WooCommerce links to add-to-cart and remove-from-cart are erroneously being prefetched/prerendered. WooCommerce shouldn’t be using links for these UIUI User interface elements, but such is WP.

Active Priority Projects

Improve template loading

  • @thekt12 ticketticket Created for both bug reports and feature development on the bug tracker. #59595PR#6392 is good for some initial review and feedback. Findings and reasoning behind each changes is added to PR description and inline comments. In TT4 homepage, I can see 4% improvement for non persistent cache and 6% improvement for site with persistent cache.
  • @thekt12 In #59600,
    • Working on improving performance for 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. Template  PR#6369 ( current results not that good )
    • Template Parts caching PR#6391 ( current results not that good )

INP research opportunities

  • @adamsilverstein created this top level issue to track the work: https://github.com/WordPress/performance/issues/1120
    • opened a few coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. tickets about adopting the Interactivity 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. to replace jQuery (#60986 #60985 and #60987) These are open for contributions if anyone wants to get a chance to try the Interactivity API out.
    • created a sheet with the list of scripts identified in the audits and have started to inventory which themes/plugins have public 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/ repositories we can contribute to.
    • created a PR to add custom metrics to httparchive so we can track adoption of the Interactivity API and I also started exploring adding performance instrumentation to the Interactivity API, so we can debug performance issues with callbacks.

Improving the calculation of image size attributes

  • @joemcgill I have an update on https://github.com/WordPress/performance/issues/760
    • One of the first steps to this project is to get a baseline of what the impact of inaccurate sizes attributes have on the web. I’ve updated an earlier HTTPArchive query that was created a few years ago to get some of that info, and am planning to work with @adamsilverstein on some additional ways to measure the impact of any changes we make.
    • I’ll plan on creating a bit of a roadmap for how we can improve the sizes attribute via a Performance Lab project once we’re happy with how to measure this.

Optimized autoloaded options

  • @swissspidy we have this long-standing module proposal for optimizing autoloaded options however @joostdevalk just published something very similar. So I was thinking that maybe we should collaborate
    • @joostdevalk I’ve done (in what’s probably a pretty rough way) something similar to what @swissspidy proposed in his ticket too; measure which options are used, remove autoload from those that aren’t used
    • I was kinda shocked by the results on some sites, going from multiple megabytes of options to 2-300 KB
    • I do still think though that maybe we should look at more aspects. We currently only have autoload yes and no, and I’ve basically always thought it’s weird that we don’t use the fact that it’s a string to also allow other contexts, like admin
    • Anyway, my code is there, happy to look at it together with someone and build something for performance labs
    • @joostdevalk One other thing related to options; the impact of a “miss” on an option that’s supposed to be autoloaded is actually way higher, as that always results in a DB query. If we could get a way to prevent that from happening, by having a get_autoloaded_option or something like that, I think the impact could be quite big.
  • @joemcgill For 6.6, we just added some functionality in #42441 that could be useful for automating some of this. After that change, any new option that is added can have its autoload value determined based on some additional criteria. For example, in that issue disables autoloading for large options if they weren’t explicitly added while passing true to the autoload param.
  • @pbearne asked @joostdevalk have you looked #347 code

Open Floor

Our next chat will be held on Tuesday, April 23, 2024 at 15:00 UTC in the #core-performance channel in Slack.

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

Performance Chat Agenda: 16 April 2024

Here is the agenda for this week’s performance team meeting scheduled for Apr 16, 2024 at 15:00 UTC.

  • Announcements
    • Welcome to our new members of #core-performance
    • 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 version 3.0.0 launch on Mon April 15
  • Priority items
    • WordPress performance TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets
      • Current release (6.6)
      • Future release
    • Performance Lab plugin (and other performance plugins)
      • Need to finalise a decision regarding streamlining PL plugin and other standalone plugins #1061
    • Active priority projects
      • INP research opportunities
      • Improve template loading
  • Open floor

If you have any topics you’d like to add to this agenda, please add them in the comments below.


This meeting happens in the #core-performance channel. To join the meeting, you’ll need an account on the Make WordPress Slack.

#agenda, #meeting, #performance, #performance-chat

Performance Chat Summary: 9 April 2024

Meeting agenda here and the full chat log is available beginning here on Slack.

Announcements

  • Welcome to our new members of #core-performance
  • Plan to launch 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 version 3.0.0 on Mon April 15

Priority Items

Structure:

  • WordPress performance TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets
    • Current release (WP 6.6)
  • Performance Lab plugin (and other performance plugins)
    • Open discussion regarding streamlining PL plugin and other standalone plugins #1061
  • Active priority projects
    • INP research opportunities
    • Improve template loading

WordPress Performance Trac Tickets

  • For WordPress 6.6:
    • @adamsilverstein volunteered to be the performance release leadRelease Lead The community member ultimately responsible for the Release. for 6.6

Performance Lab Plugin (and other Performance Plugins)

  • Open discussion regarding streamlining PL plugin and other standalone plugins #1061
    • @flixos90 at a high level I like what @swissspidy proposed in https://github.com/WordPress/performance/issues/1061#issuecomment-2044774194
      • It would be great if we could have distinct releases per plugin, and automate it completely. Even before we had standalone plugins, the Performance Lab release process involves quite a bit of manual work, like bumping versions and adding changelog in PRs. It takes just a very short time, so not a big overhead, but still prone to human error
    • @joemcgill I definitely like the idea of making the release on GH the result of a release rather than the cause of a release. Seems like we need to better define all of the requirements that an updated process should meet prior to diving into implementation. Is there someone consolidating those requirements?
      • @thelovekesh has volunteered to pick this up, aiming for next Monday to collect everyone’s feedback and to generate a proposed approach
  • @mukesh27 has been working on below some follow-up PRs.
    • PRs that have been merged:
      • PR #1116 – Delete option when uninstalling the Modern Image Formats plugin
      • PR #1117 – Update 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 dependency
  • @flixos90 opened https://github.com/WordPress/performance/issues/1118 which is about enhancing the npm run since script to support standalone plugins. This unlocks a simple yet valuable improvement to our current publishing workflow for standalone plugins. That said, this is separate from the main discussion we should have here as it doesn’t holistically change anything. I just wanted to mention it for reference

Active Priority Projects

Improve template loading

INP research opportunities

  • @adamsilverstein still working through the results, some discussion has continued in comments on the doc. I also saw @swissspidy opened this ticketticket Created for both bug reports and feature development on the bug tracker. which is related to one of the findings #60962 (thanks!)
    • One other small update, part of the INP doc suggests a move towards Interactivity 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. adoption could be helpful, in that regard I have added custom metrics to httparchive so we can track API adoption: https://github.com/HTTPArchive/custom-metrics/pull/113
  • @westonruter For sites still using MediaElement.js, I’ve identified some code that appears to be needlessly spending ~50 ms (when profiling at 6x CPU slowdown on my machine) to check if the pointer-events style is supported. Since this is now supported by >98% of browsers, I think this entire 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. of logic should be replaced with just a simple export const SUPPORT_POINTER_EVENTS = true given this.
    • Granted, this would be more of a LCP fix than an INP fix since it happens early when the page is loading.

Open Floor

  • @thelovekesh This PR is waiting for review – https://github.com/WordPress/performance/pull/981. Can someone please take a look. Thanks.
  • @spacedmonkey I am going to look into adding new functions for loading multiple networknetwork (versus site, blog) option at once. These plan to mirror the new options for site options. Everyone happy to add this to performance focus?
    • I also want to look into a ticket I created regarding changing how query caches are invalidated
    • At the moment, we use last change as a salt for cache keys. This results in validation but it also means for high traffic sites that generate lots of content, lots of keys being generated. So much so that people are turning the query caches off.
    • I want to find a way to reuse the same query cache keys even after invalidation. Instead of make a new cache and hoping a the existing one falls out of cache, reuse the same key and sort the last modified time as part of the object.

Our next chat will be held on Tuesday, April 16, 2024 at 15:00 UTC in the #core-performance channel in Slack.

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

Speculative Loading in WordPress

The WordPress Performance Team recently published a new plugin called “Speculative Loading” which enables a new technology of the same name to automatically prerender certain URLs on the page, which can lead to near-instant page load times. The functionality is powered by the Speculation Rules 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., a new web API that allows defining rules for which kinds of URLs to prefetch or prerender.

Please install and test the 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 to provide feedback to inform further improvements before a potential consideration to include such a feature in WordPress coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. You can install the plugin by searching “speculative loading” in WP Adminadmin (and super admin), or via the Performance Lab plugin.

A brief history of prefetch and prerender in WordPress

WordPress core has for several years provided a simple Resource Hints API which allows injecting <link> tags into the HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. document that can be used to prefetch or prerender certain resources, among other actions. While prefetching can be useful for certain sub-resources of an HTML document, such as third-party script providers, prerendering goes as far as processing the resource and already performing some rendering offscreen and thus can be useful for entire web pages.

However, using the approach of injecting link[rel="prefetch|prerender"] tags is not very flexible, as the URLs to prefetch or prerender need to be defined as soon as the HTML is loaded. Providing a <link> tagtag A directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.) for every potential anchor link a user may click on the page would be wasteful, while not providing any misses a great opportunity for performance optimization. So far, solutions like Quicklink could be used to dynamically insert <link> tags to prefetch resources in the user’s viewport, which is more flexible, but still far from ideal as it may still excessively prefetch too many resources and requires a JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a user’s browser. https://www.javascript.com/. library.

More importantly though, link[rel="prerender"] does not actually support prerendering, as the “prerender” value is in fact used for something called NoState Prefetch, which means it is still only prefetching certain resources rather than prerendering them, which for instance would include running JavaScript. Last but not least, the “prerender” value is deprecated at this point.

Introducing the Speculation Rules API

The Speculation Rules API is a new web API that solves the above problems. It allows defining rules to dynamically prefetch and/or prerender URLs of certain structure based on user interaction, in JSONJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. syntax—or in other words, speculatively preload those URLs before the navigation. This API can be used, for example, to prerender any links on a page whenever the user hovers over them. Also, with the Speculation Rules API, “prerender” actually means to prerender the entire page, including running JavaScript. This can lead to near-instant load times once the user clicks on the link as the page would have most likely already been loaded in its entirety. However that is only one of the possible configurations.

The following code example shows the general syntax of the Speculation Rules API JSON spec and outlines a configuration where any links other than WP Admin or login URLs are prerendered.

<script type="speculationrules">
{
	"prerender": [
		{
			"source": "document",
			"where": {
				"and": [
					{
						"href_matches": "/*"
					},
					{
						"not": {
							"href_matches": [
								"/wp-login.php",
								"/wp-admin/*"
							]
						}
					}
				]
			},
			"eagerness": "moderate"
		}
	]
}
</script>

The Speculation Rules API allows defining URL patterns for which kind of URLs should be eligible for speculative loading. Rules can be configured to either prefetch or prerender certain URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org patterns. A so-called “eagerness” value can also be specified which dictates how eagerly the prefetching or prerendering should be applied. For example, a value of “moderate” triggers the speculative loading when the user hovers over the link. A value of “conservative” delays this until the user clicks on the link (which still provides a decent performance benefit), while a value of “eager” acts as soon as there is the slightest suggestion a user may click the link. Note that caution is advised with the “eager” configuration in particular as it increases the likelihood of loading URLs wastefully.

Browser support

While the Speculation Rules API has been available in Chrome and Edge since version 109 in general, the particular subfeature needed to unlock the aforementioned functionality is called “document rules”, which was only recently added in version 121. This post describes the latest enhancements to the API in more depth.

In other words, at the time of writing this post end users will need to use either Chrome 121+ or Edge 121+ to get the benefits of this feature. However there are no adverse effects for users on other browsers, as this is a progressive enhancementenhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature.. Therefore using the Speculation Rules API on your website is safe regardless of the user base.

The Speculation Rules API was presented at the W3C web standards conference TPAC 2023, with positive reception. At this point, the standard is in draft stage. Positions regarding the API by Firefox and Safari have been requested. To keep track of specifically the required subfeatures for the functionality outlined in this post, you can refer to this “Can I use” table.

The Speculative Loading WordPress plugin

As mentioned in the beginning of this post, the WordPress Performance Team recently published a new feature plugin “Speculative Loading” which enables speculative loading of other frontend URLs linked on the page. It inserts a JSON script similar to the previous code example. By default, any URLs linked on the page are prerendered with an eagerness configuration of “moderate”, which typically triggers when hovering over a link. As such, you don’t need to do anything after activating the plugin: it just works out of the box. The plugin also provides a few customization options to tweak the behavior to the site owner’s preference.

The Speculative Loading plugin’s settings UIUI User interface

The default behavior can be modified via a new “Speculative Loading” section in the Settings > Reading screen. For example, if the site is using JavaScript that is not yet adapted for being loaded while prerendering, the plugin could be configured to only prefetch documents. One could set the eagerness to “conservative” to reduce the likelihood of URLs being loaded without the user navigating to them. Or one could set it to “eager” to increase the chance of the speculative loading already being completed by the time the user lands on the linked URL, which however runs at the risk of wastefully loading several resources. The default of “moderate” strikes a good balance between sustainability and performance.

The rules for which kinds of URLs to speculatively preload can be customized using a filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. called “plsr_speculation_rules_href_exclude_paths”. For example, plugins that add URLs to a WordPress site which modify user state just from being loaded could use that filter to exclude those URLs from being prerendered or prefetched. 

Here is a code example which would would ensure that URLs like https://example.com/cart/ or https://example.com/cart/foo/ would be excluded from prefetching and prerendering:

<?php

add_filter(
    'plsr_speculation_rules_href_exclude_paths',
    function ( $exclude_paths ) {
        $exclude_paths[] = '/cart/*';
        return $exclude_paths;
    }
);

Please refer to the plugin’s FAQ for details on the filter.

Potential next steps

At the moment, the plugin should be used to test the feature, and the Performance Team is eager to receive feedback as well as analyze the plugin’s performance benefits on load times.

Down the road, as the browser API and the plugin mature, the possibility of including the feature in WordPress core will be explored. However, in order to get there, additional feedback is needed.

Testing and feedback

Your testing and feedback is crucial to improve the feature ahead of exploring its potential usage in WordPress core. Please consider the following ways to help:

The WordPress performance team is excited to learn more about how the Speculation Rules API is being used in WordPress sites. Please try the plugin and share your feedback!

Props @adamsilverstein @domenicdenicola @jeremyroman @swissspidy @tunetheweb @tweetythierry @westonruter for review and proofreading.

#feature-projects, #performance, #performance-lab, #speculative-loading

Performance Chat Agenda: 9 April 2024

Here is the agenda for this week’s performance team meeting scheduled for Apr 9, 2024 at 15:00 UTC.

  • Announcements
    • Welcome to our new members of #core-performance
    • Plan to launch 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 version 3.0.0 on Mon April 15
  • Priority items
    • WordPress performance TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets
      • Current release (6.6)
      • Future release
    • Performance Lab plugin (and other performance plugins)
      • Open discussion regarding streamlining PL plugin and other standalone plugins #1061
    • Active priority projects
      • INP research opportunities
      • Improve template loading
  • Open floor

If you have any topics you’d like to add to this agenda, please add them in the comments below.


This meeting happens in the #core-performance channel. To join the meeting, you’ll need an account on the Make WordPress Slack.

#agenda, #meeting, #performance, #performance-chat

Conducting WordPress performance research in the field

Over the past few years, several Make CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. posts, for example the 2023 performance retrospective, have referenced field data based on how real users experience millions of real WordPress sites. Such field data can help gather metrics of many different kinds, such as adoption of a feature or even its performance impact. As such, they can be instrumental in demonstrating the success of or potential concerns about a 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..

Gathering this data can be accomplished using public datasets like those from HTTP Archive and the Chrome User Experience Report (CrUX). However, as it requires writing BigQuery queries, getting the data may not be trivial as it is a separate technology not relevant for WordPress core development or 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 theme development.

To provide a better starting point for those new to BigQuery, 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, and CrUX, members of the WordPress Performance Team and HTTP Archive have collaborated on a tutorial and reference Colab.

Whether you are new to those technologies or whether you have already written a few BigQuery queries, the Colab provides an introduction and can help build more familiarity. It only assumes some familiarity with SQL in general, such as from writing custom database queries in WordPress. The Colab comes with several queries, alongside their results, which can be used as a reference, and covers use-cases relevant to WordPress core development as well as plugin and theme development. It can be considered a “living resource”, i.e. expect for it to be updated and expanded in the future.

Other than this post, you can also find the Colab linked from a new Make Performance Handbook article on gathering WordPress performance data in the field.

If you are interested in field research around WordPress sites, you may want to take a look and work through the Colab. As it contains a lot of content, please feel free to work through it in multiple sessions.

#analysis, #core, #core-web-vitals, #performance, #plugin, #theme

Performance Chat Summary: 2 April 2024

Meeting agenda here and the full chat log is available beginning here on Slack.

Announcements

Priority Items

Structure:

  • WordPress performance TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets
    • Current release (WP 6.6)
  • 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)
  • Active priority projects
    • INP research opportunities
    • Improve template loading

WordPress Performance Trac Tickets

  • For WordPress 6.6:
    • We have 14 open items in the 6.6 milestone
    • @joemcgill Given that we’re so early in the cycle, I think the most important thing to discuss is making sure we are making progress on any early tickets, and make sure that any tickets we need to add from our priority projects from our roadmap are included in the 6.6 milestone
    • @joemcgill #59442 is the main one that I’m unsure of, given that it has no owner and is marked early
      • @thekt12 and @spacedmonkey did some work on this, but it still needs some iteration and someone to own finishing it up.
      • @pbearne if no one else is free I can take it on
      • @thekt12 This is more of switching to old commit and adding unit testunit test Code written to test a small piece of code or functionality within a larger application. Everything from themes to WordPress core have a series of unit tests. Also see regression. for it. Should be an easy fix.

Performance Lab Plugin (and other Performance Plugins)

    Active Priority Projects

    Improve template loading

    INP research opportunities

    • @adamsilverstein nothing new from me this week, I’m still working on next steps from the research document I shared last week

    Open Floor

    • @flixos90 On and off over the past year, I’ve been working on a WordPress and performance field research Colab which I’d like to share. This Colab provides a technical introduction and a lot of examples to reference for querying 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 and CrUX to get WordPress field data, e.g. for things like adoption, performance impact, CWV, …
      • The Colab is effectively already public, and I “silently” added a new short article to the Make Performance Handbook that for now includes it. I’ve also drafted a Make Core post, which I’d like to publish later this week for more visibility, as this can be relevant for any coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. developer.
      • Any feedback on the Colab as well as the new Handbook article and post draft would be much appreciated! Especially the post draft, as that will get more visibility via the Make Core subscribers.
      • If you’re interested in field performance research, you may want to review / work through the Colab in more depth. I’m intending for it to be a “living resource”, so it’ll be updated and expanded in the future. Thank you in advance!
    • @benoitfouc Performant Translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. feature (I18Ni18n Internationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill.) will avaible for all users with WP 5.6 soon. This feature increase a lot the average performance of all my french websites, thank you so much for working on it. Today WPML was release an update in order to be compatible with Performant Translation https://wpml.org/download/wpml-multilingual-cms/?section=changelog

    Our next chat will be held on Tuesday, April 9, 2024 at 15:00 UTC in the #core-performance channel in Slack.

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

    Performance Chat Agenda: 2 April 2024

    Here is the agenda for this week’s performance team meeting scheduled for Apr 2, 2024 at 15:00 UTC.

    • Announcements
    • Priority items
      • WordPress performance TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets
        • Current release
        • Future release
      • 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)
      • Active priority projects
        • INP research opportunities
        • Improve template loading
    • Open floor

    If you have any topics you’d like to add to this agenda, please add them in the comments below.


    This meeting happens in the #core-performance channel. To join the meeting, you’ll need an account on the Make WordPress Slack.

    #agenda, #meeting, #performance, #performance-chat

    Performance Chat Summary: 26 March 2024

    Meeting agenda here and the full chat log is available beginning here on Slack.

    Announcements

    • Welcome to our new members of #core-performance
    • WordPress 6.5 delayed (see blog post):
      • RCrelease candidate One of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see alpha (beta). 4 will be March 28
      • Release April 2
    • Performance Team have launched two new plugins
      • Optimization Detective 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
      • Embed Optimizer plugin
    • Reminder on timezone difference for this week, this chat will remain at 16:00 UTC and then shift to 15:00 UTC from April 2, 2024

    Priority Items

    Structure:

    • WordPress performance TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets
      • Current release
      • Future release
    • Performance Lab plugin (and other performance plugins)
    • Active priority projects
      • INP research opportunities
      • Improve template loading

    WordPress Performance Trac Tickets

    • For WordPress 6.5:
      • @flixos90 Nothing concrete, though since part of the reason for the release delay is changes to the Font 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., we should probably keep an eye on that it doesn’t regress performance. As far as I understand the scope of the changes, it shouldn’t… but still worth staying on top of
    • For Future Releases:
      • We already have 14 open items in the 6.6 milestone
      • @flixos90 update on #42441 (enhancing autoload API and disable autoload for large options) – The PR has two approvals and looks excellent to me, so I’ve marked the ticketticket Created for both bug reports and feature development on the bug tracker. for commit
        • Going to wait for a few more days to see if any additional feedback comes in, but generally plan to commit this next week so that we can get a lot of testing during the 6.6 release cycle

    Performance Lab Plugin (and other Performance Plugins)

    Active Priority Projects

      Improve template loading

      INP research opportunities

      • @adamsilverstein As promised, I have collected the results of my INP research and am sharing now in this summary doc (along with a linked spreadsheet with all the data). If you want access to the colab and queries, please request it directly in the colab.
        • The summary doc Analysis section highlights some notable data for both coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. and plugins/themes (with action items) that will be worth investigating further. Since there is a ton to absorb there, I think its best to leave comments/questions on the doc itself so we can discuss async, and maybe we can discuss further at a subsequent meeting.

      Open Floor

      • @pbearne one ticket from the old tickets https://core.trac.wordpress.org/ticket/29717 might worth looking at
      • @joemcgill We’ve traditionally done a post following a major releasemajor release A release, identified by the first two numbers (3.6), which is the focus of a full release cycle and feature development. WordPress uses decimaling count for major release versions, so 2.8, 2.9, 3.0, and 3.1 are sequential and comparable in scope. which gives an overview of the performance characteristics of that release. I was planning to draft one for 6.5 once we can take a final set of benchmarks, but I’m assuming that we’re going to end with similar metrics to what we’ve been seeing in the last several RCs, since we’ve not had any new improvements or regressions. I’ll also include details about the editor improvements, but that doesn’t effect any of the CWV metrics we’ve been focusing on. I’d appreciate any thoughts folks have about how to communicate the performance of 6.5 clearly, while accurately reflecting that our benchmarks do NOT show an improvement over the previous release.
      • REMINDER: This meeting will switch to 15:00 UTC from April 2 (next week) onwards

      Our next chat will be held on Tuesday, April 2, 2024 at 15:00 UTC in the #core-performance channel in Slack.

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

      Performance Chat Agenda: 26 March 2024

      Here is the agenda for this week’s performance team meeting scheduled for Mar 26, 2024 at 16:00 UTC.

      • Announcements
        • Welcome to our new members of #core-performance
        • WordPress 6.5 delayed:
          • RCrelease candidate One of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see alpha (beta). 4 will be March 28
          • Release April 2
        • Performance Team have launched the new Optimization Detective plugin
        • Reminder on timezone difference for this week, this chat will remain at 16:00 UTC and then shift to 15:00 UTC from April 2, 2024
      • Priority items
        • WordPress performance TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets
          • Current release
          • Future release
        • 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)
        • Active priority projects
          • INP research opportunities
          • Improve template loading
          • Plugin checker
      • Open floor

      If you have any topics you’d like to add to this agenda, please add them in the comments below.


      This meeting happens in the #core-performance channel. To join the meeting, you’ll need an account on the Make WordPress Slack.

      #agenda, #meeting, #performance, #performance-chat