Die Optimierung von SEO-URLs bei der Shopware Migration gehört zu den wichtigsten Aufgaben für dauerhaft gute Sichtbarkeit, Rankings und nachhaltigen Shop-Erfolg. Gerade beim Wechsel von Shopware 5 zu Shopware 6 wird die Bedeutung sauberer, verständlicher URLs oft unterschätzt. Doch welcher Weg ist wirklich der beste, um SEO-URLs ohne Rankingverluste, Doubletten und technische Stolperfallen in Shopware 6 zu übernehmen? In diesem Beitrag findest du alle Antworten, konkrete Praxis-Tipps und Tools für deine Shop-Migration. Ach ja, und mach erstmal ein Backup von allem. Shopware 5 und Shopware 6, sicher ist sicher.
Übersicht: SEO-URLs bei der Shopware Migration
- 1. Warum sind die SEO-URLs bei der Shopware Migration so wichtig?
- 2. Wo ist der Unterschied zwischen den SEO-URLs bei Shopware 5 und 6
- 3. Wichtiges Werkzeug zur Kontrolle und Vorbereitung: Die Google Search Console
- 4. Shop-Daten aus Shopware 5 erfassen und exportieren
- 5. Die einfachste Lösung für korrekte SEO-URLs in Shopware 6
- 6. Der Weg über den Produkt-Id Import aus Shopware 5
- 7. Das Plugin für alle Fälle
- 8. Der Ottscho-Trick
- 9. Der Feuerbär-Trick
- 10. Glossar
- 11. Weiterführende Links & Quellen
1. Warum sind die SEO-URLs bei der Shopware Migration so wichtig?
Man sollte grundsätzlich alle URLs so wie sind beibehalten, oder aber dafür sorgen, dass die korrekt weitergeleitet werden. Um dieses Ziel zu erreichen gibt es unterschiedliche Szenarien und Herangehensweisen, die wir im Einzelnen in diesem Beitrag so gut wie möglich beleuchten wollen.
SEO-URLs sind bei der Shopware-Migration so wichtig, weil sie maßgeblich die Rankings und den organischen Traffic des Shops beeinflussen. Jede Änderung oder der Verlust dieser URLs kann dazu führen, dass Seiten bei Google aus dem Index fallen, wertvolle Backlinks verpuffen und Besucher auf 404-Fehlerseiten landen. Im schlimmsten Fall verliert der Shop schlagartig einen Großteil seiner Sichtbarkeit, was direkte Auswirkungen auf Umsatz und Kundenanfragen hat.

SW6 Migration – SEO URL – 404 Seite
Deshalb ist es unverzichtbar, die bestehenden SEO-URLs bei der Migration entweder exakt zu übernehmen oder sie über 301-Weiterleitungen gezielt auf die neuen Pfade umzuleiten. Nur so bleibt die Seite für Nutzer und Suchmaschinen erreichbar und der bisher aufgebaute SEO-Wert erhalten.
Lass mich diese Zusatzfrage vorsichtshalber noch stellen.
Für wen ist das wichtig?
Dieses ganze Thema ist für dich umso wichtiger, je mehr organische Besucher dein Shop über Google hat. Du kannst noch so viele Artikel in deinem Shop haben, wenn dein Shop nur eine Handvoll Besucher über Google bekommt und deine Hauptumsatz eh über Anzeigen oder andere Wege kommt, dann kannst du dir rein theoretisch den ganzen Kram auch sparen und jede Mark weiter nur in die Schokolade stecken, als wäre dein Name Alpia.
SEO-URLs bei der Shopware Migration – zurück zur Übersicht
2. Wo ist der Unterschied zwischen den SEO-URLs bei Shopware 5 und 6
Der zentrale Unterschied zwischen den SEO-URLs in Shopware 5 und Shopware 6 liegt in der Art und Weise, wie die URLs generiert und verwaltet werden. Shopware 5 nutzt SEO-Templates meist mit der klassischen Artikel-ID oder Artikelnummer (z. B. /1234/meinArtikel), die als numerischer Wert in der Datenbank geführt wurde. Die URL-Struktur bleibt dadurch kompakt und ist auf eindeutige Zahlen und Namen begrenzt.
Shopware 6 arbeitet dagegen standardmäßig mit HEX-codierten Produkt-IDs und nutzt eine moderne Template-Logik. Hier werden SEO-URLs automatisch über Twig-Templates generiert (z. B. /{{ product.translated.name }}/{{ product.productNumber }}), und viele Variablen – wie Produktname, Hersteller oder Custom Fields – können flexibel eingebunden werden. Das ermöglicht personalisierte, sprechende URLs für verschiedene Verkaufskanäle, macht die 1:1-Übernahme von numerischen IDs aus Shopware 5 allerdings schwieriger.
Ein weiterer Unterschied und in diesem Fall, ein Vorteil von Shopware 6 ist die Möglichkeit, individuelle SEO-URLs pro Produkt und Kanal zu definieren sowie Duplicate Content durch automatische Canonical-Tags zu vermeiden. Allerdings verlangt die Anpassung der URL-Struktur in Shopware 6 bei einem Umstieg genaue Planung – besonders, wenn identische URLs wie in Shopware 5 gewünscht sind.
SEO-URLs bei der Shopware Migration – zurück zur Übersicht
3. Wichtiges Werkzeug zur Kontrolle und Vorbereitung: Die Google Search Console
Im Grunde kann man sich einfach nach folgender Faustregel richten: Sorge einfach dafür, dass jede URL aus dem alten Shop auch in der Shopware 6 Installation erreichbar ist. Mit dieser Regel und einem guten Bauchgefühl kannst du einfach machen was du willst. Es sei denn: Du willst Sicherheit. Entweder weil du für einen Kunden arbeitest und mehr Fakten als Bauch brauchst oder weil du einfach ein ZDF- und kein Bauch-Mensch bist.
Zunächst trägst du, sofern nicht schon beim Shop-Launch geschehen, deine neue Shop-URL in der Search Console ein (am besten als Property mit URL-Präfix), falls nicht schon geschehen. Überprüfe anschließend unter „Abdeckung“ und „Indexierung“, welche Seiten aktuell von Google gefunden werden. So erkennst du nicht nur, welche URLs live sind, sondern entdeckst auch schnell auftretende Fehler wie 404-Fehler, Weiterleitungsprobleme oder falsch gesetzte Canonical-Tags.
Jede relevante, alte URL sollte nach dem Go-Live aufrufbar sein – entweder direkt als identische Shopware-6-URL, oder zuverlässig per 301-Weiterleitung. Fehlt eine Weiterleitung oder Seite, erscheint sie rasch als Problem im Monitoring der Search Console.

Google Search – Leistung und Indexierung
Was wirst du sehen, wenn du alles richtig machst:
- Die Zahl der indexierten Seiten bleibt gleich oder wird höher.
- Die Zahl der nicht indexierten Seiten bleibt gleich oder wird kleiner
Was passiert wenn du alles falsch machst?
- Genau das Gegenteil.
- Die Klicks aus der Websuche könnten sich drastisch verringern
Also bau keinen Mist.
SEO-URLs bei der Shopware Migration – zurück zur Übersicht
4. Shop-Daten aus Shopware 5 erfassen und exportieren
Im nächsten Schritt der URL-Migration sollte eine vollständige Bestandsaufnahme aller relevanten Shopseiten und Assets erfolgen. Die Google Search Console ist hier das zentrale Tool, da sie dir unter „Indexierung“ und „Seiten“ eine detaillierte Übersicht zu allen indexierten und nicht indexierten URLs, Statuscodes (wie 404, 301, Canonical, noindex) sowie speziellen Problemfällen liefert. Damit werden nicht nur Produkt- und Kategorieseiten, sondern auch PDFs, Bilder und Landingpages sichtbar, deren Erhalt unter Umständen für das Ranking wichtig ist.

Google Search Console – Indexierung
Nutze die Exportfunktion der Search Console, um sowohl die indexierten als auch nicht indexierten Seiten – inklusive spezieller Statusangaben – als CSV, Excel- oder Google Tabelle zu sichern. Über die Filterfunktion kannst du gezielt nach „Seiten mit Weiterleitung“, „404 – Nicht gefunden“, „durch noindex ausgeschlossen“ oder „durch robots.txt blockiert“ auswählen und ggf. für größere Shops mehrere Exporte anlegen. Mit Bulk-Exports nach Google BigQuery ist auch die Verarbeitung sehr großer Datenmengen möglich.
Ergänze jede URL in deiner Export-Tabelle um zusätzliche Spalten: Notiere für jede Seite, ob sie in Shopware 6 übernommen, weitergeleitet, gelöscht oder technisch bereinigt werden soll. Für Problemfälle wie Duplikate, alternative Canonicals oder blockierte Seiten dokumentierst du, ob und wie sie nach dem Relaunch gehandhabt werden.
Zur Validierung aller Assets empfiehlt sich ergänzend ein Crawl mit SEO-Tools wie Screaming Frog: Dadurch findest du auch Mediendateien (Bilder, PDFs), die Google möglicherweise bereits indexiert hat und die entsprechend weitergeleitet oder optimiert werden sollten. Bestimmte Filetypen kannst du auch mit Suchoperatoren wie site:deinedomain.de filetype:pdf direkt bei Google ermitteln.
Ein weiterer Aspekt ist die Auswertung von alten URL-Parametern: In Shopware 5 sind SEO- und Suchparameter wie „?number=“, „sOrdernumber“, „sAction“ oft im Einsatz. Über die Search Console können diese gezielt dokumentiert oder bei der Migration ausgeschlossen werden, damit keine unnötigen Crawling- und Duplicate-Content-Probleme entstehen.
Durch diese systematische Erfassung und Dokumentation aller alten URLs und Assets stellst du sicher, dass im neuen Shop kein Ranking und keine relevante Seite verloren geht. Jeder Schritt ist durch Fakten und klare Reports abgesichert – das sorgt für Transparenz gegenüber Kunden und Sicherheit im Migrationsprozess.
SEO-URLs bei der Shopware Migration – zurück zur Übersicht
5. Die einfachste Lösung für korrekte SEO-URLs in Shopware 6
Nun zu unserem ersten Lösungsansatz für saubere SEO-URLs in Shopware 6 aus Shopware 5:
Die einfachste Lösung ist folgende: Du hast bestenfalls nur ein paar Duztend Artikel in deinem Shop und trägst jetzt einfach von Hand bei jedem Artikel, den du zuvor migriert hast die alte SEO-URL aus deinem Shopware 5 Shop ein.
Dafür rufst du den ersten deiner Artikel auf, klickst oben auf den Reiter SEO, scrollst mit dem Daumen nach ganz unten und trägst den Link ohne die Top Level Domain und ohne vorangehendem Slash Zeichen so in das Feld SEO-Pfad ein:

SEO URL – Artikel SEO-Pfad im Admin
Im Screenshot sieht man die URL, wie sie von Shopware 6 generiert wurde. Die ursprüngliche URL aus dem Shopware 5 Shop jedoch sieht so aus:
https://sprit-schleuder.com/whisky/schottland/speyside/2223/macallan-fine-oak-triple-cask-18-jahre-0-70l-edition-2018//karton-beschaedigt-whisky
Das heißt wir müssten in dieses Feld unsere URL, so wie es die Neandertaler damals gemacht haben, von Hand und in folgender Weise in das besagte Feld eintragen:
/whisky/schottland/speyside/2223/macallan-fine-oak-triple-cask-18-jahre-0-70l-edition-2018//karton-beschaedigt-whisky
Was müssen wir bei diesem verlockend simplen aber altertümlichen Ansatz beachten?
a) Verwende die Canonical URL
Sofern dein Produkt aus Shopware 5 in mehreren Kategorien gelistet ist (z.B. in Kondome & SALE), hat der Artikel dementsprechend auch mehrere URLs von denen die korrekte als Canonical URL markiert ist. Die Canonical URL aus Shopware 5 für den jeweiligen Artikel findest du am einfachsten mit einem Blick in den Quellcode. Gehe auf die Produkt-Detail-Seite des Artikels, mache einen Rechtklick und gehe auf Quellcode anzeigen und suche nach Canonical.

SW6 Migration – SEO URL – Canonical Link im Quellcode
Sofern du Varianten für deinen Artikel hast musst du daran denken hier als Canonical URL die URL des Haupt-Artikels einzutragen. Andernfalls wird dein Artikel, der zuvor nur eine URL hatte, in Shopware 6 so viele URLs haben, wie er Varianten hat. Ergebnis: Maximale Verwirrung und Entwertung des Haupt-Links bei Google.
Wer viele Artikel mit vielen Varianten hat, kann mit diesem und kostenlosen Plugin einige Stunden oder Minuten auf sein Zeitspar-Konto einzahlen:
https://github.com/AREA-NET-GmbH-Shopware-Agentur/shopware6-plugin-canonical-variants
b) Lösche tausende Produkte
Der einfachste Ansatz funktioniert tatsächlich auch nur in einem extrem einfachen Setup. Wer ein paar hundert oder ein paar tausend Artikel, bestenfalls noch mit etlichen Varianten im Sortiment hat, wird sich mit dieser Methode nicht anfreunden können.
Es sei denn: Du löschst, frei nach dem Simplify Prinzip, einen Großteil deiner Produkte aus deinem Shop. Aber auch dann solltest du ordnungshalber die URLs der gelöschten Produkte gescheit per 301er-Redirect weiterleiten. Sonderlich empfehlenswert ist dieser Teil der Anleitung also nicht wirklich. Fahre fort mit dem nächsten Punkt, gehe nicht über Los, ziehe keine 1000 €.
c) Denk auch an Kategorien und Landing Pages
Bei all dem Fokus auf die Artikel SEO-URLs sollten wir die URLs der Kategorien und aller anderen Unterseiten ebenfalls nicht außer Acht lassen. Alle besagten Bereiche erreichen wir in dem wir in den Kategorien auf die jeweilige Landingpage oder Kategorie klicken und dort, wie zuvor bei den Artikeln, den SEO-Reiter aufsuchen um nach Auswahl des richtigen Verkaufskanals das Feld SEO-Pfad mit dem richtigen Inhalt zu beglücken.

Migration – SEO URL – Kategorien SEO-Pfad
d) Die nächste Indexierung
Beim nächsten Mal wenn du URLs erstellt bzw. den Produkt SEO URL-Index neu generierst werden die URLs nach dem Profil in deinen SEO-Einstellungen erstellt. Die alten URLS werden in dem Fall jedoch an die neuen umgeleitet. (Meine ich zumindest, prüft das und gebt mir Feedback ihr Schlingel.)
SEO-URLs bei der Shopware Migration – zurück zur Übersicht
6. Der Weg über den Produkt-Id Import aus Shopware 5
Kommen wir zu der nächsten Methode, die ein Stück weit anspruchsvoller ist. Bei diesem Workaround werden wir die exakten Produkt-SEO-URLs aus Shopware 5 im Shopware 6 nachbilden.
Der Aufbau der Shopware 5 URLs
Wie wir weiter oben gelernt haben ist in der Shopware 5 Produkt URL immer noch eine Zahl eingebunden. Bei dieser Zahl handelt es sich um die interne Produkt-Id die Shopware 5 automatisch vergibt.
Hier haben wir eine solche URL:
https://sprit-schleuder.com/rum/neu-im-rum-regal/3161/don-papa-masskara-rum-40-vol.-0-7-ltr.-flasche
Der Aufbau ist also: Domain [sprit-schleuder.com/] + Kategorie [Rum] + Unterkategorie [Neu im Rum Regal] + Produkt-Id [3161] + Produktname [Don Papa Masskara Rum 40% Vol. 0,7 Ltr. Flasche]
Beachte zusätzlich folgende Punkte:
– Alle Buchstaben in der URL sind klein geschrieben
– Leerzeichen in Kategorie und Artikelnamen werden durch Bindestriche ersetzt
Was uns in Shopware 6 fehlt:
Das einzige was uns hier fehlt ist die Produkt-Id, also 3161 – diese Zahlen gilt es in erster Instanz nun aus Shopware 5 zu ex- und in Shopware 6 zu importieren.
Los geht’s.
Zusatzfeld anlegen:
Wie in dem unten verlinkten Foren-Beitrag nachzulesen ist der erste Schritt bei unserem Vorhaben in Shopware 5 ein Zusatzfeld anzulegen. In diesem Zusatzfeld werden wir anschließend die prominente Produkt-Id rein kopieren.
Achtet beim Aufruf des Zusatzfelder Bereichs in Shopware 5 darauf, dass ihr im Bereich Artikel seid, sonst bindet ihr das Zusatzfeld an anderer Stelle ein. In der Regel befindet man sich beim ersten Aufruf aber auch direkt im richtigen Bereich.
Da es sich bei dem Inhalt des Felds ausschließlich um ganze Zahlen handelt fülle ich die Felder so aus:

SW6 Migration – SEO URL – Shopware 5 zusatzfeld für id
Hier noch einmal zum mitschreiben oder kopieren:
Spaltenname: attr12
Spaltentyp: Integer
Label: Produkt id
Support Text: Produkt id für SEO-URL
Hilfe-Text: Produkt id für SEO-URL Export (SW6 Migration)
Falls bei euch die Spalte attr12 schon einen anderen Inhalt hat, dann nehmt ihr natürlich eine andere Spalte. Solange die anderen Sachen identisch übernommen werden, kann relativ wenig schief gehen. Nehmt einfach das nächste leere Feld, heißt wenn ihr bis attr7 alles belegt habt, dann nehmt ihr attr8 als Spaltennamen.
Als nächstes geht es in den phpmyadmin Bereich wo wir als erstes ein Backup der Datenbank oder zumindest der Tabelle s_articles_attributes anlegen. Anschließend kopieren wir mit diesen magischen Zeilen die Produkt-Ids aus der s_articles Tabelle in die Spalte attr12 in der Tabelle s_articles_attributes. Den Befehl gebt ihr, nachdem ihr auf den Namen eurer Datenbank klickt, im Reiter SQL ein.
UPDATE s_articles_attributes AS attr JOIN s_articles_details AS details ON attr.articledetailsID = details.id JOIN s_articles AS art ON details.articleID = art.id SET attr.attr12 = art.id;
Wenn euer Spaltenname nicht attr12 sondern ein anderer ist, dann müsst ihr den Namen logischerweise austauschen. Wenn es in eurer s_articles_attributes danach so aussieht, sollte alles passen:

SW6 Migration – SEO URL – Shopware 5 zusatzfeld für id
Exportieren könnt ihr das ganze dann indem ihr das Standard Export Profil für Produkte kopiert und das Feld dort ergänzt. Das könnte so aussehen:

Shopware 6 Migration – SEO URL – SW5 Tabelle mit kopierten ids
Das könnt ihr aber auch sein lassen, wenn ihr eine Shop Migration durchführt werden alle Felder importiert. Mehr dazu weiter unten.
Zusatzfeld in Shopware 6 anlegen:
Technischer Name: custom_sw5_product_ids
Position: 1
In allen Admin-Sprachen pflegen: ja
Label (Deutsch): Shopware 5 Produkt ids für SEO URLs
Label (Englisch): Shopware 5 product id for SEO URLs
Verwenden für: Produkte

SEO URL – Shopware 6 Zusatzfeld-Set
Unten das Feld anlegen:
Typ: Zahlenfeld
Technischer Name: custom_sw5_product_ids_number
Position: 1
Verfügbar in Warenkörben: Ja
Modifizierter über Store-API: Ja
Sichtbar über Store-API: Ja
Label: Shopware 5 Produkt ID
Platzahlter: 123
Hilfetext: Shopware 5 Produkt ID für SW6 SEO-URLs
Zahlentyp: Ganzzahlenfeld
Schrittweise: –
Minimum: –
Maximum: –

Shopware 6 – Zusatzfeld Zahl
so habe ich es zumindest beim ersten Mal gemacht ABER grundsätzlich geht es auch noch etwas einfach, denn bei der Migration wird uns in der Regel auch gleich ein Set von Zusatzfeldern für die Artikel generiert, mit den ganzen Daten die aus Shopware 5 kommen. Darunter sind auch die Felder attr1, attr2 … attr12 alle dabei.
Das heißt wenn wir bisher nur getestet haben und noch eine Migration durchführen (können), dann sollten wir am besten auch dieses Feld nutzen. Ist die Migration nicht mehr durchführbar bleibt auch noch eine — mir bekannte — Möglichkeit übrig.
SEO-URLs bei der Shopware Migration – zurück zur Übersicht
7. Das Plugin für alle Fälle
Der hauseigene Shopware Import bietet sich hier aus dem Grund nicht an, da das Mindest Import-Profil für Produkte unter anderem folgenden Pflichfelder abfragt, die alle korrekt ausgefüllt werden müssen:
– taxId (Schwer zu trennen, 7% und 19%)
– price (muss man raussuchen)
– stock (bei jedem Artikel unterschiedlich)
– name (gleiches Problem)
Wer also vorhatte (mit Bordmitteln) eine CSV Datei mit 2 Spalten hochzuladend, darf jetzt enttäuscht sein.
Das Firebear Import Plugin macht jedoch möglich, was in Shopware 6 normalerweise nicht geht, dafür aber in Shopware 5 noch sehr gut ging:
Mapping (nur) über die SKU / Artikelnummer.
Was heißt das genau? Das heißt wir können einfach mit einer 2-spaltigen CSV Datei unser gewünschtes Ziel erreichen und die Produkt Ids aus Shopware 5 in ein Zusatzfeld in Shopware 6 kopieren.
So sollten eure Spalten in der CSV Datei benannt sein:
a) ProductNumber
b) migration_darmboutiquede_product_attr12
Zur zweiten Spalte:
Benutzt den technischen Namen für das Zusatzfeld, das ihr angelegt habt oder alternativ ein leeres Zusatzfeld aus dem Zusatzfeld Set der Artikel-Migration. Ich habe den zweiten Weg gewählt und den technischen Namen des attr12 Zusatzfeld aus einer vorherigen Migration verwendet.
Unter die beiden Spalten kommen dann eben noch die jeweiligen Inhalte. Mehr braucht ihr nicht, keine Preise, Steuersätze, kein gar nix.
Das Plugin findet ihr unter diesen Link im Plugin Store:
https://store.shopware.com/de/fireb81914862032m/verbesserte-import-export-und-massenaktionen.html

Firebear Import plugin
Ist das Plugin installiert ist der Rest fast noch einfacher als das Plugin im Store zu kaufen und zu installieren.
a) Fahre mit der Maus in der Shopware Admin-Sidebar über den Punkt Erweiterungen.
b) Klicke dann unten auf den neuen Link Verbesserte Import-, Export- und Massenaktionen – Import > Import
c) Klicke als nächstes auf Neues Profil
e) Leg ein Profil mit den Einstellungen aus dem Screenshot an

SEO URL – Import Profil
Name: Schreib was sinnvolles
Entitätstyp: product
Dateityp: CSV
Datei: Ladet eure CSV hoch
Die ganzen Schalter unten in den erweiterten Einstellungen kann man für unseren zweck unberührt lassen. So jetzt ist da sProfil fertig und ihr könnt die Datei importieren.
Tipp: Testet den Import am besten erst immer mit einer Testdatei wo nur ein Eintrag drin ist. Wenn das klappt könnt ihr die eigentliche Datei nehmen. Sollte diese besonders groß sein sollte man die Datei in mehrere Stücke aufteilen. Ich würde aber mal aus dem Bauch heraus sagen, das da bis 1 MB Größe alles durchlaufen würde.
Danach geht es dann ans Mapping.

SEO URL – Import Mapping
BILD
Was ist zu tun? Geht sicher, dass oben SKU ausgewählt ist und wählt unten beim Mapping die richtigen Felder aus. Also: productNumber & customFields.
Dann klickt ihr auf weitere bekommt eine Vorschau der Daten die zusätzlich eingetragen werden (bei mir wurde in der Vorschau kein Wert für das Zusatzfeld angezeigt, importiert wurde es trotzdem). Dann klickt ihr noch einmal auf Speichern und anschließend auf Import.
Dann geht’s los:

SEO URL – Import Start
Bei knapp 9000 Einträgen 40 Minuten später:

SEO URL – Import 40 Minuten
Es dauert zwischen einer bis zu 2 Sekunden pro Eintrag. Wenn du also noch angeln gehen wolltest und in einer halben Stunden los musst, überleg dir genau wie viele Artikel du importieren willst. Achte darauf, dass dich dein Rechner während dem import nicht abschaltet, während du die Wartezeit mit Wäsche aufhängen oder Angelsachen sortieren verbringst.
ist das erledigt hast du jetzt zu jedem Artikel die gute alte Shopware 5 Produkt Id in deinem Zusatzfeld … attr12 zur Verfügung und kannst die von nun an zum Aufbau deines Produkt-SEO-URL Profil verwenden.
Aus der Praxis: Nach dem ersten großen Import ist der Shop am Ende abgeschmiert. Es sollten also eventuell nicht unbedingt 9000 Artikel auf einmal importiert werden. Nach dem Import war erst einmal das Backend weg. Danach habe ich den Browser Cache und die Cookies gelöscht den Browser neu geladen und konnte mich wieder im backend anmelden. Bis das geladen war hat es initiativ aber erst einmal 1-2 Minuten gedauert, dann lief wieder alles geschmeidig und die ids waren importiert.
Anschließend konnte ich aber im Bericht erkennen, dass der Import gut funktioniert hat und es nur ein paar Fehler gab, in etwas in dem Verhältnis wie im obigen Screenshot noch zu sehen ist.
Hier teile ich euch mein Profil, wie ich es aus erster Hand vom Shopware Support erhalten habe (Danke Florian).
{%- for part in product.categories.sortByPosition().first.breadcrumb|slice(2) -%}{{- part|slugify -}}/{%- endfor -%} {%- if product.customFields.technischerName|default('') -%}{{- product.customFields.technischerName|slugify -}}/{%- endif -%} {{- product.translated.name|slugify -}}
Was es macht:
Es packt hinter die Domain: Die Kategorie + eventuell vorhandene Unterkategorien + unsere Produkt Id aus dem Zusatzfeld + den Produktnamen
Was ich noch anpasse ist den Platzhalter für den technischen Namen gegen migration_darmboutiquede_product_attr12 auszutauschen:
{%- for part in product.categories.sortByPosition().first.breadcrumb|slice(2) -%}{{- part|slugify -}}/{%- endfor -%} {%- if product.customFields.migration_darmboutiquede_product_attr12|default('') -%}{{- product.customFields. migration_darmboutiquede_product_attr12|slugify -}}/{%- endif -%} {{- product.translated.name|slugify -}}
Noch etwas… das lower hatte gefehlt, damit alle Buchstaben in der URL kleingeschrieben werden. Sooo hat es dann final geklappt:
{%- for part in product.categories.sortByPosition().first.breadcrumb|slice(2) -%}{{ part|slugify|lower }}/{%- endfor -%}{% if product.customFields.migration_darmboutiquede_product_attr12|default('') %}{{ product.customFields.migration_darmboutiquede_product_attr12|slugify|lower }}/{% endif %}{{ product.translated.name|slugify|lower }}
Danach müsst ihr den Index für die SEO-URLs neu generieren.
Tipp: Wenn ihr es über das Backend macht, dann wählt bei der Methode Nur Auswahl aktualisieren aus. Beim Index klickt ihr dann nur product.seo-url an, so wird nur das aktualisiert, was du wirklich brauchst und du musst nicht so lange warten.
Update, 04.11.2025: Um das Template NULL-sicher zu machen sollte es noch mit if Schleifen verpackt werden, wie Weihnachtsgeschenke:
{%- if product.categories and product.categories.sortByPosition().first and product.categories.sortByPosition().first.breadcrumb -%} {%- for part in product.categories.sortByPosition().first.breadcrumb|slice(2) -%} {{ part|slugify|lower }}/ {%- endfor -%} {%- endif -%} {%- if product.customFields.migration_darmboutiquede_product_attr12|default('') -%} {{ product.customFields.migration_darmboutiquede_product_attr12|slugify|lower }}/ {%- endif -%} {{ product.translated.name|default('')|slugify|lower }}
SEO-URLs bei der Shopware Migration – zurück zur Übersicht
8. Der Ottscho-Trick
Der Ottscho-Trick ist benannt nach der gleichnamigen Agentur und Shopware Urgestein Ottscho IT, die sich offenbar schon oft genug mit den Migrationen rumgeschlagen hat und einen alternativen Weg im Shopware Forum teilt (Link s. unten).
In eigenen Worten sag er dort:
„… Mein Tipp, lege in SW6 eine SEO Vorlage ohne ID (hast du ja nicht) an. Dann sollte die URL bis auf die ID identisch sein. In der htacces oder nginx Direktiven machst du eine RewriteRule, welche die ID entfernt. Somit bekommst du keine Probleme mit den bereits indexierten URLs.“
Hier noch einmal langsam zum mitdenken:
a) SEO URL-Struktur für Produkt-Detailseiten festlegen:
Zunächst einmal baut er die SEO-Link Struktur — bis auf die Produkt id, die es in Shopware 5 in der Form nicht mehr gibt — in Shopware 6 exakt so nach, wie sie auch in Shopware 5 aufgebaut wurde. Ein Beispiel für eine Link Struktur:
{% for part in product.categories.sortByPosition().first.breadcrumb|slice(2) %}{{ part|lower }}/{% endfor %}{{ product.translated.name|lower }}
Das Prinzip: Domain + Kategorie + Unterkategorien (sofern vorhanden) + Produktnamen
Alle Buchstaben sind klein geschrieben und es gibt keinen Dateiendungsnamen (wie z.B.: html)
Wenn das in Shopware 5 auch der Fall war, dann sollten die URLs jetzt — bis auf die id — identisch sein.
Wenn ja: soweit so gut.
b) RewriteRule erstellten
Jetzt wird es spannend. Mit der RewriteRule wird die id aus der alten URL erkannt, gelöscht und so an die neue URL weitergeleitet:
RewriteEngine On
# Entfernt das Ziffernsegment am Ende VOR dem Produktnamen aus beliebigen Kategorie-Tiefen
RewriteRule ^(.*/)[0-9]{1,4}/([^/]+)$ /$1$2 [R=301,L]
Die Regel kann je nach Aufbau der Link Struktur differieren, der Gedanke bleibt aber der gleiche und mit etwas Recherche und einer Portion bekommt ihr das beim 4. Versuch spätestens hin. Ottscho selbst schreibt leider im Foren-Beitrag nicht wie er die Regel genau verwendet.
Was macht die Regel:
^(.*/) greift alle Verzeichnisse (Kategorien und Unterkategorien) ab.
[0-9]{1,4}/ sucht nach einem Slash gefolgt von einer 1-4-stelligen Zahl und einem weiteren Slash.
([^/]+)$ nimmt den Produktnamen auf.
Das Ziel ist die identische Kategorie-Struktur, jedoch ohne den Zahlenslug vor dem Produktnamen.
Wer mehrere Sales Channels mit unterschiedlichen Regeln hat, kann unterschiedliche Weiterleitungen wie folgt einrichten:
# Für Sales Channel 1 (z.B. domain1.de)
<If "%{HTTP_HOST} == 'domain1.de'">
RewriteEngine On
RewriteRule ^(.*/)[0-9]{1,4}/([^/]+)$ /$1$2 [R=301,L]
</If>
# Für Sales Channel 2 (z.B. domain2.de)
<If "%{HTTP_HOST} == 'domain2.de'">
RewriteEngine On
RewriteRule ^(.*/)[0-9]{1,4}/([^/]+)$ /$1$2 [R=301,L]
</If>
Wer seinen Shop auf einem NGINX Server kostet kann als Alternative folgende Direktive nutzen:
# Im passenden server{}- oder location{}-Block
rewrite ^(.*/)[0-9]{1,4}/([^/]+)$ $1$2 permanent;
Wie es da genau für individuelle Sales Channels funktioniert kann man über seinen Hoster bei Bedarf anfragen und einen schönen Gruß von mir ausrichten.
Top-Update von Ottscho selbst:
In einem Mail-Austausch habe ich den Original-Code Schnipsel von ihm erhalten… Trommelwirbel…
Für die .htaccess Datei (Apache Server)
RewriteCond %{REQUEST_URI} !media
RewriteCond %{REQUEST_URI} !files
RewriteCond %{REQUEST_URI} !thumbnail
RewriteRule ^(.*)\/[0-9]{3,}/(.*)$ /$1/$2 [R=301,L]
Für NGINX Server:
set $rule 0;
if ($request_uri !~* "^/media/")
{
set $rule 1;
}
if ($request_uri !~* "^/files/")
{
set $rule 2$rule;
}
if ($request_uri !~* "^/thumbnail/")
{
set $rule 3$rule;
}
if ($rule = "321")
{
Wie man sieht wird nicht einfach wild umgeleitet sondern werden zunächst bestimmte Dinge von der Umleitung ausgenommen.
9. Der Feuerbär-Trick – SEO-URLs nachträglich per CSV Datei importieren
Dann gibt es noch die Möglichkeit die SEO-URLs aus Shopware 5 zu exportieren um sie dann in Shopware 6 zu importieren. Um den Import auf diesem Weg umzusetzen wird zusätzlich das Firebear Import/Export Plugin benötigt.
Du kannst es 1 Monat kostenlos testen und findest es hier:
https://store.shopware.com/de/fireb81914862032m/verbesserte-import-export-und-massenaktionen.html
1110 Downloads und gute Bewertungen sprechen für sich. Wir nutzen es auch gerne.
9.1 Alle URLs mit dazugehöriger productnumber
Zum warm werden können wir uns schonmal die Gesamtliste aller Produkte von Shopware 5 in phpmyadmin mit den 2 wichtigsten Angaben ausgeben lassen:
- Produktnummer
- SEO-URL
Nutze dafür diesen Befehl:
SELECT ad.ordernumber, cru.path AS seo_url FROM s_core_rewrite_urls cru JOIN s_articles_details ad ON ad.articleID = CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(cru.org_path, 'sArticle=', -1), '&', 1) AS UNSIGNED) WHERE cru.main = 1 AND cru.org_path LIKE '%sArticle=%';
So könnte die Ausgaben in eurem phpmyadmin Bereich aussehen

Was fällt dir auf? Die URLs sind groß geschrieben, was in den meisten Fällen falsch ist, da die URLs bestenfalls in Shopware 5 und auch 6 in Kleinbuchstaben ausgegeben werden.
Mit diesem Befehl lassen wir uns gleich die Buchstaben alle klein anzeigen:
SELECT ad.ordernumber, LOWER(cru.path) AS seo_url FROM s_core_rewrite_urls cru JOIN s_articles_details ad ON ad.articleID = CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(cru.org_path, 'sArticle=', -1), '&', 1) AS UNSIGNED) WHERE cru.main = 1 AND cru.org_path LIKE '%sArticle=%';
Jetzt sieht das Ergebnis schon besser aus!

Unter der Liste findet ihr den Button exportieren und könnt es euch anschließend als CSV-Datei runterladen.
Wer einen kleinen Shop mit wenig Produkten hat, kann theoretisch mit dieser Liste losziehen und die URLs von Hand anpassen.
Der Rest hat schonmal eine grobe Übersicht und einen Etappensieg in Form einer CSV-Datei in der Tasche.
9.2 Alle URLs Produktnummer + Shop-Name exportieren
Da wir in Shopware 6 in der Regel mehrere Verkaufskanäle haben und die SEO-URLs diesen zugeordnet werden brauchen wir, insbesondere bei Migrationen aus Shopware 5 Shops mit mehreren Sub-Shops, auch die Angabe zum Sales Channel oder eben den Shop-namen aus Shopware 5. Das ist wichtig um die Produkte später den richtigen Spalten der Import-Datei zuzuordnen.
Kurz gesagt: Wir brauchen einen neuen SQL-Befehl mit einer Extra-Portion an Informationen.
Mit diesem Befehl, lassen wir uns in der 3. Spalte noch den Shop Namen ausgeben:
SELECT ad.ordernumber, LOWER(cru.path) AS seo_url, cs.name AS shop_name FROM s_core_rewrite_urls cru JOIN s_articles_details ad ON ad.articleID = CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(cru.org_path, 'sArticle=', -1), '&', 1) AS UNSIGNED) JOIN s_core_shops cs ON cs.id = cru.subshopID WHERE cru.main = 1 AND cru.org_path LIKE '%sArticle=%';

Unten klicken wir wieder auf Exportieren und wählen das CSV Format aus. Die schnelle Exportmethode eignet sich für Kleine Dateien.

Wenn ihr die Datei das erste Mal öffnet sollte man diese Einstellungen vorerst beibehalten:

Am besten speichert ihr die Datei noch einmal unter neuem Namen bevor ihr die bearbeitet, so dass ihr eine Sicherung vom Original habt.
9.3 Export Datei umstrukturieren für Sales Channel Zuordnung
Dieser Schritt ist essentiell für alle Shop-Betreiber die in Shopware 5 mehrere Substanzen-Shops auf unterschiedlichen Domains haben, die jetzt in Shopware 6 ebenfalls mehreren unterschiedlichen Sales Channels zugeordnet werden müssen.
In unserem Fall ging es dabei um 2 Sales-Channels.
Was ist zu tun?
a) Neue Datei anlegen
Zunächst einmal legen eine neue Datei mit einer Spalte für die produktnumber an und dann noch je eine Spalte, also in unserem falls 2 Spalten, für Sales Channels an und benennen sie nach den jeweiligen Shopnamen.
– Spalte 1: productnumber
– Spalte 2: SEO-URL des ersten Sub-Shops
– Spalte 3: SEO-URL des zweiten Sub-Shops
a) Inhalte aus der Export-Datei filtern
Als erstes markieren wir die mit dem Shopnamen und filtern nach dem Namen des ersten Shops über den Bereich:
Datei > More Filters > Standard Filter und tragen im Feld Value den Namen des Shops ein. Ich nutze hierfür Libre Office.

Jetzt werden mir nur die Einträge für den Sales Channel bzw. den Subshop Darmboutique angezeigt.
Jetzt können wir diese Inhalte sauber in die neu angelegte Datei kopieren, wo sie hingehören. Beim ersten Subshop kommen die URLs in die zweite Spalte und beim nächsten Sun-Shop eben in die dritte Spalte und so weiter, sofern es noch mehr gibt.
In der Praxis sieht es dann so aus, dass man in der neuen Datei alle Produkte in unterschiedlichen Spalten untereinander hat.
z.B.:
– Zeile 1 – 1893: Alle Produkte aus dem 1. Subshop
– Zeile 1894 – 9733: Alle Produkte aus dem zweiten Subshop.
Die Produktnummern bleiben alle untereinander in einer Spalte und die Spalte für URLs verschiebt sich je nach Shop. Hier sieht man das Ende der ersten und den Anfang der zweiten Liste.

9.4 Import Profil anlegen und Inhalte einfügen
Um das passende Import-Profil anzulegen, müssen wir als erstes einen Export durchführen. Dafür gehen wir in die Plugin Einstellungen und da auf Export.
Beim anlegen des Profil wählen wir folgende Einstellungen:
Entitätstyp: product Export file type: csv Ausgang-Quelle: Datei
Auf der nächsten Seite haken wir nur diese Werte an: product & seo_urls
Und exportieren dann die CSV Datei.
Was wir darin finden sind in der ersten Spalte die Produktnummer und dann noch eine Handvoll zusätzliche Spalten für alle vorhandenen Sales Channels, egal ob mit oder ohne Frontend.
Hier gilt es erst einmal alle unnötigen Spalten zu löschen und nur die 3 benötigten übrig zu lassen.
Anschließend befüllen wir die Spalten mit den URLs und Produktnummern aus unserem vorsortierten Shopware 5 Export.
Wichtig ist, dass oben der Header der Datei vom jeweiligen Sales Channels über den richtigen URLs steht, denn nur so kann die SEO-URL korrekt dem passenden Sales Channel zugeordnet werden.
Jetzt könnt ihr mit der angepassten Export-Datei ein Import-Profil anlegen.
Bei uns sind das jetzt diese 3 Spalten:
– product_number
– seo_urls_#019155d41d5173e8b7fd4cb7dc87449f#2fbb5fe2e29a4d70aa5854ce7ce3e20b
– seo_urls_#019155d41d577395a349a65c1de8d1e7#2fbb5fe2e29a4d70aa5854ce7ce3e20b
Wenn wir uns die UUIDs näher anschauen, dann sehen wir dass der erste Wert die ID des Sales Channels ist der zweite Wert ist die Sprache.
Heißt: Wenn du einen Shop mit 2 Sprachen hast, dann hast du an der Stelle auch doppelt so viel Spaß beim vorsortieren und hättest dann je Sales Channel 2 Spalten die du in deiner Import-Datei haben musst.
Heißt aber ebenso: Ihr könnt den Header der Datei auch anlegen ohne vorher in Shopware 6 zu exportieren, in dem ihr einfach die UUIDs für Sales Channel und Sprache raussucht.
9.5 Import starten
Falls ihr beim Import den Fehler: Falsches Nebeneinanderstellen bekommt, kann es helfen die Inhalte aus der CSV Datei in einen frische CSV zu kopieren und erneut zu speichern. Dabei sollte darauf geachtet werden, dass als Trenner das Semikolon genutzt wird.
Noch etwas derhr wichtiges für den Import:
URL rewrite verhalten muss Überschreiben erzwingen sein.
Mit der korrekten CSV Datei sollte euer Mapping in etwa so aussehen. Das mittlere Feld ist bei diesem Produkt leer, weil es die URL nur für den anderen Sales Channel gibt.

Klickt euch wieder durch den Import-Prozess. Testet das ganze am besten erst einmal mit einem Produkt je Sub-Shop. Dann könnt ihr im Admin Bereich gucken ob sich die SEO-URL geändert hat oder nicht.
Wenn ja — Feuer frei für den großen Import. Der Import von 9000 Zeilen dauert etwas 1-2 Stunden.

Solange man nach dem Import kein neues SEO-URL-Template mehr für die Produkte anlegt, bleiben die URLs auch bei neuer Indexierung so im Shop bestehen und kriegen den vollen Link-Juice aus dem alten Shop übertragen und vermeiden vor allem 404-Fehler Seiten und frustrierte Kunden.
SEO-URLs bei der Shopware Migration – zurück zur Übersicht
SEO-URLs bei der Shopware Migration – zurück zur Übersicht
10. Glossar
301-Weiterleitung: Ein permanenter technischer Mechanismus zur Überleitung von Nutzern und Suchmaschinen von einer veralteten Adresse zu einer neuen URL. Die 301-Weiterleitung garantiert, dass die SEO-Werte, wie Linkpopularität und Domainautorität, vollständig zum neuen Ziel übernommen werden.
404-Seite: Diese Fehlerseite taucht auf, wenn die eingegebene Internetadresse nicht gefunden werden kann – etwa durch Löschung, technische Fehler oder Tippfehler. Sie gibt Hinweise auf die Nichtverfügbarkeit der gewünschten Inhalte und kann helfen, gezielt alternative Angebote oder Suchfunktionen bereitzustellen, um Besucher nicht zu verlieren.
Canonical URL: Eine als „Original“ deklarierte Webadresse, die von Suchmaschinen bevorzugt indexiert wird, wenn es mehrere identische oder ähnliche Seiten gibt. Das Canonical-Tag im Quelltext überträgt gezielt den gesamten SEO-Wert und die Rankingkraft auf die festgelegte Hauptseite und verhindert, dass doppelter Inhalt negative Auswirkungen auf das Ranking hat.
Link Juice: Der „Linksaft“ bezeichnet die SEO-Stärke, Autorität und das Rankingpotenzial, die über einen Hyperlink von einer Seite auf eine andere weitergegeben werden. Eine gezielte Verteilung von Link Juice erfolgt über interne Verlinkungen, Weiterleitungen und Canonical-Tags, um die Sichtbarkeit einzelner Seiten zu maximieren.
SEO-URLs: Sprechende, für Suchmaschinen optimierte Webadressen, die zur besseren Indexierung Schlüsselbegriffe, wie Produkt- oder Kategoriebezeichnungen, enthalten und Lesbarkeit für Nutzer sowie Bots sicherstellen. SEO-URLs sind elementar für gute Rankings, weil sie den Seiteninhalt direkt in der Adresse widerspiegeln.
Slug: Der spezifische, sprechende Abschnitt einer URL nach der Domain, häufig ein Produkt- oder Kategoriename. Das Slug-Format basiert auf Kleinbuchstaben, vermeidet Leerzeichen sowie Sonderzeichen und nutzt Bindestriche, um SEO und User Experience gleichermaßen zu unterstützen.
URL Mapping: Dieser technische Prozess regelt bei Website-Migrationen die exakte Zuordnung von alten auf neue URL-Strukturen. Jeder vorherige Link erhält eine optimale Weiterleitung auf das neue Ziel, um sowohl Suchmaschinen als auch Nutzer reibungslos umzuleiten und SEO-Verluste zu vermeiden.
SEO-URLs bei der Shopware Migration – zurück zur Übersicht
10. Weiterführende Links & Quellen
SEO-Tipps zum Wechsel auf Shopware 6 [Shopware Blog]:
https://www.shopware.com/de/news/seo-tipps-zum-wechsel-auf-shopware-6/
Migration SW5 zu SW6 – Struktur SEO-URLs übernehmen [Shopware Forum]:
https://forum.shopware.com/t/migration-sw5-zu-sw6-struktur-seo-urls-uebernehmen/94708/23
Automatisierte Canonical Tag Vergabe für Shopware 6, kostenloses Plugin [github]:
https://github.com/AREA-NET-GmbH-Shopware-Agentur/shopware6-plugin-canonical-variants
Shopware Forum: Neues Import Profil (Probleme bei CSV Upload
https://forum.shopware.com/t/neues-import-profil/107120/8
Updates:
- 04.11.2025: Der Feuerbär-Trick & null-sicheres SEO-URL-Template mit Produktnummer
- 19.10.2025: Ergänzung des Originalcodes von Ottscho











