Reflections on Speeding Up the Web ![rw-book-cover](https://joemcgill.net/wp-content/uploads/2023/02/joe_headshot-jpg.webp) ## Metadata - Author: [[Joe McGill]] - Full Title: Reflections on Speeding Up the Web - Category: #articles - Document Note: --- tags: [#WebPerformance, #WordPress, #PerformanceTeam, #CoreWebVitals, #OpenSource, #TechCommunity] Author: Joe McGill Source: joemcgill.net Reference: [Link to Article](https://joemcgill.net/2024/12/reflections-on-speeding-up-the-web/) date created: {{date:2024-12-23}} {{time:12:00}} --- # Title: Reflections on Speeding Up the Web ## Table of Contents: - [📖 Introduction](#introduction) - [🔍 Key Lessons Learned](#key-lessons-learned) - [⚙️ Measuring Success](#measuring-success) - [💡 Challenges and Strategies](#challenges-and-strategies) - [🛠️ Tools and Processes](#tools-and-processes) - [🚀 Future Work and Momentum](#future-work-and-momentum) - [📖 References](#references) ### References: - [WordPress Performance Team Site](https://make.wordpress.org/core/) - [Core Web Vitals](https://web.dev/vitals/) ## 📝 Summary: Joe McGill reflects on his experiences working with the WordPress Performance Team, which aims to improve the speed and user experience of WordPress websites. Key insights include the importance of a clear objective, measurable success, and continuous learning. The article also discusses challenges such as diminishing returns on investment and the importance of tools like Core Web Vitals in performance tracking. ## 📖 Main Content: Joe McGill shares his experiences with the WordPress Performance Team, emphasizing the importance of clear goals, measurable success, and ongoing learning. Through projects such as improving image loading and WordPress’ translation system, the team has made significant strides in optimizing performance. Tools like Core Web Vitals and automated workflows help track progress, but challenges arise as the team addresses smaller, more complex issues. ### 🗒️ Notes: - **Clear Objectives**: The team focuses on improving WordPress performance, particularly speed, for a better user experience. - **Example Goal**: Making websites built with WordPress faster. - **Tracking Impact**: Using Core Web Vitals to measure improvements. - **Measuring Success**: Clear metrics like Core Web Vitals provide concrete data to track performance improvements. - **Challenges**: Complexities in measuring performance due to nuanced data. - **Project Alignment**: The team prioritizes projects based on their potential impact and feasibility. - **High-Priority Projects**: Easy to execute with high impact across many sites. - **Lower-Priority Projects**: Require more effort or have less broad applicability. - **Execution and Focus**: Successful project completion requires dedicated focus and the right expertise. - **Challenges**: Interruptions and competing priorities hinder progress. - **Continuous Learning**: The team uses iterative learning to make improvements. - **Tools**: Performance Lab and automated performance workflows for ongoing monitoring. ## 📖 References: - [WordPress Performance Team Site](https://make.wordpress.org/core/) - [Core Web Vitals](https://web.dev/vitals/) ## 🗣️ Paraphrase: 1. Original: "We evaluate the priority of each project or feature based on how large the performance improvement is likely to be." Paraphrase: "The team prioritizes projects according to the magnitude of their expected performance improvements." 2. Original: "In a wide-ranging open source project like WordPress, all of these have to be kept in mind." Paraphrase: "In a large-scale open-source project like WordPress, these factors must always be considered." ## 📰 Newsletter: **Reflections on Speeding Up the Web** Joe McGill shares his insights from working with the WordPress Performance Team, highlighting how they tackle the challenge of improving web speed and performance. By focusing on Core Web Vitals and leveraging automated tools, the team has made measurable progress in optimizing WordPress for a better user experience. If you’re interested in how you can contribute to these efforts or learn more, check out the full article here. ## ✅ Action Items: - **Open Source Community Engagement**: Encourage contributors to explore performance-focused initiatives within WordPress and join the Performance Team. - **Onboarding New Contributors**: Create educational content focused on performance optimization in WordPress for new developers. - **OSPO Advocacy**: Advocate for performance improvements in open-source projects, aligning with the broader goals of sustainability and user experience. ## 🧪 Hypotheses: - Addressing smaller performance issues will continue to offer diminishing returns on investment, requiring more creative strategies for impactful solutions. - Automation and tool integration will become increasingly important in scaling performance improvements across the WordPress ecosystem. ### 📊 Methodology: - Survey WordPress developers about the effectiveness of Core Web Vitals in guiding performance improvements. - Analyze project metrics for performance improvement, tracking success over multiple release cycles. ### ❓ Questions: - How can the WordPress Performance Team balance high-impact projects with smaller, more complex issues? - What role do community contributions play in sustaining long-term performance improvements in WordPress? ### 🔮 Future Research: - Explore how automated performance workflows can be optimized to reduce time and increase impact for large-scale open-source projects. - Study the long-term impact of Core Web Vitals on WordPress performance compared to other content management systems. ### 💡 Implications: This research could lead to improvements in automated performance tracking systems for open-source projects, contributing to faster and more user-friendly websites globally. ### 🧠 Learning Styles Assessment: - **Visual Learners**: Add infographics or charts comparing before-and-after performance benchmarks to aid visual comprehension. - **Aural Learners**: Consider adding an audio summary or podcast discussing the team’s progress and challenges. - **Verbal Learners**: Expand on the language used to explain technical concepts and include more detailed case studies. - **Physical Learners**: Suggest interactive exercises, such as optimizing a WordPress site, to engage hands-on learners. - **Logical Learners**: Provide step-by-step guides or flowcharts for performance optimization. - **Social Learners**: Encourage discussion within the WordPress community about best practices for performance. - **Solitary Learners**: Include reflection questions on how contributors can independently optimize their sites. - **Naturalistic Learners**: Connect performance improvements to environmental sustainability in digital spaces. ### 📊 Accessibility Assessment: - **Screen Reader Compatibility**: Ensure that all charts and images have descriptive alt-text for accessibility. - **Keyboard Navigation**: The site should be fully navigable via keyboard, particularly the tools for performance measurement. - **Contrast and Readability**: Evaluate font choices for high contrast and clarity. - **Text Resizing**: Verify that text is resizable without losing functionality or layout integrity. ### 🌍 DEIB (Diversity, Equity, Inclusion, and Belonging) Assessment: - **Cultural Relevance**: Include diverse examples of performance optimizations across different types of websites (e.g., nonprofit, small business). - **Inclusive Language**: The language is technical but clear, avoid using jargon that may alienate beginners. - **Neurodiversity Support**: The article’s structure is clear, but additional support in breaking up dense sections could aid readers with ADHD or ASD. - **Representation**: Incorporate contributions from a diverse range of WordPress developers in future posts. - **Psychological Safety**: The tone is supportive, inviting contributors to participate without judgment. ### ✅ Logical validity: - **Sound Reasoning**: The article presents a clear, logical progression of ideas, focusing on concrete metrics like Core Web Vitals to track performance. - **Logical Flow**: The arguments about project priorities and execution are well-organized and easy to follow. - **Weak Argument**: Some claims regarding diminishing returns on investment could benefit from additional data to back up - Document Tags: [[Performance Improvement Plan]] [[WordPress]] - Summary: Over the past two years, I’ve had the opportunity to work as part of the WordPress Performance Team, which has the ambitious goal of making the user experience of the whole internet better by… - URL: https://joemcgill.net/2024/12/reflections-on-speeding-up-the-web/ Over the past two years, I’ve had the opportunity to work as part of the WordPress Performance Team, which has the ambitious goal of making the user experience of the whole internet better by improving the performance of WordPress, [which powers over 40%](https://w3techs.com/technologies/details/cm-wordpress) of sites on the web. As the year comes to a close, I wanted to share some things that I’ve learned in the process. #### Good ideas are not enough [The WordPress Performance Team began in late 2021](https://make.wordpress.org/performance/handbook/about-the-team/) with many ideas about the types of projects that they could work on. New initiatives often start with an abundance of ideas and yet struggle to make progress on those ideas due to all sorts of challenges, like a mismatch between the team’s ambitions and the resources available, a lack of clear objectives, or an inability to commit to and execute a coherent strategy. To the credit of [the folks who started the WP Performance Team](https://make.wordpress.org/core/2021/10/28/wordpress-performance-team-kick-off/), they set the team up for success by incorporating several key factors into the team’s founding, which we’ve been able to sustain and expanded on over the past several years: 1. A clear objective 2. A way to measure success 3. A set of projects aligned with the objective 4. The ability to successfully complete those projects 5. A continual process of learning and improvement ##### 1. A clear objective [The WordPress Performance Team site](https://make.wordpress.org/performance/) opens by stating, *“The WordPress Core Performance Team is dedicated to monitoring, enhancing, and promoting performance in WordPress core and its surrounding ecosystem.”* The [mission and philosophies](https://make.wordpress.org/performance/handbook/about-the-team/#mission-and-philosophies) of the team provide more details about the team, but to simplify, the team exists to make websites build with WordPress faster for the people who visit them. While certainly ambitious this is a very clear objective that helps to guide all of the activities of the team. ##### 2. A way to measure success Even with the clearly stated objective, a lofty goal like “we want to make WordPress faster” isn’t all that meaningful unless you can be specific about how you are measuring “fast”. Otherwise, it’s too easy to cherry-pick examples that support the value of your work. Thankfully, Google has established [Core Web Vitals (CWV)](https://web.dev/explore/learn-core-web-vitals) as a set of industry standard metrics that can be used to identify opportunities to improve the software and a means to measure the impact of specific enhancements. Even though the metrics are clear, the ways of measuring those metrics can be complex and nuanced. To help clarify and standardize the approaches we use, we’ve documented tools and process for [how we measure performance](https://make.wordpress.org/performance/handbook/measuring-performance/) in our Team Handbook and use these tools to continually monitor and improve our practice. More on this later. ##### 3. A set of projects aligned with the objective Each year, the Performance Team publishes [a public roadmap](https://make.wordpress.org/performance/roadmap-2024/) of projects that the team intends to work on. These projects include experimental ideas and research projects where the impact is yet to be determined, opportunities where clear performance improvements have been identified, and some internal projects intended to bolster the team’s ability to execute and measure performance. For most of the projects that the team works on, some initial discovery has been done to determine if the potential impact of the work is worth the investment of time that would need to be made to complete the project. To illustrate why this is important, I could hypothetically have a big impact by personally implementing performance best practices on each website individually, but the time needed to do so makes this clearly an absurd idea to propose. Therefore, we have to evaluate the impact of our work against the effort required to complete it. We evaluate the priority of each project or feature based on how large the performance improvement is likely to be, how broadly that improvement will be adopted across all sites, and how much effort (both in terms of engineering and community engagement) will be required to ship and promote the work. With this in mind, the projects with the greatest chance of success are ones that are easier to execute, are not likely to face a lot of community push-back, can be adopted by default on most websites, and are expected to have a big impact out of the box. Conversely, opt-in improvements, or ones likely to face a lot of pushback are less likely to be prioritized as high. ##### 4. The ability to successfully complete those projects Related closely to the last point, having a clear set of projects to work on are only useful if you have the ability to implement them. This means having more than just the right engineering skills, but also requires that you have the ability to plan and execute the engineering effort needed to complete the project. This includes supporting the time needed to stay focused on the effort and the ability to ship and promote the work once it has been completed. Without the right expertise on the team, it will take a lot longer to learn iteratively to produce a working solution. Without a clear plan to break down the project into smaller goals you can easily get stuck in an overwhelming set of problems that inhibit progress or waste time. Without the ability to stay focused on the project—due to factors like changing team goals, interruptions from other priorities, team members changing roles and needing to step away from the project, etc.—progress can be slow. Without the ability to ship and promote the feature you can see a lot of time and effort wasted by hitting a last minute roadblock from important stakeholders, lack of adoption of the feature, etc. In a wide-ranging open source project like WordPress, all of these have to be kept in mind, but for me I think being able to limit interruptions is the most challenging as there are always new and interesting problems that can catch my attention or colleagues working on other priorities whom I would like to support. ##### 5. A continual process of learning and improvement Working on performance is very satisfying for me, because I can make observations about the current performance of the application, plan and implement an improvement, and then measure the impact of that change. However, implementing a process for continual observation and learning is takes a lot of effort. To streamline this work, we’ve implemented several processes that support continual learning and improvement. First, to allow for experimentation and observation, the Performance Team maintains the [Performance Lab program](https://github.com/WordPress/performance) as part of the WordPress organization. This project, which started as a single feature plugin, but has expanded into a mono-repo for a set of feature plugins, allows the team to ship and test experimental features before they are proposed for WordPress Core. Many of the tools and processes we use for measuring performance in our day-to-day work have been incorporated into [an automated performance workflow](https://github.com/WordPress/wordpress-develop/actions/workflows/performance.yml?query=branch%3Atrunk), which runs on each PR to WordPress to measure the performance impact of the change before it is committed, to record the impact of each change after it is committed, and send the results of those measurements to [a custom dashboard](https://www.codevitals.run/project/wordpress/home-block-theme-wpTotal) that tracks performance over time. Also, during each release cycle, a [Performance Lead](https://make.wordpress.org/core/handbook/about/release-cycle/wordpress-release-team-and-focus-leads/#performance-lead) reports benchmarks comparing the current in development release with the previous major release starting at the first beta in order to help discover and fix any regressions that may have occurred during that cycle before the release is shipped. Here’s an example of the [performance benchmarks for 6.7](https://github.com/WordPress/performance/issues/1572). In addition to those tools, we make use of field data collected by the Chrome User Experience Report (CrUX) to track the real world change of WordPress performance metrics over time for each release. Felix Arntz recently shared an overview of [2024 CWV impact data](https://docs.google.com/presentation/d/1Baiu-HoD86_hVqqiQJoQDIbIEiKI0Ie9MtWRiGDqYoM/edit?usp=sharing) in a recent hallway hangout. #### Sustaining momentum is hard In the earliest phase of the Performance Team, there were many opportunities to make sizable performance impacts by finding and fixing large performance problems like [improving the way images are loaded](https://make.wordpress.org/core/2023/07/13/image-performance-enhancements-in-wordpress-6-3/) and [improving WordPress’ translation system](https://make.wordpress.org/core/2024/02/27/i18n-improvements-6-5-performant-translations/) or implementing web platform features like [registering scripts with `async` and `defer` attributes](https://make.wordpress.org/core/2023/07/14/registering-scripts-with-async-and-defer-attributes-in-wordpress-6-3/) or [auto-sizes for lazy-loaded images](https://make.wordpress.org/core/2024/10/18/auto-sizes-for-lazy-loaded-images-in-wordpress-6-7/). However, as the team has had success and the initial set of big-impact opportunities have been addressed, the team risks facing diminishing returns on investment as the current work-streams require equal or greater effort for lesser potential impact. At the same time, the project continues to evolve it’s feature set in exciting ways, but the additional functionality can sometimes come with a performance cost to end users. In addition, folks who have been involved in the project will naturally have changing priorities over time, requiring new contributors with fresh ideas to pick up the work and push it forward. Given the continued scale of WordPress market share, I am confident that there are numerous opportunities for the WordPress project to make major contributions that progress good user experiences on the web and look forward to being a part of those efforts. If you’re interested in how you can participate or support the work of the WordPress Performance team, please get in touch!, Reflections on Speeding Up the Web, Joe McGill, 01jfwdkhk4t7s304sym06fw9kx.