Core performance tests


For every commit to WordPress core, as well as for every pull request (PR) on GitHub, a suite of performance tests gathers important metrics such as Server-Timing values and Web Vitals. This way, potential performance regressions can be spotted early and reliably.

These tests build the current version/commit of WordPress and open a site with test data in an actual browser, performing multiple requests to gather median numbers. The tests cover multiple different combinations with different themes, Multisite, and object cache setup.

GitHub Actions summaries

For every PR and trunk commit, the performance tests run on GitHub Actions in the WordPress/wordpress-develop repository. Results can be viewed either through Actions -> Performance Tests, or by clicking on the “Checks” tab when reviewing a PR. There, a detailed summary with before, after, and delta is printed for easy analysis.

Screenshot of the "Checks" page for an individual GitHub pull request.
Screenshot of the “Checks” page for an individual GitHub pull request.
Detailed performance tests summary for a given GitHub Actions run.
Detailed performance tests summary for a given GitHub Actions run.

Note: Due to the nature of how GitHub Actions work, some variance in the results is expected.

Performance dashboard

Commits to trunk are additionally uploaded to a custom-built dashboard at codevitals.run and stored for later use. There, one can observe performance trends over the last few hundreds commit, which makes it easy to quickly spot any big shifts or regressions and narrowing down the potential cause.

Codevitals dashboard showing time to first byte (TTFB) values over time.
Screenshot of the codevitals dashboard, showing time to first byte (TTFB) values over time.

Note: spikes can often also be attributed to changes in test methodology, in which case these will be discussed on Slack and in Trac tickets beforehand and can be anticipated.