Was KI-Skripte auf unserer Website kaputt gemacht haben: 8 Defekte mit Zahlen

Was KI-Skripte auf unserer Website kaputt gemacht haben: 8 Defekte mit Zahlen

Zuletzt überprüft: 29. September 2026
12 Min. Lesezeit
Fallstudie
Technisches SEO
KI-Integration

Jeder der acht unten beschriebenen Defekte lief durch ein Skript oder einen Agenten, der seine Arbeit mit einer Erfolgsmeldung beendete. Keiner warf eine Exception. Alle gingen in Produktion, auf einer mehrsprachigen Website, die wir seit Jahren bauen und betreiben, und alle haben wir erst gefunden, als wir das Ergebnis mit etwas anderem verglichen als mit dem Bericht des Werkzeugs selbst.

Kurz gesagt: Zwischen August und September 2026 haben KI-Massenläufe 22 202 Absätze Fülltext auf unsere Website gebracht, eine Überschrift zerstört, 358 englische Sätze auf Seiten in fünf anderen Sprachen und 518 fehlerhafte deutsche Komposita hinterlassen. Agenten, die Städteseiten schrieben, fügten erfundene Case Studies und 30 Links zu Seiten hinzu, die es nicht gibt. Wir beschreiben den Mechanismus jedes Defekts und das Gate, das ihn heute abfängt.

Wir schreiben über unsere eigene Website, weil wir nur hier die vollständigen Daten haben: Commit, Dateianzahl, Zustand vorher und nachher. Search Engine Land hat diese Woche einen Text über zehn Wege veröffentlicht, auf denen Claude SEO entgleisen lassen kann, wenn niemand seine Arbeit prüft. Das hier ist die Version mit Belegen.

#Umfang und Kontext

wppoland.com läuft auf Astro und wird statisch in sechs Sprachen gebaut: Polnisch, Englisch, Deutsch, Norwegisch, Portugiesisch und Spanisch. Der letzte Produktions-Build vom 29. September 2026 erzeugte 13 733 Seiten. Die Inhalte entstehen und werden überarbeitet durch Coding-Agenten und durch Node-Skripte, die Tausende Dateien auf einmal durchlaufen. Wir haben über 70 Qualitäts-Gates in CI und lokal.

Trotzdem ist jeder der beschriebenen Defekte durch alle Gates gekommen. Der Grund ist jedes Mal derselbe, und wir kommen am Ende darauf zurück.

DefektWas in Produktion gingWie wir es gefunden habenGate heute
Auffüllen auf eine Wortzahl22 202 Absätze in 873 Dateien59 Kopien eines Absatzes auf einer Live-Seitecheck:no-batch-filler
Fülltext der Städteseiten7567 Blöcke in 2621 DateienNummerierte Überschriften “Ateny (1)” bis “Ateny (26)“dasselbe, auf Städte erweitert
Preis-Regex1 zerstörte ÜberschriftScanner für zusammengeklebte Wörtercheck:glued-words
Übersetzung nur der Konjunktionen358 englische Sätze in 104 DateienVergleich mit dem englischen GegenstückDetektor auf Basis der wpId
Begriffsersetzung ohne Komposita518 Komposita in 356 DateienManuelles Lesen der SeiteSuche nach der Klasse, nicht nach dem Literal
Erfundene Case Studies13 Seiten, 30 tote LinksReview der Agenten vor der VeröffentlichungValidierung interner Links
Deploy, der den alten Cache aufgewärmt hat5 von 6 Startseiten mit altem InhaltVergleich des Inhalts, nicht der HTTP-Codeszweiter Purge nach dem Smoke-Test
Vertiefung, die Inhalte ersetzt hat142 bis 206 Elemente pro CommitVergleich mit der vorherigen Dateiversioncheck:element-loss

#1. Auffüllen auf eine Wortzahl: 22 202 Absätze

Unsere redaktionellen Richtlinien sagen, dass ein Blogbeitrag etwa 2500 Wörter hat. Das war ein Hinweis für einen Menschen. Eine Serie von Batch-Skripten behandelte ihn als zu erfüllendes Ziel und füllte kürzere Texte mit generiertem Fülltext auf.

Das Ergebnis, gemessen beim Aufräumen am 29. August: 22 202 nummerierte Absätze der Art “Notatka wdrożeniowa 47” (Umsetzungsnotiz 47) in 873 Dateien, bis zu 60 identische Kopien in einem Beitrag, dazu 4 144 Vorlagenabschnitte, rotiert aus einem Pool von fünf pro Sprache. Zwei dieser Abschnitte waren interne redaktionelle Anweisungen, veröffentlicht als Artikeltext. Auf der Live-Seite zu WordPress-Sicherheitsupdates stand derselbe Absatz 59 Mal.

Das Skript hatte keinen Fehler. Es tat genau das, worum man es gebeten hatte: die Wortzahl erhöhen. Der Fehler lag darin, dass die Wortzahl, eine Hilfsgröße, zum Ziel erklärt wurde.

Gate heute: check:no-batch-filler in jedem Lauf von npm run check. Die erste Version suchte nach den Literalen des Generators und ließ Fülltext durch, der mit anderem Wortlaut zurückkam. Die aktuelle Version schaut auf die Form: dieselbe Überschrift zweiter Ebene dreimal in einer Datei ist ein Fehler, unabhängig vom Wortlaut.

#2. Städteseiten: derselbe Fülltext, ein anderes Verzeichnis

Die Sammlung der Städteseiten wurde wochenlang von jedem Gate übergangen, weil keines sie scannte. Die Durchläufe 11 bis 14 füllten diese Seiten auf 2200 und dann auf 2500 Wörter auf. Beim Aufräumen am 30. August haben wir 7567 nummerierte Blöcke und rund 21 000 wiederholte Abschnitte aus 2621 Dateien entfernt. Die Seite /pl/woocommerce-programista-ateny/ zeigte Abschnitte von “Ateny (1)” bis “Ateny (26)”.

Schlimmer noch: Einer der Durchläufe hängte an jede Sprache außer Norwegisch Blöcke auf Spanisch an. Polnische, deutsche und portugiesische Städteseiten hatten Abschnitte mit dem Titel “Entrega y seguimiento”.

Die zweite Lektion kam beim Entfernen. Die erste Version des Aufräumskripts verglich ganze Literale und meldete Erfolg, ließ aber 9642 Abschnitte stehen, weil spätere Reparaturskripte diesen Fülltext an Ort und Stelle korrigiert hatten (zum Beispiel die spanische Genusform in 1506 Dateien). Ein exakter Bytevergleich sah keinen einzigen Block, den ein Reparaturskript angefasst hatte. Heute gleichen wir die Überschrift plus die ersten vier Wörter ab.

Nach dem Entfernen des Fülltexts fielen 724 Seiten unter die Schwelle von 2000 Wörtern. Wir haben sie in der Google Search Console geprüft, bevor wir irgendetwas entschieden: Nur 2 hatten in 90 Tagen überhaupt einen Klick, 575 hatten null Impressionen. 723 haben wir auf noindex gesetzt, statt sie wieder aufzufüllen.

#3. Der Preis-Regex, der eine Überschrift gefressen hat

Dienstleistungsseiten nennen außerhalb der Preisseite keine Preise, also ersetzte ein Skript Beträge in Złoty durch “wycena indywidualna” (individuelles Angebot). Der Regex erkannte “zł”, das Symbol der polnischen Währung, ohne Unterscheidung von Groß- und Kleinschreibung und ohne Wortgrenze danach.

Auf der polnischen Seite zum Sicherheitsaudit sah die Überschrift “2. Złośliwe przekierowania” (2. Bösartige Weiterleitungen) für diesen Regex wie der Preis “2. Zł” aus. In Produktion stand dort “wycena indywidualna ośliwe przekierowania” (individuelles Angebot, gefolgt vom Wortrest “ośliwe przekierowania”). Derselbe Regex steckte in einem zweiten Skript, für Preise auf Städteseiten.

Wir haben das zufällig gefunden, beim Bau eines Scanners für Überschriften mit zusammengeklebten Wörtern, der bei derselben Gelegenheit 13 Überschriften ohne Leerzeichen vor einer Präposition entdeckte (“Is AMP deadin 2026?”). Die Korrektur ist ein negativer Lookahead in beiden Skripten. Im gesamten Korpus fiel nur eine Überschrift zum Opfer, aber es war die Überschrift einer Verkaufsseite.

#4. Eine Übersetzung, die nur Konjunktionen ersetzte

Das Faktenfeld (llmCard) wird sichtbar unter den Artikeln angezeigt und fließt in die Daten für Sprachmodelle ein. Auf Seiten in fünf Sprachen außer Englisch waren 358 solcher Sätze auf Englisch, in 104 Dateien. Ein Teil war halb übersetzt: Ein altes Skript hatte nur die Konjunktion ersetzt, also schrieb eine deutsche Portfolio-Seite “Contact und inquiry forms” und eine polnische “granite, conglomerate, i marble countertops”.

Am interessantesten war die Erkennung. Der erste Detektor, der auf dem Anteil englischer Funktionswörter beruhte, fand 172 Sätze. Die Übersetzungsagenten meldeten selbst, dass in denselben Dateien weitere englische Sätze übrig geblieben waren, und sie hatten recht. Ein zweiter Durchlauf verglich jeden Satz mit den Fakten des englischen Gegenstücks derselben Seite (dieselbe wpId). Ohne zusätzlichen Filter lieferte er 4004 Treffer, vor allem Technologielisten auf Städteseiten und das norwegische “for”. Mit der Bedingung von mindestens zwei englischen Funktionswörtern blieben 170 echte übrig. Die letzten 12 haben wir von Hand korrigiert.

Jede der fünf Übersetzungen haben wir per Skript geprüft, nicht anhand des Agentenberichts: In jeder Datei haben sich nur die angegebenen Positionen geändert, jede Zahl ist erhalten geblieben, es gibt keine langen Gedankenstriche.

#5. Eine Begriffsersetzung, die keine Komposita kannte

Ein Durchlauf zur Vereinheitlichung des Vokabulars ersetzte einen deutschen Begriff durch “laufende Betreuung”. Komposita behandelte er nicht, also schrieben die Seiten “laufende Betreuung-Commitments”, “laufende Betreuung-Übergabe” und “Wartungs-laufende Betreuung”. Das ist kein Deutsch. Insgesamt 518 Vorkommen in 356 Dateien, alle auf indexierten Seiten.

Der Eintrag in unserem Backlog hatte einen Prüfbefehl, der nur nach der Form mit Bindestrich nach dem Begriff suchte. Hätten wir genau das korrigiert, was er anzeigte, wäre er grün geworden, und 157 Komposita in der zweiten Form in 118 Dateien wären stehen geblieben. Also haben wir nach der Klasse des Defekts gesucht (jeder Bindestrich, der an den Begriff grenzt), nicht nach dem Literal, das jemand in die Aufgabe geschrieben hatte.

Die Reparaturmethode war einfach: 497 der 518 Vorkommen stammten aus vier Vorlagensätzen. Jeden davon haben wir einmal von Hand in korrektes Deutsch umgeschrieben (“Übergabe in die laufende Betreuung”, “Wartungsbetreuung”) und als exakten Satz ersetzt. Die übrigen 21 haben wir einzeln korrigiert.

#6. Agenten, die Referenzen erfinden

Dreizehn kuratierte Städteseiten wurden von Agenten geschrieben. Das Review vor der Veröffentlichung am 26. August fand darin Abschnitte wie “Case Study 1: Dystrybutor B2B z Bielan Wrocławskich” (ein B2B-Distributor aus Bielany Wrocławskie) mit präzisen Zahlen: +52 % Anfragen, LCP von 4,5 s auf 0,7 s, 100/100 in PageSpeed. Keinen dieser Kunden gibt es. Dieselben Zahlen steckten auch im Faktenfeld und in den Speakable-Daten, nicht nur im Text.

Dazu verlinkten die Abschnitte “Weitere Standorte” auf Städte, die geografisch geraten waren: Lübeck, Kiel, Regensburg, Girona, Tromsø. 30 tote Links in 8 Dateien.

Das fängt kein textbasiertes Gate ab, denn eine erfundene Case Study ist syntaktisch korrekt. Abgefangen wird es durch eine Prozessregel: Der Agent bekommt im Auftrag eine Liste der existierenden Adressen, und jede zahlenmäßige Behauptung über einen Kunden braucht eine Quelle im Repository, sonst fliegt sie raus.

#7. Deploy erfolgreich, Produktion mit altem Inhalt

Das Deploy-Skript lief am 8. September sauber durch: Upload, Cache-Purge, Smoke-Test 81/81 OK, Exit-Code 0. Auf der Live-Website zeigten fünf von sechs Startseiten die alten Kacheln.

Die Reihenfolge war: Upload, Purge, 8 Sekunden Pause, Smoke-Test. Cloudflare Pages hatte das neue Deployment noch nicht aktiviert, also trafen die 81 Anfragen des Tests den vorherigen Build und füllten den Cache damit für eine Stunde. Der Prüfschritt machte den Purge zunichte, der kurz zuvor ausgeführt worden war. Kein Signal war falsch. Keines maß das, was schiefging: Der Test prüfte HTTP-Codes, nicht den Inhalt.

Heute: Das Skript leert den Cache ein zweites Mal, nach dem Test, und wir bestätigen das Deployment mit einer Formulierung aus der konkreten Änderung auf der Live-Seite, mit einem Parameter, der den Cache umgeht.

#8. Vertiefung, die Inhalte ersetzt hat

Die Durchläufe zum “Vertiefen” kurzer Beiträge sollten Inhalt ergänzen. In der Praxis ersetzte ein Teil von ihnen den gesamten Artikeltext. Neun Beiträge haben wir aus der Git-Historie wiederhergestellt.

Danach haben wir ein Gate gebaut, das jede geänderte Datei mit ihrer Basisversion vergleicht und den Verlust eines Elements meldet: Tabelle, Komponente, iframe, Bild, Codeblock, FAQ-Frage, howTo-Schritt, interner Link. Rückwirkend über die letzten 60 Commits mit Inhalt laufen gelassen, markierte es jeden Vertiefungsdurchlauf von 128 bis 185, von denen jeder 142 bis 206 Elemente verlor, darunter Tabellen, eingebettete Videos und Codeblöcke.

Die erste Version dieses Gates erkannte Überschriften am Text. Auf dem aktuellen Branch meldete sie 17 verlorene Überschriften, und alle 17 waren Reparaturen: getrennte zusammengeklebte Wörter, eine wiederhergestellte zerfressene Überschrift. Eine Umbenennung ist kein Verlust. Überschriften, Links und FAQ zählen wir daher mengenmäßig, und die Identität prüfen wir nur noch bei Bildern, Komponenten und iframes.

#Der gemeinsame Mechanismus: Erfolg aus Sicht des Werkzeugs

Alle acht Fälle haben dieselbe Form. Das Werkzeug maß, was es selbst getan hatte, und meldete auf dieser Grundlage Erfolg. Das Auffüllskript maß die Wortzahl. Das Aufräumskript maß, ob es seine Literale gefunden hatte. Die Prüfung aus dem Backlog maß eine Form des Kompositums. Der Smoke-Test maß HTTP-Codes.

Jeden Defekt haben wir erst gefunden, als wir das Ergebnis mit etwas Externem verglichen haben:

  • mit der vorherigen Version derselben Datei (verlorene Tabellen und Abschnitte),
  • mit dem Gegenstück in einer anderen Sprache (englische Sätze auf deutschen Seiten),
  • mit der Live-Seite statt mit dem Deploy-Log (alter Cache),
  • mit der Klasse des Defekts statt mit dem Literal aus der Aufgabe (die zweite Form der Komposita),
  • mit Nachfragedaten (723 Städteseiten ohne eine einzige Impression).

Daraus ergibt sich eine praktische Regel, die wir seit September anwenden: Der Bericht eines Agenten oder Skripts ist eine Hypothese. Das Ergebnis prüft ein separates Skript, das nicht weiß, was das Werkzeug vorhatte, und den Zustand vorher mit dem Zustand nachher vergleicht.

#Was ich vor dem ersten Massenlauf ändern würde

  1. Kein Zahlenziel für ein Skript, das Prosa schreibt. Wortzahl, Linkanzahl und FAQ-Anzahl sind Messgrößen zum Ablesen, nicht zum Erfüllen.
  2. Ein Gate, das mit der vorherigen Dateiversion vergleicht, vor dem ersten Batch-Commit, nicht nach dem dreißigsten.
  3. Jeder Regex auf Text wird an Überschriften und an Wörtern mit polnischen Sonderzeichen getestet, denn “Zł” ist der Anfang vieler polnischer Wörter.
  4. Übersetzungen werden durch den Vergleich mit dem Gegenstück in der Ausgangssprache geprüft, nicht mit einer Wortliste.
  5. Der Prüfbefehl einer Aufgabe sucht nach der Klasse des Defekts. Wenn die Aufgabe ein Beispiel nennt, suchen Sie auch nach dessen Varianten.
  6. Ein Deployment wird durch Inhalt auf der Live-Seite bestätigt, in jeder Sprache.

#Was dieser Text nicht beweist

Wir behaupten nicht, dass uns diese Defekte Traffic gekostet haben, denn das haben wir nicht auf eine Weise gemessen, die es entscheiden würde. Ein Teil der Seiten mit Fülltext hatte auch vorher keine Impressionen.

Das Spam-Update von Google im September begann am 25. September 2026 und soll etwa zwei Wochen dauern. Laut der Zusammenfassung von Search Engine Roundtable vom 28. September traf es programmatische Seiten und KI-generierte Inhalte, und Google veröffentlichte in derselben Woche eine Arbeit über das System SAFE zur Erkennung von massenhaftem “AI slop”. Unsere Städteseiten sind genau diese Kategorie. Die Auswertung in der Search Console, getrennt für Städteseiten, Blog und Dienstleistungsseiten, machen wir nach dem Ende des Updates und beschreiben sie, unabhängig vom Ergebnis.

Eine letzte Anmerkung betrifft uns selbst: Auch dieser Text ist mithilfe eines Agenten entstanden. Jede Zahl darin stammt aus einem Commit oder aus einer Messung in unserem Repository und ist durch dieselben Gates gelaufen, die wir hier beschreiben.

Nächster Schritt

Machen Sie aus dem Artikel eine echte Umsetzung

Dieser Block stärkt die interne Verlinkung und führt Nutzer gezielt zum nächsten sinnvollen Schritt im Service- und Content-System.

Soll das Thema auf Ihrer Website umgesetzt werden?

Wenn Sichtbarkeit in Google und KI-Systemen wichtig ist, baue ich die passende Content-Architektur, FAQ, Schema-Daten und interne Verlinkung auf.

Relevanter Cluster

Weitere WordPress-Dienste und Wissensbasis entdecken

Stärken Sie Ihr Unternehmen mit professionellem technischen Support in den Kernbereichen des WordPress-Ökosystems.

Kann KI das SEO einer Website beschädigen, wenn jeder Schritt erfolgreich endet?#
Ja, und bei uns war es genau so. Ein Skript, das Texte auf eine Wortzahl auffüllte, ein Skript, das Preise entfernte, und ein Übersetzungsagent beendeten ihre Arbeit ohne Fehler, und in Produktion landeten 22 202 Absätze Fülltext, eine zerstörte Überschrift und 358 englische Sätze auf Seiten in anderen Sprachen. Ein Werkzeug meldet Erfolg aus seiner eigenen Sicht, nicht aus der Sicht der Seite.
Wie findet man englischen Text, der auf übersetzten Seiten stehen geblieben ist?#
Eine Wortliste reicht nur für einen Teil. Unser erster Detektor, der auf dem Anteil englischer Funktionswörter beruhte, fand 172 von 358 Sätzen. Den Rest fanden wir, indem wir jeden Satz mit dem englischen Gegenstück derselben Seite (dieselbe wpId) verglichen und mindestens zwei englische Funktionswörter verlangten, denn die Ähnlichkeit allein erfasste auch Listen mit Technologienamen.
Welches Gate erkennt Inhalte, die ein Skript stillschweigend entfernt hat?#
Der Vergleich einer Datei mit ihrer vorherigen Version. Unser Gate check:element-loss zählt Tabellen, Komponenten, iframes, Bilder, Codeblöcke, FAQ-Fragen und howTo-Schritte in der Basisversion und in der neuen Version und meldet jeden Rückgang. Rückwirkend über 60 Commits laufen gelassen, markierte es jeden Vertiefungsdurchlauf, der pro Commit 142 bis 206 Elemente verlor.
Lassen sich massenhaft generierte Städteseiten im Index halten?#
Nur diejenigen, die eigenen Inhalt und einen Nachweis von Nachfrage haben. Nach dem Entfernen des Fülltexts fielen 724 Städteseiten unter unsere Schwelle von 2000 Wörtern. Davon hatten nur 2 in 90 Tagen überhaupt einen Klick und 575 null Impressionen, also haben wir 723 auf noindex gesetzt, statt sie wieder aufzufüllen.

Sie brauchen ein FAQ für Branche und Zielmarkt? Wir erstellen eine Version passend zu Ihren Business-Zielen.

Kontakt aufnehmen

Ähnliche Artikel

AI-Slop-Inhaltsbereinigung

Eine YMYL-Diagnose für WordPress-Seiten: wie Sie gefälschte Statistiken, erfundene Zitate, doppelte KI-Seiten, falsche Daten und erfundene Team-Biografien finden, bevor sie Vertrauen, Compliance oder KI-Zitate beschädigen.

Generative AI in der Search Console

Der neue Bereich Generative AI in der Google Search Console meldet Impressionen aus AI Overviews und AI Mode. Was er misst, was er weglässt und wie Sie die Daten lesen, ohne falsche Schlüsse zu ziehen.