Coverage catalogue

Every check Vettd runs.
82 on the live site, 34 in the codebase.

Two scanners share one finding model: each rule has a severity, a description, and a fix. Site Scan runs against any URL in a real browser. Code Review runs continuously against your GitHub repository on every push.

MCP serverNew

Run a Vettd scan from Claude Code, Cursor, or Windsurf.

Install shipvettd, point your MCP-aware client at it, and your agent can audit any URL — and reason over the findings — without leaving the editor.

Install

Scans any URL in a real browser. Inspects HTTP headers, rendered HTML, observed cookies, computed Web Vitals, and structured data. No signup; results in 30 seconds.

Security

18 checks

Is it safe?

CRITICAL
URL
HTTPS Enabled

Site must be served over HTTPS — browsers mark HTTP sites as "Not Secure"

HIGHAuto-fix
URL
HSTS Header

Strict-Transport-Security tells browsers to always use HTTPS, preventing downgrade attacks

HIGHAuto-fix
URL
Content Security Policy

CSP prevents XSS attacks by controlling which scripts, styles, and resources can load

MEDIUMAuto-fix
URL
X-Content-Type-Options

Prevents browsers from MIME-sniffing responses, which can lead to XSS via uploaded files

HIGHAuto-fix
URL
Clickjack Protection

Prevents your site from being embedded in iframes on malicious sites (clickjacking)

HIGH
URL
No Mixed Content

HTTPS pages must not load any resources over plain HTTP

CRITICALAuto-fix
URL
No Exposed Secrets

No API keys, tokens, or credentials visible in page source — attackers actively scan for these

HIGH
URL
Forms Use HTTPS

Form submissions should use HTTPS to protect user data in transit

MEDIUMAuto-fix
URL
No Server Version Exposed

Server and framework versions in headers tell attackers exactly what exploits to use

HIGH
URL
API Endpoint Audit

Maps all API endpoints called from your frontend — exposed endpoints are attack surface

MEDIUMAuto-fix
URL
No Source Maps Exposed

Source map files (.js.map) let anyone read your original unminified source code

HIGH
URL
No Admin Paths Exposed

Admin, debug, and API documentation pages should not be publicly accessible

HIGHAuto-fix
URL
CORS Not Wide Open

Access-Control-Allow-Origin: * lets ANY website make requests to your APIs

MEDIUMAuto-fix
URL
No Localhost References

References to localhost or internal IPs in production code indicate dev leftovers

MEDIUMAuto-fix
URL
Referrer Policy

Controls how much URL info leaks to third-party sites when users click external links

LOWAuto-fix
URL
Permissions Policy

Controls which browser features (camera, mic, geolocation) third-party scripts can access

HIGHAuto-fix
URL
Cookie Security Flags

Cookies should have Secure, HttpOnly, and SameSite flags to prevent theft and CSRF

MEDIUMAuto-fix
URL
No Exposed Environment Config

Framework env variables in frontend code reveal your tech stack and internal config to attackers

SEO

14 checks

Will people find it?

HIGHAuto-fix
URL
Page Title

Every page needs a unique, descriptive title between 30-60 characters

HIGHAuto-fix
URL
Meta Description

The meta description appears in search results — it's your pitch to get clicks

MEDIUMAuto-fix
URL
OpenGraph Tags

OpenGraph tags control how your link looks when shared on social media, Slack, Discord

LOWAuto-fix
URL
Twitter Card

Twitter Card tags control how your link appears when shared on X/Twitter

MEDIUM
URL
Single H1 Tag

Each page should have exactly one H1 — it tells search engines what the page is about

MEDIUMAuto-fix
URL
Image Alt Text

Alt text helps search engines understand images and is required for screen readers

MEDIUMAuto-fix
URL
robots.txt Analysis

robots.txt tells search engines what to crawl — missing or misconfigured = SEO problems

MEDIUMAuto-fix
URL
Sitemap Analysis

A sitemap tells search engines about all your pages — critical for indexing

MEDIUMAuto-fix
URL
Structured Data

JSON-LD structured data helps search engines understand your content and show rich results

MEDIUMAuto-fix
URL
Canonical URL

Canonical URL prevents duplicate content issues when the same page is accessible at multiple URLs

HIGHAuto-fix
URL
Not Blocking Indexing

Check that the page isn't accidentally blocking search engines from indexing it

LOW
URL
Content Depth

Pages with very little text content are unlikely to rank in search results

MEDIUMAuto-fix
URL
No Duplicate Meta Tags

Duplicate title or description tags confuse search engines — common when AI adds tags the framework already generates

MEDIUM
URL
Heading Hierarchy

Headings should follow a logical hierarchy (H1 → H2 → H3) without skipping levels — critical for accessibility and SEO

Performance

9 checks

Is it fast?

HIGH
URL
Server Response Time

Time for the server to return HTML — slow servers hurt user experience and SEO

MEDIUM
URL
HTML Document Size

Oversized HTML slows down initial render — common with server-rendered apps that inline too much

MEDIUMAuto-fix
URL
Image Optimization

Images should use modern formats (webp/avif) and have appropriate sizes

MEDIUMAuto-fix
URL
Compression

Gzip or Brotli compression reduces transfer size by 60-80%

HIGHAuto-fix
URL
Mobile Viewport

Without a viewport tag, your site renders at desktop width on mobile and gets zoomed out

MEDIUM
URL
Third-Party Script Audit

Every external script is a performance cost and a trust decision — audit what you load

MEDIUMAuto-fix
URL
Render-Blocking Resources

Scripts and stylesheets in <head> block page rendering until they load

LOWAuto-fix
URL
Font Loading Strategy

Custom fonts can cause invisible text (FOIT) if not loaded with font-display: swap

LOWAuto-fix
URL
Resource Hints

preconnect and preload hints tell the browser to start loading critical resources early

CRO

7 checks

Will it convert?

HIGH
URL
CTA in Primary Content

A clear call-to-action button or link should appear in the hero/header area of the page

MEDIUM
URL
CTA Button Contrast

CTA buttons should be visually prominent with strong contrast against their background

MEDIUMAuto-fix
URL
Headline Clarity

The main H1 headline should clearly communicate what your product or service does

MEDIUM
URL
Value Proposition

Supporting text below the headline should explain the benefit or describe the product

MEDIUM
URL
Social Proof

Trust signals like testimonials, review counts, client logos, or "trusted by X companies" text

LOW
URL
Minimal Form Fields

Each form should have 5 or fewer visible fields — more fields = more friction = fewer conversions

LOWAuto-fix
URL
Specific CTA Text

Buttons should say what happens when you click them, not just "Submit" or "Click here"

Reliability

5 checks

Will it stay up?

HIGHAuto-fix
URL
Error Tracking

Without error tracking, users hit bugs and you never know — Sentry, LogRocket, or similar

MEDIUMAuto-fix
URL
Traffic Analytics

Without traffic analytics you have no idea who visits your site, where they come from, or what they do — error tracking alone is not enough

LOWAuto-fix
URL
Favicon & App Icons

Favicon appears in browser tabs, bookmarks, and search results — default framework icons look unprofessional

MEDIUMAuto-fix
URL
Custom 404 Page

When users hit a broken link, a custom 404 page keeps them on your site instead of showing a generic error

MEDIUM
URL
Social Preview Image

Your og:image should actually load — broken preview images make shared links look bad

Completeness

18 checks

Is it actually finished?

HIGHAuto-fix
URL
No Dead Links

No links pointing to #, empty href, or javascript:void(0)

HIGHAuto-fix
URL
No Dead Social Links

Social media links should point to actual profiles, not # or empty

HIGHAuto-fix
URL
No Broken Internal Links

Internal links should not return 404 errors

MEDIUMAuto-fix
URL
No Broken Anchor Links

Anchor links (#section) should point to existing element IDs

HIGHAuto-fix
URL
No Broken Images

All images should load successfully

HIGHAuto-fix
URL
No Placeholder Text

No lorem ipsum, "Your Company", or other placeholder text

MEDIUMAuto-fix
URL
No Placeholder Images

No images from placeholder services (placeholder.com, picsum, etc.)

MEDIUMAuto-fix
URL
No Placeholder Contact Info

No placeholder emails, phone numbers, or addresses

MEDIUMAuto-fix
URL
No TODOs in Source

No TODO or FIXME comments visible in page source

LOWAuto-fix
URL
No Console Logs

No console.log() statements in production code — checks inline scripts and JS bundles

HIGHAuto-fix
URL
No Framework Defaults

Page title, description, and favicon should not be framework defaults

LOWAuto-fix
URL
Correct Copyright Year

Copyright year should match the current year

MEDIUMAuto-fix
URL
No Empty Sections

Sections with class names suggesting content but no actual text — skeleton left by AI

HIGH
URL
Internal Pages Health

Crawls your top internal pages and checks if they have real content or are stubs

MEDIUMAuto-fix
URL
HTML Language Declared

The <html> tag must have a lang attribute — screen readers and search engines need it to process your content correctly

LOWAuto-fix
URL
Semantic HTML Structure

Using <main>, <nav>, <footer>, <article> instead of just <div> helps search engines and screen readers understand your page

LOWAuto-fix
URL
No-JavaScript Fallback

SPAs that show nothing without JavaScript are invisible to some crawlers and users with JS disabled

MEDIUMAuto-fix
URL
Form Input Labels

Form inputs need <label> elements, not just placeholder text — required for accessibility and better UX

AI Search

6 checks

Can ChatGPT, Claude, Perplexity cite it?

MEDIUMAuto-fix
URL
llms.txt for AI agents

llms.txt is an emerging standard (llmstxt.org) that points AI agents at your canonical docs/source bundle without making them crawl your whole site.

MEDIUMAuto-fix
URL
robots.txt allows AI search bots

For AI engines like ChatGPT, Claude, and Perplexity to cite your site in their answers, their crawlers need to be allowed in robots.txt. Default-allow is fine; explicit Disallow blocks them entirely.

MEDIUMAuto-fix
URL
AI-citable structured data

AI engines lean on Schema.org types like Article, Product, Organization, FAQPage to extract clean facts. A site without these gets paraphrased less accurately and cited less often.

LOWAuto-fix
URL
FAQ schema

FAQPage schema is the single most-cited format in AI answers — questions you ask + answers you give get pulled directly into ChatGPT/Perplexity responses.

LOW
URL
Author / Organization attribution

AI engines weight content from named authors and recognised organisations more heavily. Adding Person or Organization schema with sameAs links to social profiles boosts citation trust.

HIGH
URL
Content readable without JavaScript

Most AI crawlers (GPTBot, ClaudeBot, etc.) do NOT execute JavaScript. If your headlines, body copy, or core content only appear after hydration, AI engines see an empty page and can't cite you.

See what Vettd finds on your code.

116 checks combined. Real browser. Real repository. With the fix.