Ihr Shop ist langsam: wann liegt es am Shop und wann am Server
Sie wechseln das Theme, entfernen Module und langsam bleibt langsam. In der Hälfte der Fälle liegt es darunter, an der…
Samstagnachmittag. Eine E-Mail Ihres Hosters warnt, Ihr Konto laufe seit Stunden auf 100 % CPU. Sie öffnen Ihre Statistik und erwarten eine Flut von Kunden – und finden das Gegenteil: vierzigtausend Seitenaufrufe und null Bestellungen.
Kein Angriff, kein kaputtes Modul, kein Shop, der Seltsames tut. Jemand hat angefangen, jeden einzelnen Filter Ihres Sortiments abzulaufen, einen nach dem anderen.
Ihr Shop hat eine Facettensuche: Größe, Farbe, Marke, Preis, Verfügbarkeit, dazu obendrauf die Sortierung. Das macht ihn bequem in der Benutzung.
Das Problem ist, dass jede Kombination dieser Filter eine eigene Webadresse ist. Größe M in Blau von einer Marke, nach Preis sortiert, ist eine. Größe M in Blau von derselben Marke, nach Neuheit sortiert, ist eine andere. Und so weiter durch jede mögliche Kombination: In einem mittelgroßen Shop sind das Hunderttausende, in einem großen Millionen.
Die Crawler der sozialen Netze und der KI-Dienste – die von Facebook, von TikTok, ein halbes Dutzend Unternehmen, von denen Sie nie gehört haben – haben beschlossen, sie alle sehen zu müssen. Und sie rufen sie alle ab, auf einmal, ohne Pause.
Jede dieser Adressen ist keine gespeicherte Seite: Sie ist eine frische Suche in Ihrer Datenbank.
Die Filter Ihres Shops zeichnet ein bestimmtes Modul, Faceted search (ps_facetedsearch), das seit 1.7 mit PrestaShop ausgeliefert wird und die alte Layered navigation abgelöst hat. Wenn Sie Filter auf Ihren Kategorieseiten haben, ist es aktiv.
In Ihren Protokollen ist es leicht zu erkennen: Jede Kombination reist im Parameter q der Adresse und sieht so aus.
/12-t-shirts?q=Groesse-M/Farbe-Blau/Marke-Adidas
Wenn Ihr Zugriffsprotokoll Tausende Zeilen mit ?q= zeigt, alle verschieden und direkt hintereinander, wissen Sie, was die Maschine auffrisst.
Und darum ist es so teuer. Trifft eine dieser Anfragen ein, sucht das Modul nicht nur die Produkte zum Filter: Es berechnet auch die Zähler aller anderen Filter neu – dieses „Blau (12)“, „Grün (5)“ neben jedem Kästchen – und feuert dafür mehrere Zählabfragen gegen seine Indextabellen. Multiplizieren Sie das mit einem großen Sortiment und mit Tausenden Anfragen pro Minute.
Zwei Stellschrauben stecken im Modul selbst und fast niemand fasst sie an, unter Katalog → Facettensuche:
Keine von beiden löst das Problem allein, aber beide senken die Kosten jedes Treffers, bevor Sie sonst etwas anfassen.
Eine gefilterte Suche gehört zum Teuersten, was ein Shop tut: Er muss das ganze Sortiment durchgehen, Merkmale abgleichen, zählen, wie viele Produkte unter jedem Filter übrig bleiben, und das Ergebnis sortieren. Ein Kunde führt drei oder vier pro Besuch aus. Ein Crawler drei oder vier pro Sekunde.
Und jetzt der Teil, der alle aus dem Konzept bringt: Caching rettet Sie nicht. Caching hilft, wenn viele Besucher dasselbe abfragen. Hier wiederholt sich nichts: Jede Kombination ist einmalig, also sind alle „Erstbesuche“ und alle gehen bis in die Datenbank durch.
Das Ergebnis ist immer dasselbe. Anfragen stauen sich, dem Server geht der Platz aus und der Shop antwortet nicht mehr – weder dem Roboter noch dem Kunden, der gerade bezahlen wollte. Fällt das mitten in eine Kampagne, haben Sie Werbung bezahlt, die auf eine Seite zeigt, die sich nicht öffnet.
Vier Anzeichen, und zwei zusammen machen es fast sicher:
Wenn der Verwaltungsbereich währenddessen langsam ist, haben Sie die Bestätigung: Es liegt nicht am öffentlichen Teil, die Maschine ist ausgelastet. Wir haben es unter wann die Langsamkeit der Shop ist und wann der Server behandelt.
Dieses Problem zieht viele beliebte Ratschläge an, die in der Praxis nicht tragen:
Alle teilen denselben Fehler: Sie behandeln das Symptom, also den Traffic, statt der Ursache – dass Ihr Shop bereit ist, für jeden, der fragt, Millionen verschiedener Seiten herzustellen.
Was wirklich trägt, ist in drei Schichten gebaut, und keine davon bedeutet, Filter abzuschalten:
Damit sinkt die Auslastung normalerweise schon am ersten Tag deutlich und der Shop fällt nicht mehr um – ohne dass aus Kundensicht ein einziger Filter angefasst würde und ohne bei Google Boden zu verlieren. Im Gegenteil: Sobald Sie Googles Zeit nicht mehr für vierhunderttausend wiederholte Seiten verbrauchen, sieht es sich die an, die Ihnen wichtig sind – genau das, was wir unter wo man anfängt, wenn man nicht auftaucht behandelt haben.
Es ist ein tückisches Problem, weil es nie sein Gesicht zeigt: Es gibt keinen Fehler zum Ansehen, nur einen Shop, der an manchen Tagen läuft und an anderen nicht, und einen Hoster, der Ihnen sagt, es liege an Ihnen.
Wenn Sie schon ein paar der Ratschläge von dieser Liste ausprobiert haben und immer noch am Anfang stehen, schreiben Sie uns. Wir gehen Ihre Protokolle durch, sagen Ihnen, wie viele dieser Anfragen echt und wie viele Rauschen sind, und richten die Filterung ein und messbar ein. Wir haben das etliche Male gemacht, und es zeigt sich am ersten Tag.
Sie wechseln das Theme, entfernen Module und langsam bleibt langsam. In der Hälfte der Fälle liegt es darunter, an der…
Der Shop steht, die Produkte sind drin und von Google kommt nichts. Das sind die fünf Dinge, die wir immer ansehen, und…
Bereit, Ihren PrestaShop-Shop nach vorne zu bringen? Sprechen wir über Ihr Projekt und bauen gemeinsam etwas Großartiges.
Schreiben Sie uns