I can recommend the WP Super Cache plugin[0] - it can generate pre-gzipped static sites and then you can setup your webserver[1] to prefer those, or non-compressed static files and only when not in cache actually bother passing down the request into PHP.
Gives me an 97 and 88 respectively[2] on that pagespeed tool.
And to add one more option to the comments (beyond [frontend] + php-fpm):
Nginx Unit https://unit.nginx.org/ - like Apache + mod_php runs as a single service, handles the multiprocessing of php (and other languages), static files, reverse proxy and even lets you configure both itself and php via a single configuration (either as a file or dynamically at runtime, via a socket):
https://unit.nginx.org/configuration/#php
Gives me an 97 and 88 respectively[2] on that pagespeed tool.
[0] https://wordpress.org/plugins/wp-super-cache/
[1] https://github.com/simonrupf/docker-php-wp/blob/master/etc/n...
[2] https://pagespeed.web.dev/analysis/https-bobcat-dssr-ch/0ziq... / https://pagespeed.web.dev/analysis/https-simon-rupf-net/auk5...