
Improving Drupal CMS Performance with Gander: Real-World Wins and Lessons
Building Performance Excellence

April 16, 2025
In this Tag1 Team Talk, Michael Meyers is joined by Nathaniel Catchpole, the Gander Project Lead, to discuss how this testing framework is reshaping developers’ approach to site performance optimization. Performance in Drupal has long been a challenging and time-consuming task, often requiring manual intervention and complex setups. Gander is an official Drupal solution available in core, automating performance tests in the development process and integrating with your workflow.
Gander’s ability to simulate real-world traffic and performance conditions is already helping developers identify bottlenecks and fine-tune site performance — without the overhead of manual testing.
By running tests with every code change, teams can catch performance issues early and continuously monitor improvements as part of the development cycle, instead of an afterthought.
Whether you’re managing small projects or large-scale sites, tune in below for an in-depth look at this cutting-edge framework, how it works, and what the future holds for performance testing in Drupal.
Transcript
[00:00:00] Michael Meyers: Hello and welcome to Tag1 Team Talks, a podcast of Tag1 Consulting. Today we're exploring Tag1’s work on Drupal CMS and how Gander is being integrated as a foundational element in the next generation of content management systems developed by Tag1 in collaboration with the Google Chrome team. Gander is Drupal’s official performance testing framework, ensuring performance is a key consideration in Drupal development.
[00:00:35] Michael Meyers: Joining me today is Nathaniel Catchpole, Tag1 team member and Gander Project Lead. For over 20 years, Catch has been one of the most prolific and influential contributors to the Drupal platform. Welcome to the show, Catch. I’m Michael Meyers, Managing Director at Tag1. Our team actively contributes to open source, and organizations reach out to us because of that work. We build large-scale applications with Drupal and other technologies for global enterprises including Sumitomo, Boehringer Ingelheim, The New York Times, Stanford University, and The Linux Foundation. If you need help with your sites, platforms, or applications, email us at [email protected].
[00:01:44] Michael Meyers: Before we dive into your recent work with the Drupal CMS team, let’s step back. What is Gander?
[00:01:57] Nathaniel Catchpole: We worked with the Google Chrome team to measure Drupal’s performance consistently, something the community has wanted for years. Gander uses Drupal’s functional JavaScript tests, running in a real browser, and collects performance data from both the browser and the Drupal backend. We aggregate that data and allow assertions within tests. You can measure CSS, JavaScript, images, cache gets, and database queries — all from a single request.
[00:02:55] Nathaniel Catchpole: Using PHPUnit gives us repeatable, controlled scenarios. If performance regresses — for example, a page goes from five database queries to six — the test fails immediately. Some metrics like Largest Contentful Paint are tracked in a public Grafana dashboard via OpenTelemetry. This gives teams pass/fail guardrails in CI and long-term visibility into trends.
[00:04:49] Michael Meyers: How has Gander been used in Drupal core development?
[00:04:55] Nathaniel Catchpole: We added performance tests for Drupal core’s Standard and Umami profiles to simulate realistic pages. These high-level tests surface changes across Views, rendering, frontend assets, database queries, and caching. When something shifts, we catch it early.
[00:07:21] Nathaniel Catchpole: With Drupal CMS testing, we found significant issues quickly. One example: 300KB of unnecessary JavaScript loading for anonymous users due to a cookie consent configuration. After upstream fixes and recipe adjustments, that dropped first to 60KB, then to zero when not needed. That’s a major performance win affecting the broader Drupal ecosystem.
[00:11:44] Nathaniel Catchpole: Another example involved the new Navigation module. Performance tests revealed repeated cache rebuilds across pages. We optimized caching strategy, added placeholder improvements in core, and reduced duplication while eliminating layout shift. These changes improved Drupal core rendering overall.
[00:16:59] Michael Meyers: What has been the recent focus for Gander?
[00:17:28] Nathaniel Catchpole: We enhanced database query assertions so test failures now show precise diffs, making regressions easier to diagnose. We also improved Drupal’s cache tag system to reduce redundant database queries and added cache tag preloading. These optimizations significantly reduce query counts and improve efficiency at scale.
[00:23:56] Michael Meyers: What’s on the roadmap?
[00:24:05] Nathaniel Catchpole: We’re adding Drupal CMS to the public dashboard alongside core branches. We’re expanding contrib module test coverage, including improvements to the Redirect module to eliminate unnecessary database lookups. Longer term, we’re advancing async capabilities in Drupal core, enabling better handling of cold caches, deployments, and high-traffic scenarios.
[00:33:43] Michael Meyers: For developers who want to get involved?
[00:33:52] Nathaniel Catchpole: Check the Drupal core issue queue under the performance tag or performance test discovery. There’s documentation for writing new tests locally, and a meta issue tracking additional performance coverage.
[00:34:34] Michael Meyers: Catch, thank you for joining us. To everyone listening, we’ll include links in the show notes. If you enjoyed this episode, please subscribe and share. You can find more Team Talks at tag1.com/ttt, and send feedback or ideas to [email protected]. Thanks for spending time with us today.