Type your site’s address. We load your public home page once, like any visitor, and grade HTTPS, the certificate, the security headers, cookie flags and mixed content, each with the fix for Vercel, Netlify, Cloudflare and Lovable. No account, and the result isn’t stored.
Loads your public home page onlyResult not stored10 checks per hour per networkNo address handy?
A header check, not a security test. This reads one public page, the way any visitor’s browser does. It can’t see who can read your database, what your code does or whether your keys are exposed, and those cause the leaks that matter most in AI-built apps. The full check covers them, and never touches your database.
What it checks
Ten checks, from one ordinary page load.
Each finding links to a page that explains it, shows how to check it yourself and gives the fix for your host. The points are what each failed check costs in the grade.
Start at 100. Each failed check costs its points once, however many cookies it caught. A is 90 or more, B 75, C 60, D 40, anything lower F. An invalid or expired certificate is always F, because browsers show a full-page warning.
Sites on .app and .dev
Some top-level domains, including .app and .dev, are on every browser’s HSTS preload list, so browsers never load them over plain HTTP. Sites on them pass PL-027 and PL-029 without a redirect or header of their own.
What it does, exactly
The same requests any visitor’s browser makes.
This is a passive check, like Mozilla Observatory or securityheaders.com. It reads what your site already sends to everyone.
What we send
Three things, once
One plain http:// request to your home page, to see whether it redirects to HTTPS
One https:// load of your home page, following at most 5 redirects
The TLS handshake of that load, to read the certificate
What we never do
No probing, no payloads
Request any other path, guess URLs or follow links
Submit forms, call your API or sign in
Touch your database, or test for data leaks
Store the result: it comes back to your browser and nowhere else
For engineers
Run it from your terminal or CI.
The same check is a public endpoint. It returns the grade, every finding with its fix, the checks that passed and the raw facts: redirects, certificate, headers and cookie flags (names only, never values).
Any public https:// or http:// address; IP addresses and private names are refused
10 requests per network per hour
422 for an address it won’t check, 502 when the page can’t be loaded, both with a sentence saying why
Your site sends the right headers, which is worth having. It says nothing about your data: the most common leak in AI-built apps is a database rule that lets strangers read other people’s rows, and no header stops that. The full check rebuilds your database from its migrations and tests who can read what.
Do you keep the address or the result?
The result isn’t stored: it goes back to your browser. To enforce the hourly limit we keep the host name and a hashed network address. Cookie values are never read into the result, only their names and flags.
Can I check a site that isn’t mine?
The tool makes the same requests any visitor makes to a public page, so yes, as with any header checker. Daily re-checks and alerts in the app only run on a domain your team proves it controls.
My host doesn’t let me set headers.
Each finding page covers that case. Two options work almost anywhere: put your custom domain behind Cloudflare and add the headers there, or set the policies that allow it (CSP and Referrer-Policy) with a meta tag in index.html. HSTS, framing and nosniff only work as real headers. See the security headers guide.
Why does a missing SameSite not count?
Browsers treat a cookie without SameSite as Lax, which already keeps it out of most requests other sites trigger. Setting it explicitly is still good practice, and the facts table shows it for every cookie.
Live posture
Get this grade every day, and an alert when it drops.
Add your app to PatchLabs, verify your domain with a file or a meta tag, and Live posture re-checks it daily, emails your team when the grade drops or a finding appears, and gives you a badge. PatchLabs never touches your database. Live posture only loads your public home page, like any visitor, and only on domains you verify.