vitalsite

What VitalSite checks

Every scan runs the same deterministic set of rules below against your site, split into 7 categories. Each rule either finds a problem or doesn't — there's no guessing involved, which is why the same site scanned twice without changes gets the same score. This list is generated from the actual scanner code, not a marketing description of it.

Security

Checks the technical armor around your site — the response headers and cookie settings that stop common attacks like clickjacking, content sniffing, and session theft.

SEC-HSTS-001HSTS header missingMEDIUM

Your site doesn’t tell browsers "always use HTTPS with me" — without this, a visitor’s first connection can be tricked onto an unencrypted version of your site.

SEC-CSP-001Content-Security-Policy missingLOW

There’s no rule telling the browser which scripts are allowed to run on your site — this is one of the strongest defenses against injected malicious code.

SEC-XCTO-001X-Content-Type-Options missingLOW

The browser isn’t told to trust the file types your server declares, which can let a malicious file disguise itself as something safe.

SEC-REFERRER-001Referrer-Policy missingLOW

Your site doesn’t control what information leaks to other websites when someone clicks a link away from your page.

SEC-PERMISSIONS-001Permissions-Policy missingINFO

Your site doesn’t explicitly turn off browser features (camera, location, etc.) it doesn’t use, leaving a slightly larger attack surface than necessary.

SEC-HTTPS-001HTTPS not availableCRITICAL

The site couldn’t be reached securely at all — visitors would see a "not secure" warning or fail to connect.

SEC-COOKIE-SECURE-001Cookie missing Secure flagMEDIUM

Some cookies can be sent over an unencrypted connection, which is a real risk on public wifi.

SEC-COOKIE-HTTPONLY-001Cookie missing HttpOnly flagLOW

A cookie is readable by JavaScript on the page — if an attacker ever injects a malicious script, they could steal that cookie (e.g. a login session).

SEC-COOKIE-SAMESITE-001Cookie missing SameSite flagLOW

A cookie doesn’t say whether it should be sent from other websites, which is part of the defense against cross-site request forgery attacks.

SEC-SPF-001SPF record not foundMEDIUM

There’s no DNS record saying which mail servers are allowed to send email "from" your domain — without it, it’s easier for someone to spoof your business in a phishing email.

SEC-DMARC-001DMARC record not foundMEDIUM

Same idea as SPF — this DNS record tells email providers what to do with messages that fail authentication, pretending to be from you.

Privacy

Looks at what trackers and cookies your site actually loads, and whether that lines up with a proper consent banner — the technical side of GDPR/TTDSG compliance (not legal advice, see the disclaimer everywhere findings are shown).

PRIV-TRACKER-*Known tracker/vendor detectedMEDIUM

We recognized a request to a known analytics, advertising, or session-recording service (Google Analytics, Meta Pixel, Hotjar, and others) — one finding per vendor found, not per request.

PRIV-PRECONSENT-001Tracking before consentHIGH

A tracker fired before the visitor interacted with your cookie banner at all — a common and often-cited compliance gap.

PRIV-THIRDPARTY-COOKIE-001Third-party cookies observedINFO

Cookies were set for a domain that isn’t yours — worth confirming it’s declared in your privacy notice.

SEO

The basics search engines and social previews actually read — page titles, descriptions, headings, and whether crawlers are allowed in at all.

SEO-TITLE-001Page title missingHIGH

The page has no title at all — it’ll show up blank or as a raw URL in search results and browser tabs.

SEO-TITLE-002Page title too short/longLOW

The title is outside the roughly 10–60 character sweet spot — too short wastes an opportunity, too long gets truncated in search results.

SEO-META-001Meta description missingMEDIUM

No summary text for search engines to show under your title in results — they’ll pick something themselves, often badly.

SEO-META-002Meta description too longLOW

The description is over ~160 characters and will get cut off in search results.

SEO-H1-001No H1 headingMEDIUM

The page has no main heading — a signal search engines and screen readers both rely on to understand what the page is about.

SEO-H1-002Multiple H1 headingsLOW

The page has more than one main heading, which dilutes the "this is what this page is about" signal.

SEO-CANONICAL-001No canonical linkINFO

The page doesn’t declare its own preferred URL, which matters if the same content is reachable at more than one address.

SEO-ROBOTS-001robots.txt issueINFO / HIGH

Either there’s no robots.txt file at all, or — more seriously — it tells every search engine to stay away from the entire site.

SEO-SITEMAP-001Sitemap not discoverableINFO

We couldn’t find a sitemap.xml, which helps search engines discover every page on a larger site faster.

SEO-LINK-001Broken links foundMEDIUM

One or more links on the page point to a page that returns an error — bad for visitors and for search rankings.

Accessibility

Runs the industry-standard axe-core checker (the same engine built into Chrome DevTools) against every page, so people using screen readers, keyboards, or who have low vision can actually use your site.

A11Y-AXE-*One finding per accessibility rule violatedVaries

axe-core checks close to 100 specific WCAG rules (missing alt text, poor color contrast, unlabeled form fields, and more) — each distinct rule that fails becomes its own finding, so you can fix and dismiss them one at a time. Automated checks catch real issues but can’t certify full WCAG conformance — a human review is still the final word.

Performance

How fast the page actually loads in a real browser, and what’s making it heavy.

PERF-LOAD-001Page load is slowMEDIUM / HIGH

The page took more than 5 seconds (or 10, for the more severe version) to finish loading — most visitors won’t wait that long.

PERF-WEIGHT-001Page is heavyMEDIUM / HIGH

The page pulls down more than 5MB (or 10MB) of data just to display — a real cost on mobile connections.

PERF-IMAGE-001Oversized images foundLOW

One or more images are 1MB or larger — almost always safe to compress with no visible quality loss.

Availability

The simplest and most important question: is the site actually up right now?

AVAIL-DOWN-001Website is unreachableCRITICAL

A monitoring check couldn’t get a successful response from your site at all — this is the one finding that pages you immediately.

Domain & SSL

The two things that, if they lapse, take your entire site down at once — your domain registration and your TLS certificate.

TLS-EXPIRY-001TLS certificate invalid or expiringVaries

Your HTTPS certificate either failed to validate outright, or is within 60 days of expiring — severity increases the closer it gets to actually expiring.

DOMAIN-EXPIRY-001Domain registration expiringVaries

Your domain name itself is within 60 days of expiring — if it lapses, everything (site, email, everything) goes down until it’s renewed.

This page describes technical checks, not legal or compliance advice — see the disclaimer shown alongside every scan result, and our Privacy Notice for how we handle data.