Du bist leidenschaftlicher Shopware-Fan und nutzt Shopware für Deine Onlineshops? Für größere Änderungen oder Datenimporte nutzt Du den "Wartungsmodus", den Shopware von Haus aus mitbringt? Dann solltest Du Dir meinen Artikel einmal zu Herzen nehmen und Dich fragen, wie lange der Wartungsmodus eigentlich aktiv ist? Und wie viele URLs die Suchmaschinen in dieser Zeit schon gecrawlt haben?
Denn im Wartungsmodus leitet der Shop erst einmal jede URL wunderschön auf die /maintenance-URL eines Shops weiter, die dann mit einem 503-Status-Code ausgeliefert wird. Der Status Code ist in der Tat das einzig gute an dieser Umsetzung:
-
Suchmaschinen erhalten die Informationen, dass es unter der URL zu Problemen kommt. Solange der Status Code nicht zu lange andauert, ist dieses Verhalten auch richtig.
-
Im HTTP-Header wird das Feld "Retry-After" mit einem Wert von 3600 ausgeliefert. Dieser Wert steht für die Anzahl an Sekunden, nach denen ein Crawler eine erneute Prüfung einer URL versuchen soll. 3600 Sekunden entsprechen genau einer Stunde.
Nehmen wir eine Produkt-Detail-Seite als Beispiel. Im normalen Modus des Shops ist diese URL mit Status Code 200 erreichbar und liefert die Produktinformationen:

Wenn wir den Wartungsmodus unseres Shops aktivieren, werden alle URLs, also auch unser Produkt, auf die Maintenance-URL umgeleitet. Wir geben den Suchmaschinen also den Hinweis, dass unser Produkt temporär unter /maintenance zu erreichen ist. Die /maintenance-URL wird dabei in die Verarbeitungsliste der Suchmaschine geschrieben, um diese URL später zu besuchen:

Mit dem Chrome-Plugin von LinkResearchTools sehen wir die aktuelle Umleitung und den Status Code der Maintenance-Seite:

Wenn der Wartungsmodus wieder deaktiviert wurde, wird die Maintenance-URL auf die Startseite des Shops weitergeleitet:

Auch wenn es sich bei den Weiterleitungen "nur" um einen 307-Redirect (eine temporäre Weiterleitung) handelt, so sind die URL-Signale für Suchmaschinen nicht wirklich gut. Eine saubere Implementierung des Status Code 503 und des "Retry-After"-Felds sollte immer auf den jeweiligen Original-URLs erfolgen.
Auf der Liste "Man müsste mal" der Entwickler sollte eigentlich die Behebung dieses kleinen aber feinen Fauxpas stehen:
Wird, wie in unserem Beispiel, die Produktdetailseite (/p/Hauptprodukt-mit-Eigenschaften-SWDEMO10007.2) aufgerufen, so muss auch diese URL direkt den Status-Code 503 und das Feld "Retry-After" im HTTP-Header zurückgeben. Nur so stellen wir sicher, dass uns der Wartungsmodus einer Website oder Onlineshops keine unkontrollierten URL-Signale produziert.