Bei Shopware-Migrationen von Version 5 zu 6 oder bei Shop-Relaunches ist die professionelle Umsetzung von 301 Weiterleitungen entscheidend für den Erhalt deiner SEO-Rankings und organischen Traffic. Als Shopware-Agentur begleiten wir Migrationsprojekte, bei denen oft tausende URLs korrekt weitergeleitet werden müssen. 301 Weiterleitungen auf nginx und Apache erfordern dabei besondere Sorgfalt – insbesondere bei Shopware-Installationen mit mehreren Sales Channels, wo domain-spezifische Konfigurationen zwingend notwendig sind. In diesem praxisorientierten Leitfaden teilen wir unsere Erfahrung aus Shopware-Migrationen und zeigen dir, wie du 301 Weiterleitungen professionell implementierst, Performance-Probleme vermeidest und typische Fehler in Multi-Shop-Umgebungen umgehst. Unser Fokus liegt dabei auf real erprobten Lösungen für Shopware 5 zu 6 Migrationen, Sales Channel Management und automatisierter Generierung von Massen-Weiterleitungen.
Übersicht: 301 Weiterleitungen bei Shopware-Migrationen
- 1. Grundlagen von 301 Weiterleitungen für Shopware-Shops
- 2. Shopware 5 zu 6 Migration: URL-Strukturen und Herausforderungen
- 3. Multi-Shop-Umgebungen und Sales Channels in Shopware
- 4. 301 Weiterleitungen auf nginx für Shopware einrichten
- 5. 301 Weiterleitungen auf Apache für Shopware mit .htaccess
- 6. Domain-spezifische Weiterleitungen für Sales Channels
- 7. Automatisierte Generierung von Massen-Weiterleitungen
- 8. URL-Mapping-Strategien für Shopware-Migrationen
- 9. Testing und Debugging von Weiterleitungen
- 10. Performance-Optimierung bei vielen Weiterleitungen
- 11. Häufige Fehler bei Shopware-Migrationen und deren Lösungen
- Quellen und weiterführende Links
1. Grundlagen von 301 Weiterleitungen für Shopware-Shops
Eine 301-Weiterleitung ist ein permanenter HTTP-Statuscode, der Suchmaschinen und Browser darüber informiert, dass eine Ressource dauerhaft an einen neuen Ort verschoben wurde. Bei Shopware-Migrationen ist dies das wichtigste Werkzeug, um SEO-Rankings und organischen Traffic zu erhalten. Im Gegensatz zu temporären 302-Weiterleitungen signalisiert der 301-Status, dass die alte URL nicht mehr zurückkehren wird und die neue URL als kanonische Adresse betrachtet werden soll.
Für Shopware-Betreiber ist dies besonders kritisch: Suchmaschinen wie Google übertragen bei korrekter Implementierung bis zu 90-99% des PageRank und der Link-Autorität auf die neue URL. Bei einer typischen Shopware 5 zu 6 Migration können das mehrere Jahre SEO-Arbeit sein, die ohne professionelle 301 Weiterleitungen verloren gehen würden.
Warum 301 Weiterleitungen bei Shopware-Migrationen unverzichtbar sind
Als Shopware-Agentur haben wir bei Migrationsprojekten die Auswirkungen fehlender oder fehlerhafter Weiterleitungen erlebt. Die Konsequenzen sind deutlich messbar:
- Traffic-Einbrüche von 40-70%: Ohne Weiterleitungen verlieren Shops innerhalb weniger Wochen den Großteil ihres organischen Traffics
- Verlust von Rankings: Hart erkämpfte Top-Platzierungen bei Google verschwinden, wenn alte URLs auf 404-Fehler laufen
- Negative Nutzererfahrung: Kunden, die über Bookmarks oder externe Links kommen, landen auf Fehlerseiten
- Verlust von Backlink-Wert: Hunderte oder tausende wertvolle Backlinks verlieren ihre Wirkung
- Conversion-Verluste: Kunden, die auf 404-Seiten landen, brechen den Kaufprozess ab
Shopware-spezifische Szenarien für 301 Weiterleitungen
- Shopware 5 zu 6 Migration: URL-Strukturen ändern sich grundlegend – von /detail/index/sArticle/123 zu SEO-optimierten URLs wie /produkt/artikelname
- Kategorie-Umstrukturierungen: Bei Navigationsänderungen verschieben sich Kategorien in der URL-Hierarchie
- Sales Channel Launches: Neue Sales Channels mit eigenen Domains erfordern präzise Weiterleitungs-Konfigurationen
- SEO-URL-Optimierungen: Nachträgliche Verbesserung von Produkt- und Kategorienamen in URLs
- Domain-Migration: Umzug von alter auf neue Hauptdomain inkl. aller Unterseiten
- Hersteller-Seiten-Restrukturierung: Änderungen in der Hersteller-URL-Struktur nach Updates
In Multi-Shop-Umgebungen mit mehreren Sales Channels wird die Situation noch komplexer: Hier müssen Weiterleitungen domain-spezifisch konfiguriert werden, damit sie nur für den jeweiligen Shop greifen und nicht versehentlich andere Sales Channels beeinflussen. Dies ist eine der häufigsten Fehlerquellen, die wir bei Shopware-Projekten sehen.
301 Weiterleitungen Shopware Migration – zurück zur Übersicht
2. Shopware 5 zu 6 Migration: URL-Strukturen und Herausforderungen
Die Migration von Shopware 5 zu Shopware 6 ist einer der anspruchsvollsten Anwendungsfälle für 301 Weiterleitungen. Die URL-Architektur hat sich zwischen den Versionen fundamental geändert, was systematisches URL-Mapping und präzise Weiterleitungskonfiguration erfordert.
Grundlegende Unterschiede in der URL-Struktur
Shopware 5 verwendete oft technische URLs mit Parametern, während Shopware 6 auf vollständig SEO-optimierte URL-Pfade setzt:
Shopware 5 Produktdetailseite:
https://shop.de/detail/index/sArticle/123/sCategory/45
Shopware 6 Produktdetailseite:
https://shop.de/whisky/schottland/islay/laphroaig-25-jahre-cask-strength
Diese Änderung bietet bessere SEO-Performance, erfordert aber präzise Weiterleitungen von den alten URLs zu den neuen Pfaden.
Typische URL-Änderungen bei Shopware-Migrationen
Aus unserer Erfahrung als Shopware-Agentur begegnen uns bei Migrationen typischerweise diese URL-Transformationen:
- Kategoriepfade werden detaillierter: /spirituosen → /spirituosen/whisky/schottland/islay
- Produktnamen werden vollständig ausgeschrieben: /2221/bud-spencer → /whisky/deutschland/2221/bud-spencer-the-legend-rauchig-batch-3
- Hersteller-Seiten erhalten eigene Pfade: /don-papa → /don-papa-rum oder /hersteller/don-papa
- CMS-Seiten werden umstrukturiert: /custom/index/sCustom/8 → /ueber-uns
- Blog-Artikel ändern ihre URLs: /blog/detail/123 → /magazin/whisky-tasting-guide
- Landing Pages werden neu organisiert: /campaign/sommer2022 → /sale/sommerschlussverkauf
Herausforderungen bei der URL-Migration
Die größten technischen Herausforderungen bei Shopware-Migrationen:
1. Produktvarianten und URL-Dubletten
In Shopware 5 hatten Produktvarianten oft eigene URLs mit verschiedenen sArticle-IDs. In Shopware 6 teilen sich Varianten eine Haupt-URL mit Parametern. Dies erfordert intelligentes Mapping:
# Shopware 5: Verschiedene Varianten-URLs
/detail/index/sArticle/2221 # Batch 2
/detail/index/sArticle/2223 # Batch 3
# Shopware 6: Eine URL für alle Varianten
/whisky/bud-spencer-legend?variant=batch-3
2. Mehrsprachige URL-Strukturen
Bei internationalen Shops ändert sich die URL-Struktur pro Sprache. Jede Sprachversion benötigt eigene Weiterleitungen:
# Deutsch
/weitere/obstbrand → /schnaps/obstbrand
# Englisch
/other/fruit-brandy → /spirits/fruit-brandy
# Französisch
/autre/eau-de-vie → /spiritueux/eau-de-vie-de-fruits
3. SEO-URL-Konflikte
Manchmal existieren in Shopware 6 mehrere Produkte oder Kategorien mit ähnlichen Namen, was zu URL-Kollisionen führen kann. Shopware fügt automatisch Suffixe hinzu (-1, -2 etc.), aber die Zuordnung muss korrekt gemapped werden.
Erfolgsmetriken für Shopware-Migrationen
Basierend auf praktischer Erfahrung sind folgende Benchmarks für erfolgreiche Shopware-Migrationen realistisch:
- URL-Mapping-Quote: 85-96% automatisches Matching (bei guter Datenbasis)
- Manuelle Nachbearbeitung: 4-15% der URLs erfordern händisches Matching
- 404-Rate nach Go-Live: Unter 2% bei professioneller Umsetzung
- Traffic-Retention: 92-98% des organischen Traffics wird erhalten
- Ranking-Erhalt: 90-95% der Top-10-Rankings bleiben bestehen
Diese Zahlen erreichen wir durch systematisches URL-Mapping, automatisierte Generierung von Weiterleitungen und gründliches Pre-Launch-Testing.
Die Shopware-Datenbank als Informationsquelle
Für präzises URL-Mapping nutzen wir die Datenbank-Strukturen beider Shopware-Versionen:
Shopware 5 – Relevante Tabellen:
s_core_rewrite_urls– Alle SEO-URLs und ihre Zuordnungens_articles_details– Produkt- und Varianteninformationens_categories– Kategoriestruktur und URLss_articles_supplier– Herstellerseiten
Shopware 6 – Relevante Tabellen:
seo_url– Zentrale Tabelle für alle SEO-URLsproduct– Produktinformationen inkl. product_numbercategory– Neue Kategoriestruktursales_channel_domain– Domain-Zuordnung für Sales Channels
Durch SQL-Joins zwischen alten und neuen Produkt-IDs oder Artikelnummern lässt sich das Mapping automatisieren.
301 Weiterleitungen Shopware Migration – zurück zur Übersicht
3. Multi-Shop-Umgebungen und Sales Channels in Shopware
nginx verwendet eine andere Syntax als Apache und bietet mehrere Möglichkeiten, 301 Weiterleitungen zu implementieren. Die gängigste Methode ist die Verwendung der rewrite-Direktive in der Server- oder Location-Konfiguration.
Einfache nginx-Weiterleitung
Die grundlegende Syntax für eine einzelne 301-Weiterleitung in nginx sieht folgendermaßen aus:
rewrite ^/alte-url$ https://example.com/neue-url permanent;
Das Keyword permanent erzeugt dabei den 301-Statuscode. Alternativ kann auch redirect für temporäre 302-Weiterleitungen verwendet werden.
nginx-Weiterleitungen mit regulären Ausdrücken
nginx bietet mächtige Regex-Unterstützung für komplexere Weiterleitungsmuster:
rewrite ^/produkt/([0-9]+)/(.+)$ https://example.com/shop/artikel/$1/$2 permanent;
Hier werden Produktnummern und Namen aus der alten URL extrahiert und in die neue Struktur übernommen. Dies ist besonders nützlich bei Shopware-Migrationen, wo sich URL-Muster ändern, aber IDs erhalten bleiben.
Mehrere Weiterleitungen in nginx
Bei vielen Weiterleitungen empfiehlt es sich, diese in einer separaten Konfigurationsdatei zu sammeln:
# In /etc/nginx/conf.d/redirects.conf
rewrite ^/don-papa$ https://sprit-schleuder.com/don-papa-rum permanent;
rewrite ^/weitere/obstbrand$ https://sprit-schleuder.com/Weitere/Brandy/ permanent;
rewrite ^/obstbrand$ https://sprit-schleuder.com/schnaps/obstbrand permanent;
Diese Datei wird dann in die Haupt-Serverkonfiguration eingebunden:
server {
listen 80;
server_name sprit-schleuder.com;
include /etc/nginx/conf.d/redirects.conf;
# Weitere Konfiguration...
}
Return-Direktive für bessere Performance
Für einfache Weiterleitungen ohne Regex bietet nginx die performantere return-Direktive:
location = /alte-seite {
return 301 https://example.com/neue-seite;
}
Diese Methode ist schneller als rewrite, funktioniert aber nur für exakte Pfadübereinstimmungen ohne Pattern-Matching.
301 Weiterleitungen nginx Apache – zurück zur Übersicht
3. 301 Weiterleitungen auf Apache mit .htaccess
Apache-Server verwenden traditionell die .htaccess-Datei für Weiterleitungen. Diese liegt im Document Root des jeweiligen Shops und wird von Apache automatisch verarbeitet. Für 301 Weiterleitungen stehen zwei Hauptmethoden zur Verfügung: die einfache Redirect-Direktive und das mächtigere mod_rewrite-Modul.
Einfache Redirect-Direktive
Die unkomplizierteste Methode für Apache-Weiterleitungen:
Redirect 301 "/alte-url" "https://example.com/neue-url"
Diese Syntax ist übersichtlich und funktioniert für die meisten Standard-Anwendungsfälle. Für mehrere Weiterleitungen einfach untereinander auflisten:
Redirect 301 "/don-papa" "https://sprit-schleuder.com/don-papa-rum"
Redirect 301 "/weitere/obstbrand" "https://sprit-schleuder.com/Weitere/Brandy/"
Redirect 301 "/newsletter" "https://sprit-schleuder.com/newsletter"
mod_rewrite für komplexe Weiterleitungen
Für komplexere Szenarien mit regulären Ausdrücken oder Bedingungen kommt mod_rewrite zum Einsatz:
RewriteEngine On
RewriteRule ^alte-url$ https://example.com/neue-url [R=301,L]
Die Flags haben folgende Bedeutung:
- R=301: Redirect mit Statuscode 301 (permanent)
- L: Last – stoppt die Verarbeitung weiterer Regeln, wenn diese zutrifft
- NC: NoCase – Groß-/Kleinschreibung ignorieren
- QSA: Query String Append – URL-Parameter übernehmen
Pattern-Matching mit mod_rewrite
Besonders bei Shopware-Migrationen nützlich – Weiterleitungen mit Variablen:
RewriteEngine On
RewriteRule ^produkt/([0-9]+)/(.+)$ https://example.com/shop/artikel/$1/$2 [R=301,L]
Hier werden Produktnummer und Name aus der alten URL extrahiert und in die neue Struktur eingefügt.
Vollständiges .htaccess-Beispiel
# Redirects for sprit-schleuder.com
# Generated from weiterleitungen_boutique.xlsx
# 301 Permanent Redirects
Redirect 301 "/don-papa" "https://sprit-schleuder.com/don-papa-rum"
Redirect 301 "/weitere/obstbrand" "https://sprit-schleuder.com/Weitere/Brandy/"
Redirect 301 "/obstbrand" "https://sprit-schleuder.com/schnaps/obstbrand"
Redirect 301 "/wiki/gin-wissen/was-sind-botanicals" "https://sprit-schleuder.com/wiki/was-sind-botanicals"
301 Weiterleitungen nginx Apache – zurück zur Übersicht
4. Multi-Shop-Umgebungen und Sales Channels
In der Praxis betreiben viele Unternehmen mehrere Shops auf einem Server – entweder als separate Domains oder als Sales Channels innerhalb einer Shopware-Installation. Hier wird die Konfiguration von 301 Weiterleitungen deutlich anspruchsvoller, denn ohne korrekte Domain-Bedingungen greifen Weiterleitungen für alle Shops gleichzeitig.
Das Problem: Shop-übergreifende Weiterleitungen
Stell dir vor, du hostest bei einem Anbieter wie Timme Hosting folgende Struktur:
- darmboutique.de – Hauptshop für Darmboutique-Produkte
- sprit-schleuder.com – Subshop für Spirituosen (Sales Channel in Shopware)
Beide Shops laufen auf demselben Webserver. Wenn du nun eine Weiterleitung wie diese einrichtest:
rewrite ^/don-papa$ https://sprit-schleuder.com/don-papa-rum permanent;
Dann gilt diese Regel für ALLE Domains auf dem Server. Das bedeutet: Ein Besucher, der darmboutique.de/don-papa aufruft, wird fälschlicherweise zu sprit-schleuder.com weitergeleitet – obwohl diese Weiterleitung nur für sprit-schleuder.com gedacht war.
Shopware Sales Channels und URL-Routing
Shopware 6 verwaltet Sales Channels über eine zentrale Installation. Jeder Sales Channel kann eine eigene Domain haben, teilt sich aber die Code-Basis und oft auch die nginx/Apache-Konfiguration. Dies erfordert besondere Aufmerksamkeit bei der Implementierung von 301 Weiterleitungen:
- Jeder Sales Channel hat eigene URL-Strukturen
- Kategorie- und Produktpfade können sich zwischen Sales Channels unterscheiden
- Weiterleitungen müssen präzise auf den jeweiligen Sales Channel abzielen
- Domain-Bedingungen sind zwingend erforderlich
301 Weiterleitungen nginx Apache – zurück zur Übersicht
5. Domain-spezifische Weiterleitungen
Um das Problem shop-übergreifender Weiterleitungen zu lösen, müssen wir Domain-Bedingungen in unsere Konfiguration einbauen. Die Implementierung unterscheidet sich zwischen nginx und Apache erheblich.
Domain-Bedingungen in nginx
nginx bietet die $host-Variable, mit der wir Domain-spezifische if-Bedingungen erstellen können:
# Redirects nur für sprit-schleuder.com
if ($host = 'sprit-schleuder.com') {
rewrite ^/don-papa$ https://sprit-schleuder.com/don-papa-rum permanent;
rewrite ^/weitere/obstbrand$ https://sprit-schleuder.com/Weitere/Brandy/ permanent;
rewrite ^/obstbrand$ https://sprit-schleuder.com/schnaps/obstbrand permanent;
}
So werden die Weiterleitungen nur ausgeführt, wenn die Anfrage tatsächlich an sprit-schleuder.com gerichtet ist. Anfragen an darmboutique.de bleiben unberührt.
Mehrere Domains in nginx
Wenn du mehrere Domains mit unterschiedlichen Weiterleitungen verwaltest:
# Weiterleitungen für sprit-schleuder.com
if ($host = 'sprit-schleuder.com') {
rewrite ^/don-papa$ https://sprit-schleuder.com/don-papa-rum permanent;
rewrite ^/stroh$ https://sprit-schleuder.com/stroh-rum permanent;
}
# Weiterleitungen für darmboutique.de
if ($host = 'darmboutique.de') {
rewrite ^/naturdarm$ https://darmboutique.de/naturdaerme/schwein permanent;
rewrite ^/kunstdarm$ https://darmboutique.de/kunstdaerme/cellulose permanent;
}
Domain-Bedingungen in Apache
Apache verwendet mod_rewrite mit RewriteCond für Domain-Prüfungen:
RewriteEngine On
# Weiterleitungen nur für sprit-schleuder.com
RewriteCond %{HTTP_HOST} ^sprit-schleuder\.com$ [NC]
RewriteRule ^don-papa$ https://sprit-schleuder.com/don-papa-rum [R=301,L]
RewriteCond %{HTTP_HOST} ^sprit-schleuder\.com$ [NC]
RewriteRule ^weitere/obstbrand$ https://sprit-schleuder.com/Weitere/Brandy/ [R=301,L]
Die RewriteCond muss vor jeder RewriteRule wiederholt werden, die unter dieser Bedingung ausgeführt werden soll. Das [NC]-Flag bedeutet „No Case“ und ignoriert Groß-/Kleinschreibung.
Optimierte Apache-Variante mit Gruppierung
Um die Wiederholung von RewriteCond zu vermeiden, können wir mehrere Regeln in einem Block zusammenfassen:
RewriteEngine On
# Block für sprit-schleuder.com
RewriteCond %{HTTP_HOST} ^sprit-schleuder\.com$ [NC]
RewriteCond %{REQUEST_URI} ^/don-papa$ [OR]
RewriteCond %{REQUEST_URI} ^/weitere/obstbrand$ [OR]
RewriteCond %{REQUEST_URI} ^/obstbrand$
RewriteRule ^don-papa$ https://sprit-schleuder.com/don-papa-rum [R=301,L]
RewriteRule ^weitere/obstbrand$ https://sprit-schleuder.com/Weitere/Brandy/ [R=301,L]
RewriteRule ^obstbrand$ https://sprit-schleuder.com/schnaps/obstbrand [R=301,L]
Dies ist jedoch bei vielen Weiterleitungen schnell unübersichtlich. Die erste Variante mit wiederholten RewriteCond ist praktikabler.
301 Weiterleitungen nginx Apache – zurück zur Übersicht
6. Massenhafte Weiterleitungen aus Excel/CSV generieren
Nach Shopware-Migrationen oder Shop-Relaunches entstehen häufig hunderte von Weiterleitungen. Diese manuell zu erstellen wäre ineffizient und fehleranfällig. Die Lösung: Automatisierte Generierung aus strukturierten Datenquellen wie Excel oder CSV.
Struktur der Quell-Datei
Eine typische Excel-Datei für Weiterleitungen enthält mindestens diese Spalten:
- Alte URL: Die ursprüngliche URL (z.B. https://sprit-schleuder.com/don-papa)
- Neue URL: Die Ziel-URL (z.B. https://sprit-schleuder.com/don-papa-rum)
- Ähnlichkeit: Optional – gibt an, wie gut die URLs zusammenpassen
- Status: Optional – z.B. „Gemapped“, „Überprüfen“, „Ignorieren“
Python-Script zur nginx-Generierung
Mit Python und der openpyxl-Bibliothek lassen sich Weiterleitungen automatisch generieren:
import openpyxl
from urllib.parse import urlparse
# Excel-Datei laden
wb = openpyxl.load_workbook('weiterleitungen.xlsx')
ws = wb.active
# nginx-Konfiguration erstellen
nginx_lines = []
nginx_lines.append("# Redirects für sprit-schleuder.com")
nginx_lines.append("if ($host = 'sprit-schleuder.com') {")
nginx_lines.append("")
# Alle Weiterleitungen durchgehen
for row in ws.iter_rows(min_row=2, values_only=True):
old_url = row[0]
new_url = row[1]
if old_url and new_url:
old_path = urlparse(old_url).path
nginx_lines.append(f' rewrite ^{old_path}$ {new_url} permanent;')
nginx_lines.append("}")
# In Datei schreiben
with open('nginx_redirects.conf', 'w', encoding='utf-8') as f:
f.write('\n'.join(nginx_lines))
Python-Script zur Apache/.htaccess-Generierung
Für Apache-Server mit .htaccess:
import openpyxl
from urllib.parse import urlparse
wb = openpyxl.load_workbook('weiterleitungen.xlsx')
ws = wb.active
htaccess_lines = []
htaccess_lines.append("# 301 Permanent Redirects")
htaccess_lines.append("RewriteEngine On")
htaccess_lines.append("")
for row in ws.iter_rows(min_row=2, values_only=True):
old_url = row[0]
new_url = row[1]
if old_url and new_url:
old_path = urlparse(old_url).path
# Domain-Bedingung hinzufügen
htaccess_lines.append(f'RewriteCond %{{HTTP_HOST}} ^sprit-schleuder\\.com$ [NC]')
htaccess_lines.append(f'RewriteRule ^{old_path.lstrip("/")}$ {new_url} [R=301,L]')
htaccess_lines.append("")
with open('.htaccess', 'w', encoding='utf-8') as f:
f.write('\n'.join(htaccess_lines))
Vorteile der automatisierten Generierung
- Zeitersparnis: 300+ Weiterleitungen in Sekunden statt Stunden erstellt
- Fehlerreduktion: Keine Tippfehler oder Copy-Paste-Fehler
- Versionskontrolle: Excel-Datei kann in Git versioniert werden
- Dokumentation: Zusätzliche Spalten für Notizen und Status
- Flexibilität: Einfache Anpassungen durch Änderung des Scripts
301 Weiterleitungen nginx Apache – zurück zur Übersicht
7. Weiterleitungen nach Shopware-Migrationen
Die Migration von Shopware 5 zu Shopware 6 ist einer der häufigsten Anwendungsfälle für massenhafte 301 Weiterleitungen. Dabei ändern sich URL-Strukturen oft grundlegend, und ohne korrekte Weiterleitungen gehen SEO-Rankings und organischer Traffic verloren.
Typische URL-Änderungen bei Shopware-Migrationen
Bei der Migration von Shopware 5 zu Shopware 6 treten häufig folgende URL-Änderungen auf:
- Kategoriepfade: /weitere/obstbrand → /schnaps/obstbrand
- Produktdetailseiten: /whisky/2221/bud-spencer-legend → /whisky/deutschland/2221/bud-spencer-legend-batch-3
- Hersteller-Seiten: /don-papa → /don-papa-rum
- CMS/Wiki-Seiten: /wiki/gin-wissen/was-sind-botanicals → /wiki/was-sind-botanicals
- Filterseiten: Oft werden Filterpfade komplett neu strukturiert
URL-Mapping-Prozess
Der professionelle Ansatz für Shopware-Migrationen umfasst mehrere Schritte:
1. Alte URLs erfassen
Exportiere alle URLs aus Shopware 5 über die Datenbank oder einen Sitemap-Export. Relevante Tabellen in Shopware 5:
s_core_rewrite_urls– SEO-URLss_articles_details– Produktvariantens_categories– Kategorien
2. Neue URLs aus Shopware 6 extrahieren
Nach der Migration die neuen URL-Strukturen aus Shopware 6 exportieren:
seo_url-Tabelle in Shopware 6product-Tabelle für Produktdetailscategory-Tabelle für Kategorien
3. Automatisches Matching
Mit Python oder PHP können URLs automatisch gematcht werden basierend auf:
- Produkt-IDs (wenn übernommen)
- Kategorie-IDs
- String-Ähnlichkeit (Levenshtein-Distanz)
- Artikelnummern
Erfolgsquoten und Qualitätskontrolle
Bei professionellen Migrationen werden typischerweise Erfolgsquoten von 80-96% erreicht:
- 80-85%: Automatisches Matching mit hoher Konfidenz
- 10-15%: Manuelles Matching bei unsicheren Fällen
- 5%: URLs ohne Match (ausgelaufene Produkte, nicht mehr relevante Seiten)
Qualitätskontrolle ist essentiell: Stichprobenartige Tests der generierten Weiterleitungen sollten vor dem Go-Live durchgeführt werden.
Priorisierung von Weiterleitungen
Nicht alle URLs sind gleich wichtig. Priorisiere nach:
- Traffic-Volumen: URLs mit hohem organischen Traffic zuerst
- Backlinks: Seiten mit vielen eingehenden Links
- Conversion-Rate: URLs mit hoher Conversion-Performance
- SEO-Rankings: Seiten auf den ersten Positionen bei Google
301 Weiterleitungen Shopware Migration – zurück zur Übersicht
8. URL-Mapping-Strategien für Shopware-Migrationen
Das Herzstück jeder erfolgreichen Shopware-Migration ist das präzise Mapping von alten zu neuen URLs. Dieser Prozess entscheidet darüber, ob deine SEO-Rankings erhalten bleiben oder verloren gehen.
Der URL-Mapping-Prozess in vier Phasen
Phase 1: Alte URLs exportieren
Bevor die Migration startet, müssen alle relevanten URLs aus Shopware 5 erfasst werden:
-- SQL-Query für Shopware 5 SEO-URLs
SELECT
r.org_path as alte_url,
r.id,
r.main,
r.subshopID
FROM s_core_rewrite_urls r
WHERE r.main = 1
ORDER BY r.org_path;
Exportiere auch Produktnummern und Artikel-IDs, die als Mapping-Schlüssel dienen:
-- Produkt-URLs mit Artikelnummern
SELECT
a.id,
a.ordernumber,
r.org_path as alte_url
FROM s_articles a
JOIN s_articles_details d ON a.id = d.articleID
JOIN s_core_rewrite_urls r ON r.org_path LIKE CONCAT('%/sArticle/', d.id, '%')
WHERE d.kind = 1;
Phase 2: Neue URLs aus Shopware 6 extrahieren
Nach der Migration die neuen URL-Strukturen aus Shopware 6 exportieren:
-- SQL-Query für Shopware 6 SEO-URLs
SELECT
LOWER(HEX(seo.id)) as id,
seo.seo_path_info as neue_url,
seo.foreign_key,
seo.route_name,
LOWER(HEX(seo.sales_channel_id)) as sales_channel_id
FROM seo_url seo
WHERE seo.is_canonical = 1
ORDER BY seo.seo_path_info;
Phase 3: Automatisches Matching
Mit Python, PHP oder einem anderen Tool URLs automatisch matchen. Matching-Strategien:
- Artikelnummern: Zuverlässigste Methode, wenn Artikelnummern identisch bleiben
- Produkt-IDs: Wenn IDs bei der Migration übernommen wurden
- String-Ähnlichkeit: Levenshtein-Distanz für ähnliche URL-Pfade
- Kategorie-Mapping: Kategorien zuerst mappen, dann Produkte zuordnen
Beispiel für String-Ähnlichkeits-Matching in Python:
from difflib import SequenceMatcher
def similarity_score(a, b):
return SequenceMatcher(None, a, b).ratio()
# URLs matchen
for alte_url in alte_urls:
best_match = None
best_score = 0
for neue_url in neue_urls:
score = similarity_score(alte_url, neue_url)
if score > best_score and score > 0.7: # Mindestens 70% Ähnlichkeit
best_score = score
best_match = neue_url
if best_match:
redirects.append((alte_url, best_match, best_score))
Phase 4: Manuelle Nachbearbeitung
URLs mit niedriger Match-Qualität (unter 85% Ähnlichkeit) sollten manuell überprüft werden:
- Kategorien mit komplett neuer Struktur
- Produkte mit geändertem Namen oder Kategorie-Zuordnung
- CMS-Seiten mit neuen URLs
- Hersteller-Seiten mit geänderter URL-Konvention
Excel als Arbeits-Tool für URL-Mapping
Eine strukturierte Excel-Datei ist ideal für den Mapping-Prozess:
Spaltenstruktur:
- Spalte A: Alte URL (aus Shopware 5)
- Spalte B: Neue URL (aus Shopware 6)
- Spalte C: Ähnlichkeit (in %)
- Spalte D: Status (Gemapped, Überprüfen, Manuell, Ignorieren)
- Spalte E: Notizen
- Spalte F: Traffic (aus Google Analytics)
- Spalte G: Backlinks (Anzahl)
Mit dieser Struktur können mehrere Personen parallel am Mapping arbeiten und URLs priorisiert abarbeiten.
Umgang mit Sonderfällen
Produktvarianten konsolidieren
Wenn in Shopware 5 Varianten eigene URLs hatten, diese auf die Haupt-URL in Shopware 6 leiten:
Redirect 301 "/detail/index/sArticle/2221" "https://shop.de/produkt/bud-spencer-legend"
Redirect 301 "/detail/index/sArticle/2223" "https://shop.de/produkt/bud-spencer-legend"
Redirect 301 "/detail/index/sArticle/2225" "https://shop.de/produkt/bud-spencer-legend"
Gelöschte Produkte
Für Produkte, die in Shopware 6 nicht mehr existieren:
- Weiterleitung zur relevantesten Kategorieseite
- Weiterleitung zu ähnlichen Produkten
- Weiterleitung zur Such-Seite mit vorausgefülltem Suchbegriff
- Nur als letzte Option: Auf 404-Seite laufen lassen
Mehrsprachige Shops
Jede Sprache benötigt eigene URL-Mappings. Arbeite Sales-Channel-basiert:
# DE Sales Channel
/produkte/whisky → /whisky/schottland
# EN Sales Channel
/products/whisky → /whisky/scotland
# FR Sales Channel
/produits/whisky → /whisky/ecosse
Qualitätssicherung des URL-Mappings
Vor der Generierung der finalen Weiterleitungskonfiguration:
- Duplikate entfernen: Keine alte URL darf mehrmals vorkommen
- Redirect-Chains vermeiden: A→B→C sollte direkt A→C werden
- Ziel-URLs validieren: Alle neuen URLs müssen existieren (200 OK)
- Traffic-Analyse: Hochfrequentierte URLs prioritär testen
- Stichproben: 10-20% der Mappings manuell überprüfen
301 Weiterleitungen Shopware Migration – zurück zur Übersicht
9. Testing und Debugging von Weiterleitungen
Die korrekte Implementierung von 301 Weiterleitungen zu überprüfen ist genauso wichtig wie die Erstellung selbst. Fehlerhafte Weiterleitungen können zu Redirect-Chains, Loops oder 404-Fehlern führen.
Browser-basiertes Testing
Die einfachste Methode ist der Test im Browser mit geöffneten Developer Tools (F12):
- Öffne den Network-Tab
- Rufe die alte URL auf
- Überprüfe den HTTP-Statuscode (sollte 301 sein)
- Überprüfe den Location-Header (sollte die neue URL enthalten)
- Bestätige, dass die finale URL korrekt ist
Command-Line Testing mit curl
Für automatisiertes Testing eignet sich curl hervorragend:
# Einzelne URL testen
curl -I https://sprit-schleuder.com/don-papa
# Weiterleitung nicht folgen (-I für HEAD-Request)
curl -I --max-redirs 0 https://sprit-schleuder.com/don-papa
# Mehrere URLs aus Datei testen
while read url; do
echo "Testing: $url"
curl -I -s "$url" | grep -E "HTTP|Location"
done < urls.txt
Redirect-Chains erkennen
Redirect-Chains entstehen, wenn eine URL über mehrere Zwischenstationen weitergeleitet wird:
URL A → URL B → URL C → URL D
Dies ist schlecht für Performance und SEO. Mit curl kannst du Chains identifizieren:
curl -Ls -o /dev/null -w "%{url_effective}\n" https://example.com/alte-url
Redirect Loops verhindern
Ein Redirect Loop entsteht, wenn URL A auf URL B verweist und URL B zurück auf URL A. Dies führt zu Fehlern im Browser. Typische Ursachen:
- Fehlerhafte Regex-Patterns
- Überschneidende Weiterleitungsregeln
- Domain-Bedingungen fehlen oder sind falsch konfiguriert
Online-Tools für Redirect-Testing
Mehrere Online-Tools unterstützen beim Testing:
- Redirect Checker: Visualisiert Redirect-Chains
- Screaming Frog SEO Spider: Crawlt die gesamte Seite und identifiziert Weiterleitungsprobleme
- Google Search Console: Zeigt 404-Fehler und Weiterleitungsprobleme
Logging und Monitoring
Aktiviere Logging in nginx oder Apache, um Weiterleitungen nachzuverfolgen:
nginx:
# In nginx.conf
log_format redirect '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" '
'redirect_from="$request_uri" redirect_to="$upstream_http_location"';
access_log /var/log/nginx/redirects.log redirect;
Apache:
# In .htaccess
RewriteLog "/var/log/apache2/rewrite.log"
RewriteLogLevel 3
301 Weiterleitungen Shopware Migration – zurück zur Übersicht
10. Performance-Optimierung bei vielen Weiterleitungen
Bei mehreren hundert oder tausend 301 Weiterleitungen kann die Performance des Webservers leiden. Hier sind bewährte Optimierungsstrategien für nginx und Apache.
nginx-Performance-Optimierung
nginx ist grundsätzlich performanter als Apache bei vielen Weiterleitungen, aber auch hier gibt es Optimierungspotenzial:
Map-Direktive statt if-Bedingungen
Statt vieler if-Blöcke sollte die map-Direktive verwendet werden:
map $request_uri $new_uri {
default "";
/don-papa /don-papa-rum;
/weitere/obstbrand /Weitere/Brandy/;
/obstbrand /schnaps/obstbrand;
/newsletter /newsletter;
}
server {
if ($new_uri != "") {
return 301 https://sprit-schleuder.com$new_uri;
}
}
Die map-Direktive ist deutlich schneller als einzelne if-Abfragen und sollte im http-Block außerhalb des server-Blocks definiert werden.
Return statt Rewrite
Wo möglich, return statt rewrite verwenden:
# Langsamer
rewrite ^/alte-url$ https://example.com/neue-url permanent;
# Schneller
location = /alte-url {
return 301 https://example.com/neue-url;
}
Externe Redirect-Maps
Bei sehr vielen Weiterleitungen können externe Map-Dateien helfen:
map $request_uri $new_uri {
include /etc/nginx/redirects-map.conf;
}
# In /etc/nginx/redirects-map.conf:
/don-papa /don-papa-rum;
/weitere/obstbrand /Weitere/Brandy/;
# ... tausende weitere
Apache-Performance-Optimierung
RewriteMap für massenhafte Weiterleitungen
Apache bietet RewriteMap als performante Alternative zu vielen einzelnen Regeln:
# In der Apache-Hauptkonfiguration (nicht .htaccess!)
RewriteMap redirects txt:/etc/apache2/redirects.txt
# In der .htaccess oder vhost-Config
RewriteCond %{REQUEST_URI} ^(.*)$
RewriteCond ${redirects:%1} ^(.+)$
RewriteRule ^.*$ %1 [R=301,L]
# /etc/apache2/redirects.txt:
/don-papa https://sprit-schleuder.com/don-papa-rum
/weitere/obstbrand https://sprit-schleuder.com/Weitere/Brandy/
/obstbrand https://sprit-schleuder.com/schnaps/obstbrand
Caching von Weiterleitungen
Browser und CDNs cachen 301-Weiterleitungen. Stelle sicher, dass Cache-Header korrekt gesetzt sind:
Header set Cache-Control "public, max-age=31536000"
Monitoring und Metriken
Überwache die Performance deiner Weiterleitungen:
- Response-Zeit: 301-Responses sollten unter 50ms liegen
- Server-Load: CPU-Auslastung bei vielen Redirects beobachten
- Fehlerrate: 404-Fehler nach Implementierung tracken
- Google Search Console: Crawling-Fehler und Redirect-Probleme
301 Weiterleitungen Shopware Migration – zurück zur Übersicht
11. Häufige Fehler bei Shopware-Migrationen und deren Lösungen
Bei der Implementierung von 301 Weiterleitungen treten immer wieder die gleichen Fehler auf. Hier sind die häufigsten Probleme und ihre Lösungen.
Problem: Weiterleitungen greifen für alle Domains
Symptom: Eine Weiterleitung für sprit-schleuder.com leitet auch Besucher von darmboutique.de falsch um.
Ursache: Fehlende Domain-Bedingungen in der Konfiguration.
Lösung nginx:
if ($host = 'sprit-schleuder.com') {
rewrite ^/don-papa$ https://sprit-schleuder.com/don-papa-rum permanent;
}
Lösung Apache:
RewriteCond %{HTTP_HOST} ^sprit-schleuder\.com$ [NC]
RewriteRule ^don-papa$ https://sprit-schleuder.com/don-papa-rum [R=301,L]
Problem: Redirect Loops
Symptom: Browser zeigt „Too many redirects“ oder „Redirect loop detected“.
Ursache: URL A leitet auf URL B, und URL B leitet zurück auf URL A.
Lösung: Überprüfe alle Weiterleitungsregeln auf Überschneidungen. Mit curl kannst du den Loop nachvollziehen:
curl -I -L https://example.com/problematische-url
Problem: Regex matcht zu viel
Symptom: Weiterleitungen greifen für URLs, für die sie nicht gedacht waren.
Ursache: Zu allgemeine reguläre Ausdrücke.
Beispiel:
# Falsch - matcht auch /produkte/123, /produkt-details etc.
rewrite ^/produkt(.*)$ /shop/artikel$1 permanent;
# Richtig - matcht nur /produkt/123
rewrite ^/produkt/([0-9]+)$ /shop/artikel/$1 permanent;
Problem: Query-Parameter gehen verloren
Symptom: URL-Parameter wie ?color=red werden bei der Weiterleitung nicht übernommen.
Lösung nginx: nginx übernimmt Query-Parameter automatisch.
Lösung Apache: Verwende das QSA-Flag:
RewriteRule ^alte-url$ https://example.com/neue-url [R=301,L,QSA]
Problem: 302 statt 301
Symptom: Google indexed die alte URL weiter, PageRank wird nicht übertragen.
Ursache: Falsche Statuscode-Angabe oder Verwendung von „redirect“ statt „permanent“.
Lösung nginx:
# Falsch
rewrite ^/alte-url$ /neue-url redirect;
# Richtig
rewrite ^/alte-url$ /neue-url permanent;
Lösung Apache:
# Falsch
Redirect 302 "/alte-url" "/neue-url"
# Richtig
Redirect 301 "/alte-url" "/neue-url"
Problem: Weiterleitungen funktionieren nicht nach Shopware-Update
Symptom: Nach einem Shopware-Update funktionieren die Weiterleitungen nicht mehr.
Ursache: Shopware-Updates können .htaccess-Dateien überschreiben oder nginx-Konfigurationen ändern.
Lösung:
- Sichere deine Weiterleitungs-Konfiguration vor Updates
- Verwende separate Include-Dateien für Custom-Redirects
- Dokumentiere alle Änderungen in Git/Version Control
- Teste Weiterleitungen nach jedem Update
Problem: Performance-Einbruch nach Redirect-Implementierung
Symptom: Website ist nach Einrichtung von hunderten Weiterleitungen deutlich langsamer.
Ursache: Ineffiziente Implementierung mit vielen if-Bedingungen oder einzelnen RewriteRules.
Lösung:
- nginx: Verwende map-Direktiven statt if-Blöcken
- Apache: Verwende RewriteMap statt einzelner RewriteRules
- Prüfe, ob alle Weiterleitungen wirklich noch benötigt werden
- Entferne nach 6-12 Monaten Weiterleitungen mit null Traffic
301 Weiterleitungen Shopware Migration – zurück zur Übersicht
Professionelle Unterstützung bei deiner Shopware-Migration
Eine Shopware-Migration mit tausenden URLs ist komplex und zeitkritisch. Fehlerhafte Weiterleitungen können deinen organischen Traffic und deine Rankings nachhaltig schädigen. Wenn du Unterstützung bei deinem Migrationsprojekt brauchst – von der URL-Analyse über das Mapping bis zur finalen Implementierung und Testing – sprich uns an.
Als Shopware-Agentur bieten wir:
- Analyse deiner aktuellen URL-Struktur und Traffic-Daten
- Automatisiertes URL-Mapping mit manueller Qualitätskontrolle
- Generierung von nginx/Apache-Weiterleitungskonfigurationen
- Domain-spezifische Konfiguration für Multi-Sales-Channel-Setups
- Pre-Launch Testing und Post-Launch Monitoring
- Performance-Optimierung bei großen Weiterleitungsmengen
Kontaktiere uns für ein unverbindliches Gespräch über dein Shopware-Projekt.
301 Weiterleitungen Shopware Migration – zurück zur Übersicht











