Kontaktformulare und DSGVO: So machst du sie rechtssicher
Kontaktformulare DSGVO-konform umsetzen: Rechtsgrundlage, Pflichtangaben, Datensparsamkeit, Captcha-Alternativen und technische Umsetzung mit Code-Beispiel.
Kontaktformulare gehören zu den am häufigsten falsch umgesetzten Elementen auf deutschen Websites. Der Grund: Viele Website-Betreiber glauben, sie bräuchten eine explizite Einwilligung per Checkbox — tatsächlich ist das in den meisten Fällen nicht nur unnötig, sondern kann sogar kontraproduktiv sein.
In diesem Artikel klären wir die Rechtsgrundlage, zeigen die technischen Anforderungen und liefern ein konkretes Code-Beispiel für ein DSGVO-konformes Kontaktformular.
Rechtsgrundlage: Einwilligung ist meist nicht nötig
Das größte Missverständnis zuerst: Für ein normales Kontaktformular brauchst du keine Einwilligung (Art. 6 Abs. 1 lit. a DSGVO). Stattdessen kommen zwei andere Rechtsgrundlagen in Frage:
Berechtigtes Interesse (Art. 6 Abs. 1 lit. f DSGVO)
Wenn ein Website-Besucher dein Kontaktformular ausfüllt, hat er ein eigenes Interesse an der Kommunikation. Dein berechtigtes Interesse, auf die Anfrage zu antworten, überwiegt die Interessen des Absenders — schließlich hat er die Kontaktaufnahme selbst initiiert.
Vorvertragliche Maßnahmen (Art. 6 Abs. 1 lit. b DSGVO)
Wenn das Kontaktformular dazu dient, eine Angebotsanfrage zu stellen oder einen Vertrag anzubahnen (z.B. “Unverbindliches Angebot anfordern”), greift die Rechtsgrundlage der vorvertraglichen Maßnahmen.
Warum eine Einwilligungs-Checkbox problematisch sein kann
Eine Checkbox “Ich willige in die Verarbeitung meiner Daten ein” klingt nach mehr Sicherheit, kann aber rechtliche Nachteile haben:
- Widerrufsrecht: Eine Einwilligung kann jederzeit widerrufen werden (Art. 7 Abs. 3 DSGVO). Dann müsstest du alle bereits erhaltenen Daten löschen — auch wenn du die Anfrage noch bearbeitest
- Freiwilligkeit: Wenn der Nutzer das Formular nur mit Checkbox absenden kann, ist die Einwilligung nicht freiwillig (Kopplungsverbot, Art. 7 Abs. 4 DSGVO)
- Rechtsunsicherheit: Zwei Rechtsgrundlagen gleichzeitig (Einwilligung + berechtigtes Interesse) führen zu Verwirrung in der DSE
Empfehlung: Setze auf berechtigtes Interesse oder vorvertragliche Maßnahmen und informiere über die Datenverarbeitung mit einem Hinweis (nicht mit einer Einwilligungs-Checkbox).
Checkbox: Kenntnisnahme statt Einwilligung
Statt einer Einwilligungs-Checkbox empfiehlt sich ein Kenntnisnahme-Hinweis. Der Unterschied ist juristisch relevant:
| Einwilligung | Kenntnisnahme | |
|---|---|---|
| Rechtsgrundlage | Art. 6 Abs. 1 lit. a DSGVO | Art. 6 Abs. 1 lit. f oder b DSGVO |
| Widerrufbar? | Ja, jederzeit | Nein (kein Widerrufsrecht, aber Widerspruchsrecht) |
| Checkbox nötig? | Ja (Nachweis der Einwilligung) | Optional (reiner Hinweis) |
| Text | ”Ich willige ein, dass…" | "Hinweis: Informationen zur Verarbeitung deiner Daten findest du in unserer Datenschutzerklärung.” |
| Pflichtfeld? | Ja | Nein (wenn nur Hinweis) |
Wenn du dennoch eine Checkbox einsetzen möchtest (aus Transparenzgründen), formuliere sie als Kenntnisnahme:
[x] Ich habe die Datenschutzerklärung zur Kenntnis genommen.
Nicht:
[x] Ich willige in die Verarbeitung meiner Daten ein.
SSL/TLS-Pflicht für Formulare
Art. 32 DSGVO verlangt “geeignete technische Maßnahmen” zum Schutz personenbezogener Daten. Das TDDDG (SS 19 Abs. 4) konkretisiert: Wer Telemedien bereitstellt, muss durch technische und organisatorische Vorkehrungen sicherstellen, dass die Nutzung gegen Kenntnisnahme Dritter geschützt ist.
Konkret bedeutet das:
- Das Kontaktformular muss über HTTPS erreichbar sein
- Der Formular-Submit (POST-Request) muss verschlüsselt erfolgen
- Mixed Content (HTTPS-Seite, aber HTTP-Submit-URL) ist ein Verstoß
- Ein gültiges SSL-Zertifikat muss vorliegen (kein selbstsigniertes Zertifikat)
Prüfe im Quelltext, ob die action-URL des Formulars HTTPS verwendet:
<!-- Richtig -->
<form action="https://example.com/kontakt" method="POST">
<!-- Falsch -->
<form action="http://example.com/kontakt" method="POST">
<!-- Richtig (relativer Pfad, übernimmt Protokoll der Seite) -->
<form action="/kontakt" method="POST">
Datensparsamkeit: Welche Felder sind erlaubt?
Art. 5 Abs. 1 lit. c DSGVO schreibt Datensparsamkeit vor: Es dürfen nur Daten erhoben werden, die für den Zweck der Verarbeitung erforderlich sind.
Pflichtfelder im Kontaktformular
| Feld | Erforderlich? | Begründung |
|---|---|---|
| E-Mail-Adresse | Ja | Für die Antwort zwingend nötig |
| Nachricht | Ja | Zweck des Formulars |
| Name | Bedingt | Für persönliche Anrede sinnvoll, aber nicht zwingend nötig |
| Telefonnummer | Nein | Nur als optionales Feld, wenn Rückruf gewünscht |
| Firma | Nein | Nur bei B2B-Formularen als Pflichtfeld vertretbar |
| Adresse | Nein | Für Kontaktanfragen nicht erforderlich |
| Geburtsdatum | Nein | Für Kontaktanfragen nie erforderlich |
Faustregel: Jedes Pflichtfeld musst du in der DSE begründen können. Wenn du nicht erklären kannst, warum du das Feld brauchst, ist es ein optionales Feld — oder sollte ganz entfallen.
Optionale Felder müssen klar als solche gekennzeichnet sein (z.B. “Telefonnummer (optional)”).
Captcha und Datenschutz
Spam-Schutz ist legitim, aber nicht jede Lösung ist DSGVO-konform. Google reCAPTCHA (v2 und v3) überträgt Nutzerdaten an Google in die USA, setzt Cookies und erstellt Nutzerprofile. Ohne Einwilligung ist der Einsatz ein DSGVO-Verstoß — die bayerische Datenschutzbehörde (BayLDA) hat dies 2023 in mehreren Verfahren beanstandet.
Datenschutzfreundliche Alternativen
| Lösung | Datenschutz | Effektivität | Aufwand |
|---|---|---|---|
| Honeypot-Felder | Kein Datenversand, DSGVO-unproblematisch | Gut gegen einfache Bots | Gering |
| hCaptcha | Server in USA, aber privacy-fokussierter als Google | Gut | Mittel |
| Friendly Captcha | Server in der EU, DSGVO-konform | Sehr gut | Mittel |
| Zeitbasierte Prüfung | Kein Datenversand | Gut gegen einfache Bots | Gering |
| Custom Math-Captcha | Kein externer Dienst | Mäßig | Gering |
Honeypot-Implementierung
Ein Honeypot-Feld ist unsichtbar für Nutzer, wird aber von Bots ausgefüllt. Keine externen Dienste, keine Cookies, kein Datentransfer:
<!-- Visuell versteckt, aber für Bots sichtbar -->
<div style="position: absolute; left: -9999px;" aria-hidden="true">
<label for="website">Website (nicht ausfüllen)</label>
<input type="text" id="website" name="website" tabindex="-1" autocomplete="off" />
</div>
// Serverseitig: Wenn das Honeypot-Feld ausgefüllt ist, ist es Spam
if (req.body.website) {
// Spam -- leise ablehnen, keine Fehlermeldung
return res.status(200).json({ success: true });
}
Speicherdauer und Löschfristen
Art. 5 Abs. 1 lit. e DSGVO verlangt eine begrenzte Speicherdauer. Für Kontaktformulardaten gibt es keine feste Frist, aber folgende Orientierung:
| Situation | Empfohlene Speicherdauer |
|---|---|
| Allgemeine Anfrage beantwortet | 6 Monate nach letztem Kontakt |
| Angebotsanfrage ohne Vertragsabschluss | 6 Monate nach letztem Kontakt |
| Reklamation / Beschwerde | 3 Jahre (Verjährungsfrist SS 195 BGB) |
| Vertragsanbahnung mit Abschluss | Dauer des Vertragsverhältnisses + Aufbewahrungsfristen |
Wichtig: Dokumentiere deine Löschfristen in einem Löschkonzept und setze technische Maßnahmen zur automatischen Löschung um.
E-Mail-Weiterleitung und Autoresponder
Weiterleitung per E-Mail
Wenn das Formular die Daten per E-Mail weiterleitet, gilt:
- Der E-Mail-Server muss TLS-Verschlüsselung unterstützen (Transportverschlüsselung)
- Interne Weiterleitung: Firmen-E-Mail-Server genügt
- Externe Weiterleitung (z.B. an Gmail): AVV mit dem E-Mail-Anbieter nötig
Autoresponder DSGVO-konform
Automatische Antwort-E-Mails sind zulässig, wenn sie sich auf die Kontaktanfrage beziehen. Sie dürfen keine Werbung oder Newsletter-Anmeldung enthalten. Ein guter Autoresponder enthält:
- Eingangsbestätigung (“Wir haben deine Nachricht erhalten”)
- Voraussichtliche Bearbeitungszeit
- Hinweis auf die DSE
- Keine Produktwerbung, Gutscheine oder Cross-Selling
Formular-Builder im Vergleich
| Tool | DSGVO-Konformität | Server-Standort | AVV verfügbar |
|---|---|---|---|
| Contact Form 7 (WP) | Gut (Self-Hosted) | Eigener Server | Nicht nötig |
| WPForms (WP) | Gut bei Self-Hosted | Eigener Server / USA | Ja |
| Typeform | Eingeschränkt | USA / EU | Ja |
| Google Forms | Problematisch | USA | DPA vorhanden |
| Eigene Lösung | Optimal steuerbar | Eigener Server | Nicht nötig |
Empfehlung: Bevorzuge Self-Hosted-Lösungen, bei denen die Daten deinen Server nicht verlassen. Bei Cloud-Lösungen prüfe den Server-Standort und schließe einen AVV ab.
Technische Umsetzung: Code-Beispiel
Ein minimales, DSGVO-konformes HTML-Kontaktformular:
<form action="/kontakt" method="POST" novalidate>
<div>
<label for="name">Name</label>
<input type="text" id="name" name="name" required
autocomplete="name" />
</div>
<div>
<label for="email">E-Mail-Adresse</label>
<input type="email" id="email" name="email" required
autocomplete="email" />
</div>
<div>
<label for="telefon">Telefonnummer (optional)</label>
<input type="tel" id="telefon" name="telefon"
autocomplete="tel" />
</div>
<div>
<label for="nachricht">Nachricht</label>
<textarea id="nachricht" name="nachricht" rows="5" required></textarea>
</div>
<!-- Honeypot-Feld (Spam-Schutz) -->
<div style="position: absolute; left: -9999px;" aria-hidden="true">
<input type="text" name="fax" tabindex="-1" autocomplete="off" />
</div>
<!-- Datenschutz-Hinweis (keine Einwilligung!) -->
<p>
Hinweis: Informationen zur Verarbeitung deiner Daten findest du
in unserer <a href="/datenschutz" target="_blank">Datenschutzerklärung</a>.
Rechtsgrundlage ist Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse).
</p>
<button type="submit">Nachricht senden</button>
</form>
Beachte: method="POST" statt GET (GET-Parameter erscheinen in URL und Server-Logs), Labels mit for/id verknüpft, Honeypot statt reCAPTCHA, DSE-Hinweis statt Einwilligungs-Checkbox.
Praxis-Checkliste
- Rechtsgrundlage festgelegt (berechtigtes Interesse oder vorvertragliche Maßnahmen)
- Formular über HTTPS erreichbar und Submit über HTTPS
- Nur notwendige Pflichtfelder (Datensparsamkeit)
- DSE-Hinweis statt Einwilligungs-Checkbox
- Kein Google reCAPTCHA (oder nur mit Einwilligung) — Honeypot als Alternative
- Löschfrist definiert und technisch umgesetzt
- Autoresponder ohne Werbung
- E-Mail-Weiterleitung mit TLS-Verschlüsselung
- AVV mit externen Formular-Anbietern abgeschlossen (wenn zutreffend)
- Kontaktformular in der DSE dokumentiert (Zweck, Rechtsgrundlage, Speicherdauer)
- Formular-Labels korrekt verknüpft (Barrierefreiheit)
Kontaktformular automatisch prüfen
Der Compliso Scanner erkennt automatisch, ob dein Kontaktformular DSGVO-konform ist — darunter fehlende SSL-Verschlüsselung, Google reCAPTCHA ohne Consent, fehlende DSE-Verlinkung und Third-Party-Requests, die beim Absenden ausgelöst werden.
Erfahre mehr über den Compliso Scanner oder erstelle deine Datenschutzerklärung mit dem Content-Generator, um die Verarbeitung über das Kontaktformular korrekt zu dokumentieren. Oder teste den Demo-Scanner jetzt kostenlos und prüfe dein Formular in 30 Sekunden.
Deine Website DSGVO-konform machen?
Compliso prüft deine Website automatisch auf Cookies, Tracker, Dark Patterns und Accessibility-Probleme.