Free Tool
    Updated 6 June 2026

    Mozilla Observatory Scan

    Get a full A+ to F security grade for any site. Tests headers, cookies, mixed content, and Subresource Integrity.

    By Deepak Shukla — Founder & CEO, Pearl Lemon

    Part of Security header monitoring — the full answer, the facts and the alternatives in one place.

    What This Tool Checks

    • Content Security Policy (CSP) presence and strictness
    • HTTP Strict Transport Security (HSTS) and preload list
    • Cookie flags (Secure, HttpOnly, SameSite)
    • Subresource Integrity (SRI) on external scripts
    • Cross-Origin Resource Sharing (CORS) configuration
    • Referrer-Policy, X-Frame-Options, X-Content-Type-Options

    Why This Matters

    A misconfigured site is one CSP gap away from a stored-XSS incident that leaks every logged-in user's session token. Browsers ship more aggressive defaults every release, so a site that scored A two years ago can score D today without a single code change.

    How to Fix Issues

    1. 1.Ship a strict CSP with `default-src 'self'` and explicit allow-lists
    2. 2.Set HSTS with `max-age=63072000; includeSubDomains; preload`
    3. 3.Add `Secure; HttpOnly; SameSite=Lax` to every cookie
    4. 4.Add `integrity="sha384-..."` to every external `<script>` tag
    5. 5.Use `Cross-Origin-Opener-Policy: same-origin` for site isolation

    Mozilla Observatory popularised the A+ to F grade for website security and made it normal to demand a CSP on every public site. The original Observatory still works but is unmaintained — this free checker implements the same scoring rubric against the current set of best practices and explains every failing check in language a non-security engineer can act on.

    How the grade is calculated

    The score starts at 100 and loses points for missing or weak headers. Hitting 100 earns an A+; 90+ is A; 70+ is B; below 50 is an F. The biggest single lever is Content Security Policy — a strict CSP can swing the score 25 points on its own. The second is HSTS, which combats SSL-stripping man-in-the-middle attacks and is required for browser preload-list inclusion. The remaining headers each contribute 5–10 points.

    Content Security Policy without breaking your site

    Most teams avoid CSP because their first attempt blocks Google Tag Manager and the marketing team revolts. The right move is to start in report-only mode (Content-Security-Policy-Report-Only) for a week, collect violation reports to an endpoint like Report URI, then promote to enforcing once you've added every legitimate origin to the allow-list. 'unsafe-inline' should never appear in script-src; use nonces or hashes instead.

    Why HSTS preload is more than a checkbox

    Browsers normally only enforce HSTS after the first successful HTTPS visit. The preload list is hard-coded into Chrome, Firefox, Safari, and Edge — once you're on it, the browser refuses to make a plaintext HTTP connection to your domain even for the first visit. Removal takes weeks, so think before you submit: every subdomain, including future ones, must serve HTTPS.

    Chrome's third-party cookie phase-out is reshaping cookie defaults — anything without SameSite=Lax or SameSite=None; Secure will eventually break. HttpOnly blocks JavaScript access (and therefore many XSS-based session-stealing attacks). These are one-line changes in every modern framework yet remain the single most common finding in any Observatory-style scan.

    What this scan doesn't do

    Header configuration is necessary but not sufficient. A perfect A+ grade tells you the perimeter is hardened — it tells you nothing about SQL injection, broken access control, or hard-coded API keys in your JavaScript bundle. Pair this with a real application-layer scan before you call yourself secure.

    Methodology

    We perform an HTTPS GET against the root of the supplied domain plus three sample sub-pages, capture the full response headers, parse cookies for flags, and inspect the response body for external scripts so we can flag missing Subresource Integrity. CSP and HSTS are evaluated against Mozilla's recommended-baseline reference; we award full marks for strict-dynamic CSPs and partial credit for unsafe-inline-with-nonce configurations. The Observatory scoring formula is reproduced verbatim — same starting score, same point deductions, same letter-grade thresholds — so a 95 here is directly comparable to a 95 from the original Mozilla tool. Scans complete in 3–8 seconds and never run JavaScript against your origin.

    Frequently Asked Questions

    Monitor this continuously with LemWatch

    A one-off free mozilla observatory-style security scan shows you today. LemWatch re-runs the same checks around the clock and alerts you the moment something breaks — free for up to 10 sites, no card needed.

    HTTP Status Code Reference

    Understanding HTTP status codes helps you diagnose issues found by this tool: