Suchmaschinenfreundliche URLs in Shopware 6 vergeben

von: | 03.03.2024

Die Algorithmen der Suchmaschinen bevorzugen sogenannte sprechende URLs. Durch diese möglichst klaren und benutzerfreundlichen URLs kann aber auch der Nutzer direkt feststellen, wo er sich auf der Seite befindet. Eine optimierte URL erfüllt folgende Kriterien:

  • sie ist aussagekräftig und sollte mit Hilfe von relevanten Keywords den Inhalte der Seite beschreiben
  • sie ist kurz und sollte in der Länge auf ein Minimum reduziert sein, ohne relevante Informationen wegzulassen
  • sie enthält keine Sonderzeichen oder unnötige Parameter (wie beispielsweise die Produktnummer), um die Lesbar- und Eindeutigkeit nicht zu beeinträchtigen
  • sie sollte immer ein Unikat sein, um Duplikate zu vermeiden und kryptische URLs wie beispielsweise "https://www.shopurl.de/detail/018de1c16c7c775398cce20c15fec876" zu verhindern.

Die URL-Struktur für die Produktdetailseiten

Die URL-Struktur für Produkte wird in Shopware 6 über sogenannte SEO-URL-Templates unter "Einstellungen", "Shop" und "SEO" beim Feld "Produktdetailseite" definiert. Das voreingestellte Template für die Produkdetailseiten ist:

{{ product.translated.name }}/{{ product.productNumber }}

Da die Produktnummern oft kryptisch sind, empfiehlt es sich, diese aus dem Template zu entfernen. Außerdem sollte man die URL in Kleinbuchstaben ausgeben lassen:

{{ product.translated.name|lower }}

Das Entfernen der Produktnummer ist aber nur dann sinnvoll, wenn die Produkte eindeutig sind und nicht immer wieder der gleiche Produktname genutzt wird. Dies kann zum Beispiel bei der Verwendung von Produktvarianten der Fall sein. Insofern nicht gewährleistet werden kann, das es keine Produkte mit gleichem Produktnamen gibt, sollte beim Template eine weitere Variable ergänzt werden, die sich bei sämtlichen Produkten unterscheidet. Diese könnte beispielsweise das Meta-Keyword, das am Produkt unter "Schlüsselwörter" hinterlegt werden kann, sein:

{{ product.translated.name|lower }}-{{ product.keywords|lower }}

Ergänzend zu dieser Lösung sollte man ein Fallback für den Fall definieren, wenn bei einer Produktvariante noch kein Meta-Keyword gepflegt oder bei dem Produkt bei der "Storefront-Darstellung" für die "Produktliste" der Wert "Einzelprodukt anzeigen" und "Hauptprodukt" ausgewählt wurde:

{{ product.translated.name|lower }}{% if product.keywords == "" %}-{{ product.productNumber|lower }}{% else %}-{{ product.keywords|lower }}{% endif %}
Vereinzelt kann es sinnvoll sein, bestimmte Produkte mit individuellen URLs zu versehen. Dies kann umgesetzt werden, indem man bei dem jeweiligen Produkt im Tab "SEO" nach der Auswahl eines Verkaufskanals einen individuellen "SEO-Pfad" hinterlegt. Das Produkt ist in diesem Fall zwar weiterhin über die alte URL erreichbar, die neue URL wird von Shopware aber automatisch als Canonical-URL definiert, damit es nicht zu Duplicate Content kommt. Dadurch erkennt die Suchmaschine automatisch, dass derselbe Inhalt über mehrere URLs erreichbar ist, jedoch nur der eingestellte SEO-Pfad in die Suchergebnisse mit aufgenommen werden soll.

Die URL-Struktur für die Kategorieseiten

Wie schon bei den Produkten kann für die Kategorieseiten das SEO-URL-Template unter "Einstellungen", "Shop" und "SEO" beim Feld "Kategorieseite" definiert werden. Standardmäßig ist dieses wie folgt aufgebaut:

{% for part in category.seoBreadcrumb %}{{ part }}/{% endfor %}

Falls nicht sicher ist, dass eine Kategorie immer aussagekräftig genug ist, kann das Kategorieseiten-Template beispielsweise auch auf den Meta-Titel einer Kategorie verweisen. Dieser spielt für die Suchmaschinenoptimierung so und so eine wichtige Rolle und sollte deshalb bereits entsprechend optimiert sein. Das Kategorieseiten-Template würde dann wie folgt aussehen:

{{ category.metaTitle|lower }}

Insofern die Standardeinstellung so belassen werden soll, sollte aber wie bei den Produkten die URL in Kleinbuchstaben ausgegeben werden. Das Kategorieseiten-Template würde dann in diesem Fall folgendermaßen aussehen:

{% for part in category.seoBreadcrumb %}{{ part|lower }}/{% endfor %}

Falls es erforderlich sein sollte, kann auch eine Kategorie über eine individuelle URL erreichbar sein. Dazu legt man bei der jeweiligen Kategorie im Tab "SEO" nach der Auswahl eines Verkaufskanals einen individuellen "SEO-Pfad" fest.

Die URL-Struktur für die Landingpages

Analog zu den Kategorieseiten kann für die Landingpages das SEO-URL-Template unter "Einstellungen", "Shop" und "SEO" beim Feld "Landingpage" definiert werden:

{{ landingPage.translated.url }}

Es wäre an dieser Stelle empfehlenswert, auch diese URLs in Kleinbuchstaben ausgeben zu lassen. Das Landingpage-Template würde dann folgendermaßen aufgebaut sein:

{{ landingPage.translated.url|lower }}

Zusätzlich kann in den Einstellungen der SEO-URL-Templates ausgewählt werden, ob bei einer Änderung der URL, beispielsweise durch das Ändern des Produktnamens, eine 301-Weiterleitung stattfinden oder ob aus der alten URL eine kanonische URL werden soll. In beiden Fällen entsteht kein Duplicate Content, der sich negativ auf das Ranking in den Suchergebnissen auswirken könnte.

Sobald alle gewünschten Änderungen vorgenommen wurden, muss der sogenannte SEO-Index neu aufgebaut werden, um die URLs zu aktualisieren. Dies kann man auf zwei verschiedenen Wegen erreichen: entweder betätigt man dazu die Schaltfläche "Indizes aktualisieren" unter "Einstellungen", "System" und "Caches & Indizes" oder führt über die Konsole den Befehl php bin/console dal:refresh:index aus.