Skip to content

Security headers: see which ones your site sends and add the rest

Check the security headers of any page. See which HTTP security headers and cookie flags your site sends, which are missing or leak version numbers, and the one line that adds each.

  • Free, no account
  • Results in under a minute
  • Any public URL

Example result:example-shop.hr

WordPress 6.8

Sample shop · homepage · mobile Chrome · the same check you get for your own site

Run it on your site
Security headers checker
4 passed · 0 failed · 5 warnings · 1 to note. Biggest issue: Content-Security-Policy header is missing.The score counts only the 9 checks this tool shows, not the whole Security score of the full report.

What we found

0 failed5 warnings1 to note4 passed
Show 4 passed checks

Fix these first

From the example above. Check your own site to get the fixes that apply to it.

  1. Warning: Content-Security-Policy header is missing

    A CSP blocks most cross-site scripting attacks by listing where scripts may load from.

    How to fix it: Start in report-only mode with Content-Security-Policy-Report-Only to see what would break.
  2. Warning: Other sites can embed this page in a frame

    A site that loads your page in an invisible frame can trick visitors into clicking your buttons (clickjacking), for example "confirm order" or "delete account".

    How to fix it: Add frame-ancestors 'self' to your Content-Security-Policy, or send X-Frame-Options: SAMEORIGIN.
  3. Warning: X-Content-Type-Options header is missing

    Without it, browsers may guess a file's type from its content and run an uploaded image or text file as a script.

    How to fix it: Send the header: X-Content-Type-Options: nosniff on every response.

What the security headers check covers

Fourteen checks on the response headers and cookies, graded against the MDN HTTP Observatory rules.

Show 10 more checks
Show 2 more checks
  • X-Powered-By header

    Checks the site doesn't announce its programming language and version to anyone who asks.

  • Wildcard CORS header

    Checks the page doesn't let any website read its response from inside a visitor's browser.

How the HTTP security headers test works

  1. Request the page

    We request your page like a browser does and follow every redirect to the final response.

  2. Grade the headers

    HSTS, Content-Security-Policy, X-Content-Type-Options, framing protection, Referrer-Policy and Permissions-Policy are graded against the MDN HTTP Observatory rules.

  3. Check cookies and leaks

    Every cookie is checked for the Secure, HttpOnly and SameSite flags, and the headers are checked for server and framework version leaks.

We check the headers of the one page you enter. Other pages or paths on your server can send different headers.

Security headers and HSTS questions

How do I check a website's security headers?

Enter the address above. The checker requests the page like a browser, follows redirects to the final response, and grades HSTS, Content-Security-Policy, X-Content-Type-Options, framing protection, Referrer-Policy and Permissions-Policy against the MDN HTTP Observatory rules, plus cookie flags and version leaks. By hand, the Network panel in your browser's developer tools shows the headers of the page request.

How do I check HSTS on my site?

Enter the address above. The checker reads the Strict-Transport-Security header on the final HTTPS response, flags it when it is missing, and shows whether it qualifies for the browsers' preload list: a max-age of at least 31536000 seconds (1 year), includeSubDomains and preload. By hand, open the Network panel in your browser's developer tools, click the page request and look for strict-transport-security in the response headers.

Are my cookies checked too?

Yes. Every cookie the page sets is checked for Secure, so it is only sent over HTTPS, HttpOnly, so scripts cannot read it, and SameSite, which limits when it is sent with requests from other sites. Missing flags on session and login cookies matter most. Most platforms set them in one place, such as PHP's session settings or your framework's cookie options.

Why is my Content-Security-Policy marked as weak?

Usually because its script-src allows 'unsafe-inline', 'unsafe-eval' or any source with *, which still lets an injected script run, so the policy gives little of the protection it is meant for. Move inline scripts into files, or allow them by nonce or hash, and list only the hosts you really load scripts from. Then run the check again.

Why does the check flag my Server header?

Because it names the software and its version, such as Server: Apache/2.4.41 or X-Powered-By: PHP/7.4.3, which tells attackers which known flaws to try. Hide the version with ServerTokens Prod on Apache, server_tokens off; on nginx and expose_php = Off in php.ini. It is a small hardening step; keeping the software updated matters more.

What is a Content Security Policy?

A Content-Security-Policy (CSP) is a header that lists where scripts, styles, images and frames may load from, so the browser blocks everything else. It stops most cross-site scripting, even when a plugin has a hole. Start with Content-Security-Policy-Report-Only to see what would break, then enforce it. This checker flags a missing policy and one that allows unsafe-inline scripts.

Does the check cover every page on my site?

No, only the page you enter, after following its redirects. Most servers send the same headers everywhere, but apps, CDNs and plugins can set different ones per path, such as a login page or an API. Check the home page, a typical content page and anything on a different path or subdomain, such as the shop or the blog.

Do security headers help SEO?

Not directly; Google does not rank on headers. They make a successful attack less likely, and a hacked site gets a Safe Browsing warning in Chrome and in Google's results and loses traffic fast. Most headers are one line in the web server or CDN configuration. A Content-Security-Policy takes longer; start it in report-only mode.

Is this security headers checker free?

Yes, with no sign-up; getReport is funded by donations. The response headers are kept with the report for 12 months so the technical detail stays readable. Request headers, cookie values and anything about your visitors are never stored, and the report is not listed publicly and carries a noindex tag.

All 59 tools →

Free, funded by the people who use it

No account, no paid plan. Donations keep it running.

Chip in