PS PrestaShop Mittel

DataFirefly All in One SEO — Vollständige Dokumentation

Premium All-in-One-SEO-Modul für PrestaShop 8 und 9: dynamische Meta, JSON-LD-Schemas, mehrsprachige Sitemap, Weiterleitungen, 404, intelligente robots.txt, Tracking und Content-Analyzer.

Aktualisiert Modulversion 1.0.2

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 600×60 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.

XML-Sitemap

Das Modul generiert eine XML-Sitemap, die der sitemaps.org-Spezifikation 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. 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 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.
War diese Seite hilfreich?

Immer noch nicht weiter? Support kontaktieren