The WordPress coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. development team builds WordPress! Follow this site forย general updates, status reports, and the occasional code debate. Thereโs lots of ways to contribute:
Found a bugbugA bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority.?Create a ticket in the bug tracker.
Based on the previous proposal around the 2024 Major Release Timing, itโs time to call for volunteers. Since there are release dates for the upcoming three releases, letโs formalize the 6.5 release squad and begin shaping the other two squads of the year ahead. Knowing who will participate in 6.6 and 6.7 in advance will let folks shadow previous releases and allow for better preparation and mentoring.
WordPress 6.5 Schedule
Milestone
Date
Alpha (trunktrunkA 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. open for 6.5 release)
October 17, 2023
BetaBetaA 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
February 13, 2024
Beta 2
February 20, 2024
Beta 3
February 27, 2024
Release Candidaterelease candidateOne 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). 1
March 5, 2024
Release Candidate 2
March 12, 2024
Release Candidate 3
March 19, 2024
Dry Run
March 25, 2024
WordPress 6.5 General Release
March 26, 2024
WordPress 6.5 call for volunteers
The WordPress 6.5 release squad is still looking for diverse volunteers in every role.
Ultimately, each volunteer will only participate in a single role, and each role aims to have two to three people; past releases have shown that while itโs beneficial to share the responsibility with other people, there are diminishing returns when there are too many folks involved.
The following names are not assignments, only the summary of folks who have volunteered so far:
Release Coordinator: Hรฉctor Prieto
CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. Tech Lead: Pascal Birchler*
Editor Tech Lead:ย Dave Smith
Core TriagetriageThe act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. Lead: Rajin Sharwar
Editor Triage Lead: Anne McCarthy*
Documentation Lead:
Marketing & Communications Lead:
Test Lead: Anne McCarthy*, Vipul Ghori, Patrick
Design Lead:
Performance Lead: Pascal Birchler*
(*) People who have volunteered for more than one role. Their participation will be adjusted to a single focus depending on the release squadโs needs.
As of today, every role has openings; if you are interested in participating, please leave a comment below by January 12th.
WordPress 6.6 and 6.7 timeline
These are the updated release dates for WordPress 6.6 and 6.7:
WordPress 6.6 Beta 1 is planned for June 4, and the general release for July 16 (no changes since the original proposal).
WordPress 6.7 Beta 1 is planned for October 1, and the general release for November 12. The dates have been pushed one week to consider WordCamp US 2024 (September 17-20) and give some breathing room in between.
Please bear in mind these dates are not fixed and might change as the year progresses. This early planning aims to provide clarity around the release timeline and shape the upcoming release squads in advance.
WordPress 6.6 and 6.7 call for volunteers
Since we have a rough idea of the WordPress 6.6 and 6.7 dates, letโs start shaping their release squads. Please volunteer in the comments below if you would like to participate in these releases, being mindful of your availability throughout the year before committing. Needless to say, if your availability changes later due to unforeseen circumstances, adjustments to the squads can be made.
Thanks to this early planning, we will experiment with starting the next default theme as early as 6.6, so if you are interested in working on the successor of the amazing Twenty Twenty-Four, please raise your hand in the comments.
(Updated post Dec 23, 2023 with volunteer call for 2024 releases; Dec 28, to add โWordPress end of year postโ)
It was agreed at the Dev Chat that there would be a break for a few weeks, from and including December 20, 2023, and restarting on January 10, 2024. During this period, I will be publishing a list of new posts and reminders that come up in coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress.. If there are any others, please do add them in the comments.
Volunteer call for 2024 WordPress releases (December 22, 2023) โ thanks to @priethor for the update, which also includes the proposed schedule for releases. If you are interested, please leave a comment on that post by January 12, 2024.
Whatโs new in Gutenberg 17.3? (December 20, 2023). GutenbergGutenbergThe 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/ 17.3 has been released and isย available for download! This update incorporates numerous enhancements,ย bugbugA bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority.ย fixes, improvements in performance andย accessibilityAccessibilityAccessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both โdirect accessโ (i.e. unassisted) and โindirect accessโ meaning compatibility with a personโs assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility), and ongoing development of Phase 3 features.
Reminder: core team rep nominations and elections. Note: The nomination period was extended until January 12, 2024 at 23:59 UTC, to give more time forย Core contributorsCore ContributorsCore contributors are those who have worked on a release of WordPress, by creating the functions or finding and patching bugs. These contributions are done through Trac.
https://core.trac.wordpress.orgย to consider and nominate other contributors and/or themselves.
For information, in the #fse-outreach-experiment, there was an opportunity for developers to share their theme building workflow with contributors working on theme tooling. Similar opportunities will be promoted in the future. Join the channel to keep up to date with developments.
@pbiron would like people to carry out unit tests that he is adding for TracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets. By mid-December, there were nearly 100 ready to go. Pick up the testing challenge by following this Trac query
Design tools: early draft PR toย add backgroundSize feature with implicit repeating backgroundsย to add more functionality to the Group blockBlockBlock 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.โs background image support that was added in 6.4.
Performance: loads of recent performance improvementsย particularly from ellatrixย (too many to link to) withย more to comeย that should greatly improve both the post and site editor experience. Please share feedback as these fixes and enhancements land!
RevisionsRevisionsThe WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision.: the PR toย integrate style bookย is close to landing, the PR toย show change summary on selected itemย landed for GB 17.3, and the PR toย extend support to other post types for Core data revisionsย landed for GB 17.2.
Pattern overrides (new working name for the previous partial sync patterns): the UXUXUser experience of the experience is being established and refined with the PR toย edit source pattern in focus mode in post editor.
Work continues to align page editing features in Site and Post Editor withย the latest update here.
6.5 documentation trackerย has been started onย GitHubGitHubGitHub 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 by the repository owner. https://github.com/.
As of [57212] in the wordpress-develop SVNSVNSubversion, the popular version control system (VCS) by the Apache project, used by WordPress to manage changes to its codebase. repository and 415ecc9 in the GutenbergGutenbergThe 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/ repository, the versions of Node.js and npm required for WordPress CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. development are now 20.x and 10.x.
Required action by contributors
In order to continue contributing to WordPress through wordpress-develop or WordPress/Gutenberg, youโll need to upgrade the version of Node.js installed on your machine to one thatโs greater than or equal to 20.10.0 (currently the most recent generally available version 20.x version). This should also update npm to the correct, expected version appropriately (10.2.3 or higher is required).
Using nvm (Node Version Manager) is the recommended and most common way to change the version of Node.js you are running. Both wordpress-develop and the Gutenberg repositories have an .nvmrc file specifying the desired version. Running nvm install within your checkoutโs directory will automatically install the latest version that falls within the defined constraints.
If you need further guidance on how to install or use Node.js, npm, or nvm, there is a great tutorial explaining in great detail on learn.wordpress.org.
Note: If you have any open pull requests, you will likely need to update your branchbranchA 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". to include these changes to ensure they work and are tested properly.
How does Node.js versioning work?
Before diving in to some of the background for this change, here is a brief overview of how the versioning for Node.js releases works:
Excluding the main branch (which is always considered unstable), there are 3 states for versions: current, active (LTS or long term support), and maintenance.
Major versions (18.x, 19.x, etc.) are released every April and October.
October releases (always odd numbered) have a support life of 8 months: 6 in current state, 2 in maintenance. They enter maintenance state in April when the next major version is published.
April releases (always even numbered) are converted to active LTS in October after 6 months as the the current version. They remain in active LTS state for 12 months before moving to maintenance for 18 additional months.
While itโs always the preference to use the latest version of any software, thatโs not always feasible. When upgrading, the team always looks to upgrade to the newest possible version at the time. Initially 18.x was targeted for the next update. However, version 20.x is now the current active LTS version. While 18.x is still in maintenance mode and will not reach end of life (EOL) until April of 2025, 20.x will not reach EOL until April 2026. Testing revealed that there were no blockers for updating to 20.x, so this was determined to be the best landing spot at this time.
While itโs true that 21.x is newer and the current version of Node.js, 20.x is the current active LTS version. Because odd versions of Node.js are only supported for 8 months, the project does not typically utilize them.
Can I use Node.js 21 if I want?
Yes! You are free to use any version of Node.js over 20.10.0. But 20.x will always be used to perform any official processing and building of the two projects.
However, the Gutenberg repository will now run some tests against newer versions of Node.js as they become available with the hope that problems can be caught earlier, reducing the level of effort required to update Node.js version requirements in the future.
If you discover a problem working with the wordpress-develop or gutenberg repositories on Node.js 21.x, please open a ticketticketCreated for both bug reports and feature development on the bug tracker. in the appropriate location so it can be investigated.
How does this work? There is an upper limit defined for the npm version.
The upper limit for the npm version allowed has been removed. This was previously in place because a new format for the package-lock.json file was introduced in npm 7. While the new and old formats were both forward and backward compatible, running npm install using 6 and 7 caused the format to change back and forth. There are currently no known issues that would cause similar problems, so the limit has been removed to allow contributors to use Node.js 21.x if desired, and allow for testing newer versions.
If new compatibility issues are discovered, adding a new upper limit can be explored at that time.
What about the other branches of WordPress Core?
The version of Node.js used by all branches of WordPress is currently 14.x with two exceptions: trunk and 6.4. Before today, both were using 16.x. To limit the number of different versions used throughout Core, the 6.4 branch has also been updated to use 20.x.
As a reminder, only the most recent version of WordPress is actively supported (currently 6.4.x).
Though security patches are occasionally backported to WordPress 4.1.x, this is not guaranteed and is only done as a courtesy. The build tools in these older branches were recently updated to be more consistent and reliable. The level of effort to update, test, and commit the changes required to support Node.js 20.x to all 24+ branches that can potentially receive a security update is very high and is not a good use of time until itโs absolutely necessary.
Because of this, there are currently no plans to update older branches to use Node.js 20.x at this time.
Will the required version be updated to 22.x when itโs released in April 2024?
Maybe. This will be evaluated to determine if the update makes sense for the project when the time comes.
Where can I learn more?
Here is a list of locations where discussions related to these changes took place:
This change will likely require some documentation and handbook updates. If you notice any adjustments that need to be made, please do point them out in the appropriate locations so that they can be corrected!
โWhatโs new in GutenbergGutenbergThe 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/โฆโ posts (labeled with the #gutenberg-new tag) are posted following every Gutenberg release on a biweekly basis, showcasing new features included in each release. As a reminder, hereโs an overview of different ways to keep up with Gutenberg and the Site Editor project (formerly called Full Site Editing).
This update incorporates numerous enhancements, bugbugA bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes, improvements in performance and accessibilityAccessibilityAccessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both โdirect accessโ (i.e. unassisted) and โindirect accessโ meaning compatibility with a personโs assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility), and ongoing development of Phase 3 features.
Summary of changes in global styles revision history
A brief summary of the revision change set in the global styles and now offers a concise overview for enhanced visibility. (#56577)
Updated preferences panel
An improved organization of the preferences modal, with introduction of new panels for Appearance and Accessibility settings. (#56481)
Integration of GravatarGravatarIs an acronym for Globally Recognized Avatar. It is the avatar system managed by WordPress.com, and used within the WordPress software.
https://gravatar.com Service for Social Icons
A new social icon for the Gravatar service in the social icons blockBlockBlock 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.. Gravatar, widely utilized across various WordPress platforms, provides profile pages that allow individuals to list their web presence. (#56544)
Other Notable Highlights
Introduces the ability to adjust the dimensions (margin and padding) of individual list-item blocks. #55874
Unified post editor with template and post-only editing modes. (#56671)
Start using modules in the interactive create-block template. (56694)
Changelog
Bug Fixes
(edit-site)(use-init-edited-entity-from-url) Safely access toString() on siteDataโs page_on_front. (57035)
Components
Fix form token field suggestion list reopening after blurring the input. (57002)
Contributors
The following contributors merged PRs in this release:
Tweak table block placeholder with __next40pxDefaultSize props. (56935)
Site Editor
Merge the post only mode and the post editor. (56671)
Site Editor SidebarSidebarA sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme.: Add โAreasโ details panel to all templates and update icon. (55677)
Block Editor
Allow dragging between adjacent container blocks based on a threshold. (56466)
Components: Replace TabPanel with Tabs in the editorโs ColorGradientControl. (56351)
Match the front end layout classname in the editor. (56774)
Global Styles
Global style revisionsRevisionsThe WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision.: Show change summary on selected item. (56577)
Create-block-interactive-template: Add all files to the generated pluginPluginA 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. zip. (56943)
Create-block-interactive-template: Prevent crash when Gutenberg plugin is not installed. (56941)
Fix end-to-end test: Update how we find the template title to match markup changes. (56992)
Fix: Fatal php error if a template was created by an author that was deleted. (56990)
Fix: PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher 8.1 deprecated warning strpos(). (56171)
Font Library: Add font family and font face preview keys to schema. (56793)
Remove unnecessary CSSCSSCascading Style Sheets. for shrinking central headerHeaderThe 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. area. (56220)
Fix error when using a navigation block that returns an empty fallback result. (56629)
Fixture Tests: Correctly generate fixture files for form-related blocks. (56719)
Image: Fix resetting behaviour for alt image text. (56809)
Social Links Block: Prevent Theme Styles Distorting Size. (56301)
Update image block save to only save align none class. (56449)
Components
DropdownMenuV2Ariakit: Prevent prefix collapsing if all radios or checkboxes are unselected. (56720)
FormToggle: Do not use โ/โ math operator. (56672)
PaletteEdit: Temporary custom gradient not saving. (56896)
ToggleGroupControl: ReactReactReact is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces.
https://reactjs.org correctly to external controlled updates. (56678)
Block Editor
Apply __next40pxDefaultSize to TextControl and Button component in renaming UIs. (56933)
Show back button when editing navigation and template area in-place with no URLURLA specific web address of a website or web page on the Internet, such as a websiteโs URL www.wordpress.org params. (56741)
Typography
Fix order of typography sizes and families. (56659)
Fix top position and height of Pattern Modal Sidebar. (56787)
Interactivity APIAPIAn 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.
Start using modules in the interactive create-block template. (56694)
Layout
Fix input not showing when switching to โFixedโ width. (56660)
Consolidate and resolve display issues between InserterPreviewPanel and BlockStylesPreviewPanel. (56011)
Inspector Controls
Decode some characters if used in taxonomyTaxonomyA taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies. name so itโs displayed correctly in Query LoopLoopThe Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop filters. (50376)
Accessibility
Data Views
Add scroll padding to dataviews container. (56946)
Fix: Use span instead of heading for the template titles. (56785)
Post Editor
Avoid to show unnecessary Tooltip for the Post Schedule button. (56759)
Block Editor
Increase right padding of URL field to take the Submit button into account. (56685)
Site Editor
Shorter screen reader announcement after changing pages. (56339)
Components
Use tooltip for the Timezone only when necessary. (56214)
Performance
Block editor: Make all BlockEdit hooksHooksIn 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. pure. (56813)
Block editor: Remove 4 useSelect in favour of context. (56915)
Block editor: hooks: Avoid BlockEdit filterFilterFilters 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. for content locking UI. (56957)
CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. data revisions: Remove hardcoded supports constant. (56701)
Editor: Cleanup default editor mode handling. (56819)
Editor: Move the BlockCanvas component within the EditorCanvas component. (56850)
Editor: Move the device type state to the editor package. (56866)
Many thanks to @mikachan for helping out to publish the plugin, @jameskoster for providing graphics for this post, @mikachan and @vcanales for reviewing the draft of this post.
Reminder there will be no SlackSlackSlack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/ meeting on Tuesday December 26
@joemcgill On the lazy-loading variations ticketticketCreated for both bug reports and feature development on the bug tracker., I did hear fromย @mamaduka yesterday that he plans on reviewing that ticket soon, as heโs been off for the past few weeks.
JavaScriptJavaScriptJavaScript 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 & CSSCSSCascading Style Sheets.
@flixos90 No real update, just that Iโm currently experimenting with the Interactivity APIAPIAn 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., specifically to use it in classic default themes to replace more manual custom JSJSJavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors.. Partly to familiarize myself with the API, partly for a first prototype of something weย couldย potentially do in the future. Should have a first draft PR up for later today. Really for reference more than anything
@joemcgill Last week I put togetherย a small experimentย to see how the new auto-sizes for lazy-loaded images feature is working now that itโs being implemented in browsers. Based on that exploration, I put togetherย an initial module implementationย that can already be used for testing. I plan to update the PR this week.
Related โ I also openedย a new issueย to discuss how we want to handle new modules once the unbundling project is complete. Feedback would be appreciated.
Link to roadmap projects and link to the GitHub repo for PluginPluginA 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. Checker
@mukesh27 For the Plugin Check, I have been addressingย issue 342ย and have openedย PR 347, which is now ready for review and I also supported in code review process. Moreover, there is positive news that some community contributors are actively working on several issues and have raised corresponding PRs for them.ย
@desrosj I noticed that theย performance tests started failing in some older branchesย while working on some E2E test related changes. Well, it only seems to be happening for the 6.4 branchbranchA 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". currently. But Iโm wondering if the needed conditions just havenโt been met for the other branches.
@joemcgill Iโm only seeing the latest commit fail according toย this list. Am I looking at the wrong thing?
@desrosj Thatโs accurate. I was confusing the additional E2E failures with something (potentially) unrelated that Iโve fixed separately. #60095 is what I was working on. The step that is failing seems to be checking 6.1.1 for a baseline if Iโm reading it correctly.
@joemcgill Iโm going to try rerunning that one, since the same commit to the 6.3 branch worked fine.
FWIW, I committed the fix for 60095 in the 6.1 branch this morning, and this workflow was from yesterday. Maybe the re-run does not include changes for the other branch because they were not there when this change was made? Started aย manual runย for 6.4 to try and rule that out.
This post summarizes and highlights the impact that WordPress has had on Core Web Vitals (CWV) in the field in 2023, providing a metric-based retrospective at the end of the year.
TL;DR: The WordPress performance team and all WordPress contributors can be very proud of the accomplishments: The overall CWV passing rate across all WordPress sites has improved from 28.31% to 36.44% (+8.13%) on mobile devices and from 32.55% to 40.80% (+8.25%) on desktop devices. ๐
These improvements led to a visible increase of CWV passing rates even for the entire web. The performance team is currently discussing additional findings to define the focus for 2024 and is looking for further proposals and contributors for next year.
Before looking at the 2023 metrics in more depth, a few things should be clarified.
The metrics shared in this post are exclusively field metrics. They are distinctively different from lab metrics, which are the metrics that have typically been shared in the WordPress release performance summary posts this year:
Lab metrics are benchmarks conducted on demand, typically as a synthetic A/B performance comparison. They provide an indication of whether/how a specific change is anticipated to impact performance. For example, for the lab metrics shared for the WordPress releases in the aforementioned posts, the load time performance of the respective new WordPress version was compared to that of the previous version, on the exact same setup, so that the only different variable is the WordPress version.
Field metrics on the other hand are analytics data collected from site usage and provide an indication of how performance is actually experienced by real users on real sites. For example, the Chrome User Experience Report (CrUX) provides a public dataset of performance field data from opted-in Chrome users, aggregated at the site level. The WordPress 6.3 field impact summary post shared metrics queried from that dataset, granularly broken down for just that release compared to the previous 6.2 release.
When reviewing field metrics, it is important to consider the following:
Field metrics are influenced by a myriad of factors, for example the active plugins and theme, the WordPress coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. version, the hosting stack, the browser(s) used by end users, their networknetwork(versus site, blog) connection, and more. So when comparing field data between two months, for example, it is impossible to limit the comparison to just one specific aspect of those.
Field metrics do not allow direct correlation between specific enhancements and their concrete metric impact. This is closely related to the previous point: Even if you compare the performance of a dataset of sites that enabled a specific feature before and after the change, for example, there may have been numerous other changes during that time that influence the data. Effectively, it is impossible to conduct clean A/B tests in the field.
Field metrics are more meaningful the larger the dataset is. Because of them being only indicators rather than โproofโ, the larger the relevant dataset the more a specific metric observation from it can be trusted. Itโs also worth considering that the webโs user base is incredibly diverse, so even the audience that a specific site has matters significantly for its field performance.
And yet, despite all these caveats, field metrics are the only way to validate how beneficial performance changes really are. If a performance โimprovementโ doesnโt impact real users, it effectively doesnโt matter even if it looked great in the lab.
CWV breakdown and assessment
For a brief recap on Core Web Vitals (CWV), they are a set of three specific metrics:
Each of these metrics has thresholds for whether a value is considered โgoodโ, whether it โneeds improvementโ or whether it is โpoorโ.
This visualization shows the three CWV metrics and their thresholds.
These metrics can be captured for every single navigation / page load. A page load is then only considered to have โgoodโ CWV if all three metrics show a โgoodโ value. In other words, for a single navigation the CWV assessment is simply a binary metric of โgoodโ or โnot goodโ.
When looking at actual CWV datasets in the field, metrics are always aggregated, typically at the site / origin level. In other words, such an aggregation encompasses all navigations that happened on that site in a given time frame. In that dimension, the CWV assessment is considered โgoodโ if 75% or more of the navigations have a โgoodโ CWV assessment.
Last but not least, CWV can also be assessed at a larger scale, for example across all sites using a specific technology, like WordPress. In that scenario, CWV are typically measured through a โpassing rateโ which describes the percentage of sites that have a โgoodโ CWV assessment. For example, if in a dataset of 1 million sites 200,000 of them have a โgoodโ CWV assessment, the resulting passing rate is 20%.
Note that not only the overarching CWV passing rate can be measured, but also the passing rates for the individual metrics (LCP, FID, CLS and others). The CWV passing rate is however the most meaningful single metric as it is a summary of all of them.
But now letโs take a look at the data. Note: All metrics highlighted in this post are CrUX passing rates from the field, based on year-over-year comparisons between October 2023 and October 2022 (unless otherwise indicated).
WordPress CWV in 2023
As already mentioned in the โTL;DRโ at the beginning of this post, CWV for WordPress have improved significantly this year:
Mobile CWV passing rate improved 8.13% (from 28.31% to 36.44%).
Desktop CWV passing rate improved 8.25% (from 32.55% to 40.80%).
While at first glance ~8% may not sound like much, it is a quite substantial boost to the passing rates, particularly when considering their base values. Relatively speaking, the new passing rate is ~29% higher than the old one on mobile and ~25% higher on desktop.
For reference: The previous yearโs improvement for CWV passing rate was 6.99% on mobile and 6.25% for desktop. So while WordPress already did a great job in the previous year, this year even exceeded those accomplishments.
This chart shows WordPressโs mobile CWV passing rate throughout the year. Note that the decline between March and April is not a result of a WordPress-specific problem (or any performance issue at all), but rather due to a change in how the LCP metric is being calculated, which was rolled out in that month.
Letโs take a closer look at the individual metrics that make up CWV and how they changed this year. For simplicity, only the mobile numbers are shown below. They are slightly more important than desktop results since mobile traffic overall is higher than desktop traffic. More importantly, performance improvements carry more importance for mobile devices as they are typically less powerful and are subject to worse network conditions. It is also worth noting that the corresponding desktop numbers donโt show any notable differences in trend.
Mobile LCP passing rate improved 8.89% (from 34.48% to 43.37%).
Mobile CLS passing rate improved 4.22% (from 74.76% to 78.98%).
Mobile FID passing rate improved 0.87% (from 96.55% to 97.42%).
As you can see, LCP saw by far the largest boost. This is an excellent outcome, as improving LCP was the main focus for the WordPress performance team this year. The rationale behind this may also be obvious when looking at the base values: The LCP passing rate of WordPress sites is the lowest performing metric, so it deserves the most attention. On the flip side, even though FID only improved by less than 1%, that is perfectly fine given its passing rate is already so high.
Based on these metrics, it can furthermore be concluded that LCP was the primary driver behind the overall CWV passing rate improvements, which confirms the focus on this metric has made sense.
Last but not least, the Time to First Byte (TTFB) passing rate should be highlighted as well: While TTFB is not a Core Web Vitals metric, it is a direct part of LCP (specifically denoting its server-side load time performance portion), and it was another partial focus this year both because of its impact on LCP and because its passing rate is very low. Here is how it improved this year:
Mobile TTFB passing rate improved 3.10% (from 18.67% to 21.77%).
Desktop TTFB passing rate improved 3.53% (from 28.44% to 31.97%).
WordPress 2023 releases impact
This section focuses on the load time performance impact of the three new WordPress versions released this year, 6.2, 6.3, and 6.4. Since the focus for all of these releases was load time performance, it is sufficient to focus solely on LCP and TTFB.
While the overarching WordPress metrics from the previous section were based on a broad year-over-year comparison, the metrics to assess the release impact were queried with a more granular approach: For each WordPress version, a dataset was established between two months based on only the intersection of sites that were on the previous WordPress version in the first month and on the newer WordPress version in the second month. The months were then chosen in a way to maximize the size of the dataset (e.g. a WordPress version always sees the highest usage in the month before the subsequent version is released).
While that approach is still by no means an A/B comparison, it eliminates at least a good portion of noise e.g. from sites on other WordPress versions or sites that newly entered or dropped out of the dataset.
WordPress 6.2 LCP and TTFB
All metric comparisons are based on the intersection of WordPress 6.1 sites in March and WordPress 6.2 sites in July. See relevant WordPress 6.2 slide.
Mobile LCP passing rate improved 0.01% (from 34.98% to 34.99%).
Mobile TTFB passing rate improved 0.65% (from 18.47% to 19.12%).
Desktop LCP passing rate improved 2.13% (from 46.85% to 48.98%).
Desktop TTFB passing rate improved 3.89% (from 25.79% to 29.68%).
WordPress 6.3 LCP and TTFB
All metric comparisons are based on the intersection of WordPress 6.2 sites in July and WordPress 6.3 sites in October. See relevant WordPress 6.3 slide.
Mobile LCP passing rate improved 4.72% (from 34.46% to 39.18%).
Mobile TTFB passing rate improved 0.78% (from 18.78% to 19.56%).
Desktop LCP passing rate improved 1.96% (from 48.55% to 50.51%).
Desktop TTFB passing rate decreased 2.15% (from 29.28% to 27.13%).
WordPress 6.4 LCP and TTFB
All metric comparisons are based on the intersection of WordPress 6.3 sites in October and WordPress 6.4 sites in November (since newer data is not available yet). See relevant WordPress 6.4 slide.
Mobile LCP passing rate improved 0.30% (from 37.40% to 37.70%)
Mobile TTFB passing rate improved 0.11% (from 18.21% to 18.32%).
Desktop LCP passing rate improved 0.13% (from 49.46% to 49.59%).
Desktop TTFB passing rate decreased 0.31% (from 25.88% to 25.57%).
Remember that all of the above metrics are just indicators and an approximation of the field impact of those releases, influenced by several factors. Itโs also great to keep in mind that the adoption of those versions will continue to grow. For example, as of November ~68% of all WordPress sites were using version 6.2 or newer based on the dataset. As the adoption increases further, the performance wins from those releases will continue to scale horizontally and benefit more sites.
WordPress 2023 impact on the web
WordPress, with its high usage, has a large footprint on the web, making a significant impact on the entire internet. When WordPress performance improves, the webโs performance improves. Therefore, last but not least, letโs look at the performance impact that WordPress has had on the web overall.
A good starting point for that is to compare the 2023 CWV passing rate improvement of all WordPress sites with that of all sites not using WordPress:
As mentioned before, WordPressโs mobile CWV passing rate improved 8.13%.
The non-WordPress mobile CWV passing rate improved by 3.68%.
The non-WordPress desktop CWV passing rate improved by 5.29%.
From those numbers alone, it is clear that WordPress has made notably more progress in performance than the rest of the web, which is an amazing achievement.
It is furthermore possible to draw some conclusions on how much WordPressโs impact on the overall webโs improvements are. For reference, the overall webโs CWV passing rate improved 5.35% on mobile and 6.26% on desktop. Based on that, a simple calculation can be used, subtracting the non-WordPress CWV passing rate improvement from that of the entire web. This leads to the following results:
1.67% of the overall webโs mobile CWV improvement of 5.35% comes directly from WordPress.
0.97% of the overall webโs desktop CWV improvement of 6.26% comes directly from WordPress.
While those numbers may seem small, this is literally WordPressโs impact on CWV for the entire web! It is an excellent reminder of how important WordPressโs role is for the web and how contributing to WordPress not only improves the WordPress ecosystem but also the entire web.
Considerations for 2024
With this recap of the 2023 CWV impact of WordPress, it is time to look ahead and plan for 2024. In particular there are two important considerations for the performance focus next year.
INP replaces FID as a Core Web Vitals metric
Earlier this year, a notable change to the CWV metrics was announced: The more recently introduced metric Interaction to Next Paint (INP) will replace First Input Delay (FID) in early 2024. Please refer to the linked articles for additional information on the metric and that change. The very short summary is that INP measures interactivity more accurately than FID, and due to its limitations FID ended up having very high passing rates throughout the web ecosystem โ almost perfect as seen in the WordPress numbers before.
This visualization shows the new INP metric and its thresholds.
Since INP measures interactivity more comprehensively than FID, it implies that passing the INP assessment is more difficult than passing the FID assessment. In other words, the INP passing rate is expected to be lower than the FID passing rate. Once INP is taken into account for CWV instead of FID, this will therefore lead to a decline in the overall CWV passing rate as well. In reality, the difference is particularly relevant on mobile devices. Here is a comparison of the FID passing rate and INP passing rate of WordPress sites, based on October 2023:
Mobile FID passing rate is 97.42%, while mobile INP passing rate is 71.48%.
Desktop FID passing rate is 99.97%, while desktop INP passing rate is 98.47%.
While there is a small decline on desktop, it isnโt really worth focusing on as the value is still extremely good. But for mobile, the decline is significant. In other words, it will be important in 2024 to find ways in which WordPress can improve INP passing rates on mobile, in order to make up for the loss compared to FID.
Of course this is not only relevant for WordPress, but for the entire web. Here is how the mobile CWV passing rate would change if INP was already replacing FID today (data based on October 2023):
WordPressโs mobile CWV passing rate would be 3.64% lower (32.80% instead of 36.44%).
The non-WordPress mobile CWV passing rate would be 7.39% lower (40.58% instead of 48.02%).
Based on these numbers, it is at least a little comforting that WordPress will struggle with this change less than the rest of the web. Nevertheless, 3.64% CWV passing rate decline is a significant drop, so part of next yearโs performance goals will be to make up for that loss, likely through a combination of INP focused improvements and a continuation of the LCP focused efforts.
TTFB focus was less impactful than (client-side) LCP focus
The second consideration for 2024 is not related to a metric change, but rather a potential takeaway from the 2023 metrics highlighted in this post: When looking at the WordPress release specific impact, it can be noted that the mobile LCP improvement was by far the highest in the 6.3 release (4.72%, compared to <1% for 6.2 and 6.4).
The WordPress 6.3 release included a number of client-side LCP enhancements, which likely led to a large chunk of those improvements, as more granularly indicated by the findings from the related field analysis from a few months ago. WordPress 6.4 and especially WordPress 6.2 were more focused on server-side LCP enhancements (i.e. TTFB enhancements), and based on the field results those releases did not lead to as large LCP wins. Even for TTFB, the picture isnโt entirely clear: As expected, WordPress 6.2 has a much better TTFB win than 6.3 on desktop, but on mobile devices the two releases show almost equal TTFB wins, with 6.3 even slightly higher.
While those numbers are by no means evidence, they raise the question whether the TTFB focus in WordPress core is the right way to move the needle for load time performance. Potentially the influence of other factors outside of WordPress core on TTFB, such as plugins, themes, hosting stack, or network connection, are just too large for the core-specific server-side improvements to make an impact in the field.
This does not imply the TTFB efforts should be dropped โ but likely a shift is needed. Potentially, the TTFB issues need to be addressed through other means than directly enhancing the server response time of WordPress core itself. Further research should likely be conducted to get a better understanding of how much WordPressโs low TTFB passing rate stems from the pluginPluginA 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. ecosystemโs performance or other aspects not directly code-related such as hosting.
2024 planning is underway
The WordPress performance team is currently working on their roadmap for 2024. A GitHub issue for performance focused project proposals has been opened and awaiting input. Youโre invited to contribute any WordPress performance related proposals or ideas you may have on that issue.
While the 2024 roadmap is currently being planned, letโs once again circle back to 2023: The amazing metrics shared here speak for themselves. Thank you to everyone who contributed to WordPressโs incredible performance impact in 2023!
Here is the agenda for this weekโs performance team meeting scheduled for Dec 19, 2023 at 16:00 UTC. If you have any topics youโd like to add to this agenda, please add them in the comments below.
Call for 2024 roadmap priorities https://github.com/WordPress/performance/issues/903
Reminder there will be no SlackSlackSlack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/ meeting on Tuesday December 26
Summary of the WordPress Developer Blogblog(versus network, site) meeting which took place in the ย #core-dev-blog channel on the Make WordPress SlackSlackSlack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. Start of the meeting in Slack.
Following up on a previous discussion for a central area for documentation for writers, reviewers and admins, @bph has opened theย Wiki space on the GitHub Repository.ย This will put all the little details into one place and an excellent way to organize the pieces.
In early 2024, she will provide a tracking issue for all the updates and new docs that need to be added, and a request for a few of the editorial group to assist in writing and reviewing.ย
@ndiego has addressed some MetaMetaMeta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. feedback on theย PRย yesterday, and it is nearly complete. This update will standardize the Blog to match the pending updates to Developer Resources and provide a solid platform for additional iterations in the future. He highlighted this update will make easier future updates. By using a blockBlockBlock 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. theme, future changes to the templates can be done more easily and directly. In addition, the Blog will inherit all the new functionality that has been developed for the Developer Resources site, such as, consistent spacing sizes, font sizes, local navigation, etc. Any further feedback is welcome.
The meeting thanked @ndiego, the Meta team and all involved for all their work on this.
Latest start of production expected early next week. Developer Resources will launch first, then the Blog updates. Further updates can be followed in the #website-redesign channel on Slack.ย
Project board and status
Project Board on the Blog repo in GitHubGitHubGitHub 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 by the repository owner. https://github.com/.
New posts
Six new Postsย published since the last editorial meeting.
@bph said: โA hugeย thank youย to the writers, and their reviewers!! Fantastic job!โ
Actions:
Proposed by @webcommsat to include co-authors, editors and detailed reviewers names in this list in future meetings/ summary to reflect their input and time. This will also help to encourage more people to volunteer their skills to review, edit and writers to work together on a post. @marybaum and others confirmed the time commitment for a co-author or editor can be considerable, and this can be reflected in the inclusion of their WordPress.orgWordPress.orgThe community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ ID. The inclusion of this additional detail was agreed to be added at the meeting. In the existing checklist, the principal writer of a post adds props to those who have been involved in the props channel on Slack.
Suggestions for people who are good copy editors from other WordPress contributor teams to be shared with @bph for onboarding in 2024 when some additional documentation on expectations and tools is ready.
Posts in progress
In this and the following sections of the meeting summary, the links go to the WordPress Developer Blog repo on GitHub.
In the last few months there has been a slowing down of writing and reviewing, due to contributorsโ other demands, the release, and their own work commitments. Increasing the number of volunteers in these areas will help address this. Action, as above, on identifying good copy editors from other teams.
Actions:
As Dev Chat has now concluded for 2023 and will be back in the second week of 2024, instead of @webcommsat sharing the monthly call out of posts that need writers in that meeting, it was agreed to wait until the next editorial meeting on January 4, 2024.ย
@webcommsat will include a link to the summary of the meeting in a comment on the Dev Chat summary when published.
Future topic ideas for approval
Many new ideas for topics have come through or are in the pipeline. They are not all ready to proceed.
All the topics below were given a positive vote. Further scoping and drafting to follow. Any other comments can be added on the individual GitHub tickets listed.
A note on the Interactivity APIAPIAn 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., that topic was on the list since May, but only now the Interactivity API will become a public API with the 6.5 WordPress release.
Discussion on advance review of the approval list:
the list is now shared in the agenda reminder earlier on the day of the meeting; however, this may not give non-sponsored contributors or those in other timezones or unable to read the items that day the ability to comment most usefully or raise questions
the topic areas are available on the GitHub repo as live tickets and can be reviewed there at any time of the month, and comments added in advance of the Editorial meeting
the aim is to encourage some discussion of those topics and to flesh out an article and identify different angles
Actions:
agreed for a link to new topics to be shared regularly in the Dev Blog slack channel to raise awareness and interest in the topics and potential writers stepping forward
to encourage those putting ideas together to have them on the GitHub project board by a certain date (if possible) before each meeting. It may not always be possible, but in principle, encouraging this will improve the process, a more informed discussion, allow for more asynchronous contributions, and a way of encouraging engagement in the channel and discussion on GitHub.ย
Open floor
Idea for a potential post: @marybaum โ โFrom no-code to no-hands: three ways to generate posts in a taxonomyTaxonomyA taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies. termโ case study
This will be expanded in a more detailed scope in the GitHub repo.
@webcomms raised a previous discussion in the Slack channel. She, like many others in the group, receives requests from developers wanting to know what order to learn WordPress development, tips to help become or familiarize with WP development, etc.
Actions: for a discussion to be created in GitHub spaces.
It fits our scope
Similar posts to be identified from the Dev Blog
This will fit well with the discussion of learning paths, the Training team is tackling..
You must be logged in to post a comment.