Thin Content Detector — Dokumentation
Automatische Erkennung von Thin Content, Duplikaten und Boilerplate in Ihrem PrestaShop-Katalog mit KI-gestützten Anreicherungsvorschlägen. Installation, Schwellenkonfiguration, KI-Anbieter, Cron-Scan und Fehlerbehebung.
DataFirefly Thin Content Detector scannt automatisch Ihre Produkte, Kategorien und CMS-Seiten in allen aktiven Sprachen Ihres Shops. Es erkennt drei SEO-toxische Muster — zu dünner Inhalt, duplizierte Beschreibungen und von Boilerplate dominierte Seiten — und generiert KI-Anreicherungsvorschläge, die zum Einfügen bereit sind. Diese Anleitung deckt Installation, Konfiguration, tägliche Nutzung, Cron-Planung und Fehlerbehebung ab.
Überblick
Seit dem Helpful Content Update stuft Google aktiv Seiten ab, deren Inhalt zu kurz, zu ähnlich zu anderen Seiten oder zu sehr von wiederholten Elementen dominiert ist. In einem E-Commerce-Katalog sind das typischerweise vom Lieferanten kopierte Produktbeschreibungen, Kategorien mit zwei generischen Sätzen oder Varianten, die 95 % ihrer Beschreibung teilen. Für das bloße Auge unsichtbar bei 500 Produkten — aber kumuliert ist es das, was Ihre Website am Ranking hindert.
Die drei Erkennungstypen
- Thin Content — Seiten unterhalb der konfigurierbaren Wortzahl-Schwelle. Drei Schweregrade je nach Abstand zur Schwelle (kritisch < 25 %, Warnung 25–75 %, Hinweis 75–100 %).
- Duplikate — Zwei-Pass-Erkennung: SHA1-Hash für exakte Duplikate (Schweregrad 3), dann Jaccard-Ähnlichkeit ≥ konfigurierbare Schwelle für Quasi-Duplikate (Schweregrad 2).
- Template-/Inhalt-Verhältnis — identifiziert mit Geschwisterseiten geteilte Tokens (gleiche übergeordnete Kategorie) und berechnet den Prozentsatz eindeutiger Tokens pro Seite. Eine Seite mit 200 Wörtern, aber 90 % Boilerplate ist genauso toxisch wie eine Seite mit 30 Wörtern.
Installation
- Laden Sie das Modul-ZIP über Module > Modul-Manager > Modul hochladen hoch.
- Klicken Sie auf Installieren. Das Modul erstellt zwei Tabellen (
ps_dfthincontent_issueundps_dfthincontent_scan) und einen Admin-Tab unter Katalog. - Greifen Sie über Katalog > Thin Content (DataFirefly) auf das Modul zu.
id_shop). Keine Composer-Abhängigkeit erforderlich.
Konfiguration
Klicken Sie auf die Schaltfläche Konfiguration in der Modul-Werkzeugleiste. Drei Bereiche sind verfügbar.
Erkennungsschwellen
- Mindestwortzahl Produkt — Standard 150. Jedes Produkt, dessen lange + kurze Beschreibung zusammen weniger als 150 Wörter enthält, wird markiert.
- Mindestwortzahl Kategorie — Standard 100.
- Mindestwortzahl CMS-Seite — Standard 250.
- Jaccard-Ähnlichkeitsschwelle — Standard 85 %. Darüber gelten zwei Seiten als Quasi-Duplikate.
- Mindest-Template-Verhältnis — Standard 30 %. Darunter gilt die Seite als zu stark von Boilerplate dominiert.
Scan-Ziele
- Produkte scannen (standardmäßig EIN).
- Kategorien scannen (standardmäßig EIN).
- CMS-Seiten scannen (standardmäßig EIN).
- Automatischer Re-Scan beim Speichern (standardmäßig AUS). Wenn aktiviert, löst jedes Speichern eines Produkts, einer Kategorie oder einer CMS-Seite einen gezielten Re-Test nur dieses Objekts aus. Sie sehen in Echtzeit, ob Ihre Umschreibung die Schwellen überschreitet.
KI-Konfiguration
Anreicherungsvorschläge nutzen einen OpenAI-kompatiblen Endpunkt (Chat Completions). Dies umfasst eine breite Palette von Anbietern:
- OpenAI — Endpunkt
https://api.openai.com/v1/chat/completions, empfohlenes Modellgpt-4o-mini(≈ 0,001 € pro Vorschlag). - Mistral AI — Endpunkt
https://api.mistral.ai/v1/chat/completions, Modellmistral-small-latest. - Groq — Endpunkt
https://api.groq.com/openai/v1/chat/completions, Modellllama-3.3-70b-versatile. Sehr schnell. - Ollama lokal — Endpunkt
http://localhost:11434/v1/chat/completions, jedes heruntergeladene Modell. Null Kosten. - Anthropic über einen OpenAI-kompatiblen Proxy.
Auszufüllende Parameter:
- Endpunkt — vollständige URL zu
/v1/chat/completions. - Modell — Modellkennung beim Anbieter.
- API-Schlüssel — Bearer-Token. Verschlüsselt im PrestaShop-Konfigurationssystem gespeichert.
- Max. Tokens — Standard 600. Ausreichend für einen standardmäßigen Anreicherungsvorschlag.
Nutzung — Dashboard
Das Dashboard ist die Startseite des Moduls. Es zeigt:
- Drei Hauptzähler — Gesamtzahl offener, behobener und ignorierter Probleme.
- Aufschlüsselung nach Problemtyp — thin / duplicate / template.
- Aufschlüsselung nach Objekttyp — Produkt / Kategorie / CMS-Seite.
- Aktuelle Schwellen — Erinnerung an die konfigurierten Werte.
- Letzte 5 Scans — Datum, Dauer, Anzahl der analysierten Objekte.
- Schaltfläche „Vollständigen Scan starten“ — löst einen synchronen AJAX-Scan aus. Ein Modal zeigt den Fortschritt und die Zusammenfassung am Ende.
Einen Scan starten
Klicken Sie auf Vollständigen Scan starten. Der Scan durchläuft alle aktiven Sprachen, wendet die drei Analysatoren auf aktivierte Ziele an, persistiert erkannte Probleme in ps_dfthincontent_issue und markiert als fixed die Probleme, die nicht mehr erkannt werden (z. B. wenn Sie seit dem letzten Scan eine Seite angereichert haben).
set_time_limit(0) und memory_limit 512M auf.
Nutzung — Problemliste
Erreichbar über Probleme ansehen in der Werkzeugleiste. Paginierte Anzeige (50 pro Seite) mit erweiterten Filtern:
- Status — offen / behoben / ignoriert.
- Problemtyp — thin / duplicate / template.
- Objekttyp — Produkt / Kategorie / CMS.
- Sprache — Filter auf eine der aktiven Sprachen.
- Freitextsuche — auf den Objektnamen.
Jede Zeile zeigt den Schweregrad (roter / oranger / blauer Punkt), den Problemtyp, den Objekttyp mit Symbol, den Namen, die Sprache, die Wortzahl, die relevante Metrik (% Ähnlichkeit oder % Einzigartigkeit) und drei Aktionsschaltflächen:
- KI-Vorschlag — öffnet ein Modal mit einem auf Anforderung generierten HTML-Anreicherungsvorschlag (siehe nächster Abschnitt).
- Als behoben markieren — versetzt das Problem in den Status
fixed. Es bleibt im Verlauf, verschmutzt aber nicht mehr die Zähler. - Ignorieren — versetzt das Problem in den Status
ignored. Nützlich für absichtlich kurze Seiten (z. B. eine legitim kurze „Kontakt“-CMS-Seite).
CSV-Export
Die Schaltfläche CSV exportieren lädt alle Probleme des aktuellen Filters herunter. Der Export wird in Streams ausgegeben (Chunks von 500 Zeilen), um große Kataloge ohne Speichersättigung zu verarbeiten. UTF-8-Kodierung mit BOM zum direkten Öffnen in Excel. Semikolon als Trennzeichen.
KI-Vorschläge
Klicken Sie auf die Schaltfläche KI in einer beliebigen Zeile. Das Modul sendet eine Anfrage an den konfigurierten Endpunkt mit einem dynamisch aus dem Problemtyp und Objekttyp erstellten Prompt:
- Thin Produkt — anreichern mit USP, Materialien, Verwendung, Herkunft, Garantien.
- Thin Kategorie — anreichern mit Sortiments-USP, Kaufberatung, Unterkategorie-Vergleich.
- Thin CMS — redaktionelle Entwicklung, Kontextualisierung, Beispiele.
- Duplikat — die Seite differenzieren, indem man sich auf das konzentriert, was sie im Vergleich zu ihren Duplikaten einzigartig macht.
- Template — Boilerplate entfernen, einzigartige Elemente für diese spezifische Seite hinzufügen.
Die Systemnachricht erzwingt einen Rückgabewert in sauberem HTML: nur die Tags p, ul, li, h3. Kein Markdown, keine Root-Tags. Sie können das Ergebnis direkt in das Beschreibungsfeld von TinyMCE einfügen, ohne es zu bereinigen.
Der Vorschlag wird in der Datenbank gespeichert. Wenn Sie das Modal später erneut öffnen, wird er sofort angezeigt, ohne dass ein neuer API-Aufruf erfolgt.
Cron — Geplante Scans
Das Modul stellt einen token-geschützten Cron-Endpunkt bereit, ideal für nächtliche Scans:
https://ihr-shop.com/modules/dfthincontent/cron.php?token=IHR_TOKEN
Das Token wird bei der Installation zufällig generiert und im Konfigurationsbereich angezeigt. Behandeln Sie es vertraulich — es gewährt Zugriff auf das Auslösen eines vollständigen Scans.
Crontab-Beispiel (täglicher Scan um 4 Uhr)
0 4 * * * curl -s "https://ihr-shop.com/modules/dfthincontent/cron.php?token=IHR_TOKEN" > /dev/null 2>&1
Eigenschaften des Cron-Scans
set_time_limit(0)— keine PHP-Zeitbegrenzung.memory_limit 512M— automatisch gesetzt.- JSON-Rückgabe mit der Anzahl analysierter Objekte, der Anzahl erkannter Probleme und der Gesamtdauer.
- Validierung mit
hash_equalszur Abwehr von Timing-Angriffen.
DFTHIN_CRON_TOKEN direkt in der Tabelle ps_configuration ändern.
Technische Architektur
Tabellenstruktur
ps_dfthincontent_issue— ein Datensatz pro erkanntem Problem. Eindeutiger Schlüssel:(id_object, object_type, id_lang, id_shop, issue_type). Wichtige Felder:severity(1-3),word_count,content_hash(SHA1),metric_value(% Ähnlichkeit oder Einzigartigkeit),metric_data(JSON mit Details),ai_suggestion,status,object_name,object_url.ps_dfthincontent_scan— Scan-Verlauf. Start- / Enddatum, Dauer, analysierte Elemente nach Typ, Status.
Verwendete Hooks
actionAdminControllerSetMedia— Laden von CSS / JS und Bereitstellung der AJAX-URL überMedia::addJsDef.actionProductUpdate— Re-Scan des modifizierten Produkts, wenn Auto-Rescan aktiviert ist.actionObjectCategoryUpdateAfter— dasselbe für Kategorien.actionObjectCmsUpdateAfter— dasselbe für CMS-Seiten.
Performance-Grenzen
Die Duplikaterkennung ist intrinsisch O(n²) — jede Seite wird mit allen anderen Seiten desselben Typs / derselben Sprache / desselben Shops verglichen. Um eine Explosion bei sehr großen Katalogen zu vermeiden, wendet das Modul zwei Schutzmechanismen an:
- Sicherheitsobergrenze bei 1 500 Elementen pro Gruppe (Typ + Sprache + Shop). Darüber hinaus wird die Duplikaterkennung für diese Gruppe deaktiviert — eine Warnung wird protokolliert.
- Vorfilterung nach Wortzahl — die Jaccard-Ähnlichkeit wird nur zwischen Elementen berechnet, deren Wortzahl in einem Fenster von ±50 % liegt. Dies eliminiert die überwiegende Mehrheit nutzloser Vergleiche.
Fehlerbehebung
Der Scan startet nicht
- Öffnen Sie die Netzwerkkonsole des Browsers, klicken Sie auf Vollständigen Scan starten, schauen Sie sich die AJAX-Anfrage zu
action=scanFullan. - Wenn die Antwort HTML statt JSON ist, handelt es sich um einen serverseitigen PHP-Fatal — prüfen Sie die PrestaShop- (
var/logs/) und PHP-Logs. - Wenn die Antwort 404 ist, überprüfen Sie, ob der Controller
AdminDfThinContentkorrekt registriert ist (Tabelleps_tab). - Wenn die Antwort 403 ist, ist das CSRF-Token abgelaufen — laden Sie die Seite neu und versuchen Sie es erneut.
KI-Vorschläge geben einen Fehler zurück
- Überprüfen Sie, dass der API-Schlüssel korrekt und beim Anbieter aktiv ist.
- Überprüfen Sie, dass der Server die Endpunkt-URL erreichen kann (ausgehende Firewall, DNS).
- Bei lokalem Ollama: prüfen Sie, dass der Dienst läuft (
ollama serve) und das Modell heruntergeladen ist (ollama pull llama3.3). - Konsultieren Sie die PrestaShop-Logs — das Modul protokolliert dort cURL-Fehler und nicht-200-HTTP-Codes.
Der Cron gibt 401 oder 403 zurück
Das übermittelte Token stimmt nicht überein. Holen Sie sich das korrekte Token aus dem Konfigurationsbereich und ersetzen Sie es in Ihrer Crontab. Kein Leerzeichen, kein Zeilenumbruch im Wert.
Legitime Duplikate werden markiert
Dies ist der typische Fall sehr ähnlicher Varianten (Größen desselben Modells, Farben). Drei Optionen:
- Die Probleme einzeln als ignoriert markieren.
- Die Jaccard-Ähnlichkeitsschwelle auf 95 % oder mehr anheben.
- Den Produkt-Scan deaktivieren und nur Kategorien + CMS behalten, wenn Ihr Anwendungsfall keinen Produkt-Scan erfordert.
Deinstallation
Deinstallieren Sie über Module > Modul-Manager > Deinstallieren. Das Modul entfernt sauber beide DB-Tabellen, den Admin-Tab und alle Konfigurationsschlüssel. Keine Rückstände.
Ressourcen
- Produktseite: datafirefly.com/de/produkt/dfthincontent/
- Support: support@datafirefly.com