SEO Modul konfigurieren

Hallo,

das SEO Modul ist mit EA2 da. Ich habe folgende Fragen dazu:

  • Es gibt voreingestellte Templates für Produktseiten und Kategorien. Produktseiten URL’s scheinen zu funktionieren. Kategorieseiten URL’s in der Navigation werden weiterhin so angezeigt:
    „navigation/a515ae260223466f8e37471d279e6406“. Was muss ich hier beachten?
  • Gibt es ein Tutorial/Beispiele für die Nutzung der Templates?
  • Beim ausgewählten Verkauskanal lassen sich die Templates nicht mehr auswählen/bearbeiten.

Danke und Gruß

Nachtrag:

Es scheint dass die Änderungen an den SEO Templates nicht übernommen werden. Gibt es einen Cache den ich löschen muss?

Hallo @blueroger‍ !

Zu Frage 1:

Die Seo Urls werden im Shopware Update initial via Message Queue erzeugt. Dies ist ein asynchroner Prozess, für den du entweder etwas im Admin sein oder einen Worker aufgesetzt haben musst (Infos dazu hier https://docs.shopware.com/en/shopware-platform-dev-en/internals/core/module/tasks#the-task-scheduler ). Falls das aus igrendeinem Grund bei dir nicht geklappt haben sollte, musst du manuell einen Reindexing anstoßen. Das kannst du mithilfe des Kommandos

bin/console dal:refresh:index

machen. Aus dem Admin heraus geht das leider im Moment (noch) nicht.

 

Zu Frage 2:

Dokumentation gibt es leider im Moment noch nicht, wird aber bald nachgereicht.

 

Zu Frage 3:

Die Templates „erben“ vom Standardtemplate. Um das Template für einen Verkaufskanal zu ändern, musst du einmal auf die kleine lilafarbene Kette klicken und so die Vererbung lösen

Zum Nachtrag:

Das ist so gewollt. Eine Änderung am Template kann eine neugenerierung aller Urls hervorrufen, was bei shops mit vielen tausenden Produkten sehr lange dauern kann. Mittelfristig werden wir auch das per Worker abarbeiten lassen, bis dahin musst du wie bei Frage 1 beschrieben neuindexieren. Ändert man einzelene Entitäten wie z.B. Produkte und Categorien aktualisiert sich deren Seo Url aber automatisch.

 

Beste Grüße aus Schöppingen

Sebastian

 

Hallo Sebastian,

danke für deine Antwort. Das mit dem index hat gut geklappt.

Folgende Fragen habe ich noch:

  • Wie kann ich in der URL Kategorien ausschließen. Es entstehen zu Zeit URL’S wie das hier: Footernavigation/UEber-uns/UEber-uns/
  • Ist es möglich die URL’s klein zu schreiben - siehe oben?
  • Wie kann ich Redirects anlegen um alte URL’s auf neue URL’s weiterzuleiten?

Danke und Gruß

Hi @blueroger‍ !

Zu Frage 1. Ausschließen von Katgorien geht im Moment nicht. Du kannst aber den SalesChannel Einstiegspunkt/Footeinstiegespunkt etc in den Saleschannel Einstellungen ändern, danach werden nur Kategorien unter dem jeweiligen Einstiegspunkt für den Kategorie breadcrump verwendet. Alternativ ist die Funktionalität, Urls nach Entität (also je Produkt, je Kategorie) hart mit einem eigenen String zu überschreiben schon Backendseitig implementiert, das Interface im Admin hat es aber leider nicht mehr ins EA2 Release geschafft. Spätestens im nächsten Release oder „bald“ auf dem Master wird dies aber möglich sein. Als dritte Möglichkeit kannst du auch dein Template anpassen, um ein gewisses Verhalten zu erzwingen (siehe Antwort auf Frage 2).

 

Zu Frage 2. Die Templates im Seo Modul sind einfach Twig Templates, in denen du verschiedene Operatoren verwenden kannst. Um deine Url komplett klein zu schrieben, kannst du den „lower“ filter verwenden, z.b. so:

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

Wenn du mit deinen Urls lieber schreien möchtest, kannst du auch „upper“ verwenden, um alles in Großbuchstaben zu schreiben

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

Mehr Infos sowie eine Liste aller möglichen Filter findest du in der Twig Dokumentation unter Filters - Documentation - Twig - The flexible, fast, and secure PHP template engine, wobei natürlich nicht alle möglichen Optionen Sinn für eine Url machen. Auch IF-Abfragen, FOR-Schleifen etc sind mit Twig möglich, einfach mal googlen :slight_smile: Wichtig ist, das du nach dem ändern des Templates einmal reindexierst (wie oben beschrieben)

 

Zu Frage 3:

Alte Urls „redirecten“ automatisch. Sobald du eine neue Seo Url generiest, wird die alte nie gelöscht, sondern nur auf „inaktiv“ gesetzt. Navigiert nun ein Nutzer z.B. über einen Link in einer Email auf eine deaktivierte/überholte URL, bekommt er trotzdem den ihr zugeordneten Inhalt ausgeliefert. Die Kennzeichnung, welche URL die aktuelle ist, läuft über den sog. „canonical“ tag, den Suchmaschienen wie redirects verarbeiten ( siehe z.B. Canonical Tag einfach und verständlich erklärt - SEO-Küche )

 

Beste Grüße aus Schöppingen

Sebastian

Hallo Sebastian,

danke.
SalesChannel Einstiegspunkt/Footeinstiegespunkt ist so eingestellt und die ausgewählte Kategorie (Footernavigation) wird in der URL mit angezeigt (die Navigation wird aber richtig gebaut, also ohne die ausgewählte Kategorie). Habe ich etwas nicht verstanden? 

lower hat geholfen, danke.

Redirects brauche ich weil ich ein anderer Shop (Magento) mit Shopware umsetze und Magento URL’s weiterleiten muss. Muss ich also das über htaccess machen?

Hallo @blueroger‍,

 

Zu Frage 1:

Ich glaube hier hab ich dich vielleicht falsch verstanden. Grundsätzlich wird im Breadcrumb einer Kategorie jeder Eintrag, der in der Hierarchie über ihr liegt verwendet. Wenn du dieses Verhalten für einige Seiten Kategorieurls spezifisch ändern willst, musst du dich an die Möglichkeiten 2 und 3 halten aus dem vorherigen Post halten: Das Twigtemplate anpassen mit IF-Abfragen, auf die Möglichkeit zum manuellen überschreiben warten oder manuell überschreiben per Rest API (siehe Frage 2).

Zu Frage 2:

Verstehe ich dich richtig, dass es du von Magento auf SW migrieren möchtest und dabei die Seo Urls übernehmen möchtest?

In diesem Fall wirst du selber Hand anlegen müssen. Allerdings wirst du dabei nur das aktelle redirect Verhalten von SW mit den Canonical Tags bekommen. Eine Response mit HTTP 301 redirect ist aktuell nicht vorgsehen. Wir diskutieren aber ob man später mal konfigurieren kann, welchen redirect man haben will.

Um die Seo Url manuell zu Übertragen kannst du dir die Datenbanktabelle seo_url bzw. die SeoUrlEntity im PHP Teil von SW 6 angucken. Diese Entitäten müsstest du auch per REST API schreiben können. Wenn du schon ein paar generiert URLs zur Anschauung hast, kann man sich die Funktionsweise des System ganz gut anhand einiger Datenbank Einträge anschauen. Wenn du möchtest, dass die alten URLs weiterhin funktionieren aber nicht mehr aktiv ausgespielt werden, kannst du “isCanonical” auf “NULL” und “isManual” auf “1” bzw "TRUE setzten. Möchtest du, dass die von SW generierten Urls ignoriert und die alten Magento Urls weiter ausgespielt werden, kannst du “isCanonical” auf “1” und “isManual” auf “1” bzw “TRUE”. Da es nur eine Url je Entität geben darf, die kanonisch ist, musst du in letzterem Fall ggf. die alten Urls “isCanonical=NULL” setzen.

Als Hintergrund: Die Url, die mit “isCanonical” gekennzeichnet ist immer die, die aktiv ausgespiel wird. “isManual” bezeichnet einen manuellen Override, dieser wird immer über den generierten URLs präferiert.

Hoffe, dass hilft dir etwas weiter.

Beste Grüße aus Schöppingen

Sebastian

 

Hallo Sebastian,

danke, das hört sich alles relativ kompliziert an.

Nur zum Verständnis: ich will in der URL bestimmte Kategorien ausschließen, wie z.B “Footernavigation”, die die erste Kategorien in der Hierarchie ist. In dem Fall will ich also alle Kategorien ausschließen die an erster Stelle in der Hierarchien angelegt sind. Dazu kommen noch weitere die vielleicht doppelt sind. Ich werde es mit dem Template versuchen, mal schauen ob mir das gelingt.

Ich denke allerdings, dass das schon übers Backend möglich sein sollte. Also eine Kategorie aus der URL Bildung/Pfad auszuschließen.

Die Redirects so zu erstellen, wie von dir beschrieben scheint mir wirklich kompliziert.

Mir geht es darum die URL’S so zu bilden wie sie jetzt im Magento angelegt sind und wo das nicht möglich ist, 301 Weiterleitungen einzurichten. Wahrscheinlich dann über eine htaccess Datei, wenn das übers Backend nicht geht.

Danke für deine Antworten,

@s_staffa‍

Hallo Sebastian,

du hast Canonical Tags erwähnt. Die gibt es aber im Quelltext nicht. Ist hier noch etwas geplant?

Danke und Gruß

 

Hi @blueroger‍ !

Zu deinem ersten Post: Das manuelle überschreiben von URLs ist wie gesagt schon technisch drin, hat es leider in diesem Release nur nicht in den Admin geschafft. Wird also im nächsten release defintiv drin sein :slight_smile: Das ganze ist grad nur so kompliziert, da nur über den technischen “Entwicklerweg” geht. Ob wir die Option für 301 Weiterleitungen zur Verfügung stellen wird noch intern diskutiert.

Zu deinem zweiten Post: Der canonical tag wird via Header gesetzt und funktioniert auch bei mir. Als test habe ich eine Produktseite aufgerufen, schaust du dann in die Entwicklerconsole und klappst die Header auf siehst du folgendes:

 

PHP Seitig wird das ganze in “\Shopware\Storefront\Framework\Routing\StorefrontSubscriber::setCanonicalUrl” gehandelt. Das Durchsuchen vom HTML in der Konsole hat bei mir auch nicht funktioniert, da hier scheinbar die Header ausgespart werden.

Beste Grüße aus Schöppingen

Sebastian

@s_staffa‍

alles klar. danke für deine Antwort.