Markus Michalski FAQ

Sylius SEO Suite Pro: Fehlerbehebung

Fehlerbehebung für Sylius SEO Suite Pro: robots.txt, SEO-Felder, Setup, hreflang, JSON-LD, OG-Bilder, Audit, Redirects und 404-Log mit Symptom, Prüfen, Lösung, dazu Einschränkungen und FAQ.

English Version

Zurück zur Übersicht

Sylius SEO Suite Pro: Fehlerbehebung

Diese Seite führt typische Probleme nach dem Muster Symptom, Prüfen, Lösung auf. Alle Aussagen stammen aus dem Verhalten des Plugin-Codes. Die Grundlagen stehen in der Installation und der Konfiguration.

Fast alle Plugin-Funktionen fallen bei fehlenden Tabellen oder Fehlern still auf das Standardverhalten zurück und schreiben eine Warnung ins Log. Schau bei jedem Problem zuerst in das Log Deiner Umgebung und suche nach mmd/sylius-seo-suite-pro-plugin.

/robots.txt liefert 404 oder nicht den erwarteten Inhalt

Symptom: /robots.txt antwortet mit 404, mit einer Datei aus dem Webroot oder mit User-agent: * und Allow: /, obwohl Du im Admin einen eigenen Inhalt gepflegt hast.

Prüfen:

Lösung: Importiere @MmdSyliusSeoSuiteProPlugin/config/routes/shop.yaml auf oberster Ebene (siehe Installation), entferne eine statische public/robots.txt, pflege den Inhalt in den Channel-Einstellungen (siehe Konfiguration) und leere bei Bedarf den vorgeschalteten Cache.

SEO-Felder fehlen im Produkt- oder Kategorieformular

Symptom: Im Admin gibt es bei Produkten und Kategorien keine Felder für Meta-Titel, Canonical-Override und Robots. Bei Kategorien fehlt zusätzlich die Meta-Beschreibung.

Prüfen:

Lösung: Folge der Anleitung zum Zuschalten der Felder in der Installation, erstelle die Migration für Deine Übersetzungstabellen und leere danach den Cache (bin/console cache:clear).

Der Setup-Befehl bricht ab

Symptom: bin/console mmd:seo-suite-pro:setup endet mit einer Fehlermeldung, oder die Plugin-Tabellen sind danach nicht vorhanden.

Prüfen:

Lösung: Führe zuerst bin/console doctrine:migrations:migrate aus und danach erneut den Setup-Befehl. Aktiviere das Bundle in config/bundles.php. Auf anderen Datenbankplattformen als MySQL oder MariaDB ist das Plugin nicht lauffähig (siehe Bekannte Einschränkungen). Zeigt ein Admin-Bildschirm nach einem Update einen Fehler, fehlt meist eine Tabelle: Führe den Setup-Befehl nach jedem Plugin-Update aus.

Der Eintrag in der Admin-Sidebar fehlt

Symptom: In der Admin-Navigation erscheint die Gruppe MMKreativ Plugins nicht oder ohne den Eintrag SEO Suite Pro.

Prüfen:

Lösung: Importiere die Admin-Routen, leere den Cache und lade das Admin neu. Alle weiteren Bildschirme (Templates, Redirects, hreflang, Schema, Audit, OG-Bilder) erreichst Du über die Buttons der Channel-Einstellungen, nicht über eigene Menüpunkte.

Symptom: Im Head einer Produkt-, Kategorie- oder Startseite fehlen die <link rel="alternate" hreflang>-Tags.

Prüfen:

Lösung: Pflege Hostnamen und Sprachen der Channels, passe hreflang.min_alternates und das Format an oder vergib verschiedene Sprachen je Channel. Details stehen unter hreflang.

Im JSON-LD fehlen GTIN, MPN oder Marke

Symptom: Der Product-Knoten enthält keine gtin8/gtin12/gtin13/gtin14, kein mpn oder keine brand.

Prüfen:

Lösung: Lege das Attribut als Text an, korrigiere Code und Wert und prüfe das Ergebnis in der Shop API unter structuredData. Mehr dazu unter Strukturierte Daten.

OG-Bilder: 503, Platzhalter oder normales Produktbild

Symptom: Die Karten-URL unter /seo/og/... antwortet mit 503 oder 404, leitet auf das normale Produktbild um, oder die Karte erscheint ohne das Produktbild.

Prüfen:

Lösung: Installiere GD mit FreeType (und WebP oder stelle format auf auto bzw. jpeg), erlaube den Bild-Host in remote_hosts oder lasse die Bilder von einer öffentlichen Adresse laden, und rendere Karten nach Importen oder Bildwechseln mit bin/console mmd:seo-suite-pro:og-image:generate vor. Alte oder verwaiste Dateien räumt mmd:seo-suite-pro:og-image:prune auf. Siehe OG-Bilder.

Das SEO-Audit hängt oder bricht ab

Symptom: Ein Audit meldet An audit of the channel "…" is already running., bleibt im Dashboard auf Running stehen oder endet mit einem Hinweis auf das Limit.

Prüfen:

Lösung: Warte die Stale-Zeit ab oder verkürze sie, erhöhe audit.max_subjects und starte den Lauf per Cronjob mit bin/console mmd:seo-suite-pro:audit:run. Führe bei fehlenden Tabellen mmd:seo-suite-pro:setup aus. Siehe Audit.

Redirects greifen nicht

Symptom: Eine Weiterleitung ist angelegt, die Seite liefert aber weiter 404 oder eine falsche Zielseite.

Prüfen:

Lösung: Lege die Quelle als echten Pfad im richtigen Channel an, prüfe Aktivierung und Meldungen beim Speichern, und führe bei fehlenden Tabellen mmd:seo-suite-pro:setup aus. Siehe Redirects.

Das 404-Log wächst

Symptom: Die Liste der 404-Pfade wird sehr lang oder enthält veraltete Einträge.

Prüfen:

Lösung: Plane bin/console mmd:seo-suite-pro:redirects:prune-log (Standard 90 Tage, anpassbar mit --days) als Cronjob, senke bei Bedarf das Limit oder schalte das Zählen mit redirects.log_not_found: false ab. Siehe Redirects.

Canonical oder noindex bei gefilterten Listings überrascht

Symptom: Gefilterte oder sortierte Kategorieseiten sind noindex, verweisen per Canonical auf die Grundseite, oder ein eigener Filter wird nicht erkannt.

Prüfen:

Lösung: Ergänze Deine Parameter in facet_parameters (führe die Standardwerte, die Du behalten willst, mit auf) und stelle Index und Follow in den Channel-Einstellungen passend ein. Siehe Konfiguration.

Der Seitentitel bleibt unverändert

Symptom: Der <title> zeigt weiterhin den Standardtitel von Sylius.

Prüfen:

Lösung: Prüfe Layout und Antwort-Typ, und lege bei Bedarf ein SEO-Template an.

Bekannte Einschränkungen

FAQ

Allgemein

Erzeugt das Plugin eine Sitemap? Nein. Das Plugin enthält keinen Sitemap-Generator. Es bietet mit SitemapExclusionInterface nur die Ausschlusslogik (noindex oder Canonical auf eine andere URL) an, die ein Sitemap-Plugin aufrufen kann. Das optionale mmd/sylius-sitemap-plugin ist in der composer.json nur als Vorschlag eingetragen.

Wie viele Installationen deckt eine Lizenz ab? Eine Sylius-Installation mit allen Channels, dazu deren Entwicklungs- und Staging-Umgebung. Weitergabe ist nicht erlaubt, Updates gibt es 12 Monate ab Kauf. Maßgeblich ist die Datei LICENSE.

Ist das Plugin öffentlich? Nein, es ist ein privates Repository mit kommerzieller Lizenz.

Wo finde ich die Einstellungen? Unter MMKreativ Plugins in der Admin-Sidebar. Alle weiteren Bildschirme erreichst Du über die Buttons der Channel-Einstellungen.

Konfiguration

Wo liegt die Konfiguration? Globale Optionen stehen unter dem Schlüssel mmd_sylius_seo_suite_pro in config/packages/mmd_sylius_seo_suite_pro.yaml, alle sind optional. Einstellungen pro Channel pflegst Du im Admin und sie liegen in der Datenbank. Details in der Konfiguration.

Liest das Plugin Umgebungsvariablen? Nein. Alle Optionen kommen aus der Symfony-Konfiguration und der Datenbank.

Wie wird der Cache behandelt? Das Plugin hält Einstellungen und Templates pro Request im Speicher und setzt sie zwischen Requests zurück. Die robots.txt ist eine Stunde öffentlich cachebar, Kartenbilder ein Jahr mit immutable und einem ETag aus dem Inhalts-Hash. Nach einem Plugin-Update solltest Du mit bin/console cache:clear den Symfony-Cache leeren, weil der Serializer seine Metadaten dort ablegt.

Welche Cronjobs brauche ich? mmd:seo-suite-pro:audit:run (nächtlich), mmd:seo-suite-pro:redirects:prune-log und mmd:seo-suite-pro:og-image:prune, bei OG-Bildern zusätzlich mmd:seo-suite-pro:og-image:generate nach Importen. Den Setup-Befehl führst Du nach Installation und Updates aus, nicht per Cronjob.

Kompatibilität

Welche Sylius-Versionen werden unterstützt? Die composer.json verlangt Sylius ^2.2, PHP ^8.3 und Symfony ^7.4. Die CI baut gegen Sylius 2.2 und 2.3.

Welche API-Platform-Versionen? Die composer.json erlaubt API Platform ^4.2.1 || ^5.0. Die CI deckt Sylius 2.2 mit API Platform 4.2 sowie Sylius 2.3 mit API Platform 4.3 und 5 ab.

Welche Datenbanken? Nur MySQL 8 und MariaDB. Die CI läuft gegen MySQL 8.4.

Funktioniert das Plugin mit einem Headless-Frontend? Ja. Storefront und Shop API nutzen dieselbe SeoDataProviderInterface, sodass beide nicht auseinanderlaufen. Siehe Shop API.

Brauche ich GD für das Plugin? Nur für die optionalen OG-Bilder, mit FreeType (für WebP zusätzlich WebP-Unterstützung). Ohne GD funktioniert alles andere.