Free Security Headers & Email Record Checker

Two sets of settings decide whether browsers and inboxes trust your domain, and neither is visible on the page. Enter your domain to check your https setup and security headers, plus the SPF, DKIM and DMARC records that stop people sending email as you. Every finding comes with the fix.

Free · No sign-up · Nothing stored

Reading your headers and looking up your email records…

At a glance

  • Website: https and the certificate, the http redirect, HSTS, Content-Security-Policy, clickjacking protection, nosniff, Referrer-Policy, Permissions-Policy, cookie flags and version leaks.
  • Email: MX, SPF (including the 10-lookup limit), DMARC policy and reports, and DKIM on 22 common selectors.
  • Most fixes take minutes in your host, CDN or DNS settings, and none of them changes how your site looks.
  • Gmail requires SPF, DKIM and DMARC from anyone sending more than 5,000 emails a day to its users.

Website security headers checked

Security headers are short instructions your server sends with each page. Visitors never see them, but their browsers follow them. Here's what the checker reads and what good looks like:

Security headers the checker reads
CheckGood looks likeWhy it matters
https certificateValid, trusted, not expiring soonBrowsers show a full-page warning when it fails
http → httpsA permanent (301 or 308) redirectPeople who type the address land on the encrypted site
Strict-Transport-SecurityPresent, max-age of six months or moreBrowsers always use https, even for typed http links
Content-Security-PolicyPresent, ideally without 'unsafe-inline' scriptsLimits which scripts can run if one is injected
Clickjacking protectionX-Frame-Options or CSP frame-ancestorsStops your pages being framed invisibly to trick clicks
X-Content-Type-OptionsnosniffStops browsers guessing a file is a script
Referrer-PolicySet, not unsafe-urlControls how much of your page address other sites see
Permissions-PolicySet (optional)Turns off browser features you don't use
Cookies and versionsSecure, HttpOnly, SameSite; no version numbers in headersProtects sessions; doesn't advertise your software versions

Email records checked: SPF, DKIM and DMARC

Anyone can put your domain in the "From" line of an email. These DNS records are how inbox providers tell your real email from fakes, and they affect whether your own email lands in the inbox or in spam:

Email records the checker looks up
RecordGood looks likeWhat it does
MXRecords exist (or none, if you don't receive email)Shows where the domain receives mail
SPFOne v=spf1 record ending -all or ~all, within 10 lookupsLists who may send email as you
DKIMA key on your provider's selectorSigns email so it can't be altered or forged
DMARCp=quarantine or p=reject, with rua reportsTells inboxes to reject fakes and reports who sends as you

SPF has a hard limit: evaluating it may take at most 10 DNS lookups, counting every include:, a, mx and redirect inside the services you include. Go over and SPF fails for every message, so the checker follows your includes and counts them.

Real example: our own domain

We ran the checker on cmoowls.com. It passed the essentials: a valid certificate from Google Trust Services, a permanent http to https redirect, HSTS, clickjacking protection, nosniff and a strict-origin-when-cross-origin Referrer-Policy. SPF ends in ~all, and a DKIM key was found on the google selector.

It also found three things to improve, and we're not hiding them: our Content-Security-Policy still allows inline scripts, we don't send a Permissions-Policy, and our DMARC policy is p=none, which collects reports but doesn't yet block fakes. That's a typical result for a young site, and exactly the kind of list this tool is for.

How to add the missing pieces

Security headers

  • On Cloudflare: turn on Always Use HTTPS and HSTS under SSL/TLS, and add the other headers with a response header transform rule.
  • On nginx: add the headers in your server block (example below), then reload.
  • On Apache: use Header always set lines in your configuration or .htaccess.
  • On WordPress or a hosted builder: many hosts have a security headers setting; otherwise a well-maintained security plugin can add them.
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;

Add a Content-Security-Policy last, starting with Content-Security-Policy-Report-Only, so you can see what it would block before it blocks anything.

Email records

All three are TXT records you add in your domain's DNS settings. Your email provider gives you the exact SPF include and DKIM key; DMARC you write yourself:

yourdomain.com          TXT  "v=spf1 include:_spf.google.com ~all"
_dmarc.yourdomain.com   TXT  "v=DMARC1; p=none; rua=mailto:[email protected]"
  1. Add SPF with your email provider's include (one record only).
  2. Turn on DKIM in your email provider and publish the key it gives you.
  3. Add DMARC at p=none with a reporting address, and read the reports for a few weeks.
  4. Fix any legitimate senders that fail (newsletter tools, invoicing, your website's contact form).
  5. Move to p=quarantine, then p=reject once real email consistently passes.

What this scan can't see

  • Headers on other pages. We read your homepage; other pages and files can send different headers.
  • DKIM on uncommon selectors. We try 22 common ones; your provider may use another.
  • Whether your email is delivered. Good records help a lot, but delivery also depends on what you send and to whom.
  • Vulnerabilities in your site. This isn't a penetration test; it checks settings, not code.

Your domain's trust settings on one map

Mind map: the security headers and email records a domain should haveTrust settings. https: Valid certificate, http → https (301), HSTS; Headers: Content-Security-Policy, Clickjacking protection, nosniff + Referrer-Policy; Cookies: Secure, HttpOnly, SameSite; Email records: SPF (≤ 10 lookups), DKIM, DMARC policy; Whole site: Every page, every week, Website audit.httpsValid certificatehttp → https (301)HSTSCookiesSecureHttpOnlySameSiteWhole siteEvery page, every weekWebsite auditHeadersContent-Security-PolicyClickjacking protectionnosniff + Referrer-PolicyEmail recordsSPF (≤ 10 lookups)DKIMDMARC policyTrust settings
The trust settings browsers and inbox providers check silently: https, security headers, cookie flags, and the email records that stop people sending as you.

Security settings are one part of a wider website audit. To check that http, www and old addresses all redirect correctly, use the Redirect Checker; to check a suspicious link someone sent you, use the Link Safety Checker.

Check these settings across your whole site

Watch Owl checks SSL, redirects, security headers, SPF, DKIM and DMARC as part of a 54-check crawl of up to 500 pages, worst problem first.

See Watch Owl

Frequently asked questions

What are security headers?

Instructions your server sends with every page that tell the browser how to protect visitors: always use https (HSTS), which scripts may run (Content-Security-Policy), whether other sites can frame the page, not to guess file types, and how much address information to share with other sites.

Which security headers matter most?

Start with an https redirect and HSTS, X-Content-Type-Options: nosniff, clickjacking protection (X-Frame-Options or CSP frame-ancestors) and a Referrer-Policy. A Content-Security-Policy gives the strongest protection but takes the most care to set up.

What is an SPF record?

A DNS TXT record starting v=spf1 that lists the servers allowed to send email for your domain, ending with -all or ~all for everything else. You can only have one, and it must stay within 10 DNS lookups.

What is DMARC and which policy should I use?

DMARC tells inbox providers what to do with email that fails SPF and DKIM checks, and where to send reports. Start with p=none and a rua address to collect reports, fix any legitimate senders that fail, then move to quarantine and finally reject.

Why can't the checker find my DKIM record?

DKIM keys live at a name your email provider chooses (selector._domainkey.yourdomain). We try 22 common selectors; if your provider uses another, we can't see it. Your provider's DKIM settings show the exact selector.

Do I need SPF, DKIM and DMARC if I don't send much email?

Yes, at least SPF and DMARC, because they also stop other people sending email that pretends to be from you. Gmail requires SPF, DKIM and DMARC from anyone sending more than 5,000 messages a day to its users.

What if my domain doesn't send email at all?

Publish an SPF record of v=spf1 -all and a DMARC policy of p=reject. That tells inbox providers to reject any email claiming to be from your domain.

How do I add security headers?

In your CDN or host's settings (for example Cloudflare's HSTS and transform rules), in your web server configuration (nginx add_header, Apache Header set), or with a security plugin on WordPress. Add one at a time and test, especially a Content-Security-Policy.

Does this check every page?

Headers are read from your homepage; other pages can send different ones. Email records apply to the whole domain. To check headers across a site, a crawler such as Watch Owl looks at every page.