Als Entwickler bist du oft die letzte Verteidigungslinie vor dem DSGVO-Chaos. Der Kunde will eine schöne Website, das Marketing-Team will Tracking, und niemand denkt an Datenschutz – bis die Abmahnung kommt.
Ich habe diese Checkliste über Jahre verfeinert. Sie deckt alles ab, was du als Entwickler bei der Umsetzung einer DSGVO-konformen Website beachten musst. Stand: Juni 2026.
Phase 1: Vor dem Entwickeln
Hosting & Infrastruktur
- [ ] Server-Standort klären: Wo stehen die Server? EU/EEE ist sicher. USA nur mit Data Processing Agreement (DPA) und Standard Contractual Clauses.
- [ ] SSL-Zertifikat: Let's Encrypt ist kostenlos und ausreichend. Prüfe, dass alle Subdomains HTTPS erzwingen.
- [ ] Backups: Werden Backups erstellt? Wo gespeichert? Wer hat Zugriff? Backups enthalten personenbezogene Daten und fallen unter die DSGVO.
- [ ] Log-Rotation: Server-Logs (Nginx, Apache) enthalten IP-Adressen. Konfiguriere eine automatische Löschung nach 7-14 Tagen.
# Nginx: IP-Adressen in Logs anonymisieren
log_format anonymized '$remote_addr_anon - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
map $remote_addr $remote_addr_anon {
~^(\d+)\.(\d+)\.(\d+)\. $1.$2.$3.0;
~^([0-9a-f]+):([0-9a-f]+): $1:$2::;
default 0.0.0.0;
}
access_log /var/log/nginx/access.log anonymized;
Technologie-Stack prüfen
- [ ] CMS: WordPress, TYPO3, etc. – welche Daten werden standardmäßig erhoben? Kommentarfunktion, User-Registrierung.
- [ ] CDN: Cloudflare, Fastly – wo werden die Daten verarbeitet? DPA abschließen.
- [ ] E-Mail-Service: SendGrid, Mailgun – Auftragsverarbeitungsvereinbarung (AVV) vorhanden?
- [ ] Datenbank: Werden personenbezogene Daten gespeichert? Verschlüsselung at rest?
Phase 2: Frontend-Entwicklung
Cookies & Tracking
- [ ] Cookie-Banner implementieren: Opt-in (nicht Opt-out!). Mit Kategorien: Essenziell, Analyse, Marketing.
- [ ] Ablehnen-Button: Gleich prominent wie Akzeptieren. Keine dunklen Patterns.
- [ ] Vorab-Cookies identifizieren: DevTools → Application → Cookies. Keine nicht-essenziellen Cookies vor der Einwilligung.
- [ ] Google Analytics konditional laden: Erst nach Einwilligung.
- [ ] Facebook Pixel / TikTok Pixel / Hotjar: Gleiches Prinzip – conditional loading.
class CookieConsent {
constructor() {
this.categories = { essential: true, analytics: false, marketing: false };
this.load();
}
load() {
const saved = localStorage.getItem("cookie_consent");
if (saved) {
this.categories = JSON.parse(saved);
this.applyConsent();
} else {
this.showBanner();
}
}
accept(categories) {
this.categories = { ...this.categories, ...categories };
localStorage.setItem("cookie_consent", JSON.stringify(this.categories));
this.applyConsent();
this.hideBanner();
}
applyConsent() {
if (this.categories.analytics) this.loadAnalytics();
if (this.categories.marketing) this.loadMarketing();
}
loadAnalytics() {
if (document.querySelector("script[src*=analytics]")) return;
const s = document.createElement("script");
s.src = "https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX";
s.async = true;
document.head.appendChild(s);
}
showBanner() { document.getElementById("cookie-banner").style.display = "flex"; }
hideBanner() { document.getElementById("cookie-banner").style.display = "none"; }
}
new CookieConsent();
Fonts & Externe Ressourcen
- [ ] Google Fonts: Niemals extern laden. Immer lokal hosten oder über
next/font. - [ ] Externe Bilder: CDN-Bilder können IP-Adressen übertragen. Lokal hosten oder Proxy.
- [ ] Google Maps: Ohne Einwilligung eine DSGVO-Verletzung. OpenStreetMap als Alternative oder Maps erst nach Consent laden.
- [ ] YouTube/Vimeo:
youtube-nocookie.comverwenden oder iframes lazy-loaden.
<!-- YouTube ohne Cookies -->
<iframe src="https://www.youtube-nocookie.com/embed/VIDEO_ID"
title="Video"
allowfullscreen>
</iframe>
<!-- Besser: Iframe erst nach Klick laden -->
<div class="video-placeholder" data-video-id="VIDEO_ID">
<button onclick="loadVideo(this)">
▶ Video abspielen
</button>
</div>
Formulare
- [ ] Datenschutzhinweis: Jedes Formular braucht einen Link zur Datenschutzerklärung und eine aktive Einwilligung.
- [ ] Datenminimierung: Nur Daten abfragen, die nötig sind. Telefonnummer im Kontaktformular? Wirklich?
- [ ] Spamschutz: reCAPTCHA überträgt Daten an Google. Honeypot oder mathematische Captchas als Alternative.
- [ ] Speicherdauer: Formulardaten nicht ewig in der Datenbank liegen lassen. Automatische Löschung nach definierter Frist.
Phase 3: Pflichtseiten
Impressum (§ 5 DDG)
- [ ] Vollständiger Name des Verantwortlichen
- [ ] Ladungsfähige Anschrift (kein Postfach!)
- [ ] E-Mail-Adresse und Telefonnummer
- [ ] USt-IdNr. (falls vorhanden)
- [ ] Streitschlichtungshinweis
- [ ] Bei GmbH: HRB-Nummer und Geschäftsführer
- [ ] Link im Footer als "Impressum" benannt (nicht "Legal")
Datenschutzerklärung (Art. 13/14 DSGVO)
- [ ] Verantwortlicher benannt
- [ ] Alle Datenverarbeitungsprozesse beschrieben
- [ ] Rechtsgrundlagen angegeben (Art. 6 Abs. 1 lit. a-f DSGVO)
- [ ] Alle Third-Party-Dienste aufgelistet mit Zweck und Datenkategorie
- [ ] Speicherdauer oder Kriterien zur Bestimmung
- [ ] Rechte der Betroffenen: Auskunft, Berichtigung, Löschung, Einschränkung, Datenübertragbarkeit, Widerspruch
- [ ] Beschwerderecht bei der Aufsichtsbehörde
- [ ] Bei Datenübermittlung in Drittländer: Garantien genannt
- [ ] Datum der letzten Aktualisierung
Cookie-Richtlinie
- [ ] Separate Seite oder Abschnitt in der Datenschutzerklärung
- [ ] Alle Cookies tabellarisch: Name, Zweck, Dauer, Kategorie
- [ ] Unterscheidung: Essenziell / Funktionale / Analyse / Marketing
Phase 4: Sicherheit
Technische Maßnahmen (Art. 32 DSGVO)
- [ ] HTTPS überall: HSTS-Header gesetzt
- [ ] Content Security Policy: CSP-Header konfigurieren
- [ ] Input-Validierung: XSS, SQL-Injection, CSRF
- [ ] Verschlüsselung: Sensible Daten verschlüsselt in der Datenbank
- [ ] Zugriffskontrolle: Principle of Least Privilege
- [ ] Security Headers:
add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
Phase 5: Rechte der Betroffenen
- [ ] Löschungsanfragen: Prozess definieren. Innerhalb von 30 Tagen erfüllen.
- [ ] Auskunftsrecht: Nutzer können fragen, welche Daten gespeichert sind.
- [ ] Datenexport: Art. 20 DSGVO – Export als JSON/CSV anbieten.
- [ ] Widerspruchsrecht: Direktwerbung muss jederzeit widersprochen werden können.
// Beispiel: Endpunkt für Auskunftsbegehren
app.post("/api/gdpr/subject-access-request", async (req, res) => {
const { email } = req.body;
const userData = await collectUserData(email);
res.json({
user: userData.profile,
orders: userData.orders,
newsletter: userData.subscriptions,
});
});
Phase 6: Launch-Check
Vor dem Going-Live:
- [ ] Scan mit DSGVO Guard durchführen
- [ ] DevTools → Network Tab: Alle Requests vor Cookie-Einwilligung prüfen
- [ ] DevTools → Application → Cookies: Keine nicht-essenziellen Cookies vor Consent
- [ ] Impressum vollständig und unter
/impressumerreichbar - [ ] Datenschutzerklärung aktuell und unter
/datenschutzerreichbar - [ ] Cookie-Banner funktioniert: Akzeptieren UND Ablehnen getestet
- [ ] Alle Formulare haben Datenschutzhinweis und Checkbox
- [ ] Security Headers gesetzt (Check mit securityheaders.com)
- [ ] SSL-Konfiguration geprüft (test mit ssllabs.com/ssltest)
Kontinuierliche Wartung
DSGVO-Compliance ist kein einmaliger Akt. Websites ändern sich:
- Neue Plugins können neue Scripts laden
- WordPress-Updates können Tracker hinzufügen
- Der Kunde fügt ein neues Kontaktformular ein
- Das Marketing-Team will einen neuen Pixel
Empfehlung: Regelmäßige automatische Scans einrichten. Der DSGVO Guard Pro-Plan bietet:
- Wöchentliche oder monatliche automatische Scans
- E-Mail-Alerts bei neuen Problemen
- PDF-Reports für Kunden
- Pro: 19 €/Monat | Business (mehrere Domains): 49 €/Monat
Für Agenturen mit 10+ Kunden-Websites ist das ein No-Brainer. Eine einzige übersehene Abmahnung kostet ein Vielfaches.
→ DSGVO Guard Pro-Plan: guard.nevki.de
📦 DSGVO Compliance Toolkit
Alles in einem Paket: DSGVO Scan + 50-Punkte Checkliste (PDF) + Widget Setup Guide.
→ DSGVO Compliance Toolkit (€49)
→ DSGVO Compliance Toolkit fuer Webagenturen (€99)
Haftungsausschluss: Diese Checkliste ersetzt keine Rechtsberatung. Sie basiert auf meiner Erfahrung als Entwickler und der aktuellen Rechtslage zum Zeitpunkt der Veröffentlichung.
Top comments (0)