Check any website's core security headers
HTTP security headers are one-line instructions a server sends with every response, telling the browser how to behave more safely. Three of them cost almost nothing to set and block whole classes of common attacks: X-Content-Type-Options, X-Frame-Options, and Referrer-Policy.
What a fail costs
On CheckWeb this is a weight-2 check on the Security axis, which is 35% of the overall score, and it fails outright when none of the three headers are present.
It is also the single most common failure across the sites checked on CheckWeb: more sites miss these headers than fail any other security check (see the statistics). Setting all three is usually a few lines of server config, so a fail here is cheap to clear and costly to leave.
How it looks in the report
In a CheckWeb report, under the Security axis, this shows as "Core security headers" with a red FAIL and the evidence "None present" when none of the three are set. A site with all three shows PASS, and the evidence names which are missing on a partial set.
Core security headers
None present
Exposed vs set
Exposed
None of the three set. A page can be framed inside an attacker's site for clickjacking, have its content-type second-guessed by the browser, or leak the full referring URL to third parties.
Set
All three present with safe values (nosniff, a frame policy, and a restrained Referrer-Policy).
How to fix it
- Nginx: add three `add_header` lines, `X-Content-Type-Options nosniff`, `X-Frame-Options SAMEORIGIN`, and `Referrer-Policy strict-origin-when-cross-origin`.
- Apache: the same three via `Header set`.
- App or framework: set them in middleware (a library like helmet does all three).
- CDN or edge: add the response headers at the edge if the origin cannot.
- Then verify: re-scan and watch the Security axis recover.
Check a site's security headers
Paste a URL to see which of the core headers a site sends and which are missing, with the exact values to add. Fix, re-scan, and confirm the check turns green.
Check my websiteFAQ
- Which headers does this check look at?
- Three: X-Content-Type-Options, X-Frame-Options, and Referrer-Policy. They are grouped because they share a fix (one line of server config each) and because none of them can break a normal page at safe values. HSTS and Content-Security-Policy are checked separately, since both need a rollout plan rather than a single line.
- Is a partial set enough to pass?
- No. The check passes when all three are present, and the evidence names the ones still missing on a partial set. Each header blocks a different class of attack, so two out of three leaves the third class open.
- Will X-Frame-Options break embedded widgets or iframes?
- It can, and that is the one value worth choosing deliberately. SAMEORIGIN allows a site to frame its own pages and blocks everyone else, which suits almost every site. A page that is meant to be embedded elsewhere, such as a booking widget, needs a frame-ancestors rule in Content-Security-Policy naming the allowed hosts instead.
- Do security headers slow a site down?
- No measurably. They add a few dozen bytes to each response and require no extra work from the browser. This is why a fail here is worth clearing first: the cost is close to zero and the exposure it removes is real.
Related checks
- HSTS (Strict-Transport-Security)The header that stops a browser from ever falling back to plain HTTP.
- Content-Security-PolicyThe strongest single defense against cross-site scripting, and the hardest of the headers to author.
- CORS misconfigurationThe cross-origin headers, which are graded separately because only one combination of them is actually dangerous.