Skip to main content

🔒 GDPR Site Auditor

PyPI version Python License: MIT Downloads

Check websites for GDPR/RGPD compliance in seconds. Detects privacy issues, cookie problems, missing consent mechanisms, and tracking scripts.

🎯 What it checks

Check Description
🍪 Cookies Tracking cookies, consent banners, cookie policies
📋 Privacy Policy Presence, required elements (controller, rights, retention)
📝 Forms Consent checkboxes, privacy links, purpose statements
📊 Tracking Google Analytics, Facebook Pixel, Hotjar, etc.
🛡️ Security Headers HSTS, CSP, X-Frame-Options, Permissions-Policy

🚀 Quick Start

# Install
pip install gdpr-site-auditor

# Audit a website
gdpr-audit https://example.com

# JSON output
gdpr-audit https://example.com --json

📦 Usage as Library

import asyncio
from gdpr_auditor import SiteAuditor
from gdpr_auditor.checks import check_security_headers
from gdpr_auditor.checks.cookies import check_cookies
from gdpr_auditor.checks.privacy import check_privacy_policy
from gdpr_auditor.checks.tracking import check_tracking
from gdpr_auditor.checks.forms import check_forms

async def main():
    auditor = SiteAuditor()
    auditor.register_check(check_security_headers)
    auditor.register_check(check_cookies)
    auditor.register_check(check_privacy_policy)
    auditor.register_check(check_tracking)
    auditor.register_check(check_forms)

    result = await auditor.audit("https://example.com")

    print(f"Score: {result.score}/100")
    print(f"Critical: {result.critical_count}")
    print(f"Warnings: {result.warning_count}")

    for issue in result.issues:
        print(f"[{issue.severity.value}] {issue.title}")
        print(f"  → {issue.recommendation}")

asyncio.run(main())

📊 Example Output

============================================================
  GDPR/RGPD Site Audit Report
  URL: https://example.com
============================================================

  Score: 72/100 (⚠️  NEEDS IMPROVEMENT)
  Critical: 2 | Warnings: 3

  ISSUES FOUND:
  --------------------------------------------------
  🔴 [CRITICAL] Tracking scripts detected
     Found tracking: Google Analytics. These require explicit user consent under GDPR.
     → Ensure tracking scripts are only loaded AFTER user gives explicit consent.

  🔴 [CRITICAL] Form collects data without consent checkbox
     Form 1 collects email but has no consent mechanism.
     → Add a mandatory consent checkbox before submit.

  🟡 [WARNING] No cookie consent mechanism found
     The site sets cookies but no cookie consent banner was detected.
     → Implement a cookie consent banner.

  ✅ PASSED CHECKS (5):
     • privacy_policy_link
     • security_header_strict-transport-security
     • no_forms_detected
     • no_tracking_cookies_before_consent

============================================================

🤝 Contributing

Contributions are welcome! See CONTRIBUTING.md for guidelines.

Good first issues

  • Add more tracking script detection patterns
  • Add i18n for more languages (German, Spanish, Italian)
  • Add checks for data export/deletion requests
  • Add accessibility checks (a11y)
  • Improve form detection accuracy

📜 License

MIT License - see LICENSE

🔗 Related

Metadata

Release files for gdpr-site-auditor 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gdpr-site-auditor 0.1.0
File Size Uploaded
gdpr_site_auditor-0.1.0.tar.gz 13.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gdpr-site-auditor 0.1.0
File Interpreter ABI Platform
gdpr_site_auditor-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 28.8 kB

Release files / gdpr_site_auditor-0.1.0.tar.gz

Download URL gdpr_site_auditor-0.1.0.tar.gz
Size 13.9 kB
Tags Source
SHA-256 checksum
How to use checksums
d4702f8df90b120a0c5d82580cb2dc69b1d96c7692cd8213f14015315360ff4d
BLAKE2b-256 checksum
How to use checksums
46b3a5899a01c0eab903286b36c43e7a7bb86e523a257a0b3346eb3384b4ad71
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 29, 2026.

Transparency log

Release files / gdpr_site_auditor-0.1.0-py3-none-any.whl

Download URL gdpr_site_auditor-0.1.0-py3-none-any.whl
Size 14.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bb416c100286b78545ca3363620c7580d27c3b30e1876a7c5f330ac9ec2fe457
BLAKE2b-256 checksum
How to use checksums
639e2e9afe5bef1722c736caa9b07b713a1e84af1c0228c8eb5b0402b57f6e75
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 29, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page