# DataFirefly All in One SEO — Vollständige Dokumentation

> Vollständige Dokumentation des DataFirefly All in One SEO-Moduls für PrestaShop 8 und 9: Installation, Meta-Vorlagen, JSON-LD-Schemas, XML-Sitemap, Weiterleitungen, 404-Monitoring, robots.txt, GA4/GTM-Tracking, Content-Analyzer.

- Seite: <https://www.datafirefly.com/de/documentation/dfallinoneseo/>
- Sprache: de
- Aktualisiert am: 2026-08-05
- Weitere Sprachen: [fr](https://www.datafirefly.com/documentation/dfallinoneseo/index.md), [en](https://www.datafirefly.com/en/documentation/dfallinoneseo/index.md), [es](https://www.datafirefly.com/es/documentation/dfallinoneseo/index.md), [it](https://www.datafirefly.com/it/documentation/dfallinoneseo/index.md), [pl](https://www.datafirefly.com/pl/documentation/dfallinoneseo/index.md), [pt](https://www.datafirefly.com/pt/documentation/dfallinoneseo/index.md), [nl](https://www.datafirefly.com/nl/documentation/dfallinoneseo/index.md)
- Index: <https://www.datafirefly.com/de/documentation/llms.txt>

Premium All-in-One-SEO-Suite für PrestaShop 8 und 9: dynamische Meta-Vorlagen, vollständige JSON-LD-Schemas, mehrsprachige XML-Sitemap, Weiterleitungen, 404-Monitoring, Open Graph und Twitter Cards, GA4 und GTM, intelligente robots.txt mit KI-Crawler-Blockierung und Content-Analyzer — alles in einem einzigen Modul.

## Voraussetzungen

- **PrestaShop**: 8.0 bis 9.x
- **PHP**: 8.1 oder höher (8.2 und 8.3 empfohlen)
- **MySQL**: 5.7+ oder MariaDB 10.3+
- **productcomments-Modul** (offiziell PrestaShop): optional, nur für AggregateRating bei Produkten erforderlich
- **mod_rewrite** aktiviert auf Apache (oder Nginx-Äquivalent) für umgeschriebene URLs

Das Modul ist nativ multi-shop-bewusst: alle Tabellen sind nach `id_shop` gescoped. Sie können vollständig unterschiedliche Konfigurationen pro Shop haben.

## Installation

1. Laden Sie `dfallinoneseo-vX.Y.Z.zip` aus Ihrem DataFirefly-Kundenbereich herunter.
2. Melden Sie sich im PrestaShop-Back-Office an.
3. Gehen Sie zu **Module → Module Manager**.
4. Klicken Sie oben rechts auf **Modul hochladen**.
5. Ziehen Sie die ZIP-Datei per Drag-and-Drop oder klicken Sie auf **Datei auswählen**.
6. Die Installation erstellt automatisch die 11 SQL-Tabellen, registriert die Hooks und fügt das Menü **Verbessern → DataFirefly SEO** hinzu.

Öffnen Sie nach der Installation das **Dashboard** des Moduls für einen Überblick über den globalen SEO-Score und die prioritär zu behebenden Punkte.

## 10-Minuten-Erstkonfiguration

1. **Einstellungen → Allgemein**: aktivieren Sie das Modul, geben Sie den Site-Namen und das "Startseite"-Label für den Breadcrumb an.
2. **Meta & Vorlagen**: definieren Sie mindestens eine _Produkt_-Vorlage und eine _Kategorie_-Vorlage.
3. **Schema → Organisationsidentität**: füllen Sie Logo, Telefon, E-Mail, Adresse und Social-Media-URLs aus (`sameAs`).
4. **Sitemap**: aktivieren Sie die Sitemap und klicken Sie auf **Jetzt neu generieren**.
5. **Tracking**: fügen Sie Ihre GA4 Measurement ID und/oder GTM ID hinzu.
6. **Tracking → Verifizierungen**: fügen Sie den Google Search Console-Verifizierungswert ein.
7. **Robots.txt**: klicken Sie auf **Standards laden (PS + KI-Blockierung)**.

## Meta-Vorlagen

Das Modul ersetzt die manuelle Eingabe von `meta_title` und `meta_description` durch dynamische Vorlagen pro Entitätstyp. Beim Speichern eines Eintrags mit leeren Metas wird die entsprechende Vorlage automatisch angewendet.

### Unterstützte Entitätstypen

- **Produkt**: Produktseiten (alle Typen einschließlich virtuelle und Pakete)
- **Kategorie**: Kategorieseiten
- **CMS-Seite**: statische Inhaltsseiten
- **Marke / Hersteller**: Herstellerseiten
- **Lieferant**: Lieferantenseiten
- **Startseite**: Shop-Startseite
- **Generische Seiten**: `/contact`, `/sitemap`, etc.

### Verfügbare Tokens

- `{shop_name}` — Shop-Name
- `{sep}` — Trenner (Standard `|`)
- `{product_name}` — Produktname (aktuelle Sprache)
- `{product_reference}` — interne Referenz
- `{product_sku}` — Alias für Referenz
- `{product_ean13}` — EAN13-Barcode
- `{product_brand}`, `{brand}` — Hersteller/Marke
- `{category}` — Standardkategorie (Produkt) oder Kategoriename (Kategorieseite)
- `{category_parent}` — Elternkategoriename
- `{category_description}` — Kurzbeschreibung (max. 160 Zeichen)
- `{short_description}` — Produkt-Kurzbeschreibung (max. 160 Zeichen)
- `{price}` — Preis inkl. MwSt. formatiert mit Währung
- `{price_tax_excl}` — Preis exkl. MwSt. formatiert
- `{title}` — CMS-Seitentitel
- `{summary}` — CMS-Inhaltsauszug (max. 160 Zeichen)

### Bedingte Blöcke

Um ein leeres Token nicht zu rendern, verwenden Sie die bedingte Syntax:

```
{?product_brand}{product_brand} | {/?}{product_name} - {shop_name}
```

Wenn `product_brand` leer ist, wird der gesamte Block zwischen `{?token}` und `{/?}` entfernt.

### Empfohlene Vorlagenbeispiele

**Produkt**:

```
Title: {?product_brand}{product_brand} {/?}{product_name} - {category} | {shop_name}
Description: Entdecken Sie {product_name}{?product_brand} von {product_brand}{/?}. {short_description} Schneller Versand auf {shop_name}.
```

**Kategorie**:

```
Title: {category} - {?category_parent}{category_parent} - {/?}{shop_name}
Description: Alle Produkte der Kategorie {category} auf {shop_name}. {category_description}
```

**Startseite**:

```
Title: {shop_name} - Online-Shop
Description: Willkommen bei {shop_name}. Entdecken Sie unseren Katalog, schneller Versand, sichere Zahlung.
```

### Überschreibung pro Entität

Um eine bestimmte Seite zu überschreiben, klicken Sie auf das Symbol **Meta-Überschreibung** im Menü **Massenbearbeitung**. Die Überschreibungsseite ermöglicht das Setzen von `meta_title`, `meta_description`, der Robots-Direktive (z. B. `noindex,follow`) und eines benutzerdefinierten Canonicals pro Sprache.

Die auf einer bestimmten Entität definierte Robots-Direktive hat Vorrang vor globalen Indexierungseinstellungen.

## JSON-LD-Schemas

Das Modul generiert einen einzigen `@graph`-Block, der alle Schemas der aktuellen Seite zusammenfasst, validiert durch Google Rich Results Test.

### Automatisch generierte Schemas

- **Organization** — auf allen Seiten, Unternehmensidentität
- **WebSite** — auf der Startseite, mit `SearchAction` für Sitelinks-Suchbox
- **LocalBusiness** — wenn eine physische Adresse festgelegt ist
- **BreadcrumbList** — Breadcrumb
- **Product** — auf Produktseiten, mit `offers`, `priceValidUntil`, `gtin13`/`isbn`/`mpn`
- **AggregateRating** — aggregiert aus dem offiziellen productcomments-Modul
- **Article** — auf CMS-Seiten
- **FAQPage** — aus Produkt- oder Seiten-FAQ-Blöcken

### Organisationsidentität

Tab **Schema → Organisationsidentität**. Felder:

- **Typ**: Organization, Corporation, LocalBusiness, Store, OnlineStore, OnlineBusiness
- **Logo**: absolute URL (empfohlen 600x60 minimum)
- **Telefon**, **E-Mail**: verwendet in `contactPoint`
- **Postanschrift**: Straße, PLZ, Stadt, Land (ISO-2)
- **sameAs**: eine URL pro Zeile

### Gültigkeit von Produktangeboten

Das Feld _Gültigkeit von Produktangeboten (Tage)_ steuert den Wert von `priceValidUntil` in `Product.offers`. Standard: 60 Tage.

### Benutzerdefinierte Schemas

Tab **Schema → Benutzerdefinierte Schemas**. Geltungsbereiche: **global**, **home**, **product**, **product_id**, **category**, **category_id**, **cms**, **cms_id**.

Verfügbare Variablen: `{shop_name}`, `{base_url}`, `{entity_id}`, `{entity_type}`.

Benutzerdefiniertes JSON-LD wird unverändert in den `@graph` eingefügt. Validieren Sie es vor der Veröffentlichung mit dem [Rich Results Test](https://search.google.com/test/rich-results).

## XML-Sitemap

Das Modul generiert eine XML-Sitemap, die der [sitemaps.org-Spezifikation](https://www.sitemaps.org/protocol.html) entspricht, mit hreflang auf jeder URL und Bildunterstützung.

### Konfiguration

Tab **Sitemap**. Inhalte: Produkte, Kategorien, CMS-Seiten, Marken, Lieferanten, Bilder, Videos.

Zusätzliche Optionen:

- **Out-of-Stock ausschließen**: entfernt nicht vorrätige Produkte
- **Gzip**: generiert auch `.xml.gz`-Varianten
- **URLs pro Datei**: Chunk-Größe (empfohlen 5000-10000, max. 50000)

### Regenerierung

Manuell aus dem Admin. Zur Automatisierung Cronjob planen:

```
0 */6 * * * php /var/www/html/index.php fc=module&module=dfallinoneseo&controller=sitemap&action=rebuild
```

### Übermittlung an Suchmaschinen

Klicken Sie auf **Suchmaschinen pingen** für Google und Bing. Für Google Search Console übermitteln Sie die Sitemap-Index-URL einmal in GSC → Sitemaps.

Sitemap-Index-URL: `https://ihr-shop.com/sitemap.xml`

## Öffentliche HTML-Sitemap

Eine menschenlesbare HTML-Sitemap wird automatisch unter `/plan-du-site` generiert. Aggregiert Kategorien (Baum), CMS-Seiten, Marken, Lieferanten und die 200 neuesten Produkte.

## Weiterleitungen

Das Modul verwaltet HTTP-Weiterleitungen 301, 302, 307, 308 und 410 mit drei Match-Typen.

### Match-Typen

- **Exakt**: die Quell-URL muss exakt übereinstimmen
- **Präfix**: die Quell-URL ist ein Präfix der angeforderten URL. Nützlich für die Migration ganzer Verzeichnisse.
- **Regex**: PHP-regulärer Ausdruck. Capture-Gruppen über `$1`, `$2` verfügbar.

### Manuelle Erstellung

Tab **Weiterleitungen → Neue Weiterleitung**. Felder: Quell-URL, Ziel-URL (leer für 410), Match-Typ, HTTP-Code, Query-String beibehalten.

### CSV-Import / -Export

```
source,destination,type,code
/altes-produkt,/neues-produkt,exact,301
/altes-verzeichnis/,/neues-verzeichnis/,prefix,301
/old-(.*),/new-$1,regex,301
```

### Automatische Weiterleitung bei Slug-Änderung

Wenn **Einstellungen → Monitoring → Automatische 301-Weiterleitung bei URL-Änderung** aktiviert ist, erstellt das Modul automatisch eine 301 bei Slug-Änderung. Das `created_by` wird als `auto:urlchange` markiert.

Diese Option vermeidet die meisten klassischen SEO-404s bei Inhalts-Refactoring. Ab Installation aktivieren.

## 404-Monitoring

Tab **404 Monitor**. Erfasst alle 404-URLs mit Deduplizierung, Hit-Zählung, Bot-Erkennung und IP-Hashing (PrestaShops `COOKIE_KEY`-Salt für DSGVO-Konformität).

### Verfügbare Filter

- **Ungelöst**: URLs ohne abdeckende Weiterleitung (Standardansicht)
- **Gelöst**: URLs mit nachträglicher Weiterleitung
- **Bots**: Hits von Bot-User-Agents
- **Alle**

### Weiterleitung mit einem Klick erstellen

Die Schaltfläche **Weiterleiten** öffnet ein Inline-Formular mit vorausgefüllter Quelle. Die 404 wird automatisch als gelöst markiert.

### Purge und Wartung

Schwellenwert _Maximale Anzahl beibehaltener 404-Einträge_ (Standard 5000). Die Schaltfläche **Alte 404 purgen** entfernt die ältesten ungelösten Einträge.

## Dynamische robots.txt

Das Modul liefert eine `/robots.txt`, die bei jeder Anfrage dynamisch generiert wird.

### PrestaShop + KI-Blockierungs-Voreinstellungen

Die Schaltfläche **Standards laden (PS + KI-Blockierung)**:

- Blockiert sensible PrestaShop-Verzeichnisse (`/admin*/`, `/cache/`, `/classes/`, etc.)
- Blockiert technische Seiten (`/cart`, `/order`, `/my-account`, etc.)
- Blockiert KI-Crawler: **GPTBot**, **ClaudeBot**, **CCBot**, **Google-Extended**, **anthropic-ai**
- Verweist auf die Sitemap (`Sitemap: /sitemap.xml`)

### Benutzerdefinierte Regeln

Jede Regel hat einen User-Agent, eine Direktive (`Allow`, `Disallow`, `Crawl-delay`), einen Wert und eine Position. Aktivieren/deaktivieren über die ON/OFF-Pille.

### Live-Vorschau

Der Block **Vorschau der generierten Datei** rendert die robots.txt so, wie sie ausgeliefert wird.

## Native llms.txt-Datei

Das Modul liefert eine `/llms.txt`-Datei gemäß der [llmstxt.org-Spezifikation](https://llmstxt.org/). Listet in Markdown die Hauptabschnitte der Website für respektvolle KI-Crawler auf.

Keine Konfiguration erforderlich — automatisch aus Kategoriebaum, CMS-Seiten und Marken generiert.

## Open Graph und Twitter Cards

Tab **Social**. Das Modul injiziert `og:*`- und `twitter:*`-Tags auf allen Seiten.

### Einstellungen

- **Open Graph und Twitter Cards aktivieren**: Master-Switch
- **Automatisches og:locale**: aus Kontextsprache berechnet (z. B. `de_DE`)
- **Standard-OG-Bild**: absolute URL eines 1200×630-Bildes
- **og:site_name**, Standard-**og:type**
- **Twitter @handle** und Kartentyp (`summary` oder `summary_large_image`)
- **fb:app_id**: Facebook App ID

Für Produktseiten verwendet das Modul automatisch das Hauptbild der Seite.

## Tracking: GA4, GTM, Pixel

### GA4 und Enhanced Ecommerce

Feld **GA4 Measurement ID**: Format `G-XXXXXXXXXX`.

Aktivieren Sie **Enhanced Ecommerce** für Events `view_item`, `view_item_list`, `add_to_cart`, `remove_from_cart`, `begin_checkout`, `add_payment_info`, `purchase`.

Aktivieren Sie **Consent Mode v2 respektieren** für DSGVO-konformes Tracking.

### Google Tag Manager

Feld **GTM ID**: Format `GTM-XXXXXXX`. GTM-Snippet im `head`, `noscript`-Fallback nach `body`-Öffnung.

### Werbe-Pixel

- **Facebook Pixel ID**: 15 Ziffern
- **TikTok Pixel ID**: alphanumerisch

### Eigentums-Verifizierungen

- Google Search Console
- Bing Webmaster Tools
- Yandex Webmaster
- Pinterest
- Baidu

### Benutzerdefinierter Head- und Body-End-Code

- **Im Head injizierter Code**: für Drittanbieter-Skripte
- **Vor dem Body-Schließen injizierter Code**: für Chat-Widgets, Retargeting

Keine Validierung. Ein HTML-Syntaxfehler kann das Seitenrendering brechen. In Vorproduktion testen.

## Content-Analyzer

Tab **Analyzer**. Senden Sie Produkt, Kategorie, CMS-Seite oder rohes HTML an den Analyzer für einen globalen SEO-Score.

### Berechnete Metriken

- **Globaler SEO-Score** (0-100)
- **Flesch-Lesbarkeit**
- **Wortzahl**, **Satzzahl**
- **Keyword-Dichte** (in %)
- **Interne / externe / nofollow-Links**
- **Bilder ohne Alt-Attribut**
- **H1-bis-H6-Struktur**
- Keyword im **Slug** und **ersten Absatz**

### Checks

- Title-Länge (50-60 Zeichen)
- Meta-Description-Länge (140-160 Zeichen)
- Slug-Länge
- Body-Länge (mindestens 300 Wörter)
- Mindestens ein Bild mit Alt
- Keyword in Title, erstem Absatz, Slug
- Keyword-Dichte zwischen 0,5 % und 2,5 %
- Mindestens ein H1 und mehrere H2/H3

Ein Score von 80+ ist hervorragend. Unter 50 überarbeiten Sie Struktur und Wording.

## Massenbearbeitung

Tab **Massenbearbeitung**. Paginiertes Raster (30 Einträge/Seite) mit Filtern für `meta_title`, `meta_description`, `link_rewrite`.

### Verfügbare Filter

- **Alle**
- **Ohne Title**
- **Ohne Beschreibung**
- **Suche nach Namen**

### Vorlagen massenhaft anwenden

Die Schaltfläche **Vorlagen anwenden** wendet die Vorlage automatisch an. Aktivieren Sie **Nur auf leere Felder anwenden**, um Überschreiben zu vermeiden.

## SEO-Metabox auf der Produktseite

- **Live-SEO-Score** (7 Checks)
- **Google-SERP-Vorschau**
- Erkanntes Hauptkeyword

## Erweiterte Einstellungen

### Indexierung

- **Mehrsprachiges hreflang**: `link rel="alternate"`-Tags
- **x-default-Strategie**: _Standardsprache_ (empfohlen), _Englisch_, _Deaktiviert_
- **Canonical-URL**: `link rel="canonical"`
- **Canonical auf Paginierung**: _Auf aktueller Seite_ (empfohlen), _Immer auf Seite 1_, _Kein Canonical_
- **Automatisches noindex**: /search, Warenkorb, Mein Konto, Neuheiten, Bestseller, Sonderangebote, Facetten
- **Canonical zur Elternseite bei Facetten**

### Bilder

- **Automatische Alt-Generierung**
- **Alt-Vorlage**: Standard `{product_name} - {shop_name}`
- **Natives Lazyloading**: `loading="lazy"` und `decoding="async"`

### Wartung

- **Cache leeren**: Smarty + PrestaShop
- **Alte 404 purgen**
- **Alle Daten exportieren (JSON)**

## Multi-Shop

Alle Funktionen sind nach `id_shop` gescoped.

- **Vorlagen**: eine Vorlage pro Paar (Entitätstyp, Shop)
- **Sitemap**: ein eigener sitemap_index pro Shop
- **Robots.txt**: Regeln pro Shop
- **Weiterleitungen**: pro Shop
- **Benutzerdefinierte Schemas**: pro Shop

## Fehlerbehebung

### Die Sitemap wird nicht generiert

- Ordner `modules/dfallinoneseo/sitemaps/` beschreibbar?
- `chmod 755 modules/dfallinoneseo/sitemaps/`
- `max_execution_time` in php.ini erhöhen bei 50.000+ Produkten

### JSON-LD-Schemas erscheinen nicht

- Modul aktiviert?
- Schema-Typ aktiviert?
- PrestaShop-Cache leeren
- HTML-Quelltext inspizieren: `script type="application/ld+json"`-Block

### 301-Weiterleitungen funktionieren nicht

- Modul installiert und aktiviert?
- Weiterleitungen als **aktiv** markiert?
- Regex auf [regex101.com](https://regex101.com/) im PCRE-Modus testen
- Prioritätsreihenfolge: exakt → Präfix → Regex (nach absteigendem `hit_count`)

### GA4 / GTM wird nicht injiziert

- ID-Format korrekt?
- Consent Mode v2: standardmäßig "denied" bis Zustimmung
- `head` der Seite inspizieren

### robots.txt ändert sich nicht

- Statische `robots.txt` im Root vorhanden? Löschen.
- _Friendly URL_ aktiviert?

### SQL-Tabellen-Fehler bei Installation

- MySQL-Benutzer hat `CREATE` und `ALTER`?
- `utf8mb4` mit Collation `utf8mb4_unicode_ci` unterstützt?
- Tabellenpräfix über 5 Zeichen? Support kontaktieren.

## Technische Referenz

### Verwendete Hooks

18 Hooks:

- `displayHeader` — Meta, Canonical, hreflang, OG, Twitter, JSON-LD, GA4/GTM
- `displayBeforeBodyClosingTag` — GTM noscript, FB Pixel noscript, Body-End
- `displayBackOfficeHeader` — Back-Office-CSS/JS
- `displayAdminProductsExtra` — SEO-Metabox
- `actionDispatcherBefore`, `actionDispatcherAfter` — Routing und 404-Erfassung
- `actionObjectProductAddAfter`, `actionObjectProductUpdateAfter` — Meta-Auto-Fill + Auto-301
- `actionObjectCategoryAddAfter`, `actionObjectCategoryUpdateAfter`
- `actionObjectCmsAddAfter`, `actionObjectCmsUpdateAfter`
- `actionObjectManufacturerUpdateAfter`, `actionObjectSupplierUpdateAfter`
- `actionAdminControllerSetMedia`, `actionFrontControllerSetMedia`
- `displayProductExtraContent`
- `moduleRoutes` — `/sitemap.xml`, `/plan-du-site`, `/robots.txt`, `/llms.txt`

### Hinzugefügte SQL-Tabellen

Präfix `df_seo_`, `utf8mb4`, `utf8mb4_unicode_ci`:

- `df_seo_meta`, `df_seo_meta_lang` — Meta-Überschreibungen
- `df_seo_template`, `df_seo_template_lang` — Vorlagen
- `df_seo_redirect` — Weiterleitungen
- `df_seo_404` — 404-Journal
- `df_seo_score` — Score-Snapshots
- `df_seo_keyword` — Focus Keywords
- `df_seo_robots_rule` — robots.txt-Regeln
- `df_seo_schema_custom` — JSON-LD-Schemas
- `df_seo_log` — Diagnose-Log

### Deinstallation

Deinstallation entfernt Hooks und Tabs, aber **behält SQL-Tabellen und Daten**. Vollständige Purge:

```
DROP TABLE ps_df_seo_meta, ps_df_seo_meta_lang, ps_df_seo_template, ps_df_seo_template_lang,
           ps_df_seo_redirect, ps_df_seo_404, ps_df_seo_score, ps_df_seo_keyword,
           ps_df_seo_robots_rule, ps_df_seo_schema_custom, ps_df_seo_log;
DELETE FROM ps_configuration WHERE name LIKE 'DFSEO_%';
```

Vor Deinstallation: **Einstellungen → Wartung → Alle Daten exportieren (JSON)** nutzen.

## Updates und Support

- **Updates**: 12 Monate inklusive. Optionale jährliche Verlängerung für 49 €.
- **Support**: 12 Monate per E-Mail, Antwort innerhalb von 48 Werktagstunden.
- **Changelog** und Downloads auf [Ihrem DataFirefly-Kundenkonto](https://www.datafirefly.com/de/produkt/dfallinoneseo/).
