Site
Every layer Canopy grades, run over one domain at once, rolled into a single grade — with the fixes ranked.
Try: github.com · example.com
Security headers
1 fail · 4 warn → full report
CSP deep-dive
all clear → full report
Cookie security
1 warn → full report
AI readiness
1 warn → full report
PWA installability
6 fail · 1 warn → full report
Privacy & trackers
all clear → full report
Email security
3 warn → full report
DNS posture
2 warn → full report
SEO & meta
1 warn → full report
Performance
2 fail · 4 warn → full report
Accessibility
2 warn → full report
Monitor this site nightly → one click enrols every layer above, so trends, the weekly digest and client reports start filling in.
How this grade is weighted
Security headers 20% · CSP deep-dive 10% · Cookie security 5% · AI readiness 5% · PWA installability 5% · Privacy & trackers 5% · Email security 10% · DNS posture 10% · SEO & meta 10% · Performance 10% · Accessibility 10%. Link health is scanned separately — its live probes are too request-hungry for the composite.
Fix these first
9 to fix · 19 to review, across all eleven layers — most important first.
-
Fix
Cookie security Security headers →
Set each cookie with: Secure; HttpOnly; SameSite=Lax (or Strict)
-
Fix
Text compression Performance →
Enable gzip or brotli for text responses — most servers and CDNs are one directive away.
-
Fix
Script count Performance →
Audit and bundle; every tag is parse/compile/execute time on the main thread.
-
Fix
Web App Manifest linked PWA installability →
Add <link rel="manifest" href="/manifest.webmanifest"> to the <head>.
-
Fix
Manifest loads and parses PWA installability →
No manifest is linked, so there's nothing to load.
-
Fix
Install icons (192px & 512px) PWA installability →
No valid manifest, so no icons for the installed app.
-
Fix
App name PWA installability →
No valid manifest, so no app name to show on the install prompt.
-
Fix
App-like display mode PWA installability →
No valid manifest, so no display mode.
-
Fix
start_url set PWA installability →
No valid manifest, so no start_url.
-
Warn
Content-Security-Policy Security headers →
Drop 'unsafe-inline'/'unsafe-eval'; use nonces or hashes for scripts.
-
Warn
Permissions-Policy Security headers →
Permissions-Policy: geolocation=(), camera=(), microphone=()
-
Warn
Cache-Control sanity Security headers →
Cache-Control: no-store (for dynamic/personalized pages) or an explicit public, max-age=… for truly static ones
+ 16 more in the layer reports below.
Share it: save a snapshot — a permanent link, and Canopy re-runs all eleven layers nightly from then on.
Machine-readable: /api/site?domain=…
Canopy · Whole-site report · stripe.com · Mon, 10 Aug 2026 04:47 UTC · generated with Canopy — https://canopystack.dev