inqiro: Wie ich einen DSGVO-konformen KI-Chatbot für WordPress entwickelt habe
Von der Idee bis zur Veröffentlichung auf WordPress.org — ein Einblick in Architektur, Entwicklungsprozess und die Hürden des Plugin-Review-Prozesses.
Wer heute einen KI-Chatbot auf seiner WordPress-Website einbinden möchte, hat grundsätzlich zwei Möglichkeiten: Er nutzt einen externen Dienst wie Tidio, Intercom oder Chatbot.com — oder er findet etwas, das direkt in WordPress lebt, DSGVO-konform auf deutschen Servern läuft und die Inhalte seiner Website tatsächlich kennt. Die zweite Option gab es so nicht. Also habe ich sie gebaut.
Das Ergebnis heißt inqiro — ein KI-Chatbot-Plugin für WordPress, das seit März 2026 kostenlos im offiziellen WordPress.org-Verzeichnis verfügbar ist. In diesem Artikel beschreibe ich, wie das Plugin funktioniert, welche technischen Entscheidungen ich getroffen habe, warum WordPress.org mein Plugin dreimal abgelehnt hat — und was ich dabei gelernt habe.

Das Problem: Chatbots, die nichts wissen
Klassische Chatbot-Lösungen haben ein fundamentales Problem: Sie wissen nichts über die Website, auf der sie eingebunden sind. Sie beantworten generische Fragen, leiten den Besucher auf Kontaktformulare weiter oder geben Antworten, die nichts mit dem eigentlichen Angebot zu tun haben.
Der Grund ist technisch nachvollziehbar: Diese Dienste sind nicht mit den Inhalten der jeweiligen Website verbunden. Sie kennen keine Produkte, keine Preise, keine Öffnungszeiten, keine FAQs. Sie sind im Grunde genommen intelligente Weiterleitungsmaschinen.
Was ich gesucht habe, war etwas anderes: Ein Chatbot, der die Website liest, versteht und auf Basis dieser Inhalte antwortet — ohne manuelle Pflege, ohne Copy-Paste von FAQs, ohne externes Training.
Die Architektur: Wie inqiro funktioniert
Das Herzstück von inqiro ist ein dreistufiger Prozess: Crawlen, Verstehen, Antworten.
1. Content-Crawling
Nach der Installation scannt inqiro automatisch alle veröffentlichten Seiten, Beiträge und — sofern WooCommerce aktiv ist — auch Produkte. Der Crawler extrahiert den lesbaren Text, bereinigt ihn von HTML-Markup und teilt ihn in sogenannte Chunks auf: überschaubare Textabschnitte, die semantisch zusammengehören.
Dieser Prozess läuft in zwei Situationen automatisch: täglich über einen WordPress-Cron-Job und sofort, wenn ein Beitrag oder eine Seite veröffentlicht oder aktualisiert wird. Der Website-Betreiber muss nach der initialen Einrichtung nichts weiter tun.
2. Embeddings: Text wird zu Vektoren
Der zweite Schritt ist der entscheidende. Die gecrawlten Text-Chunks werden in sogenannte Embeddings umgewandelt — mathematische Vektoren, die die semantische Bedeutung eines Textes repräsentieren.
Was bedeutet das konkret? Zwei Texte, die inhaltlich ähnlich sind, erhalten ähnliche Vektoren — auch wenn sie nicht dieselben Wörter verwenden. Eine Frage wie „Wie viel kostet das?" und ein Produkttext mit „Preis: 49 Euro" werden als semantisch verwandt erkannt, obwohl sie keine gemeinsamen Wörter teilen.
Diese Vektoren werden in der WordPress-Datenbank gespeichert und ermöglichen eine blitzschnelle semantische Suche: Wenn ein Besucher eine Frage stellt, wird diese ebenfalls in einen Vektor umgewandelt und mit den gespeicherten Chunks verglichen. Die ähnlichsten Textabschnitte werden als Kontext an die KI übergeben.
3. Retrieval-Augmented Generation (RAG)
Das Verfahren dahinter heißt Retrieval-Augmented Generation, kurz RAG. Die KI erhält nicht einfach eine Frage — sie erhält die Frage zusammen mit den relevantesten Inhalten der Website als Kontext. Die Antwort basiert also auf echten Inhalten, nicht auf dem allgemeinen Weltwissen des Sprachmodells.
Das verhindert sogenannte Halluzinationen: Die KI erfindet keine Antworten, weil sie immer auf reale Textbausteine zurückgreift. Wenn eine Information nicht auf der Website vorhanden ist, sagt der Chatbot ehrlich, dass er es nicht weiß.

DSGVO-Konformität durch den deutschen Proxy-Server
Ein zentrales Designprinzip von inqiro ist der Datenschutz. Chat-Anfragen werden nicht direkt vom Browser des Besuchers an OpenAI oder Anthropic gesendet — sie laufen über einen zwischengeschalteten Lizenzserver, der in Deutschland gehostet wird.
Das hat mehrere Vorteile:
- Die IP-Adresse des Besuchers erreicht die US-amerikanischen KI-Anbieter nicht direkt
- Nutzungslimits werden zentral und fälschungssicher verwaltet
- Ein vollständiger Auftragsverarbeitungsvertrag (AVV) gemäß Art. 28 DSGVO gilt automatisch
- Der Datentransfer zu OpenAI und Anthropic ist über das EU-US Data Privacy Framework und Standardvertragsklauseln abgesichert
Chat-Daten selbst werden primär in der WordPress-Datenbank des jeweiligen Betreibers gespeichert — nicht auf meinen Servern. Diese Architektur unterscheidet inqiro grundlegend von US-amerikanischen Chatbot-Diensten, bei denen alle Gesprächsdaten auf fremden Servern landen.
Die technische Umsetzung
Das Plugin folgt dem WordPress-Coding-Standard und nutzt ausschließlich WordPress-native Funktionen: wpdb für Datenbankoperationen, wp_remote_post() für HTTP-Anfragen, wp_handle_upload() für Datei-Uploads. Auf externe PHP-Bibliotheken wurde bewusst verzichtet — keine Composer-Dependencies in der Produktionsversion.
Die Architektur ist in spezialisierte Klassen aufgeteilt:
INQIRO_Crawler— Content-Extraktion und ChunkingINQIRO_Embeddings— Vektorisierung und semantische SucheINQIRO_Chat— Anfrageverarbeitung und KI-RoutingINQIRO_Widget— Frontend-Widget-RenderingINQIRO_REST— REST-API-Endpunkte
JavaScript-Frontend ohne jQuery
Das Chat-Widget ist in Vanilla JavaScript geschrieben — keine jQuery-Abhängigkeit, kein Framework-Overhead. Das hält die Ladezeit minimal und verhindert Konflikte mit anderen Plugins oder Themes.
Das Widget unterstützt Streaming-Antworten: Die KI-Antwort erscheint Zeichen für Zeichen — ähnlich wie bei ChatGPT — anstatt als kompletter Block. Technisch geschieht das über Server-Sent Events (SSE) mit einem Character-Queue-System, das unabhängig von der Chunk-Größe der API-Antwort eine gleichmäßige Darstellung sicherstellt.
E2E-Testing mit Playwright
Das Plugin ist mit einer umfangreichen End-to-End-Test-Suite abgesichert, die über 350 Tests umfasst. Die Tests simulieren echte Browser-Interaktionen: Widget öffnen, Nachrichten senden, Bot-Antworten empfangen, Admin-Einstellungen ändern. Vor jedem Release läuft die komplette Suite durch — kein Commit ohne grünes Ergebnis.

Der WordPress.org Review-Prozess: Dreimal abgelehnt
Was ich unterschätzt hatte: Die Veröffentlichung im offiziellen WordPress.org-Plugin-Verzeichnis ist kein einfacher Upload-Prozess. Ein Team von Freiwilligen prüft jeden Plugin-Code manuell auf Einhaltung der Richtlinien. Mein Plugin wurde dreimal abgelehnt.
Runde 1: Automatischer Vorab-Check
Schon der erste automatische Scan scheiterte an einem Custom-Updater. WordPress.org-Plugins dürfen keinen eigenen Update-Mechanismus mitbringen — Updates laufen ausschließlich über das WordPress.org-SVN-Repository. Die Lösung war einfach: Die entsprechende Klasse wurde aus dem WordPress.org-Branch entfernt.
Runde 2: Manuelle Prüfung — die eigentliche Herausforderung
Die zweite Ablehnung traf härter. Die Reviewer hatten mehrere Probleme identifiziert:
Trialware-Verdacht: Das Plugin hatte im Admin-Bereich Einstellungsfelder, die für Free-Nutzer deaktiviert (ausgegraut) waren. WordPress.org verbietet das explizit — Guideline 5 besagt: Alle im Plugin enthaltenen Funktionen müssen vollständig nutzbar sein. Deaktivierte Features sind nicht erlaubt, auch wenn sie auf eine externe Bezahlversion hinweisen.
Meine Lösung: Statt das Plugin mit gesperrten Features vollzustopfen, habe ich für WordPress.org eine echte Lite-Version erstellt. Pro- und Business-spezifische Admin-Seiten wurden vollständig entfernt, nicht nur deaktiviert.
Inline-Scripts: Mehrere Templates enthielten <script>-Tags direkt im HTML. WordPress verlangt, dass JavaScript über wp_add_inline_script() eingebunden wird. Alle betroffenen Stellen wurden entsprechend umgeschrieben.
CDN-Abhängigkeit: Chart.js wurde von einem externen CDN geladen. WordPress.org verlangt, dass alle JavaScript-Bibliotheken lokal im Plugin gebündelt werden.
Kurze Präfixe: Alle Funktionen, Klassen und Optionen müssen eindeutige, mindestens vier Zeichen lange Präfixe haben. Mein ursprünglicher Präfix iq_ war zu kurz. Über 1.600 Vorkommnisse mussten auf inqiro_ umgeschrieben werden — inklusive einer Migrationsfunktion für bestehende Installationen.
ip-api.com ohne Opt-in: Das Plugin nutzte ip-api.com für Geo-Statistiken ohne explizite Nutzer-Einwilligung. WordPress.org wertet das als „Phoning Home". Die Funktion wurde hinter eine Opt-in-Einstellung gestellt, die standardmäßig deaktiviert ist.
Runde 3: Fast am Ziel
Die dritte Runde brachte noch zwei kleinere Probleme: move_uploaded_file() musste durch wp_handle_upload() ersetzt werden, und JS-Variablen mit zu kurzen Präfixen wurden beanstandet. Beide Punkte waren schnell behoben. Nach insgesamt rund sechs Wochen und drei Einreichungsrunden kam die Genehmigung.
Was ich aus dem Review-Prozess gelernt habe
Der WordPress.org Review-Prozess ist streng — und das ist gut so. Die Anforderungen existieren, weil schlechte Plugins echten Schaden anrichten können: Datenschutzverletzungen, Sicherheitslücken, irreführende Nutzerführung. Einige Lektionen für andere Plugin-Entwickler:
Trialware ist nicht erlaubt — aber Serviceware schon. Der entscheidende Unterschied: Wenn ein Feature lokal im Plugin-Code vorhanden ist, muss es vollständig nutzbar sein. Wenn ein Feature hingegen auf einem externen Server verarbeitet wird, darf es an eine Lizenz geknüpft sein. Das ist der Unterschied zwischen einem gesperrten Feature und einem Service.
Zwei getrennte Branches sind essenziell. main für die Vollversion, releases/wordpress_org für die Lite-Version. Ohne diese Trennung wird jeder Release zur Fehlerquelle.
Den Plugin Check Plugin nutzen. Das offizielle WordPress-Plugin-Check-Plugin identifiziert viele der häufigen Probleme bevor man einreicht. Es spart erheblich Zeit.
Präfixe von Anfang an richtig wählen. Nachträgliches Umbenennen von 1.600 Vorkommnissen ist mühsam. Mindestens vier Zeichen, eindeutig, konsequent.

Das Freemium-Modell: Was kostenlos ist, was nicht
inqiro ist auf WordPress.org als vollständig funktionsfähiges Free-Plugin verfügbar — kein Bait-and-Switch, keine deaktivierten Features. Die kostenlose Version enthält automatisches Content-Crawling, KI-Antworten basierend auf Website-Inhalten, ein anpassbares Chat-Widget, Gesprächsverlauf, DSGVO-Features und 50 Chats pro Monat.
Für professionelle Nutzung gibt es auf inqiro.de erweiterte Pläne:
- Pro (29 €/Monat): 5.000 Chats, Lead-Erfassung, proaktive Nachrichten, Branding entfernen, Flow Builder
- Business (79 €/Monat): 20.000 Chats, eigener API-Key, WooCommerce-Integration, Gesprächsübergabe an Agenten, Live-Chat-Inbox, Kalender-Integration
Für wen ist inqiro geeignet?
WordPress-Agenturen können inqiro als White-Label-Produkt für ihre Kunden einsetzen. Das Plugin lässt sich vollständig an das Corporate Design des jeweiligen Kunden anpassen — Farben, Bot-Name, Avatar, Begrüßungstext.
WooCommerce-Shops profitieren von der automatischen Produktkenntnis: Der Chatbot kann Produkte empfehlen, Preise nennen und Produkte direkt in den Warenkorb legen — ohne dass der Shopbetreiber die Produktdaten manuell einpflegen muss.
Arztpraxen und lokale Dienstleister schätzen besonders die DSGVO-Konformität und die Möglichkeit, häufige Patientenfragen automatisch zu beantworten — Öffnungszeiten, Leistungen, Anfahrt — ohne dass die Praxis dauerhaft erreichbar sein muss. Das Argument der deutschen Server und des automatisch geltenden AVV ist in diesem Segment besonders relevant.
Fazit
Der Weg von der ersten Zeile Code bis zur Veröffentlichung auf WordPress.org war länger und anspruchsvoller als erwartet — technisch, konzeptionell und im Hinblick auf die Einhaltung von Richtlinien. Das Ergebnis ist ein Plugin, das ich selbst täglich nutze und das echten Mehrwert für WordPress-Betreiber liefert.
Wenn Sie einen KI-Chatbot suchen, der Ihre Website tatsächlich kennt, DSGVO-konform auf deutschen Servern läuft und sich nahtlos in WordPress integriert — dann ist inqiro vielleicht genau das Richtige.
inqiro für Ihre Website einrichten lassen?
Sie möchten inqiro professionell auf Ihrer Website einrichten lassen — mit Training auf Ihre Inhalte, individuellem Design und technischer Betreuung? Ich helfe Ihnen gerne weiter.