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.8Sample shop · homepage · mobile Chrome · the same check you get for your own site
What we found
Show 4 passed checks
Fix these first
From the example above. Check your own site to get the fixes that apply to it.
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.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.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.
HSTS header
Checks the header that keeps return visits on HTTPS, so they never start on interceptable plain HTTP.
HSTS preload readiness
Checks your HSTS header qualifies for the browsers' built-in HTTPS-only list.
Content-Security-Policy header
Checks for the header that limits where scripts may load from, blocking most injected scripts.
Inline and wildcard scripts in CSP
Checks your Content-Security-Policy doesn't still allow inline or wildcard scripts that weaken it.
X-Content-Type-Options header
Checks browsers are told not to guess file types, so an uploaded file can't run as a script.
Frame embedding protection
Checks other sites can't load your page in a hidden frame to trick visitors into clicking.
Referrer-Policy header
Checks how much of your page addresses, including parameters, is passed on to the next site.
Permissions-Policy header
Checks unused browser features like camera and microphone are switched off for scripts and iframes.
Secure flag on cookies
Checks cookies are only sent over HTTPS, so nobody on the network can copy a session.
HttpOnly flag on cookies
Checks cookies are hidden from page scripts, so an injected script can't steal a session.
SameSite attribute on cookies
Checks cookies say when other sites may send them, which protects against forged requests.
Server version in headers
Checks the Server header doesn't reveal the software version that automated scanners look for.
Show 10 more checks
X-Content-Type-Options header
Checks browsers are told not to guess file types, so an uploaded file can't run as a script.
Frame embedding protection
Checks other sites can't load your page in a hidden frame to trick visitors into clicking.
Referrer-Policy header
Checks how much of your page addresses, including parameters, is passed on to the next site.
Permissions-Policy header
Checks unused browser features like camera and microphone are switched off for scripts and iframes.
Secure flag on cookies
Checks cookies are only sent over HTTPS, so nobody on the network can copy a session.
HttpOnly flag on cookies
Checks cookies are hidden from page scripts, so an injected script can't steal a session.
SameSite attribute on cookies
Checks cookies say when other sites may send them, which protects against forged requests.
Server version in headers
Checks the Server header doesn't reveal the software version that automated scanners look for.
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.
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
Request the page
We request your page like a browser does and follow every redirect to the final response.
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.
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.
Related free tools
All 59 tools →Free, funded by the people who use it
No account, no paid plan. Donations keep it running.