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


Die SEO Einstellungen findest Du unter den Einstellungen.

Ü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.  

Als Info: Wenn man einene Produktnamen hat der länger als bsp. 50 Zeichen ist und diesen in der SEO-URL kürzen möchte kann man diese Variable verwenden 

{{ product.translated.name[:50] }}

Artikel-Variablen

In der SEO Schablone können Variablen ausgewählt werden, die nicht bei jedem Produkt Daten enthalten oder verfügbar sind. So sind bei einem Standardprodukt natürlich keine Informationen über Varianten vorhanden. Bitte achte bei der Auswahl der Variablen darauf, ob das Feld immer gefüllt sein wird. Ist das nicht der Fall kannst Du mit einer IF-Abfrage das SEO Template absichern.
Beispiel:{{ product.translated.name }}/{{ product.productNumber }}{% if product.canonicalProductId is not null %}/{{ product.canonicalProductId }}{% endif %}
Hier wird immer das Standardprodukttemplate genutzt. Wenn bei einem Produkt die canonicalProductId gefüllt ist, wird der Inhalt verwendet, sonst bleibt es beim Standard SEO-Pfad.

Canonical Links der Produkte werden nicht über SEO Variablen eingerichtet, sondern im Produkt. Das findest Du hier beschrieben.

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.categories.sortByPosition().first.breadcrumb %}{{ part }}/{% endfor %}

 

Breadcrumb ohne erste Kategorie - falls diese beispielsweise Einstiegspunkt ist

{% for part in product.categories.sortByPosition().first.breadcrumb|slice(1) %}{{ part }}/{% endfor %}{{ product.productNumber }}

 

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 }}

 

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 }}

 

Produktkonfigurationen

{{ product.variation }}

 

Steuer

{{ product.tax }}

 

Hersteller

{{ product.manufacturer }}

 

LayoutID

{{ product.cmsPageId }} 

 

LayoutSlot

{{ product.slotConfig }} 

 

Kategorieinformationen der direkt zugewiesenen Kategorien

{{ product.categories }} 

 

Medien CoverID

{{ product.coverId }}

 

Alle Customfieldwerte des Produktes

{{ product.translated.customFields }}

 

TagIDs

{{ product.tagIds }}

 

Durschnittliche Produktbewertung Nummerisch

{{ product.ratingAverage }}

 

Hauptkategorie

{{ product.mainCategories }}

 

Internes Speicherobjekt für die günstigste Preisermittlung

{{ product.cheapestPriceContainer }}

 

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 }}

 
Inhalt des Zusatzfeldes{{ product.customFields.NamedesFeldes }} 

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.

Landingpage

Eine Landingpage wird vorrausgesetzt, um das Landingpage-Feld nutzen zu können. Weitere Informationen findest Du hier.  

Im zweiten Feld ist die Anpassung des Template für die Landingpage (3) möglich. Im Standard wird hier die URL verwendet, die Du in den Einstellungen der Landingpage vergeben kannst. Solltest Du das Template für die Landingpages anpassen wollen, stehen Dir die folgenden Variablen zur Verfügung. 

Beispiele für Landingpage-Variablen

BeschreibungVariable
Eine 1, wenn die Landingpage aktiv ist. Sonst eine 0{{landingPage.active}}
UUID des der Landingpage zugewiesenem Layouts{{landingPage.cmsPageId}}
Name der Landingpage{{landingPage.name}}
metaTitle der Landingpage{{landingPage.metaTitle}}
metaDescription der Landingpage{{landingPage.metaTitle}}
Keywords der Landingpage{{landingPage.keywords}}
SEO URL der Landingpage{{landingPage.url}}
UUID der Landingpage{{landingPage.uniqueIdentifier}}
Versions ID der Landingpage{{landingPage.verionID}}
Datum der Erstellung der Landingpage{{landingPage.createdAt}}
Datum der letzten Änderung der Landingpage{{landingPage.updatedAt}}
Erweiterungen haben hier potentiell die Möglichkeit eigene Werte zu hinterlegen.{{landingPage.extensions}}
Inhalt des Zusatzfeldes{{landingPage.customFields.NamedesFeldes}}
Versions ID des dee Landingpage zugewiesenem Layouts{{landingPage.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, empfehlen wir diese nicht zu verwenden und gehen wir an dieser Stelle nicht weiter darauf ein.

Kategorieseite

Im dritten Feld ist die Anpassung des Template für die Kategorieseiten (4) 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

BeschreibungVariable
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 }}
Nächst untergeordnete Kategorie{{ category.afterCategoryId }}
Zusatzfelder{{ category.translated.customFields }}
ID des zugewiesenen Layouts{{ category.cmsPageId }}
Produktstream ID {{ category.productStreamId }}
Sollte nicht genutzt werden{{ category.slotConfig }}
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 }}
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 }}

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, empfehlen wir diese nicht zu verwenden und gehen wir an dieser Stelle nicht weiter darauf ein.

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 (5) 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.

Was ist eine Kanonische URL 

Eine kanonische URL ist die URL der Seite, von der die Suchmaschine annimmt, dass sie die repräsentativste von mehreren duplizierten Seiten auf deiner Website ist. Wenn Du beispielsweise mehrere URLs für dieselbe Seite hast, z. B. example.com?dress=1234 und example.com/dresses/1234, wählt die Suchmaschine eine davon als kanonische URL aus.

Die Seiten müssen nicht absolut identisch sein. Kleinere Änderungen an Listen, z. B. eine Sortierung nach Preis oder eine Filterung nach Artikelfarbe, führen nicht dazu, dass die Seite als eigenständige, separate Seite betrachtet wird. Die kanonische URL kann sich auch in einer anderen Domain befinden als das Duplikat.

War dieser Artikel hilfreich?