PrestaShop SEO: Technischer Leitfaden zu URLs, Schema, Sitemaps & Core Web Vitals
Vollständiger technischer SEO-Leitfaden für PrestaShop — Friendly URLs, Canonical Tags, Hreflang, strukturierte Daten, XML-Sitemaps und Core Web Vitals.
SEO in PrestaShop ist Konfiguration, keine Magie
Die meisten PrestaShop-Shops verschenken 30–50 % ihres organischen Traffic-Potenzials — nicht wegen fehlender Inhalte, sondern wegen falsch konfigurierter URLs, fehlender Canonical-Tags, defekter strukturierter Daten und unnötiger Crawl-Verschwendung. Dies ist eine technische Referenz mit exakten Einstellungspfaden, Datenbanktabellen und Code-Snippets für jede Empfehlung.
Ein Shop mit 10.000 Produkten und sauberer technischer SEO wird einen Konkurrenten mit 50.000 Produkten und einem Chaos aus doppelten URLs übertreffen. Es geht darum, Barrieren zu beseitigen — nicht um Tricks.
URL-Struktur & Friendly URLs
Navigieren Sie zu Shopparameter → Traffic & SEO → SEO & URLs und aktivieren Sie Friendly URL. Dadurch werden URLs von index.php?id_product=42 zu /mens-leather-wallet-42.html umgeschrieben. Unter Apache generiert PrestaShop die .htaccess automatisch. Unter Nginx benötigen Sie manuelle Rewrite-Regeln.
Klicken Sie nach der Aktivierung auf .htaccess-Datei generieren. Wenn sich Ihr Shop in einem Unterverzeichnis befindet, prüfen Sie, ob die RewriteBase mit Ihrem Pfad übereinstimmt.
IDs aus URLs entfernen (PS 8+)
Unter Shopparameter → Traffic & SEO finden Sie Route zu Produkten und Route zu Kategorien:
# Default (with ID)
{category:/}{id}-{rewrite}.html
# Clean URL (no ID) — PS 8+
{category:/}{rewrite}.html
Das Entfernen von IDs erzeugt sauberere URLs, birgt aber ein Risiko: PrestaShop löst URLs über ps_product_lang.link_rewrite auf. Wenn zwei Produkte denselben Slug haben, gewinnt der erste Treffer.
Prüfen Sie vor dem Entfernen der IDs auf doppelte Slugs:SELECT link_rewrite, id_lang, COUNT(*) as cnt FROM ps_product_lang GROUP BY link_rewrite, id_lang HAVING cnt > 1;
Beheben Sie zuerst alle Duplikate, sonst werden Produkte unerreichbar.
URL-Best-Practices
- Abschließende Schrägstriche: Kategorien enden mit
/, Produkte mit.html. Konsistenz innerhalb jedes Typs ist entscheidend — wenn sowohl/shösals auch/shös/den Status 200 zurückgeben, haben Sie doppelte Inhalte. Erzwingen Sie ein Muster mit einem 301-Redirect. - Halten Sie Slugs kurz: 3–5 Wörter.
/mens-leather-wallet.htmlist besser als/mens-genuine-italian-leather-bifold-wallet-brown.html. - Bindestriche statt Unterstriche: Google behandelt Bindestriche als Worttrennzeichen. PrestaShop macht das standardmäßig.
- Ändern Sie niemals Live-URLs ohne Weiterleitungen: Verwenden Sie die SEO-&-URLs-Seite, um 301-Weiterleitungen für alte URLs einzurichten.
Meta-Tags & Titel
Jede Seite in PrestaShop kann einen individuellen Meta-Titel und eine Meta-Beschreibung haben. Die Daten werden pro Sprache in _lang-Tabellen gespeichert:
# Products: ps_product_lang → meta_title, meta_description, link_rewrite
# Categories: ps_category_lang → meta_title, meta_description, link_rewrite
# CMS pages: ps_cms_lang → meta_title, meta_description, link_rewrite
# Static pages: ps_meta_lang → title, description, url_rewrite
Wenn ein Produkt keinen individuellen Meta-Titel hat, verwendet PrestaShop den Produktnamen als Fallback — „Classic T-Shirt“ ergibt <title>Classic T-Shirt</title>, ohne Marke und Shopnamen.
Meta-Titel-Muster
Google zeigt ungefähr 50–60 Zeichen an. Platzieren Sie wichtige Wörter am Anfang, der Shopname kommt zuletzt:
# Product: Primary Keyword - Key Feature | Store Name
# Category: Category Name - Differentiator | Store Name
# CMS: Page Topic - Store Name
Meta-Beschreibung
Meta-Beschreibungen beeinflussen das Ranking nicht direkt, wirken sich aber stark auf die Klickrate aus. Google zeigt auf dem Desktop ca. 155 Zeichen, auf Mobilgeräten ca. 120. Fügen Sie einen Handlungsaufruf ein, erwähnen Sie Preis oder Verfügbarkeit und vermeiden Sie Duplikate über Produkte hinweg.
Wenn Sie Tausende von Produkten haben und keine individuellen Meta-Beschreibungen schreiben können, lassen Sie sie lieber leer, anstatt sie mit generischem Text zu füllen. Google generiert automatisch ein Snippet aus dem Seiteninhalt, das meist relevanter ist als Standardtexte.
Massen-Updates von Meta-Daten
Für große Kataloge verwenden Sie SQL, um vorlagenbasierte Meta-Titel zu setzen. Verknüpfen Sie ps_product_lang mit ps_category_lang über die Standardkategorie und verwenden Sie CONCAT(), um den Produktnamen mit dem Kategorienamen zu verbinden. Führen Sie immer zuerst ein SELECT zur Vorschau aus und erstellen Sie immer ein Backup vor Massen-Updates.
Canonical URLs
PrestaShop generiert Canonical-Tags automatisch über die head.tpl des Themes. Produkte verweisen kanonisch auf die Basis-Produkt-URL, Kategorien auf die ungefilterte Basis. Das behandelt gängige Duplikate, aber einige Probleme bleiben:
- Paginierung:
/wallets/?page=2und/wallets/?page=3sind standardmäßig indexierbar. Jede paginierte Seite sollte sich selbst kanonisieren. Verwenden Sienoindexauf tiefen Seiten, wenn Sie nicht möchten, dass sie einzeln gerankt werden. - Sortierung:
?order=product.price.ascerzeugt indexierbare Duplikate. Blockieren Sie diese mit robots.txt oder noindex. - Facettierte Navigation: Filterparameter erzeugen eine kombinatorische Explosion. Blockieren Sie Filter-URLs in der robots.txt UND fügen Sie noindex zu gefilterten Seiten hinzu.
- Produkt in mehreren Kategorien: PrestaShop kanonisiert auf die Standardkategorie — das ist korrektes Verhalten.
Google hat rel="prev"/rel="next" 2019 als veraltet erklärt. Konzentrieren Sie sich auf Canonical-Tags und noindex zur Paginierungssteuerung.
Multistore-Canonicals
Jeder Shop sollte auf seine eigene Domain kanonisieren — niemals domainübergreifend, es sei denn, ein Shop ist absichtlich untergeordnet. PrestaShop handhabt das korrekt, wenn Shops separate Domains haben. Details finden Sie in unserem Multistore-Leitfaden.
Hreflang für mehrsprachige Shops
Wenn Ihr Shop mehrere Sprachen unterstützt, teilt hreflang Google mit, welche Version in welchem Markt angezeigt werden soll. Ohne hreflang wählt Google eine Version aus und unterdrückt die anderen.
<link rel="alternate" hreflang="en" href="https://shop.com/en/wallet.html">
<link rel="alternate" hreflang="fr" href="https://shop.com/fr/portefeuille.html">
<link rel="alternate" hreflang="x-default" href="https://shop.com/en/wallet.html">
Verwenden Sie Sprach-Länder-Codes (en-GB, en-US), wenn Sie regionsspezifische Preise oder Inhalte haben. Verwenden Sie reine Sprachcodes (en, fr) in allen anderen Fällen. Fügen Sie immer x-default als Fallback hinzu.
Häufige Hreflang-Fehler
- Fehlende Rückverweise: Seite A verweist auf B, aber B verweist nicht zurück auf A. Google ignoriert beide.
- Falsche Codes:
en-UKist falsch (korrekt:en-GB). Verwenden Sie ISO 639-1 für die Sprache, ISO 3166-1 Alpha 2 für das Land. - Hreflang auf nicht-kanonischen URLs: Wenn eine Seite ein Canonical auf eine andere Seite hat, wird ihr hreflang ignoriert.
- Hreflang mit noindex: Seiten mit noindex können keine hreflang-Ziele sein.
Überprüfen Sie die Einrichtung mit dem hreflang-Validator von TechnicalSEO.com. Ein einziger fehlerhafter Rückverweis macht den gesamten Cluster für diese Seite ungültig.
Für Multistore mit separaten Domains pro Sprache erfordert domainübergreifendes hreflang eine Anpassung der head.tpl, um ps_shop_url abzufragen und URLs pro Shop zu erstellen — die Standardimplementierung deckt nur Sprachen innerhalb eines Shops ab.
Strukturierte Daten / Schema.org
Strukturierte Daten ermöglichen Rich Results — Sternebewertungen, Preisabzeichen, Verfügbarkeitsanzeigen in den Suchergebnissen. PrestaShop-Themes enthalten ein grundlegendes Product-Schema, das jedoch oft unvollständig ist.
Product-Schema
Jede Produktseite benötigt ein vollständiges Product- + Offer-Schema. Die Mindestfelder, die Google für Rich Results verlangt: name, image, price, priceCurrency, availability. Fehlt eines davon, werden keine Rich Results ausgelöst. Fügen Sie sku, brand und aggregateRating hinzu, sofern verfügbar.
In klassischen Themes befindet sich das Product-Schema in templates/catalog/product.tpl oder einem Partial wie _partials/microdata/product-jsonld.tpl. In Hummingbird (PS 8+/9.x) prüfen Sie templates/catalog/_partials/product-details.tpl. Die Implementierung variiert je nach Theme.
BreadcrumbList- & Organization-Schema
Breadcrumbs in den Suchergebnissen zeigen die Seitenhierarchie. Das Breadcrumb-Modul von PrestaShop sollte automatisch BreadcrumbList-JSON-LD ausgeben — überprüfen Sie es mit dem Rich Results Test. Fügen Sie ein Organization-Schema seitenweit über den displayHeader-Hook hinzu, mit Ihrem Firmennamen, Logo-URL, Kontaktdaten und Social-Media-Links.
FAQ-Schema & benutzerdefiniertes JSON-LD
CMS-Seiten mit Frage-und-Antwort-Inhalten können das FAQPage-Schema für erweiterte Snippets verwenden. Für jeden Schema-Typ, den Ihr Theme nicht abdeckt, injizieren Sie JSON-LD über den displayHeader-Hook: Erkennen Sie den Controller-Typ, erstellen Sie das Schema-Array und geben Sie es mit json_encode() in einem <script type="application/ld+json">-Tag aus.
Validieren Sie strukturierte Daten immer mit dem Rich Results Test von Google. Unvollständiges Schema ist schlimmer als gar kein Schema — es signalisiert niedrige Qualität.
XML-Sitemap
PrestaShop wird mit dem Modul Google Sitemap (gsitemap) ausgeliefert. Konfigurieren Sie es unter Module → Modulmanager. Schließen Sie Produkte, Kategorien und CMS-Seiten ein. Schließen Sie Lieferanten aus, es sei denn, sie haben einen Mehrwert für den Kunden. Das Modul generiert eine sitemap.xml in Ihrem Stammverzeichnis und teilt sie bei großen Katalogen in mehrere Dateien auf.
Automatisieren Sie die Neugenerierung mit einem täglichen Cron-Job, der modules/gsitemap/gsitemap-cron.php mit Ihrem Sicherheitsschlüssel aufruft. Reichen Sie die Sitemap bei der Google Search Console ein und überwachen Sie den Abdeckungsbericht. Bei Multistore erhält jeder Shop automatisch seine eigene Sitemap mit der jeweiligen Domain.
Eine Sitemap ist ein Vorschlag, keine Garantie. Nehmen Sie nur kanonische, indexierbare URLs auf, die Sie tatsächlich gerankt haben möchten. Keine deaktivierten Produkte, keine gefilterten Seiten, keine Warenkorb-/Checkout-URLs.
Robots.txt
Generieren Sie die robots.txt unter Shopparameter → Traffic & SEO → Robots-Datei-Generierung. Die Standardkonfiguration blockiert Admin-Verzeichnisse, übersieht aber wichtige Muster. Fügen Sie über die Standards hinaus Folgendes hinzu:
# Block shopping flow (no SEO value)
Disallow: /cart
Disallow: /order
Disallow: /my-account
Disallow: /search
# Block filtered/sorted duplicates (crawl budget killers)
Disallow: /*?order=
Disallow: /*?q=
Disallow: /*&order=
Disallow: /*&q=
Sitemap: https://your-domain.com/sitemap.xml
Das Blockieren von Filterparametern verhindert das Crawlen kombinatorischer Duplikatseiten und spart Crawl-Budget für echte Produkt- und Kategorieseiten.
robots.txt blockiert das Crawlen, nicht die Indexierung. Wenn eine externe Website auf eine blockierte URL verlinkt, kann Google sie dennoch indexieren, ohne sie zu crawlen. Für eine echte Deindexierung verwenden Sienoindex-Meta-Tags oderX-Robots-Tag-Header.
Bilder-SEO
Produktbilder generieren erheblichen Traffic über die Google-Bildersuche. PrestaShop erzeugt automatisch Alt-Tags aus dem Produktnamen und schreibt Dateinamen basierend auf link_rewrite um. Konfigurieren Sie die Alt-Text-Vorlage unter Shopparameter → Traffic & SEO — erwägen Sie, Kategorie oder Marke zum Standardmuster hinzuzufügen.
Moderne Formate: PS 8+ unterstützt WebP, PS 9.x fügt AVIF hinzu. Aktivieren Sie dies unter Design → Bildeinstellungen, setzen Sie die Qualität auf 80–85 und generieren Sie die Vorschaubilder neu. Lazy Loading: Moderne Themes fügen loading="lazy" unterhalb des sichtbaren Bereichs hinzu. Verwenden Sie niemals Lazy Loading für das Hauptproduktbild — es ist Ihr LCP-Element. Bilder-Sitemap: Das gsitemap-Modul kann Produktbilder einschließen, damit Google Bilder entdeckt, die beim normalen Crawling nicht gefunden werden.
Core Web Vitals
Core Web Vitals sind ein bestätigter Rankingfaktor. PrestaShop hat spezifische Muster, die zu Problemen führen.
CLS (Layout Shift) — Zielwert: unter 0,1
Häufige PrestaShop-Ursachen: Bilder ohne width/height-Attribute, Webfonts, die FOUT verursachen (Behebung mit font-display: swap + Preload), per JS geladene Banner, die Inhalte nach unten verschieben (Behebung mit CSS min-height), und Cookie-Consent-Balken, die in den Dokumentenfluss eingefügt werden, anstatt feste/klebrige Positionierung zu verwenden.
LCP (Largest Contentful Paint) — Zielwert: unter 2,5s
Auf Produktseiten ist das LCP das Hauptproduktbild. Komprimieren Sie aggressiv, verwenden Sie WebP/AVIF und laden Sie es vor mit <link rel="preload" as="image" fetchpriority="high">. Verwenden Sie niemals Lazy Loading für das LCP-Bild. Wenn die Server-TTFB 1,5 s überschreitet, rettet kein Frontend-Trick — lesen Sie unseren Performance-Leitfaden.
INP (Interaction to Next Paint) — Zielwert: unter 200ms
Jedes Modul, das sich in displayHeader/displayFooter einklinkt, fügt JS hinzu, das den Hauptthread blockiert. Drittanbieter-Skripte (Analytics, Chat, Pixel) sollten mit defer/async oder über den Tag Manager geladen werden. Messen Sie CWV-Felddaten in PageSpeed Insights — wenn der Feld-INP schlecht ist, aber der Laborwert gut, sind Drittanbieter-Skripte die wahrscheinliche Ursache.
Seitengeschwindigkeit für SEO
Für eine detaillierte Betrachtung der Serveroptimierung, des Cachings und der Infrastruktur lesen Sie unseren Leitfaden zur Performance-Optimierung. Hier sind die SEO-kritischen Geschwindigkeitsfaktoren:
CCC (Combine, Compress, Cache)
Aktivieren Sie alle Optionen unter Erweiterte Einstellungen → Performance. CCC reduziert HTTP-Anfragen von 20–40 auf 3–5 für CSS/JS und spart beim ersten Besuch oft 1–2 Sekunden.
Schriftarten laden
Hosten Sie Ihre Schriftarten selbst (eliminiert den DNS-Lookup zu fonts.googleapis.com), verwenden Sie font-display: swap, laden Sie die primäre Schriftart mit <link rel="preload" as="font" type="font/woff2" crossorigin> vor und entfernen Sie per Subsetting nicht verwendete Zeichenbereiche.
Modul-JS-Strategie
Module sollten JS mit 'attributes' => 'defer' in ihren registerJavascript()-Aufrufen registrieren. JS mit defer/async bleibt (gewünscht) von den CCC-Bundles getrennt, blockiert aber das Rendering nicht. Überprüfen Sie Modulcode, der die Position bottom ohne defer verwendet.
Interne Verlinkung
Ihre Kategoriestruktur IST Ihre interne Verlinkungsarchitektur. Jede Kategorieseite ist eine potenzielle Ranking-Seite für ein Keyword-Cluster.
Kategoriehierarchie
Strukturieren Sie Kategorien entsprechend der Suchintention: „Schuhe“ zielt auf den Hauptbegriff, „Herren-Laufschuhe“ auf den Long Tail. Eine flache Kategorie mit 1.000 Produkten verschenkt die Möglichkeit, für Dutzende spezifischer Keywords zu ranken. Der Kategoriebaum von PrestaShop erstellt die Verlinkungshierarchie automatisch durch Breadcrumbs und Navigationsmenüs.
Breadcrumbs
Stellen Sie sicher, dass Breadcrumbs auf jedem Seitentyp erscheinen. Wenn ein Produkt in mehreren Kategorien existiert, verwendet PrestaShop die Standardkategorie für den Breadcrumb-Pfad. Setzen Sie die Standardkategorie jedes Produkts auf die spezifischste relevante Kategorie.
Cross-Selling
Zubehör und verwandte Produkte erzeugen interne Links zwischen Produktseiten — sie verteilen Link-Equity und erhöhen gleichzeitig den durchschnittlichen Bestellwert. Konfigurieren Sie dies unter Katalog → Produkte → Zugeordnete Produkte. Lassen Sie CMS-Seiten nicht verwaisen — verlinken Sie Größentabellen und Versandrichtlinien aus relevanten Produktbeschreibungen.
Indexierungskontrolle
Nicht jede Seite sollte indexiert werden. Wenn Sie Google erlauben, Tausende gefilterter URLs zu indexieren, verwässert das Crawl-Budget.
Facettierte Navigation
Eine Kategorie mit 5 Farben, 8 Größen und 4 Preisbereichen erzeugt 160 gefilterte URLs — pro Kategorie. Multiplizieren Sie das mit 100 Kategorien und Sie haben 16.000 nahezu identische Seiten. Die Lösung:
- Blockieren Sie Filterparameter in der robots.txt (verhindert Crawling)
- Fügen Sie
noindexzu gefilterten Seiten hinzu (verhindert Indexierung bei Crawling) - Kanonisieren Sie gefilterte Seiten auf die Basiskategorie (konsolidiert Signale)
Ausnahme: Filterkombinationen, die realen Suchanfragen entsprechen („schwarze Ledergeldbörsen“), sollten mit einzigartigen Meta-Daten indexiert werden. Blockieren Sie alles andere.
Paginierungsstrategie
- Selbstreferenzierende Canonicals auf jeder paginierten Seite.
- Noindex für tiefe Seiten: Ab Seite 4 haben Seiten selten SEO-Wert. Belassen Sie sie als „followable“, damit Google verlinkte Produkte entdeckt.
- Mehr Produkte pro Seite: 48 statt 12 Produkte pro Seite reduzieren die Paginierung von 17 Seiten auf 5, was Link-Equity konzentriert.
Häufige SEO-Fehler in PrestaShop
Doppelte Startseite
Die Startseite ist oft erreichbar unter /, /index.php, /en/ und /en/index.php. Leiten Sie index.php mit einem 301-Redirect auf das Stammverzeichnis um:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ / [R=301,L]
WWW- & HTTPS-Normalisierung
Entscheiden Sie sich für www oder ohne www, entscheiden Sie sich für HTTPS. Leiten Sie alles andere mit einem einzigen 301-Redirect um. Die PrestaShop-Einstellung „SSL aktivieren“ betrifft nur die Link-Generierung — Sie müssen serverseitige Weiterleitungen in der .htaccess hinzufügen. Die Reihenfolge ist wichtig: Erzwingen Sie zuerst HTTPS, dann die WWW-Normalisierung. Prüfen Sie auf Weiterleitungsketten mit curl -I -L — jeder zusätzliche Hop erhöht die Latenz und verliert Link-Equity.
Weitere häufige Probleme
- Duplikat der Kategorieseite 1: Sowohl
/shös/als auch/shös/?page=1liefern den Status 200. Leiten Sie?page=1auf die Basis-URL um. - Kopierte Produktbeschreibungen: Wenn Sie Lieferantenbeschreibungen importieren, tun das alle anderen auch. Schreiben Sie einzigartige Beschreibungen für mindestens Ihre umsatzstärksten 20 % der Produkte.
- Leere Kategorien: Aktive Kategorien ohne Produkte sind „Thin Content“. Fragen Sie
ps_categoryverknüpft mit einemCOUNTaufps_category_productab, um diese zu finden und mit noindex zu versehen oder zu entfernen. - Fehlende Meta-Titel: Fragen Sie
ps_product_langnach Zeilen ab, in denenmeta_titleleer ist — diese Produkte verwenden den bloßen Produktnamen als Title-Tag.
SEO-Audit-Checkliste
Führen Sie diese vierteljährlich oder nach jeder größeren Shop-Änderung durch.
Technische Grundlagen
- Friendly URLs aktiviert — keine
index.php?id_product=-URLs bei Google. - SSL aktiviert und erzwungen — alle HTTP-Anfragen werden per 301 auf HTTPS umgeleitet.
- WWW-Normalisierung — einzelner Redirect, keine Ketten.
- Robots.txt blockiert Admin, Warenkorb, Checkout, Suche und Filterparameter.
- XML-Sitemap generiert, aktuell, in der Search Console eingereicht.
On-Page
- Einzigartige Meta-Titel für jedes Produkt und jede Kategorie, unter 60 Zeichen.
- Meta-Beschreibungen einzigartig oder absichtlich leer — keine gleichlautenden Duplikate.
- Eine H1 pro Seite, passend zum Seitenthema.
- Alle Produktbilder haben einen beschreibenden Alt-Text.
- Canonical-Tags auf jeder Seite vorhanden, korrekt bei Paginierung.
- Hreflang-Tags korrekt, wenn mehrsprachig: bidirektional, x-default vorhanden.
Strukturierte Daten
- Product-Schema validiert im Rich Results Test mit name, image, price, availability.
- BreadcrumbList-Schema auf Produkt- und Kategorieseiten vorhanden.
- Organization-Schema seitenweit vorhanden.
Crawlbarkeit
- Google Search Console Abdeckungsbericht — keine unerwarteten Fehler oder ausgeschlossenen Seiten.
- Gefilterte URLs explodieren nicht im Google-Index.
- Keine leeren Kategorien indexiert.
- Keine Soft-404-Fehler (nicht vorrätige Produkte, die Status 200 mit leerem Inhalt zurückgeben).
Performance
- Core Web Vitals bestehen in den Felddaten (Search Console → Core Web Vitals).
- Keine Fehler bei der mobilen Nutzerfreundlichkeit.
- Produktseiten unter 3 s Ladezeit. Siehe unseren Performance-Leitfaden.
Empfohlene Tools
Google Search Console (Indexierung, CWV, Performance), Screaming Frog (Site-Crawling, kostenlos bis 500 URLs), PageSpeed Insights (CWV-Labor- und Felddaten), Rich Results Test (Validierung strukturierter Daten), Ahrefs Webmaster Tools (kostenloses technisches Audit + Backlinks).
SEO ist nichts, was man einmal einrichtet und dann vergisst. Theme-Updates brechen Schema, neue Module erzeugen Weiterleitungsschleifen, Importe erstellen doppelte Meta-Daten. Eine 30-minütige vierteljährliche Überprüfung erkennt Probleme, bevor sie Traffic kosten.
More guides available
Browse our knowledge base for more practical PrestaShop tutorials, or reach out if you need help.