Performance Chat Summary: 5 May 2026

The full chat log is available beginning here on Slack.

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

  • @spacedmonkey asked whether commits to 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. are currently allowed or if only RTC-related changes should be committed. @westonruter clarified that trunk is still frozen, except for 7.0-specific fixes that get back-ported, and testing commits.
    • @spacedmonkey said they would hold off committing any performance-related changes for now and asked others to pingPing The act of sending a very small amount of data to an end point. Ping is used in computer science to illicit a response from a target server to test it’s connection. Ping is also a term used by Slack users to @ someone or send them a direct message (DM). Users might say something along the lines of “Ping me when the meeting starts.” them if anything needs review or commit.
    • @westonruter added that @pbearne already has a few PRs for testing changes that could be moved forward for commit now, though not performance-related.
    • @pbearne mentioned that there are more PRs to come.
  • @westonruter shared that there is about a 10% regressionregression A software bug that breaks or degrades something that previously worked. Regressions are often treated as critical bugs or blockers. Recent regressions may be given higher priorities. A "3.6 regression" would be a bug in 3.6 that worked as intended in 3.5. in TTFB in WordPress 7.0 compared to 6.9, based on benchmarking noticed by @mukesh27. @westonruter mentioned that TTFB-LCP does not show a regression, so this appears to be additional PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher processing slowing things down, but no single cause has stood out yet.
  • @westonruter also shared ticketticket Created for both bug reports and feature development on the bug tracker. #65165, which was recently opened, about script modules depending on classic scripts. @westonruter noted that this is related to performance because it can reduce the amount of scripts loaded on the page thanks to dynamic imports, which are non-blocking, and mentioned that the ticket had just come in and had not yet been reviewed in depth.
  • @westonruter further pointed out ticket #64696, which focuses on improving the scalability of real-time collaboration via 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. polling and its impact on persistent post caches, noting that things seem to have gone a bit quiet on that ticket.

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)

  • @westonruter shared that PR #2461 which updates @wordpress/scripts and related packages while fixing backward compatibility issues, is currently top of mind.

    Open Floor

    • @westonruter shared a LinkedIn post highlighting that appending <link rel="preload"> tags late in the <head> can be too late for optimal performance if an initial chunk of HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. is sent without those tags, which can happen when a lot of CSSCSS Cascading Style Sheets. is inlined. @westonruter noted that this is relevant for Optimization Detective, since it currently appends these preload tags to the end of the head.
      • @westonruter mentioned that HTTP Link headers are also being sent, so in practice this might not be an issue. However, @westonruter pointed out issue #2304, where large Link headers can exceed NginxNGINX NGINX is open source software for web serving, reverse proxying, caching, load balancing, media streaming, and more. It started out as a web server designed for maximum performance and stability. In addition to its HTTP server capabilities, NGINX can also function as a proxy server for email (IMAP, POP3, and SMTP) and a reverse proxy and load balancer for HTTP, TCP, and UDP servers. https://www.nginx.com/. limits and cause 502 errors.

    Our next chat will be held on Tuesday, May 19, 2026 at 16:00 UTC in the #core-performance channel in Slack.

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

    Performance Chat Summary: 21 April 2026

    The full chat log is available beginning here on Slack.

    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)

    • @mukesh27 shared that @westonruter discussed the Auto Sizes feature during WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more. Asia and opened issue #2449 to outline next steps for further work. @mukesh27 mentioned plans to review the issue and pick it up again when possible, and invited others to contribute in the meantime.
      • @mukesh27 also noted that resolving the sizes issue for the Gallery 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. would put the feature in a good position to be proposed for WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress..
      • @ravikhadka replied expressing interest in working on the feature.

    Our next chat will be held on Tuesday, May 5, 2026 at 16:00 UTC in the #core-performance channel in Slack.

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

    Building a custom sync provider for real-time collaboration

    WordPress 7.0 will introduce real-time collaboration in 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. Out of the box, the editor syncs changes between peers using an 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. polling provider. However, an HTTP polling transport isn’t the only option and it may not be the best fit for your infrastructure, especially if you are a WordPress hosting provider.

    The sync.providers client-side 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. proposed for WordPress 7.0 lets you replace the default transport with your own. This post walks through why you’d want to use one, what a provider does, and how to build one.

    Why build a custom provider?

    The default HTTP polling provider is designed to work on any WordPress installation. It batches document and awareness updates into periodic HTTP requests: every four seconds when editing alone, every second when collaborators are present. (These values are filterable.)

    It works reliably, but there can be good reasons to swap it out:

    • Lower latency. Transports such as WebSockets deliver updates as they happen, not on a polling interval. For sites doing heavy collaborative editing, the difference can be noticeable.
    • Reduced server load. Polling generates requests even when nothing has changed. A push-based transport only sends data when needed.
    • Infrastructure alignment. If you already run WebSocket servers or other real-time transport, you can benefit from using familiar infrastructure with WordPress.

    These benefits come with a substantial overhead. Building a custom provider is not trivial. It will require custom code. Most likely, it will also involve deployingDeploy Launching code from a local development environment to the production web server, so that it's available to visitors. and maintaining server resources.

    What a sync provider does

    Real-time collaboration in WordPress is powered by Yjs, a Conflictconflict A conflict occurs when a patch changes code that was modified after the patch was created. These patches are considered stale, and will require a refresh of the changes before it can be applied, or the conflicts will need to be resolved.-free Replicated Data Type (CRDT) library. WordPress content is represented by Yjs documents; syncing happens by exchanging updates to those documents.

    The sync provider is the transport layer. It facilitates the exchange of Yjs document updates between peers.

    Concretely, a provider needs to:

    1. Receive local Yjs document updates and send them to remote peers.
    2. Receive remote updates and apply them to the local Yjs document.
    3. Report connection status so the editor UIUI User interface can show whether the user is connected.

    GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/’s sync manager orchestrates the syncing process. It creates a sync provider for each Yjs document that will be synced. Therefore, supplying a custom sync provider means supplying a provider creator function. A provider creator is an async function following this example:

    async function myProviderCreator( options ) {
        const objectType = options.objectType; // e.g., "postType/post"
        const objectId   = options.objectId;   // e.g., "123"
        const ydoc       = options.ydoc;       // Yjs document
        const awareness  = options.awareness;  // Yjs awareness
    
        // Create provider.
        const room     = `${ objectType }:${ objectId }`;
        const provider = new MyYjsProvider( ydoc, awareness, room );
    
        // Connect.
        provider.connect();
    
        return {
            destroy: () => provider.destroy(),
            on: ( event, callback ) => provider.on( event, callback ),
         };
    }

    Note that the returned object has two function properties that the provider must implement:

    • destroy(): The sync manager will call this function when it is time to close connections, remove listeners, and free resources.
    • on(): This function allows the sync manager to subscribe to connection state changes. Emit { status: 'connecting' }, { status: 'connected' }, or { status: 'disconnected', error?: ConnectionError } as appropriate.
      • A disconnected event can be accompanied by an error. Using specific error codes allows the editor to give specific feedback to the user. See the list of error codes and resulting messaging.

    Existing Yjs providers

    You don’t have to build a sync provider from scratch. Yjs has a provider ecosystem and several existing libraries can handle the heavy lifting. 

    y-websocket is the most widely used Yjs provider and has been deployedDeploy Launching code from a local development environment to the production web server, so that it's available to visitors. by WordPress VIP and other WordPress hosts. It includes both a client and a simple Node.js server.

    Note: y-webrtc is nominally a peer-to-peer provider that syncs via WebRTC, but in practice it requires centralized servers to reliably connect peers with each other. It is not recommended unless you are willing to invest in those servers. 

    Minimal client example with y-websocket

    Wrapping a Yjs provider in a ProviderCreator function is straightforward, as seen in the following example. However, note that this example is missing essential authorization checks (discussed in the next section):

    import { addFilter } from '@wordpress/hooks';
    import { WebsocketProvider } from 'y-websocket';
    
    addFilter( 'sync.providers', 'my-plugin/websocket', () => {
        return [
            async ( { objectType, objectId, ydoc, awareness } ) => {
                const roomName = `${ objectType }-${ objectId ?? 'collection' }`;
                const provider = new WebsocketProvider(
                    'wss://my-sync-server.example.com',
                    roomName,
                    ydoc,
                    { awareness }
                );
    
                return {
                    destroy: () => provider.destroy(),
                    on: ( event, callback ) => provider.on( event, callback ),
                };
            },
        ];
    } );

    This code replaces the default HTTP polling provider entirely. The filter callback ignores the incoming providerCreators array and returns a new array containing a single WebSocket-based provider creator.

    The WebSocket server (wss://my-sync-server.example.com in the example above) must be configured and deployed separately. The y-websocket-server library is the server companion to y-websocket.

    Authorization and security

    A custom sync provider connects to infrastructure that you own and operate, e.g., a WebSocket server. Because that infrastructure lives outside of WordPress, WordPress can’t authorize requests to it on your behalf.

    Securing the connection between the editor and your sync server is your responsibility—a critical one. Without authorization checks, any user could connect to your WebSocket server and participate in a collaborative session with your WordPress users. 

    Token-based auth

    A common pattern is to issue short-lived tokens via a WordPress REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/ endpoint, then pass the token when opening the WebSocket connection. The tokens assert that the user has permission to collaborate on a specific entity.

    Here’s a simplified example of how the WPVIP Real-Time Collaboration plugin handles it:

    // Fetch a short-lived token from a WordPress REST endpoint.
    // This endpoint is provided by your plugin. Tokens encode the
    // type and ID of the entity being edited, as well as the current
    // WordPress user ID.
    const data = await apiFetch( {
        path: '/my-plugin/v1/sync/auth',
        method: 'GET',
        data: { objectType, objectId },
    } );
    
    // Pass the token as a query parameter when connecting.
    provider.params = { auth: data.token };
    provider.connect();

    Key considerations

    • Validate on the server. Never trust the client. The sync server should verify the token on every connection request. The token should encode information about the user, the entity being edited, and which actions are authorized. The sync server should validate each assertion and reject unauthorized connections before applying any document updates.
    • Authorize per-document. It’s worth restating: Don’t just authenticate the user, additionally verify they have permission to edit the specific post or entity being synced. Your WebSocket server should validate this on every connection.
    • Rotate tokens. WebSocket connections are long-lived. Use short-lived tokens and re-authenticate on reconnect so that revoked permissions take effect promptly.
    • Handle disconnects gracefully. When authorization fails or a token is invalidinvalid A resolution on the bug tracker (and generally common in software development, sometimes also notabug) that indicates the ticket is not a bug, is a support request, or is generally invalid., emit a { status: 'disconnected', error } event so the editor can inform the user. The WPVIP 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. maps WebSocket close codes to specific error types to give users actionable feedback.

    The WPVIP Real-Time Collaboration plugin is a functional and secure example using WebSockets. It’s open sourceOpen Source Open Source denotes software for which the original source code is made freely available and may be redistributed and modified. Open Source **must be** delivered via a licensing model, see GPL. and contributions are welcome.

    Feedback

    If you have questions or feedback about building a custom sync provider, please share them in a comment on this post or in the #hosting channel of Make WordPress Slack.

    Props to @jorbin and @westonruter for feedback and contributions.

    #7-0, #dev-notes, #dev-notes-7-0, #feature-real-time-collaboration

    Performance Chat Summary: 10 March 2026

    The full chat log is available beginning here on Slack.

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

    • @westonruter shared ticketticket Created for both bug reports and feature development on the bug tracker. #64823, which was filed as a companion to various GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ issues related to fetchpriority=high being added incorrectly to IMG tags hidden in blocks. A coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. patchpatch A special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing. is needed to both backportbackport A port is when code from one branch (or trunk) is merged into another branch or trunk. Some changes in WordPress point releases are the result of backporting code from trunk to the release branch. the changes from Gutenberg and make additional refinements to the wp_get_loading_optimization_attributes() and wp_maybe_add_fetchpriority_high_attr() functions to handle the new core use of fetchpriority=auto and fetchpriority=low.
      • PR #11196 is ready for review. @mukesh27 has started reviewing it, and @westonruter shared that it would benefit from additional Performance team review.

    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)

    • @westonruter shared that there hasn’t been any feedback from users on the proposal to sunset Web Worker Offloading, even though there were apparently 6000+ updates to the version that includes the inline warning notice about the intended sunset. @westonruter speculated that it could be because users haven’t seen it yet or they don’t care.

      Open Floor

      • @westonruter shared about traveling for the next two weeks, so joining the next two meetings will not be possible.

        Our next chat will be held on Tuesday, March 24, 2026 at 16:00 UTC in the #core-performance channel in Slack.

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

        Performance Chat Summary: 24 February 2026

        ll chat log is available beginning here on Slack.

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

        • @westonruter shared a newly opened ticketticket Created for both bug reports and feature development on the bug tracker. #64696 and noted that if real-time collaboration ends up disabling object caching for posts on the frontend, this would be a serious concern.
        • @westonruter also shared that there are four other performance-focused tickets in the current milestone.
        • @westonruter asked @pbearne about ticket #64087 and noted that it appeared related to PR #10898, which @pbearne had opened for ticket #64620.
          • @westonruter asked whether #64087 and #64620 were duplicates (or vice versa).
          • @pbearne responded that they look like duplicates and shared that the patchpatch A special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing. should fix both issues.
          • @westonruter replied that he asked the reporter of the other ticket to test the patch.

        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)

        • @westonruter shared that a security issuesecurity issue A security issue is a type of bug that can affect the security of WordPress installations. Specifically, it is a report of a bug that you have found in the WordPress core code, and that you have determined can be used to gain some level of access to a site running WordPress that you should not have. had been responsibly disclosed for the Embed Optimizer plugin and that a fix was released the previous Friday.
        • @westonruter also mentioned that there are several updates across the Performance Lab plugins that would be good to include in a new release.
          • @westonruter suggested targeting a release for Thursday and proposed wrapping up any issues and pull requests that are nearly ready before then.

          Our next chat will be held on Tuesday, March 10, 2026 at 16:00 UTC in the #core-performance channel in Slack.

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

          Performance Chat Summary: 10 February 2026

          The full chat log is available beginning here on Slack.

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

          • @westonruter shared query, noting that there are currently 12 total tickets when including defects and enhancements, and 9 non-defect tickets specifically.
          • @westonruter pointed out that PR #10855, which improves the robustness of page cache detection logic in Site Health, could use another review.
          • @spacedmonkey shared that PR #10531 had just been approved and would be committed shortly.
            • @westonruter asked about a review comment on that PR regarding password-protected posts.
            • @spacedmonkey replied that the current implementation does not account for password-protected posts, but functionally behaves the same as before, while now benefiting from using WP_Query.
            • @spacedmonkey added that switching to WP_Query opens up additional possibilities beyond caching, including filters and extensibility.
          • @westonruter also highlighted that the PR #9260 appears ready for commit and shared plans to commit it later that day.

          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)

          • @westonruter shared that there had been no responses yet on the Performance Lab CODEOWNERS audit issue #2374.
            • @b1ink0 shared that they would like to be added as a CODEOWNER for the Modern Image Formats plugin, as well as for Site Health tests they had added or updated.
            • @westonruter replied that this sounded good and asked @b1ink0 to update the CODEOWNERS file directly in the PR to add themselves as appropriate.
          • @westonruter mentioned interest in merging the PR #2352 to better observe Copilot’s impact in practice.
          • @westonruter pointed out that there are several open View Transitions plugin PRs that still need review.
            • @b1ink0 shared that they plan to address recent feedback on PR #2336 by the end of the week.

          Open Floor

          • @westonruter raised a question about whether the GitHubGitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged by the repository owner. https://github.com/ SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/ integration for the Performance repository is proving helpful or if it is becoming too noisy, noting a personal impression that it may be more noise than signal.
            • @b1ink0 shared that the integration feels noisy, particularly due to Dependabot pull requests.
            • @westonruter experimented during the meeting with subscribing and unsubscribing from the GitHub integration and observed that Slack does not currently support filtering out Dependabot notifications.
            • @westonruter suggested that creating a separate “firehose” channel could be an option if the team wants to preserve visibility without overwhelming the main channel, while also noting that they are already subscribed to all issues and pull requests directly in the repository.

          Our next chat will be held on Tuesday, February 24, 2026 at 16:00 UTC in the #core-performance channel in Slack.

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

          Performance Chat Summary: 27 January 2026

          The full chat log is available beginning here on Slack.

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

          • @westonruter shared a Trac query covering performance-related tickets milestoned for WordPress 6.9.1 and 7.0.
          • @westonruter shared that for ticketticket Created for both bug reports and feature development on the bug tracker. #61500, some work was done recently as part of the CodeMirror upgrade effort.
            • @westonruter explained that ideally there would be a declarative way to add script modules as dependencies for classic scripts, and noted that a workable approach is to register an empty script module that declares module dependencies, and then enqueue that module whenever the classic script is enqueued. @westonruter shared reference to example diffs demonstrating this workaround and mentioned being glad to find a quick solution.
          • @mukesh27 asked whether @westonruter had reviewed the latest comment on #64229, where @wildworks raised a minor point and opened a PR.
            • @westonruter replied that the comment had been seen the night before and initially mentioned not having a patchpatch A special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing. yet, then noted that a PR already existed and shared PR #10799. @westonruter reviewed the PR, said it looked good, and approved it.
          • @westonruter brought up #64066 and shared that @gilbertococchi is actively working on collecting data to support switching to moderate prefetch by default on sites with caching.
            • @westonruter referenced a Slack thread where LCP passing rates for conservative versus moderate prefetch were discussed and noted that additional data is being gathered by flipping a few CrUX-eligible sites from conservative to moderate to compare LCP passing rates and page hit increases over time.
            • @westonruter added that landing #64066 is related to #64370, noting that the latter needs to land to ensure reliable detection.
          • @mukesh27 asked about the review status of PR #10606 and mentioned seeing comments from @westonruter.

          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)

          Open Floor

          • @westonruter shared recent experience using 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 by the repository owner. https://github.com/ Copilot together with Gemini CLICLI Command Line Interface. Terminal (Bash) in Mac, Command Prompt in Windows, or WP-CLI for WordPress. locally, describing it as immensely useful both for review and implementation work. @westonruter described Copilot as significantly better than a traditional linter during reviews and noted that it can provide strong first-pass implementations. @westonruter shared PR #10778 as an example of using Gemini CLI during the CodeMirror upgrade and explained that a detailed historical and technical specification was provided to the tool.
            • @westonruter also shared that Copilot was used to draft a Performance Lab fix while on public transit using only a phone, referencing PR #2346.
            • @dmsnell cautioned that Copilot can sometimes reintroduce defects during PR reviews, sharing an anecdote where Copilot repeatedly flagged and reintroduced a PCRE-related bugbug A 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. even after it had been fixed.
            • @justlevine added that this behavior can indicate ambiguities in code and suggested that improving self-documentation helps both humans and LLMs.
            • @dmsnell emphasized the need for extra care when LLMs introduce defects, as they can confidently repeat mistakes if the surrounding code does not change enough.
            • @westonruter agreed, noting that while hallucinations occur, the tools still provide good feedback most of the time and help shift focus away from minutiae like coding standards toward higher-level problem solving.
          • @dmsnell raised the topic of memoizing wp_normalize_path, noting observed performance improvements of roughly 1ms during WordPress startup in certain environments. @dmsnell explained that while this is a micro-optimization, it can have meaningful impact at scale and shared that @josephscott has been investigating early startup costs using production measurements. @dmsnell mentioned having tested earlier versions without caching and discussed trade-offs between caching and alternative approaches, including replacing PCRE calls and addressing what may be a latent bug.
            • @westonruter asked whether similar performance benefits were observed across different approaches.
            • @dmsnell replied that while direct testing had not yet been done for all variants, prior comparisons suggested the cache provided most of the benefit at a fraction of the cost, and that both approaches could potentially coexist.
            • @westonruter summarized this as a “both/and” situation rather than an either/or choice.

          Our next chat will be held on Tuesday, February 10, 2026 at 16:00 UTC in the #core-performance channel in Slack.

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

          Performance Chat Summary: 13 January 2026

          The full chat log is available beginning here on Slack.

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

          • @westonruter shared that an issue related to Modern Image Formats in coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. had surfaced, pointing to #60480.
          • @westonruter shared the reports covering performance-related tickets for WordPress 6.9.1 and 7.0 specifically enhancements/features.
            • @westonruter highlighted #64066 as potentially the most impactful open ticketticket Created for both bug reports and feature development on the bug tracker., which proposes changing Speculative Loading’s default eagerness from conservative to moderate when caching is detected. @westonruter noted that no negative feedback has been received so far but acknowledged the change could be controversial and planned to ask for additional feedback in the #hosting channel.
          • @mukesh27 asked about the status of the Adminadmin (and super admin) View Transitions work. @westonruter replied that this is tracked in #64470, with an active PR #10699 opened by @flixos90.
            • @westonruter shared that the change looks close to being ready, but an unexpected E2E test failure still needs investigation. @mukesh27 shared that the implementation looks solid overall, and @westonruter mentioned he had merged the latest 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. changes and planned further debugging, including testing behavior with unminified scripts if the failure persists.

          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)

          • @SarthakJaiswal shared that he has been working on PR #2321, plans to review feedback, and will implement required changes soon, while also asking whether there are additional polishing improvements worth considering.

          Open Floor

          • @mukesh27 asked who would be attending WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more. Asia this year. @westonruter shared that he is looking forward to the Core Performance table at Contributor DayContributor Day Contributor Days are standalone days, frequently held before or after WordCamps but they can also happen at any time. They are events where people get together to work on various areas of https://make.wordpress.org/ There are many teams that people can participate in, each with a different focus. https://2017.us.wordcamp.org/contributor-day/ https://make.wordpress.org/support/handbook/getting-started/getting-started-at-a-contributor-day/ and noted that, since the conference will correspond with WordPress 7.0, either team could land some very early things for WordPress 7.1 or focus on Performance Lab.

          Our next chat will be held on Tuesday, January 27, 2026 at 16:00 UTC in the #core-performance channel in Slack.

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

          Performance Year-End Chat Summary: 23 December 2025

          The full chat log is available beginning here on Slack.

          View Transitions to CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.

          • @westonruter kicked off the discussion by referencing plans to graduate the View Transitions plugin into core for WordPress 7.0, noting it pairs well with the adminadmin (and super admin) refresh and introduces theme support for configuration.
            • @mikewpbullet raised concerns about potential clashes with plugins or custom code and suggested a UIUI User interface checkbox or update splash screen guidance, while @schmitzoide proposed a general “Activate Advanced Features” checkbox.
            • @adamsilverstein noted performance plugins could add controls.
            • @westonruter clarified that sites could opt out via code toggles like filters or theme support, aligning with WordPress philosophy of decisions over options.
          • Update: See #64470 and #64471.

          Speculative Loading and Caching Enhancements

          • @westonruter highlighted ticketticket Created for both bug reports and feature development on the bug tracker. #64066 to shift default eagerness from conservative to moderate when caching is detected, aiding View Transitions by reducing link click delays.
            • @mikewpbullet raised concerns about page caching rarely helping admin performance and noted that server-side caching via nginxNGINX NGINX is open source software for web serving, reverse proxying, caching, load balancing, media streaming, and more. It started out as a web server designed for maximum performance and stability. In addition to its HTTP server capabilities, NGINX can also function as a proxy server for email (IMAP, POP3, and SMTP) and a reverse proxy and load balancer for HTTP, TCP, and UDP servers. https://www.nginx.com/. or Varnish often runs without WordPress plugins that Site Health could detect.
            • @westonruter explained that core’s Site Health test already accounts for proxy caches beyond just plugins and remains extensibleExtensible This is the ability to add additional functionality to the code. Plugins extend the WordPress core software. for improvement.
            • @adamsilverstein acknowledged that comprehensive coverage is impossible but emphasized WordPress’s advantage in rendering detection rules dynamically.
            • @schmitzoide asked whether Site Health could diagnose performance issues.
              • @westonruter added that Performance Lab includes additional tests for excessive blocking scripts and styles.
            • @westonruter responded to @mikewpbullet‘s earlier admin concerns with two ideas: enabling bfcache in the admin for smooth back/forward transitions #63636, and considering speculative loading for admin menu items on sites with object caching enabled.
              • @mikewpbullet raised concerns that users may not want cached admin pages when hitting back, and that object caching is unlikely to help with page load times in admin where slowness comes from 3rd party background requests.

          Admin and Dashboard Performance

          • @adamsilverstein shared that tackling the Dashboard landing page is a priority for the new year and mentioned an existing performance ticket. @westonruter later identified ticket #55344 and suggested the Dashboard could leverage preload links for commonly-used resources like the edit post screen assets.
            • @westonruter connected this to ticket #57548 about retiring script and style concatenation in wp-admin, explaining the benefit would be effective preloading but noting that concatenation might still offer better performance without a primed cache, which requires benchmarking. This discussion led to exploring Compression Dictionaries, a newer capabilitycapability capability is permission to perform one or more types of task. Checking if a user has a capability is performed by the current_user_can function. Each user of a WordPress site might have some permissions but not others, depending on their role. For example, users who have the Author role usually have permission to edit their own posts (the “edit_posts” capability), but not permission to edit other users’ posts (the “edit_others_posts” capability). that @westonruter explained allows browsers to reuse intersecting portions of different concatenated bundles.
            • @mikewpbullet questioned the need given server-side Brotli compression already exists.
            • @westonruter clarified this isn’t about PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher-based gzip but about the new compression dictionary transport standard that enables reusing cached bundle portions across different pages, particularly beneficial 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. themes enqueue block styles on-demand based on page content, and in WordPress 6.9 this also applies to classic themes, so compression dictionaries would allow concatenating these varying bundles while enabling browsers to cache and reuse individual styles across pages with different bundles, significantly reducing CSSCSS Cascading Style Sheets. downloads for both logged-in and logged-out users.

          Roadmap and Future Planning

          • @schmitzoide asked about the team’s roadmap. @westonruter linked to the 2024 roadmap and explained this meeting serves to shape 2026 priorities, noting they’ll likely use milestoned TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets rather than a full roadmap post given fewer active contributors currently.
            • @schmitzoide asked about graduating additional Performance Lab features and shared plans to propose ideas from block theme optimization work via repository tickets. @adamsilverstein encouraged opening issues for any PerfNow conference ideas worth experimenting with in 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..
          • @sirlouen asked about integrating performance testing activities similar to GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/’s approach, including 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 by the repository owner. https://github.com/ Actions tagging and handbook expansion. @westonruter welcomed aligning testing strategies with other core teams in the new year.

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

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

          Performance Chat Summary: 16 December 2025

          The full chat log is available beginning here on Slack.

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

          • @westonruter shared that he is still working through fixes for a CSSCSS Cascading Style Sheets. issue introduced in WordPress 6.9 related to loading separate 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. styles on demand in PR #10601.

          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)

          • @westonruter noted that several PRs needs to be reviewed.
          • @b1ink0 asked for feedback regarding the planned sunsetting of the Web Worker Offloading plugin issue #2284.

          Open Floor

          • @westonruter shared that Safari now supports measuring the LCP metric, which he said will meaningfully improve URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org Metric collection for Optimization Detective
            • @spacedmonkey wondered whether the team could begin running the performance coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. e2e tests against Safari now that the browser includes this capabilitycapability capability is permission to perform one or more types of task. Checking if a user has a capability is performed by the current_user_can function. Each user of a WordPress site might have some permissions but not others, depending on their role. For example, users who have the Author role usually have permission to edit their own posts (the “edit_posts” capability), but not permission to edit other users’ posts (the “edit_others_posts” capability)..
          • @westonruter added that he is interested in exploring Compression Dictionaries after learning they can be implemented in PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher with relatively little effort referenced article.
          • @b1ink0 shared information regarding the final 2025 meeting to discuss the 2026 roadmap, scheduled for December 23, 2025.

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

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