PlayHero scanner

PlayHero measures public web pages for speed, UX and how well AI agents can read them. Our scanner identifies itself with a User-Agent that contains PlayHero.

User-Agent strings

Pages and screenshotsMozilla/5.0 (compatible; PlayHero WebUX Scanner/1.0)
robots.txt, llms.txt, .mdPlayHero-Scanner/1.0
llms.txt checksPlayHero-ExecutionDryRun/4a

Requests are signed with Web Bot Auth. Public keys: https://playhero.ai/.well-known/http-message-signatures-directory

Speed scores come from Google PageSpeed Insights. Google fetches the page itself with its own Lighthouse User-Agent.

When we scan

Once a day for each page a PlayHero customer monitors, and on demand when someone runs a scan on playhero.ai.

What we read

Public HTML, a full-page screenshot, robots.txt and llms.txt. We send only GET and HEAD requests. We never sign in, fill in forms or submit data. We read robots.txt as part of the score; it doesn't stop a scan.

Allow the scanner

If your firewall blocks us, add one rule: User-Agent contains PlayHero.

Vercel: Firewall → ⋯ → Configure → Add New… → Rule. If User Agent contains PlayHero, then Bypass. Save, then Review Changes → Publish. Attack Mode challenges every automated visitor that isn't on Vercel's verified list, so turn it off unless you're under attack.

Cloudflare: Security → WAF → Custom rules → Create rule. User Agent contains PlayHero, action Skip, and tick the remaining custom rules, managed rules and Super Bot Fight Mode. On the free plan, Bot Fight Mode can't be skipped by a rule.

Anything else: add an allow or skip rule for the same User-Agent.

Stop the scanner

Email support@playhero.ai with the hostname. We'll stop scheduled scans of it and reply to confirm.

PlayHero scanner