SEO für Onlineshops: Wie die Struktur des Sortiments über die Sichtbarkeit entscheidet
Kategorieseiten, Filter-URLs, Varianten und Paginierung so aufbauen, dass ein großes Sortiment sauber gecrawlt wird. Mit Hinweisen zu Shopware und Shopify.

Ein Shop mit 200 Artikeln und ein Shop mit 20.000 Artikeln laufen im selben System und haben völlig verschiedene SEO-Probleme. Beim kleinen Shop lässt sich jede Seite einzeln anfassen. Beim großen entstehen die Seiten aus Daten: aus Kategoriezuordnungen, Attributen, Filtern, Varianten und Seitenzahlen. Niemand schreibt diese Seiten, das System erzeugt sie nach Regeln. Wer die Sichtbarkeit eines Sortiments verbessern will, arbeitet deshalb selten an einzelnen Texten und fast immer an diesen Regeln.
Es geht im Folgenden um die Ebene, auf der aus einem Katalog URLs werden: Kategorieseiten, Filter- und Parameterpfade, Produktvarianten, Paginierung, Verfügbarkeitsstatus und Produkt-Markup. Am Schluss steht, was davon in Shopware, Shopify, WooCommerce und Adobe Commerce jeweils anders gelöst ist.
Die Kategorieseite trägt die generische Nachfrage
Suchanfragen wie “laufschuhe herren” oder “esstisch eiche” zielen auf eine Auswahl, nicht auf ein einzelnes Produkt. Die passende Antwort ist eine Kategorie- oder Listingseite. Produktdetailseiten bedienen die spezifische Nachfrage: Marke, Modell, Artikelnummer. Diese Aufteilung klingt selbstverständlich, wird in der Praxis aber ständig verletzt, etwa wenn dieselbe Nachfrage von einer Kategorie und einer Filterseite gleichzeitig bedient wird und beide Seiten sich gegenseitig aus dem Index drängen.
Eine Kategorieseite, die ranken soll, braucht eine URL, die sich nicht ändert, sobald jemand die Sortierung umstellt. Sie braucht außerdem einen erkennbaren Zweck jenseits von “hier sind Produkte”, und sie muss die Bildlast ihres eigenen Grids aushalten.
Der letzte Punkt ist messbar. Largest Contentful Paint gilt als gut bei 2,5 Sekunden oder weniger, gemessen am 75. Perzentil der Seitenaufrufe. Bildlastige Kategorieseiten sind die typische Schwachstelle in Shops, weil das größte Element im sichtbaren Bereich fast immer das erste Produktbild ist und aus derselben Pipeline stammt wie 60 weitere darunter. Dazu kommt Interaction to Next Paint, das im März 2024 First Input Delay als Core Web Vital abgelöst hat. Als gut gilt ein INP von 200 Millisekunden oder weniger. Dieser Wert trifft Shops härter als andere Seitentypen, denn die zentrale Interaktion auf einer Kategorieseite ist das Setzen eines Filters. Wenn dabei das halbe Listing neu aufgebaut wird, steht das anschließend in den Felddaten.
Filter und Parameter: wo aus einem Sortiment beliebig viele URLs werden
Drei Filter mit je fünf Werten ergeben, frei kombinierbar, bereits 215 Zustände. Wenn jeder davon eine eigene crawlbare URL bekommt und dazu noch Sortierung, Ansichtsumschalter und Seitenzahl treten, produziert eine einzige Kategorie mehr URLs, als der Shop Artikel hat.
Google hat zu diesem Thema eine eigene Dokumentation zur Facettennavigation, weil Filterkombinationen sehr viele URLs erzeugen und Crawlbudget binden können. Die Empfehlung dort lautet, nur ausgewählte Filterkombinationen crawlbar zu halten. Welche das sind, entscheidet nicht die Technik, sondern die Nachfrage: “laufschuhe herren blau” wird gesucht, “laufschuhe herren blau in Größe 43 unter 100 Euro nach Preis sortiert” nicht.
Steuern lässt sich das nur noch im Shop selbst. Das URL-Parameter-Tool der Search Console wurde 2022 abgeschaltet, es gibt also keinen Schalter mehr, mit dem sich ein Parameter zentral als bedeutungslos markieren ließe. Seitdem laufen Filter- und Sortierparameter über interne Verlinkung, Canonical Tags und robots.txt.
Daraus ergibt sich eine Einteilung in drei Klassen, die jedes Sortiment für sich beantworten muss. Erstens Filter mit eigener Nachfrage, meist ein einzelnes Attribut über einer Kategorie: eigene URL, eigenes Canonical, intern verlinkt, im Idealfall mit eigener Überschrift und eigenem Einleitungstext. Zweitens Filter, die Nutzer brauchen, für die aber niemand sucht: erreichbar, per Canonical auf die Basiskategorie gezeigt, nicht in der internen Verlinkung. Drittens Sortierung, Seitenansicht und beliebige Tiefkombinationen: gar nicht erst zum Crawlen freigeben.
Der häufigste Fehler ist nicht die falsche Klasse, sondern die fehlende Entscheidung. Filter-URLs entstehen dann einfach, weil das Frontend sie erzeugt, und niemand hat je festgelegt, was sie sein sollen.
Produktvarianten: eine URL oder viele
Ein T-Shirt in fünf Farben und sechs Größen ist ein Produkt oder dreißig, je nachdem, wen man fragt. Die SEO-Antwort orientiert sich daran, wonach gesucht wird. Nach “sneaker weiß” wird gesucht, nach “sneaker Größe 42,5” praktisch nicht. Farbe verdient also oft eine eigene URL, Größe fast nie.
Bekommt jede Variante eine eigene indexierbare Seite, entstehen dreißig Seiten mit identischem Beschreibungstext, identischen Maßangaben und identischen Pflegehinweisen, die sich nur in einem Wort unterscheiden. Das ist der klassische Weg, wie ein Shop sich selbst mit Dubletten flutet. Umgekehrt verschenkt ein Shop Sichtbarkeit, wenn er farbspezifische Nachfrage hinter einem Dropdown versteckt, das keine eigene Adresse hat.
Ein tragfähiges Muster: das Hauptprodukt bekommt die kanonische URL. Varianten, für die es eigene Nachfrage gibt, bekommen eigene URLs mit eigenem Bildmaterial, eigener Überschrift und angepasstem Text. Alle übrigen Variantenzustände laufen über Parameter, die per Canonical auf das Hauptprodukt zeigen und nicht intern verlinkt werden. Entscheidend ist, dass die Wahl bewusst getroffen wird und im Datenmodell verankert ist, nicht im Theme.
Paginierung, seit rel=next niemanden mehr interessiert
Google nutzt rel=next und rel=prev seit der Bestätigung von 2019 nicht mehr als Indexierungssignal. Paginierte Sortimentsseiten müssen deshalb über eigenständige, crawlbare URLs und interne Verlinkung erschlossen werden. Die beiden Link-Tags schaden nicht, sie ersetzen aber nichts.
Damit werden drei Dinge wichtig. Jede Seite der Serie braucht eine eigene, aufrufbare URL, die auf sich selbst kanonisiert. Seite 2 auf Seite 1 zu kanonisieren wirkt aufgeräumt und bewirkt, dass alle Produkte ab Position 25 crawltechnisch verschwinden. Zweitens muss die Paginierung als echte Links im HTML stehen. Infinite Scroll, der Produkte per JavaScript nachlädt, ohne die URL zu verändern, macht das Sortiment unterhalb der ersten Ladung unerreichbar. Drittens hilft ein flacher Aufbau: Wer über Unterkategorien und sinnvolle Filterseiten arbeitet, braucht selten mehr als eine Handvoll paginierter Seiten pro Listing. Eine Kategorie mit 90 Seiten Paginierung ist meist ein Symptom fehlender Struktur, nicht ein Paginierungsproblem.
Verfügbarkeit: was passiert, wenn ein Produkt nicht mehr da ist
Bei Sortimenten mit Saisonware oder wechselnden Lieferanten verschwinden ständig Artikel. Wie der Shop damit umgeht, entscheidet über die Stabilität seiner URL-Basis.
Google empfiehlt für ein vorübergehend nicht verfügbares Produkt, die URL online zu lassen und die Verfügbarkeit auszuweisen. Nur wenn ein Produkt dauerhaft nicht zurückkehrt, ist 404 oder 410 der richtige Statuscode. Praktisch heißt das: Die Seite bleibt bestehen, zeigt den Status ehrlich an, nennt einen Zeitpunkt oder eine Alternative, und das Markup trägt denselben Status.
Für dauerhaft ausgelistete Artikel braucht es eine Regel, die aus den Katalogdaten heraus greift. Gibt es ein direktes Nachfolgeprodukt, ist eine 301 dorthin sinnvoll. Gibt es keinen echten Nachfolger, führt eine Weiterleitung auf die Kategorie zwar nicht ins Leere, ist aber häufig ein Soft-404-Kandidat, weil die Zielseite die ursprüngliche Suchintention nicht bedient. Dann sind 404 oder 410 der ehrlichere Weg. Der Fall, der wirklich Schaden anrichtet, ist der vierte: Seiten, die im Sortiment auf null gesetzt werden, aber technisch mit vollem Inhalt und Status 200 stehen bleiben und weiter intern verlinkt sind.
Produkt-Markup: das Minimum und die üblichen Fehler
Für Produkt-Rich-Results verlangt Google strukturierte Daten vom Typ Product mit name und offers, wobei offers price, priceCurrency und availability enthalten muss. Das ist wenig, wird aber überraschend oft verfehlt, weil das Theme den Preis anders formatiert als das Markup oder weil die Währung fehlt.
Der wichtigere Punkt ist die Synchronität. Markup, das einen Preis oder eine Verfügbarkeit ausweist, die auf der gerenderten Seite anders steht, ist schlechter als kein Markup. In Shops mit Staffelpreisen, Rabattlogik oder kundenspezifischen Preisen entsteht diese Differenz fast automatisch, sobald der Preis im Frontend aus einer anderen Quelle kommt als im JSON-LD.
Ein zweiter wiederkehrender Fehler betrifft Bewertungen. Google unterstützt seit September 2019 keine selbst ausgezeichneten Bewertungen mehr als Rich Result für die eigene Organisation. Bewertungs-Markup ist nur für Produkte und einige weitere Typen zulässig. Die Shop-Gesamtbewertung, die viele Systeme auf Kategorie- oder Startseiten als aggregateRating ausgeben, gehört in diese Kategorie und bringt nichts.
Was in den Systemen jeweils anders läuft
Shopware legt SEO-URL-Templates pro Verkaufskanal fest, Listing-Filter und Paginierung laufen über Query-Parameter an der Kategorie-URL. Varianten sind ein eigenes Konzept: Sie können einzeln im Listing erscheinen und eigene SEO-URLs tragen. Die zentrale Entscheidung ist deshalb, welche Eigenschaft im Listing aufgefächert wird und welche nur auf der Produktseite wählbar bleibt.
Shopify liefert Produkte zusätzlich unter dem Kollektionspfad aus und setzt dort ein Canonical auf die kurze Produkt-URL. Varianten hängen als Parameter an dieser URL, Storefront-Filter erzeugen ebenfalls Parameter. Der Eingriffsspielraum ist enger als anderswo, weil robots.txt über eine Template-Datei läuft und viele URL-Muster von der Plattform vorgegeben sind. Umso mehr Gewicht bekommt die interne Verlinkung: Welche Filterkombination verlinkt wird, entscheidet hier faktisch über den Index.
WooCommerce erbt die URL-Struktur von WordPress, inklusive Paginierung als Pfadsegment. Filter-Widgets hängen Parameter an, variable Produkte liegen unter einer URL und wählen die Variation über Attributparameter. Weil das System aus Plugins besteht, kommen die problematischen URL-Muster meist nicht aus dem Kern, sondern aus dem Filter-Plugin und dem Theme.
Adobe Commerce, in der Praxis oft weiter Magento genannt, erzeugt über die Layered Navigation Parameter-URLs und bietet zusätzlich die Option, Produkte unter dem Kategoriepfad auszuliefern. Damit existiert dasselbe Produkt unter mehreren Pfaden. Konfigurierbare Produkte haben einfache Kindprodukte, die je nach Sichtbarkeitseinstellung eigene URLs bekommen. Hier liegen die Hebel in der Konfiguration, nicht im Template.
Die Reihenfolge, in der sich das lohnt
Zuerst die Crawlpfade: Welche URLs erzeugt das Sortiment überhaupt, und welche davon soll ein Crawler sehen. Dann die Indexentscheidungen pro Filtertyp und pro Variantenachse, festgeschrieben als Regel, nicht als Einzelfall. Danach der Lebenszyklus einer Produkt-URL, weil er sonst die eben getroffenen Entscheidungen laufend wieder zerlegt. Erst dann Markup und Ladeverhalten.
Diese Reihenfolge ist unbequem, weil die ersten beiden Schritte nichts produzieren, was man vorzeigen kann. Sie entscheiden aber darüber, ob die späteren Schritte auf einer stabilen Basis stehen oder auf 40.000 URLs, die niemand geplant hat.
