How to recognize it

User agent, as it reaches our logs:

Mozilla/5.0 (Linux; Android 11; moto g power (2022)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Mobile Safari/537.36 Chrome-Lighthouse

A full mobile Chrome string ending in Chrome-Lighthouse. Match on that token. The same token appears when anyone runs Lighthouse on their own machine; only requests from Google’s network are PageSpeed Insights.

  • robots.txt token: none.
  • IP list: none published for PageSpeed Insights. Our requests came from Google’s own network (AS15169).
  • Reverse DNS: none published.

What it does

PageSpeed Insights runs Lighthouse against a URL that someone enters, in a Google data centre in North America, Europe or Asia. It loads the page like a phone would, with its stylesheets, scripts and images, and reports performance, accessibility and SEO audits. Anyone can test any public URL.

What you gain by allowing it

  • Working PageSpeed Insights reports for your pages, for you, your developers and anyone checking your site before working with you.

What you lose

By allowing it

  • Load from other people’s tests, a full page load with all its assets each time. On our WordPress site that came to about 20 test runs a day that were not ours.

By blocking it

  • PageSpeed Insights cannot test your pages, including when you want it to. Tools built on its API break the same way.

How to verify it

Google publishes no IP list or reverse DNS pattern for PageSpeed Insights. Cloudflare flags its requests as a verified bot in the category “Search Engine Optimization”, and on our sites every request carried that flag. A Chrome-Lighthouse request without the flag, from outside Google’s network, is someone running Lighthouse locally or a tool that copies the string.

Gotchas and history

  • Device: Google’s PageSpeed Insights page still says the mobile test simulates a Moto G4. The user agent says moto g power (2022), with Chrome 136.
  • Count: each test is one page plus every asset it loads, so request counts overstate tests about fifteenfold.
  • Not a crawler: it has no robots.txt token and follows no links. It loads exactly the URL someone typed in.

What we observed

Data: Cloudflare Logpush for two of our sites, 19-26 October 2026 (8 days).

  • 2,100 requests, all on the WordPress site, on 7 of the 8 days, all from Google’s network and all flagged by Cloudflare.
  • They covered 77 different paths, pages and assets. The most loaded stylesheets were each fetched 140 times, which works out to about 140 test runs, or 20 a day.
  • The site’s owner did not run them. Someone else tests that site’s pages through PageSpeed Insights every day.

About Google

  • Common crawlers (Googlebot and its Image and Video variants, GoogleOther, Storebot-Google and others) crawl automatically for Google products and always obey robots.txt. Reverse DNS: crawl-*.googlebot.com or geo-crawl-*.geo.googlebot.com.
  • Special-case crawlers (AdsBot, Mediapartners and others) work for products where the site has an agreement with Google. AdsBot, for example, ignores the * group in robots.txt with the advertiser’s permission. Reverse DNS: rate-limited-proxy-*.google.com.
  • User-triggered fetchers fetch a page because a user asked a Google tool or product to. Reverse DNS: *.gae.googleusercontent.com or google-proxy-*.google.com.
  • Google-Extended is a robots.txt token, not a crawler. It decides whether content fetched by the crawlers above may train Gemini models and ground Gemini Apps and Vertex AI. It does not affect inclusion or ranking in Google Search.

Each group has its own reverse DNS pattern and IP list. A verifier that accepts every Google domain for every Google user agent lets Google Cloud VMs through (see the Googlebot card).

Sources