#189 – Weston Ruter on Unlocking WordPress Performance 🔗 **Source:** [#189 – Weston Ruter on Unlocking WordPress Performance](https://wptavern.com/podcast/189-weston-ruter-on-unlocking-wordpress-performance) > [!note]+ Document Notes > tags: [WordPress Performance, Core Web Vitals, Speculative Loading, Interactivity API, Block Themes] > author: WP Tavern > source: WP Tavern > reference: [https://wptavern.com/podcast/189-weston-ruter-on-unlocking-wordpress-performance] > date created: 2025-10-22 00:00 > > # 🏷️ Title: #189 – Weston Ruter on Unlocking WordPress Performance > <!-- deep-read:sections start --> ## 🧭 Table of Contents - [📝 Summary](#-summary) - [📖 Main Content](#-main-content) - [🗒️ Notes](#️-notes) - [📚 References](#-references) - [🗣️ Paraphrase](#️-paraphrase) - [📰 Newsletter](#-newsletter) - [✅ Action Items](#-action-items) - [🧪 Hypotheses](#-hypotheses) - [📊 Methodology](#-methodology) - [❓ Questions](#-questions) - [🔮 Future Research](#-future-research) - [💡 Implications](#-implications) - [🧠 Learning Styles Assessment](#-learning-styles-assessment) - [📊 Accessibility Assessment](#-accessibility-assessment) - [🌍 DEIB Assessment](#-deib-assessment) - [✅ Logical Validity](#-logical-validity) - [🛡️ DARVO Analysis](#-darvo-analysis) - [🎯 Conclusion](#-conclusion) ### 🔗 References - The Site Speed Frontier with Performance Lab and Beyond (WordCamp US 2025) - Enhanced Responsive Images plugin - Instant Back/Forward (bfcache) plugin - Performance Lab plugin - Chrome User Experience Report (CrUX) - PageSpeed Insights - Core Web Vitals (LCP, INP, CLS) ## 📝 Summary - What happened: Nathan Wrigley interviews Weston Ruter at WordCamp US on practical WordPress performance advances in Core and the Performance Team’s plugins. - Why it matters: Real-user metrics (Core Web Vitals) drive UX, retention, conversions; “100” Lighthouse isn’t the ceiling. - Key stakeholders: WordPress Core/Performance Team, plugin/theme authors, hosts, site owners. - Risks and tradeoffs: Plugin bloat, misprioritized JS, speculative loading vs. server load/environment, device variance. - Bottom line: Core + ecosystem changes (speculative loading, better image handling, script priorities, block themes) materially improve UX and speed by default. ## 📖 Main Content - Core idea: Optimize for real users via Core Web Vitals—especially LCP, INP, CLS—beyond lab scores. - Advances: - Speculative loading (prefetch/prerender) in Core with opt-in “moderate” modes via UI. - Smarter defaults: avoid lazy-loading above-the-fold, set fetchpriority=high for key images, support AVIF/WebP. - Interactivity API + Script Modules with lowered fetch priority to protect LCP. - Block themes load only needed CSS/JS per page; improved responsive image sizing via Enhanced Responsive Images. - bfcache readiness preserves page state and enables instant back/forward navigations. - Uncertainties: Exact ranking weight of performance; balancing prerender eagerness with caching/server impact. ### 🗒️ Notes #### ⏱️ [00:03:57](https://wptavern.com/podcast/189-weston-ruter-on-unlocking-wordpress-performance?t=237) Weston’s background and focus - Core committer, Google AMP, Core Performance Team; “making WordPress fast for everybody.” #### ⏱️ [00:06:25](https://wptavern.com/podcast/189-weston-ruter-on-unlocking-wordpress-performance?t=385) 100 Lighthouse isn’t the ceiling - WordPress + Twenty Twenty-Five can score 100, but real-user LCP still has headroom. #### ⏱️ [00:07:57](https://wptavern.com/podcast/189-weston-ruter-on-unlocking-wordpress-performance?t=477) Lab vs. field data - PageSpeed Insights: field (CrUX) atop, lab below; optimize for LCP under 2.5s—and push even lower. #### ⏱️ [00:10:14](https://wptavern.com/podcast/189-weston-ruter-on-unlocking-wordpress-performance?t=614) Democratizing performance - Core should “decisions, not options” so non-experts benefit automatically. #### ⏱️ [00:13:49](https://wptavern.com/podcast/189-weston-ruter-on-unlocking-wordpress-performance?t=829) Plugin bloat and “kitchen sink” - Prefer single-purpose plugins; performance plugins abound, but avoid snake oil. #### ⏱️ [00:15:34](https://wptavern.com/podcast/189-weston-ruter-on-unlocking-wordpress-performance?t=934) Ecosystem guardrails - Proposes surfacing performance impacts in plugin checks alongside security. #### ⏱️ [00:17:15](https://wptavern.com/podcast/189-weston-ruter-on-unlocking-wordpress-performance?t=1035) Core wins: images, fetchpriority, emoji fix - No lazy-load above-the-fold; fetchpriority=high for featured images; emoji script long-task fix; AVIF/WebP support. #### ⏱️ [00:19:57](https://wptavern.com/podcast/189-weston-ruter-on-unlocking-wordpress-performance?t=1197) Speculative loading modes - Conservative prefetch saves ~50ms; moderate prefetch → TTFB≈0 (cached); moderate prerender → ~0.05s loads. #### ⏱️ [00:22:23](https://wptavern.com/podcast/189-weston-ruter-on-unlocking-wordpress-performance?t=1343) Balance with caching and environment - Default only logged-out; ensure page/object cache for aggressiveness. #### ⏱️ [00:25:16](https://wptavern.com/podcast/189-weston-ruter-on-unlocking-wordpress-performance?t=1516) bfcache and state preservation - Instant back/forward, preserves unsaved inputs; plugin to help readiness. #### ⏱️ [00:27:39](https://wptavern.com/podcast/189-weston-ruter-on-unlocking-wordpress-performance?t=1659) Interactivity API and script priorities - Server-rendered UI; lower priority for module scripts to protect LCP. #### ⏱️ [00:31:48](https://wptavern.com/podcast/189-weston-ruter-on-unlocking-wordpress-performance?t=1908) Beyond LCP: INP and CLS - INP: avoid long JS tasks (scheduler.yield); CLS: prevent layout shifts (ads, images). #### ⏱️ [00:34:13](https://wptavern.com/podcast/189-weston-ruter-on-unlocking-wordpress-performance?t=2053) Test on average devices - Throttle CPU, test low/mid devices; caught emoji long task this way. #### ⏱️ [00:40:46](https://wptavern.com/podcast/189-weston-ruter-on-unlocking-wordpress-performance?t=2446) Block themes outperform classic - Render blocks first, then load only needed CSS/JS → smaller payloads, faster. #### ⏱️ [00:43:51](https://wptavern.com/podcast/189-weston-ruter-on-unlocking-wordpress-performance?t=2631) Enhanced Responsive Images > format swap - Accurate sizes attribute cut LCP ~45% vs. ~2% for AVIF swap in test. #### ⏱️ [00:45:20](https://wptavern.com/podcast/189-weston-ruter-on-unlocking-wordpress-performance?t=2720) Where to follow - Within WP (Remkus de Vries), Jono Alderson, newsletters for curation. ## 📚 References - WordPress Performance Team: Performance Lab plugin (https://wordpress.org/plugins/performance-lab/) - Speculative Loading reference (Chrome docs) (https://developer.chrome.com/docs/web-platform/prerender-pages) - Enhanced Responsive Images plugin (https://wordpress.org/plugins/enhanced-responsive-images/) - Instant Back/Forward (bfcache) plugin (https://wordpress.org/plugins/instant-back-forward/) - Core Web Vitals overview (https://web.dev/vitals/) - PageSpeed Insights (https://pagespeed.web.dev/) - CrUX (Chrome UX Report) (https://developer.chrome.com/docs/crux/) ## 🗣️ Paraphrase - Paragraph A: A perfect Lighthouse score doesn’t guarantee the best user experience; prioritize real-user data like LCP, INP, and CLS to guide optimization. - Paragraph B: Block themes and smart defaults in Core, plus targeted plugins (speculative loading, enhanced images), deliver sizable, automatic speed gains. ## 📰 Newsletter WordPress performance is sprinting ahead. Weston Ruter unpacks why “100” isn’t the finish line and how Core’s defaults now protect LCP, tame script priorities, and unlock near-instant navigations with speculative loading and bfcache. If you’re still on classic themes, block themes can dramatically cut unused CSS/JS. Don’t miss the Enhanced Responsive Images plugin—Weston saw ~45% LCP gains versus ~2% from just switching to AVIF. Recommended reads: Within WP by Remkus de Vries, Jono Alderson’s blog, and the Performance Lab plugin to safely try new wins. ## ✅ Action Items #### DevRel - Publish “Speculative Loading: Prefetch vs. Prerender” demo with metrics. - Create field data playbook: CrUX, PSI workflows, and guardrails. - Sample repos showing fetchpriority and script priority patterns. #### OSPO - Add performance impact checks to plugin admission/review policy. - Establish guidance for bfcache-safe patterns and testing. #### Community - Host performance clinics: LCP triage, INP debugging, CLS fixes. - Encourage single-responsibility plugin designs. #### WordPress - Core: default fetchpriority and script priority tuning. - Core Performance: expand Enhanced Responsive Images coverage, metrics dashboards. - Interactivity API: INP best practices (scheduler.yield). - Meta: Plugin Check to surface performance regressions. #### The WPOCC - Fund perf bounties for LCP/INP/CLS regressions and audits. ### FAIR - Publish provenance and test results for perf changes; sunset flags for experimental features. ## 🧪 Hypotheses - Block themes reduce median LCP vs. classic themes by ≥20% on desktop. - Enhanced Responsive Images improves LCP more than switching to AVIF alone. - Moderate prerender cuts perceived navigation time to ≤0.1s for ≥50% of navigations on cached sites. - Lowering module script fetch priority reduces LCP p75 by ≥5% on interactive pages. ### 📊 Methodology - A/B test themes on identical content and hosting; collect CrUX/PSI. - Page-level experiments toggling Enhanced Responsive Images vs. AVIF-only. - Navigation measurement with Navigation Timing + RUM for prerender cohorts. - Lighthouse + RUM to compare script priority changes. ### ❓ Questions - What’s the safe default eagerness for diverse hosting without overfetch? - How can plugin directory surface perf impacts pre-install? - Best patterns for INP in high-interactivity blocks? ### 🔮 Future Research - Automated sizes inference beyond block themes. - Prerender heuristics tuned by analytics intent signals. - Standardized bfcache readiness testing for plugins. ### 💡 Implications - Practice: Prefer block themes; audit above-the-fold images and script priorities. - Policy: Performance checks in plugin/theme reviews. - Education: RUM-first mindset; device-throttled testing. - Funding: Support Core perf initiatives and audits. ### 🧠 Learning Styles Assessment - Reading level: Flesch-Kincaid Grade ≈ 10–11. #### 👀 Visual learners - Present: Examples of LCP improvements. - Improve: Before/after waterfalls, CSS/JS diff visuals. #### 🔊 Aural learners - Present: Podcast format. - Improve: 3-minute audio TL;DR. #### 🗣️ Verbal learners - Present: Clear definitions (LCP/INP/CLS). - Improve: Glossary cards and analogies. #### 🧩 Kinesthetic learners - Present: Plugins to try. - Improve: Step-by-step labs with RUM validation. #### 🧠 Logical learners - Present: Cause-effect between priorities and LCP. - Improve: Decision trees for prefetch/prerender. #### 🧑‍🤝‍🧑 Social learners - Present: Community newsletters. - Improve: Cohort sprints with shared dashboards. #### 🧘‍♀️ Solitary learners - Present: Links to deep dives. - Improve: Self-audit checklists. #### 🌿 Naturalistic learners - Present: Discussion of overfetch costs. - Improve: Green perf guidelines. ### 📊 Accessibility Assessment #### Screen reader semantics - Present: Clear headings. - Improve: Consistent alt text guidance for images. #### Keyboard navigation - Present: N/A in audio; general web guidance applies. - Improve: Skip links focus states. #### Contrast and readability - Present: N/A to podcast; general guidance applies. - Improve: Ensure 4.5:1 in associated pages. #### Text resizing and reflow - Improve: Support 200% zoom in show notes pages. #### Media and captions - Present: Transcript excerpts. - Improve: Full downloadable transcript, captions. #### Forms and interactions - Improve: Accessible player controls. #### Standards reference - Map to WCAG 2.2 AA (1.4.*, 2.1.*, 2.4.*). ### 🌍 DEIB Assessment #### Cultural breadth - Improve: Global examples and multilingual resources. #### Inclusive language - Present: Neutral language. - Improve: Plain-language summaries for metrics. #### Neurodiversity support - Present: Structured sections. - Improve: Icons+text, consistent patterns. #### Representation - Improve: Broader voices in performance case studies. #### Psychological safety - Present: Respectful tone. - Improve: Clear community guidelines in forums. ### ✅ Logical Validity #### Strong reasoning - Causal: Lowering script fetch priority frees bandwidth for LCP—well supported by network contention logic. - Inductive: Field data focus improves UX—supported by CrUX usage. #### Fallacies - None evident; ranking impact explicitly framed as uncertain. #### Tone of voice - Practical, evidence-seeking, user-focused. ### 🛡️ DARVO Analysis - No denial/attack/reversal patterns observed. ## 🎯 Conclusion - Bottom line: Optimize for users, not just scores. Use block themes, protect LCP with fetchpriority and script priorities, adopt Enhanced Responsive Images, and consider measured speculative loading and bfcache readiness. - Next steps: Run PSI/CrUX, switch to a block theme, enable Enhanced Responsive Images, audit above-the-fold images, trial moderate prefetch/prerender with proper caching, and monitor INP/CLS. ## 🧱 Refactor Appendix (append after 🎯 Conclusion) ### 📚 Literature Split Pad ### [H1] Block themes load only needed assets > [!quote] [#189 – Weston Ruter on Unlocking WordPress Performance](https://wptavern.com/podcast/189-weston-ruter-on-unlocking-wordpress-performance) by [[WP Tavern]] via [[WP Tavern]]. Published 2025. Accessed 2025-10-22. > “A block theme is able to selectively load just the styles and just the scripts that are relevant.” Improves LCP by reducing CSS/JS payloads; use for migration guidance. [view highlight](https://wptavern.com/podcast/189-weston-ruter-on-unlocking-wordpress-performance#H1) #xref #articleseed ID:rw_[MISSING] ### [H2] Enhanced images beat format-only swaps > [!quote] [#189 – Weston Ruter on Unlocking WordPress Performance](https://wptavern.com/podcast/189-weston-ruter-on-unlocking-wordpress-performance) > “Enhanced Responsive Images… improved the LCP by I think 45%… AVIF only ~2%.” Prioritize accurate sizes over format-only changes. [view highlight](https://wptavern.com/podcast/189-weston-ruter-on-unlocking-wordpress-performance#H2) #xref ID:rw_[MISSING] --- ### 🔖 Atomic Split Pad (Zettel Candidates) #### [Z1] Block themes reduce unused CSS and JS - Applies to WP block themes; compare payload vs. classic. - Links: [[WordPress Themes]] [[Performance Budgets]] #### [Z2] Accurate image sizes outperform format swaps - Sizes attribute tuning yields larger LCP gains than AVIF-only. - Links: [[Responsive Images]] [[Core Web Vitals]] --- ### ✏️ Fleeting Queue (Extract by Selection) - [F1] Test moderate prerender with caching on a top nav flow — context/https://wptavern.com/podcast/189-weston-ruter-on-unlocking-wordpress-performance #fleeting #inbox - [F2] Audit module script priorities on interactive pages — context/… #fleeting #inbox - [F3] Migrate a classic theme baseline to block theme and measure — context/… #fleeting #inbox --- <!-- deep-read:sections end -->