Du siehst Dir gerade den Artikel zu einer älteren Shopware Version an!

SEO-Einstellungen

In den SEO-Einstellungen kannst Du die Struktur für die SEO-URLs der Produktdetailseiten und Kategorien definieren. Hierzu steht Dir eine Vielzahl an Variablen zur Verfügung.

SEO-URL Templates

Über den Punkt Verkaufskanal (1) legst Du fest, ob Du die Konfiguration global für alle Verkaufskanäle oder nur für einen ausgewählten Verkaufskanal vornehmen möchtest.
Wenn Du einen speziellen Verkaufskanal ausgewählt hast und wieder zur allgemeinen Einstellung zurück wechseln möchtest, reicht es aus, in das Auswahlfeld zu klicken und den Inhalt heraus zu löschen. Anschließend wird Dir wieder "Alle Verkaufskanäle" angezeigt.

Produktdetailseite

In der ersten Zeile kannst Du das Template für die URL der Produktdetailseite (2) definieren. Beachte hierbei, dass die Variablen im Twig-Format angegeben werden müssen. Der Aufbau ist hier wie folgt:

{{ product.name }}

Neben dem Feld zeigt Dir ein Symbol an, ob die im SEO-Template hinterlegten Variablen valide sind.

  • Ein grüner Haken bedeutet, dass die Variablen korrekt sind.
  • Ein rotes X deutet an, dass mind. eine Variable nicht aufgelöst werden kann und Du den Eintrag anpassen musst, um die Einstellungen speichern zu können.

Rechts neben dem Feld für das SEO-URL -Template kannst Du aus diversen Variablen wählen. Diese werden durch einen Klick auf die Variable automatisch hinten an das SEO-Template angefügt.

Hierbei ist jedoch zu beachten, dass die Variablen mehrstufig sein können und diese nicht vollständig hinzugefügt werden. Dies erfordert eine anschließende manuelle Anpassung im SEO-Template-Feld. Die vollständigen Variablen findest Du in der unten aufgeführten Liste.
Ein Beispiel für eine nicht vollständige Variable ist der im Standard-Template eingetragene 

{{ product.translated.name }}

In der Auswahl auf der rechten Seite wird die Variable

{{ product.translated }}

ausgegeben. Diese ist jedoch eine "mehrstufige" Variable und erfordert die vollständige Angabe der weiteren Stufe. Hier ist es also erforderlich, manuell das

.name

zu ergänzen.

Artikel-Variablen

Beschreibung

Variable

Bestellnummer

{{ product.productNumber }}

ID

{{ product.id }}

Name

{{ product.name }}

EAN

{{ product.ean }}

Herstellername

{{ product.manufacturer.name }}

Veröffentlichungsdatum

{{ product.releaseDate }}

Meta Titel

{{ product.metaTitle }}

Beschreibung

{{ product.description }}

Keywords

{{ product.keywords }}

Breadcrumb

{% for part in product.mainCategory.breadcrumb %}{{ part }}/{% endfor %}

ParentID

{{ product.parentId }}

ChildCount (Anzahl der Varianten)

{{ product.childCount }}

Autoincrement

{{ product.autoIncrement }}

SteuerID

{{ product.taxId }}

HerstellerID

{{ product.manufacturerId }}

EinheitID

{{ product.unitId }}

Aktiv

{{ product.active }}

DisplayGroup (Gruppe der Varianten)

{{ product.displayGroup }}

Preis

{{ product.price }}

Herstellernummer

{{ product.manufacturerNumber }}

EAN

{{ product.ean }}

Verkäufe (Abgeschlossene Verkäufe)

{{ product.sales }}

Bestand

{{ product.stock }}

Verfügbarer Bestand

{{ product.availableStock }}

Verfügbar

{{ product.available }}

LieferzeitID

{{ product.deliveryTimeId }}

Lieferzeit (Derzeit nicht nutzbar)

{{ product.deliveryTime }}  

Wiederauffüllzeit in Tagen

{{ product.restockTime }}

Abverkauf

{{ product.isCloseout }}

Staffelung

{{ product.purchaseSteps }}

Maximalabnahme

{{ product.maxPurchase }}

Mindestabnahme

{{ product.minPurchase }}

Maßeinheit

{{ product.purchaseUnit }}

Grundeinheit

{ product.referenceUnit }}

Versandkostenfrei

{{ product.shippingFree }}

Einkaufspreis (Brutto)

{{ product.purchasePrices }}

Produkt hervorheben

{{ product.markAsTopseller }}

Gewicht

{{ product.weight }}

Breite

{{ product.width }}

Höhe

{{ product.height }}

Länge

{{ product.length }}

Erscheinungsdatum

{{ product.releaseDate }}

KategoriezuweisungsID

{{ product.categoryTree }}

VariantenausprägungsID

{{ product.optionIds }}

EigenschaftenID

{{ product.propertyIds }}

MetaBeschreibung

{{ product.metaDescription }}

MetaTitel

{{ product.metaTitle }}

Verpackungseinheit

{{ product.packUnit }}

Verpackungseinheit-Mehrzahl

{{ product.packUnitPlural }}

Ausprägungsausschluss

{{ product.variantRestrictions }}

Anzeigereihenfolge

{{ product.configuratorGroupConfig }}

HauptvariantenID

{{ product.mainVariantId }}

Produktkonfigurationen

{{ product.variation }}

Steuer

{{ product.tax }}

Hersteller

{{ product.manufacturer }}

Einheit (Derzeit nicht nutzbar)

{{ product.unit }} 

Preise (Derzeit nicht nutzbar)

{{ product.prices }} 

Niedrigster Preis (Derzeit nicht nutzbar)

{{ product.cheapestPrice }} 

Medien Cover (Derzeit nicht nutzbar)

{{ product.cover }} 

Elternartikel (Derzeit nicht nutzbar)

{{ product.parent }}

Kinder/Unterartikel/Varianten (Derzeit nicht nutzbar)

{{ product.children }} 

Medien (Derzeit nicht nutzbar)

{{ product.media }} 

LayoutID

{{ product.cmsPageId }} 

Layout (Derzeit nicht nutzbar)

{{ product.cmsPage }} 

LayoutSlot

{{ product.slotConfig }} 

Suchkeywords (Derzeit nicht nutzbar)

{{ product.searchKeywords }}

Übersetzung (Derzeit nicht nutzbar)

{{ product.translations }}  

CustomFieldset (Derzeit nicht nutzbar)

{{ product.customFieldSets }} 

Tags (Derzeit nicht nutzbar)

{{ product.tags }} 

Variantenausprägung (Derzeit nicht nutzbar)

{{ product.options }} 

Varianteneinstellung (Derzeit nicht nutzbar)

{{ product.configuratorSettings }} 

Kategorieinformationen der direkt und indirekt zugewiesenen Kategorien (Derzeit nicht nutzbar)

{{ product.categoriesRo }} 

Kategorieinformationen der direkt zugewiesenen Kategorien

{{ product.categories }} 

Medien CoverID

{{ product.coverId }}

Wurde mit der 6.4 entfernt (Derzeit nicht nutzbar)

{{ product.blacklistIds }}

Wurde mit der 6.4 entfernt (Derzeit nicht nutzbar)

{{ product.whitelistIds }}  

Alle Customfieldwerte des Produktes

{{ product.translated.customFields }}

Sichtbarkeit (Derzeit nicht nutzbar)

{{ product.visibilities }} 

TagIDs

{{ product.tagIds }}

Produktbewertungen (Derzeit nicht nutzbar)

{{ product.productReviews }} 

Durschnittliche Produktbewertung Nummerisch

{{ product.ratingAverage }}

Hauptkategorie

{{ product.mainCategories }}

SEO Urls des Produkts (Derzeit nicht nutzbar)

{{ product.seoUrls }}

Sämtliche bestellpositionen in dem das Produkt genutzt wird (Derzeit nicht nutzbar)

{{ product.orderLineItems }}

Crosssellings die an dem Produkt definiert sind (Derzeit nicht nutzbar)

{{ product.crossSellings }}

Produkt der Canocial (Derzeit nicht nutzbar)

{{ product.crossSellingAssignedProducts }}

Internes Speicherobjekt für die günstigste Preisermittlung

{{ product.cheapestPriceContainer }}

Productstream in dem das Produkt hitnerlegt ist (Derzeit nicht nutzbar)

{{ product.streams }}

Interne Referenz der ID des Produktes (Sollte nicht genutzt werden)

{{ product._uniqueIdentifier }}

ID der Version des Produktes

{{ product.versionId }}

Beinhaltet alle übersetzten Werte des Produktes

{{ product.translated }}

Einstellungsdatum

{{ product.createdAt }}

Letzte Änderung/Update

{{ product.updatedAt }}

Erweiterungen des Produktes (Pluginerweiterungen) 

{{ product.extensions }}

ProduktID

{{ product.id }}

VersionID des Elternproduktes

{{ product.parentVersionId }}

VersionsID des hinterlgten Herstellers

{{ product.productManufacturerVersionId }} 

VersionsID des Covers

{{ product.productMediaVersionId }}

VersionsID des hinterlegten CMS-Layout

{{ product.cmsPageVersionId }}

Generell stehen weitere Variablen zur Verfügung. Da Diese jedoch Inhalte bereitstellen, die zu regelmäßigen Änderungen der URL führen und dies zu einer negativen Beeinflussung im Ranking führt, gehen wir an dieser Stelle nicht weiter darauf ein.

Kategorieseite

Im zweiten Feld ist die Anpassung des Template für die Kategorieseiten (3) möglich. Im Standard wird hier die Kategoriestruktur (der sogenannte Breadcrumb) verwendet. Solltest Du das Template für die Kategorien anpassen wollen, stehen Dir die folgenden Variablen zur Verfügung

Beispiele für Kategorie-Variablen

Beschreibung Variable
Breadcrumb {% for part in category.seoBreadcrumb %}{{ part }}/{% endfor %}
ID {{ category.id }}
Name {{ category.translated.name }}
Meta-Titel {{ category.translated.metaTitle }} 
Beschreibung {{ category.description }}
Meta-Beschreibung {{ category.translated.description }} 
Kategorie {{ category }}
ID der übergeordneten Kategorie {{ category.parentId }}
Automatische Aufzählung in der Datenbank {{ category.autoIncrement }}
ID des zugewiesenen Bildes {{ category.mediaId }}
ID`s des Kategoriepfades {{ category.path }}
Kategorienebene {{ category.level }}
Aktiv {{ category.active }}
Anzahl der Unterkategorien {{ category.childCount }}
Wird nicht mehr genutzt {{ category.displayNestedProducts }}
Elternkategorie (Derzeit nicht Nutzbar) {{ category.parent }}
Unterkategorie (Derzeit nicht Nutzbar) {{ category.children }}
Übersetzung (Derzeit nicht Nutzbar) {{ category.translations }}
Bildname (Derzeit nicht Nutzbar) {{ category.media }} 
Zugewiesene Produkte (Derzeit nicht Nutzbar) {{ category.products }} 
Ist es in einer der Unterkategorien zugeordnet (Derzeit nicht Nutzbar) {{ category.nestedProducts }}
Nächst untergeordnete Kategorie {{ category.afterCategoryId }}
Zusatzfelder {{ category.translated.customFields }}
Zugewiesene Tags (Derzeit nicht Nutzbar) {{ category.tags }}
ID des zugewiesenen Layouts {{ category.cmsPageId }}
Zugewiesenes Layout (Derzeit nicht Nutzbar) {{ category.cmsPage }}
Produktstream ID  {{ category.productStreamId }}
Produktstream (Derzeit nicht Nutzbar) {{ category.productStream }}
Sollte nicht genutzt werden {{ category.slotConfig }}
SalesChannels in denen diese Kategorie als Hauptnavigation genutzt wird (Derzeit nicht Nutzbar) {{ category.navigationSalesChannels }}
SalesChannels in denen diese Kategorie als Footernavigarion genutzt wird (Derzeit nicht Nutzbar) {{ category.footerSalesChannels }} 
SalesChannels in denen diese Kategorie als Servicenavigation genutzt wird (Derzeit nicht Nutzbar) {{ category.serviceSalesChannels }}
Eingetragener Typ des Links. Produkt, Kategorie, Landingpage oder external {{ category.translated.linkType }}
Wird der Link in einem neuen Tab geöffnet? 1 oder 0 {{ category.translated.linkNewTab }}
Interner Link {{ category.translated.internalLink }}
Externer Link {{ category.translated.externalLink }}
In der Navigation ausblenden {{ category.visible }} 
Typ der Kategorie page, link oder folder {{ category.type }}
Produkt-Zuweisung Manuelle Ausswahl oder Dynamische Produktgruppe {{ category.productAssignmentType }}
Keywords {{ category.translated.keywords }}
Produktzuweisungen der jeweiligen Saleschannel {{ category.mainCategories }}
SEOUrls {{ category.seoUrls }} 
Eindeutiger Bezeichner {{ category._uniqueIdentifier }}
VersionsID {{ category.versionId }}
(Derzeit nicht Nutzbar) {{ category.translated }}
Erstellungsdatum {{ category.createdAt }}
Geändert am {{ category.updatedAt }}
Erweiterungen der Kategorie {{ category.extensions }}
ID der Übergeordneten Kategorie {{ category.parentVersionId }}
Nächst untergeordnete KategorieversionID {{ category.afterCategoryVersionId }}
VersionID des Layouts {{ category.cmsPageVersionId }}
Zughöriger Breadcrumb {{ category.seoBreadcrumb }}

Filterung

Es ist zusätzlich möglich, Filter in das SEO-Template einzubauen.  Hierdurch kann z.B. die gesamte URL klein geschrieben werden.
Die Filter werden mit einen "|" getrennt hinter der Variable innerhalb der {{}} angefügt.

Für die Kleinschreibung des Produktnamens wäre dies z.B. wie folgt möglich

ohne Filter

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

mit Filter

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

Bei einer FOR-Schleife wird dies im {{ part|lower }} angehangen. Für Kategorieseiten sieht dies z.B. so aus

ohne Filter

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

mit Filter

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


Generell kannst Du die verfügbaren Twig-Filter verwenden. Weitere Informationen hierzu findest Du in der Twig-Dokumentation unter https://twig.symfony.com/doc/3.x/filters/index.html

Einstellungen

Verhalten der Weiterleitung

Die Funktion Statt Canonical URLs direkt per HTTP 301 auf die aktuellste URL leiten (4) ermöglicht es, bei geänderten URLs eine HTTP-301-Weiterleitung auszugeben. Ist die Funktion deaktiviert, wird im Browser kein Hinweis zu der Weiterleitung ausgegeben.

SEO-Index neu aufbauen

Nachdem Du Änderungen am SEO-Template vorgenommen hast, ist es erforderlich, den Index neu aufzubauen, damit die URLs aktualisiert werden. 
Dies ist über die Konsole mittels des Befehls

php bin/console dal:refresh:index

möglich.

War dieser Artikel hilfreich?