Skip to main content
Included in every plan · EU-hosted

CSP without reporting is CSP on faith.

Modern browsers can POST a structured report every time they block a script, image, or style that violates your CSP. SiteGuardian gives you an endpoint to receive them — aggregated, deduplicated, and alerted on.

Free plan includes 10 000 reports/month · Privacy-first · EU-hosted

1 M → 1 row

A misconfigured CSP can flood you with millions of reports from a single browser tab. We bucket by (directive, blocked URI, source file) — one row with a count, three samples, and a browser breakdown.

Privacy by design

Client IPs hashed with a daily-rotating salt. Query strings + fragments stripped from document URIs before storage. User-Agent reduced to browser family. No session tokens. No cookies.

Alert on drift

Built-in metrics for any alert rule: spike detection (csp_report_volume) and new-violation-type notifications (csp_new_violation_type_count). Catch a broken deploy the moment the first real user hits it.

How it works

  1. 1

    Enable CSP Reports on a monitor

    One click on the monitor's detail page. We generate an HMAC-signed URL and hand you a copy-paste CSP snippet.

  2. 2

    Paste the header into your server

    Both legacy (report-uri) and modern (Reporting-Endpoints + Report-To) formats are supported in parallel. Works with every current browser.

  3. 3

    Watch violations roll in

    Within seconds of real traffic the CSP Reports tab lights up with the first buckets. Click a row for raw samples, browser breakdown, and affected pages.

  4. 4

    Tighten your policy

    After a week of reports we suggest allowlist additions ranked by how many users each suggestion would unbreak. Apply the diff, redeploy, tighten the next ring.

No extra charge

Bundled with the plan you already have

CSP Reports are included on every SiteGuardian plan. Your tier determines the monthly quota and retention window.

Plan CSP reports / month Retention
Free 10 000 7 days
Pro 1 000 000 90 days
Business 10 000 000 180 days
Compliance 10 000 000 180 days
Enterprise Negotiated 365 days

Hit the quota? Ingest auto-pauses with an upgrade prompt — you are never billed for overage. Per-monitor abuse protection kicks in at 10 000 reports/minute.

Frequently asked

Is there anything else I need?
No — the endpoint is provisioned automatically on each monitor. If you're currently sending reports to another service, you can run both in parallel (browsers send to every endpoint listed in Report-To) and cut over once you're happy with what you're seeing here.
Do I need to install anything?
No. Paste three headers into your web server config. Works with nginx, Apache, Caddy, Cloudflare Workers — anywhere you can set response headers.
What if my site gets DDoS'd via a bad CSP?
nginx rate-limits at the edge (200 req/s per source IP), and we auto-pause ingest for a monitor if it breaches 10k reports/min for three consecutive minutes. You'll never be billed for a crawl loop on your own site.
What about NEL, Deprecation, and other report types?
Same endpoint accepts NEL (Network Error Logging), Deprecation, Intervention, and Expect-CT reports. Useful bonus signals for tracking CDN outages and browser API changes.
Can I use my own subdomain?
White-label subdomains (reports.your-domain.com) are on the roadmap for Enterprise. Today the endpoint lives at reports.siteguardian.io/r/{monitor_id}/{hmac}.

See what your CSP is really blocking

One monitor, one header, 60 seconds to the first bucket.

Start free