Zum Inhalt springen
online
dev0.46.1 · 1d135e2
GewartetAktualisiert am 31.08.2026

Decoroll

Ein OpenCart-Shop für Rollos: ein korrigierter Preisrechner und Checkout, danach eine Performance-Rettung, die die Datenbanklast senkte und die CPU-Beschränkung des Hosters aufhob.

Startseite von Decoroll: ein Shop für Rollos und Jalousien mit Katalog-Button, Produktsuche, Telefonnummer und Öffnungszeiten, einem Banner mit Rollos in einem Wohnzimmer und beliebten Kategorien wie Verdunkelung, Vertikal und Tag-Nacht

Aufgabe

Ein Rollo-Shop brauchte einen korrigierten Preisrechner und Checkout – und stand dann kurz davor, vom Hoster abgeschaltet zu werden: Website und Datenbank verbrauchten etwa das Doppelte des täglichen CPU-Limits, und niemand wusste, warum.

Lösung

  • Preisrechner: korrekte Rundung (früher kam selbst bei glatten Beträgen 1 UAH hinzu), die Warenkorbsumme weicht bei mehreren Artikeln nicht mehr um 1–2 UAH ab, der Button „In den Warenkorb“ ist gesperrt, solange der Preis berechnet wird, damit bei langsamer Verbindung niemand zu einem falschen Preis bestellt, und Anfragen des Rechners scheitern nicht mehr an gemischtem http/https.
  • Checkout: Das Adressfeld passt sich der Versandart an (Kurieradresse oder Filiale), das automatische Ausfüllen des Browsers befüllt keine Regionsfelder mehr, und Chrome fügt nicht mehr das gespeicherte Passwort des Admins in das Bestellformular ein.
  • E-Mail: Nachrichten aus dem Kontaktformular werden vom Postfach des Shops mit dem Besucher in Reply-To gesendet, sodass der Hoster sie nicht mehr ablehnt.
  • SEO: rund 550 veraltete Weiterleitungen entfernt, Sprachpräfixe in Bild-URLs und allen Produkt-Feeds korrigiert, eine Sitemap, die auf localhost zeigte, in robots.txt korrigiert.
  • Der CPU-Vorfall: Eine schriftliche Untersuchung fand die Ursache – relative Links im Theme plus nicht validierte sprechende URLs erzeugten einen endlosen Seitenraum für Crawler. Verschachtelte URLs werden jetzt per Weiterleitung zusammengeführt, bevor PHP läuft, Links wurden korrigiert, acht Datenbankindizes und URL-Caching hinzugefügt, die Sitzungstabelle bereinigt, die Bildverarbeitung gehärtet, ein 1 GB großes Fehlerprotokoll gestoppt und die Website mit Bot-Schutz hinter Cloudflare gebracht – mit einem geprüften Datenbank-Backup vor jeder Änderung.
  • Entwicklungsumgebung: Das Projekt kam in git, mit einer Docker-Umgebung und lokalen Konfigurationen.

Ergebnis

Gelesene Zeilen pro Aufruf einer Produktseite: 619.950 → 0. Sitzungen in der Datenbank: 57.040 → 6.777. Sitemap: 1,12 s → 0,16 s. Nach den Korrekturen antwortet die Startseite in 0,20 s und Produktseiten in 0,52–0,63 s. Der Hoster hob die Beschränkung auf.

Screenshots