Cache-Warming-Service · Made by Stone & Water

Damit dein Shopware-Shop nie kalt startet.

Nach jedem Cache-Flush, jedem Deploy, jedem Plugin-Update ist die erste Anfrage langsam — und genau dann läuft oft schon der erste Kunde rein. Der Cache Warmer crawlt deine URLs vor, parallelisiert höflich mit HTTP/2-Pooling und meldet sich per E-Mail, wenn alles wieder warm ist. Multi-Shop, Multi-Kunde, alles aus einer Hand.

01 Was er macht

Pre-Crawl jeder URL — bevor der erste Kunde sie öffnet.

Shopware-Caches werden bei jedem Deploy, jeder Plugin-Aktivierung und jedem Cron-Flush invalidiert. Die erste Anfrage pro Seite muss dann das komplette Template, alle Hooks und alle Listen neu aufbauen — oft 3–10 Sekunden. Der Cache Warmer macht genau diese erste Anfrage, bevor ein echter Besucher sie macht.

Ohne Cache Warmer

Cold-Start nach Flush

Der erste Besucher trifft auf eine 3–10 Sekunden langsame Seite. Bounce-Rate steigt, Conversion fällt, Google-Pagespeed-Score sinkt. Bei viel Traffic sind hunderte Seiten betroffen, bevor sich die Caches stabilisieren.

Mit Cache Warmer

Warm-Start, automatisch

Direkt nach dem Cache-Flush wird die Sitemap durchgegangen. Kategorien, Produktdetail-Seiten, CMS-Pages, Hersteller-Listen — alles vorgeladen. Der erste echte Besucher bekommt sofort die schnelle, gecachte Version.

Trigger

Automatisch nach Cache-Flush

Per Webhook aus dem Shopware-Admin, per Cronjob, oder manuell aus dem Dashboard — du entscheidest, wann der Warmer läuft. Auch direkt nach bin/console cache:clear.

URL-Quellen

Sitemap-Auto-Discovery

Liest sitemap.xml und alle Sitemap-Index-Files. Optional zusätzliche statische URL-Listen pro Shop. Variantenartikel, Kategorien, CMS-Seiten — automatisch erfasst.

Politeness

Höflich, nicht aggressiv

Sequentielle Verarbeitung pro Shop, mehrere Shops parallel. Kein DDoS deines eigenen Servers — die Last bleibt im Rahmen, was deine Hardware verträgt.

Erkennung

X-Cache-Header-Awareness

Erkennt automatisch, ob ein Hit oder Miss vorlag (Varnish, Cloudflare, Shopware Http Cache). Statistik pro Lauf: wie viele Seiten waren schon warm, wie viele wurden neu erzeugt.

Robustheit

Automatische Wiederholung

Fehlgeschlagene URLs (5xx, Timeout) werden mit Exponential Backoff erneut versucht. Endgültig fehlgeschlagene Calls landen im Report — sortiert nach HTTP-Status.

Sprachen & Kanäle

Pro Verkaufskanal und Sprache

Jeder Sales Channel, jede Sprache, jede Domain wird separat behandelt — Multi-Shop-Setups sind First-Class-Bürger, kein Workaround.

02 Multi-Shop · Multi-Kunde

Ein Service für alle deine Shops — und die deiner Kunden.

Agenturen mit zehn Shops, Händler mit drei Marken-Storefronts, Reseller mit Kundenportfolio — alle in einer Instanz. Pro Kunde eigene Konfiguration, eigene Trigger, eigene Reports. Kein eigener Server pro Shop nötig.

Sequentielles Queueing

Ein Shop nach dem anderen pro Kunde

Ist ein Kunde Eigentümer von Shop A, B und C, wird zuerst A komplett gewärmt, dann B, dann C — statt alle drei gleichzeitig. So bleiben Last und Bandbreite vorhersehbar.

Parallel zwischen Kunden

Kunde X und Y gleichzeitig

Während Kunde X gewärmt wird, läuft Kunde Y schon. Die Sequenzialität gilt nur innerhalb einer Gruppe — zwischen Kunden wird parallelisiert.

Isolation

Keine Cross-Tenant-Leaks

Kundendaten, URLs, Reports, Statistiken — alles streng pro Kunden-Account isoliert. Auch im Audit-Log werden nur die eigenen Läufe gezeigt.

Pro-Shop-Settings

Individuelle Konfiguration je Shop

Concurrency, User-Agent, Auth-Header, Custom-URLs, ignorierte Pfade — alles pro Shop einstellbar. Defaults für die Gruppe, Override pro Shop.

Sub-User

Mitarbeiter mit eigenen Rechten

Agentur-Setup: Hauptaccount mit allen Shops, einzelne Mitarbeiter sehen nur die ihnen zugewiesenen Kunden. Read-only oder Read-write konfigurierbar.

03 Smart Crawler

HTTP/2-Pooling mit Fallback auf HTTP/1.1.

Statt für jede URL eine neue TCP- und TLS-Verbindung aufzubauen, hält der Warmer pro Origin einen HTTP/2-Stream offen. Hunderte URLs gehen über eine einzige Verbindung — schneller, sparsamer, und für den Server ein einziger zusammenhängender Stream statt vieler Verbindungen.

Connection Pooling

Eine TLS-Session pro Origin

HTTP/2-Multiplexing erlaubt mehrere parallele Streams über eine einzige Verbindung. Statt 100 TLS-Handshakes für 100 URLs gibt es einen — Faktor 10-15 schneller bei modernen Hosts.

  • Automatisch ALPN-Negotiation für h2 vs. http/1.1
  • Pool wird pro Lauf neu aufgebaut und sauber geschlossen
  • Keepalive optional auch über Läufe hinweg
Graceful Fallback

HTTP/1.1 wenn nötig

Spricht der Origin kein HTTP/2 (alte Proxies, manche Plesk-Setups), fällt der Warmer automatisch auf HTTP/1.1 mit Connection-Keepalive zurück. Kein Eingriff, kein manuelles Toggeln.

Concurrency-Steuerung

Pro Shop einstellbar

Default 4 parallele Requests pro Shop — anpassbar auf 1 (für sehr schwache Server) bis 16 (für dicke Maschinen). Pro Lauf statistisch ausgewertet, ob die Concurrency zu hoch oder zu niedrig war.

Rate-Limiting

Sleep zwischen Requests konfigurierbar

Optional einen Sleep zwischen den Requests einbauen — für sehr empfindliche Shared-Hostings. Auch dynamisches Sleep abhängig vom letzten Response-Code möglich.

User-Agent

Erkennbarer und respektvoller Crawler

Standard-User-Agent StoneWaterCacheWarmer/1.x — in Server-Logs eindeutig identifizierbar, von Suchmaschinen-Bots klar trennbar. Pro Shop überschreibbar.

HTTP-Auth

Basic-Auth, Bearer-Token, IP-Whitelist

Staging-Umgebungen mit HTTP-Auth? Ein Token im Header? Kein Problem — pro Shop konfigurierbar. Credentials werden AES-256-GCM-verschlüsselt gespeichert.

04 URL-Discovery

Sitemap-basiert — plus alles, was du noch brauchst.

Die Sitemap kennt deine öffentlichen URLs am besten — Shopware generiert sie ohnehin pro Verkaufskanal. Der Warmer liest sie, dedupliziert, sortiert nach Priorität und arbeitet sie ab. Wer zusätzliche URLs braucht (Filter-Kombinationen, Login-Bereiche, API-Endpunkte), kann sie pro Shop ergänzen.

Sitemap-Index

Mehrere Sitemaps automatisch verfolgt

Shopware splittet bei großen Shops die Sitemap in mehrere Files (sitemap-product-1.xml, sitemap-category-1.xml …). Der Warmer folgt dem Sitemap-Index automatisch und holt alle Sub-Sitemaps.

Priorität

Sortierung nach Sitemap-Priority

URLs mit hoher <priority>-Angabe werden zuerst gewärmt — typischerweise Startseite und Top-Kategorien. Auch changefreq wird berücksichtigt, wenn aktiviert.

Custom URLs

Eigene Pfade pro Shop ergänzen

Account-Login, Service-Seiten, Landingpages außerhalb der Sitemap — als URL-Liste pro Shop ergänzbar. Mit Variablen für mehrsprachige Pfade.

Ignore-Liste

Pfade ausschließen

Filter-Kombinationen mit GET-Parametern, Suchergebnis-URLs, Checkout-Schritte — alles per Glob-Pattern ausschließbar. Default-Ignores für typische Shopware-Pfade vorkonfiguriert.

Deduplizierung

Keine URL doppelt

Wenn dieselbe URL in mehreren Sub-Sitemaps oder in Custom-URLs auftaucht, wird sie nur einmal gewärmt. Query-Parameter werden normalisiert nach konfigurierbarem Regelset.

Re-Discovery

Cache der Sitemap

Sitemap wird nicht bei jedem Lauf neu geparst — es wird gecacht, bis sich der lastmod-Header ändert oder du explizit ein Re-Read triggerst. Spart Last bei stündlichen Läufen.

05 Zeitsteuerung

Cron, Webhook, Push — du wählst den Auslöser.

Der Cache Warmer ist nicht an einen festen Zeitpunkt gebunden. Drei Trigger-Mechanismen, alle gleichzeitig nutzbar — z.B. nächtlicher Cron für SEO-Frische, Webhook nach Deploy für Code-Releases, manueller Push nach Bulk-Update im PIM.

Cron

Geplante Läufe pro Shop

Standard-Cron-Syntax (0 3 * * *) pro Shop. Auch komplexe Pläne („täglich 3 Uhr, plus jede Stunde im Black-Friday-Zeitraum") möglich.

Webhook

Push aus Shopware oder CI/CD

Ein einfacher HTTP-POST auf https://admin.cache-warmer.de/webhook/{token} startet einen Lauf. Direkt aus dem Deploy-Pipeline, aus einem Shopware-Plugin, oder aus einem Cron-Skript.

Shopware-Plugin

Trigger auf Cache-Invalidation

Optional: Companion-Plugin für Shopware 6.5/6.6/6.7, das den Warmer direkt nach cache:clear, Plugin-Update oder Theme-Recompile per Webhook anstößt.

Manuell

Push-Button im Dashboard

„Jetzt warmen" — ein Klick pro Shop oder pro Gruppe. Mit Vorschau, wie viele URLs erfasst werden, bevor der Lauf startet.

Throttling

Nicht-Überlappende Läufe

Läuft schon ein Warmer-Run für einen Shop, wird der nächste Trigger nicht zu einem zweiten parallelen Lauf — sondern entweder in die Queue gestellt oder dedupliziert.

Stop & Abort

Laufende Runs unterbrechen

Versehentlich einen Lauf zur Mittagszeit gestartet? Mit einem Klick abbrechen — laufende Requests werden zu Ende geführt, neue nicht mehr gestartet.

06 Benachrichtigungen

Reports per E-Mail — pro Shop, pro Kunde, pro Lauf.

Du willst nicht jeden Morgen ins Dashboard schauen. Der Warmer schickt nach jedem Lauf eine knappe E-Mail: wie viele URLs, wie viele Fehler, durchschnittliche Antwortzeit, Cache-Hit-Rate. Per Shop oder per Kunde, mit Schwellwerten für „nur bei Problemen melden".

Pro Shop

Eine E-Mail je Lauf

Zusammenfassung in einer kompakten HTML-Mail: gesamte URLs, Fehler, Top-3-langsamste Seiten, gesamte Laufzeit. Versand direkt per Server-Sendmail — kein externer Mailservice nötig.

Pro Kunde

Tagessummary für alle Shops

Hat ein Kunde fünf Shops, bekommt er eine einzige Mail mit allen fünf Reports zusammengefasst — statt fünf separater Mails. Wahlweise abends als Tagessummary oder live nach jedem Lauf.

Threshold

Nur bei Problemen

Default: Mail nur bei Fehlerquote > 1 % oder bei 5xx-Antworten. Geräuscharm im Normalbetrieb, laut bei echten Problemen. Schwellwerte pro Shop konfigurierbar.

Empfänger

Mehrere Adressen pro Shop

Technik bekommt die Fehler-Details, Marketing bekommt die Übersicht. Pro Adresse einstellbar, welche Stufe (Info / Warning / Error) sie empfängt.

Slack & Webhook

Auch ohne E-Mail

Wer Slack nutzt: Incoming-Webhook hinterlegen, Reports gehen in den Channel. Oder generischen Webhook für eigene Tools (Discord, Mattermost, Datadog).

Historie

Reports im Dashboard archiviert

Jeder Versand wird gespeichert, im Dashboard nachlesbar. Mit Diff zur vorherigen Mail — siehst du auf einen Blick, ob die Fehlerquote steigt oder fällt.

07 Dashboard

Live-Status auf einen Blick — jederzeit, jeder Shop.

Das Web-Dashboard unter admin.cache-warmer.de zeigt in Echtzeit, was gerade läuft. Welche Shops sind in der Queue, welche werden gewärmt, welche URLs hingen am längsten? Mit Live-Tail jedes laufenden Runs.

Live-Feed

Aktive Läufe in Echtzeit

Per Server-Sent-Events bekommst du in der Browser-Ansicht jede gewärmte URL live mit Response-Code, Antwortzeit, Cache-Status. Kein Reload, kein Polling.

Historie

30 Tage Run-Detail

Jeder Lauf bleibt 30 Tage mit allen Einzel-URLs, Antwortzeiten und Status-Codes durchsuchbar. Statistiken (Durchschnitt, P95, Median) länger gespeichert.

Statistiken

Trends pro Shop

Wird dein Shop schneller oder langsamer über die Zeit? Charts zeigen P50/P95-Antwortzeiten, Fehlerquote und Cache-Hit-Rate pro Woche, pro Monat, pro Quartal.

Login

WebAuthn / Touch ID

Login per Fingerabdruck oder Hardware-Key (FIDO2 / WebAuthn). Klassisches Passwort als Fallback. Pro User 2FA optional erzwingbar.

API

REST-API für eigene Tools

Alles, was im Dashboard sichtbar ist, gibt es auch per API: Runs starten, Status abfragen, Reports exportieren. Bearer-Token-Auth, pro User mit Scopes.

Brand

Stone-&-Water-CI

Klares, ruhiges Design: Orange für Aktionen, Navy für Daten, viel Whitespace. Auf Desktop und Mobile gleich gut bedienbar.

08 In Zahlen

Was im Paket steckt.

10.000+
URLs pro Lauf, problemlos
15×
schneller durch HTTP/2-Pooling
3×
Shopware-Versionen unterstützt
Shops & Kunden pro Instanz
99,9%
Uptime auf Creoline-Hosting
09 Preise · Transparent & flexibel

Drei Tarife — vom Single-Shop bis zur Agentur.

Alle Tarife enthalten die komplette Funktionspalette. Du wählst nur nach Shop-Anzahl und Volumen. Monatlich kündbar, 14 Tage kostenlos testen — ohne Kreditkarte.

Starter
Für den einzelnen Shop
19 / Monat
  • 1 Shop
  • 5 Läufe pro Tag
  • bis 1.000 URLs pro Lauf
  • Sitemap-Auto-Discovery
  • HTTP/2-Pooling
  • E-Mail-Reports
  • 30 Tage Run-Historie
Agency
Für Agenturen und Reseller
149 / Monat
  • Unbegrenzte Shops
  • Multi-Kunden-Accounts
  • Customer Grouping & sequentielles Queueing
  • Sub-User mit individuellen Rechten
  • White-Label-Reports
  • Self-Hosted-Option
  • Priority-Support & SLA
  • Unbegrenzte Run-Historie

Alle Preise zzgl. MwSt. Du brauchst mehr Volumen oder eine maßgeschneiderte Lösung? Schreib uns für ein individuelles Angebot.

10 Changelog · Was ist neu

Aktiv entwickelt — direkt aus Agentur-Workflows.

Der Cache Warmer entstand für unsere eigenen Kundenshops und wird kontinuierlich um Funktionen erweitert, die im Alltag fehlen. Von der ersten internen Version bis zur aktuellen produktiv-stabilen Build.

v1.4
Mai 2026
  • Migration von sql.js auf better-sqlite3 — behebt WASM-Memory-Crashes bei großen Run-Historien, deutlich schneller bei Aggregations-Queries
  • Customer Grouping mit sequentiellem Shop-Queueing pro Kunde
  • Per-Shop- und Per-Kunde-E-Mail-Benachrichtigungen via PHP-Sendmail
  • PM2-Prozess-Management mit automatischem Restart und Log-Rotation
v1.3
April 2026
  • HTTP/2-Connection-Pooling mit automatischem Fallback auf HTTP/1.1 + Keepalive
  • Pro-Shop-Concurrency-Steuerung von 1 bis 16 parallelen Requests
  • Bugfix: doppelte URLs bei Sitemap-Index korrekt dedupliziert
v1.2
März 2026
  • Web-Dashboard mit Live-Feed via Server-Sent-Events
  • WebAuthn / Touch ID Login für das Admin-Panel
  • AES-256-GCM-Verschlüsselung für gespeicherte HTTP-Auth-Credentials
  • REST-API mit Bearer-Token und Scopes
v1.1
Februar 2026
  • Companion-Plugin für Shopware 6.5/6.6/6.7 — Trigger auf cache:clear
  • Slack-Webhook-Integration zusätzlich zu E-Mail-Reports
  • Custom-URL-Listen pro Shop, Ignore-Patterns mit Glob-Syntax
v1.0
Januar 2026
  • Erstveröffentlichung mit Sitemap-Crawl, Cron-Trigger, Webhook und einfachem Dashboard
  • Multi-Shop-Support, Multi-Tenant-Architektur
  • Run-Historie mit Statistiken pro Shop
  • Standard-E-Mail-Reports pro Lauf
11 FAQ · Häufige Fragen

Antworten auf die typischen Fragen.

Fast jede Frage zum Setup, zur Sicherheit oder zur Skalierung haben wir in den letzten Monaten schon einmal beantwortet. Wenn deine nicht dabei ist: kurze Mail genügt.

Was macht der Cache Warmer genau?

Der Cache Warmer ruft nach einem Cache-Flush automatisch alle URLs deines Shopware-Shops aus der sitemap.xml ab, damit die Caches — HTTP-Cache, Reverse-Proxy, Varnish, Cloudflare — wieder aufgebaut werden. Der erste echte Besucher bekommt dann sofort die schnelle, gecachte Version statt der 3–10 Sekunden langsamen Cold-Start-Antwort.

Wie viele Shops kann ich anbinden?

Im Starter-Tarif einen Shop, im Professional bis zu fünf, im Agency unbegrenzt viele. Pro Kunden-Account können beliebig viele Sub-User mit eigenen Rechten angelegt werden — ideal für Agenturen, die mehrere Kundenshops verwalten.

Brauche ich ein Shopware-Plugin?

Nein, nicht zwingend. Der Cache Warmer braucht nur eine erreichbare sitemap.xml. Optional gibt es ein Companion-Plugin für Shopware 6.5/6.6/6.7, das den Warmer automatisch nach jedem cache:clear, Plugin-Update oder Theme-Recompile per Webhook anstößt — sinnvoll, aber kein Muss.

Welche Daten werden gespeichert?

Nur die öffentlichen URLs deines Shops, ihre Antwortzeiten und HTTP-Status-Codes. Keine Seiteninhalte, keine Cookies, keine Kundendaten. Die Server stehen in Deutschland bei Creoline und werden DSGVO-konform betrieben. Gespeicherte HTTP-Auth-Credentials werden AES-256-GCM-verschlüsselt abgelegt.

Kann ich den Cache Warmer selbst hosten?

Ja, im Agency-Tarif ist eine Self-Hosted-Variante enthalten. Du bekommst das Node.js-Paket mit better-sqlite3 und PM2-Konfiguration und kannst es auf deinem eigenen Server (z.B. Plesk-Hosting mit Node-Runtime) deployen. Updates erhältst du im Rahmen des aktiven Abos.

Was passiert, wenn mein Server unter Last steht?

Die Concurrency pro Shop ist von 1 bis 16 parallelen Requests einstellbar. Zusätzlich kann ein Sleep zwischen den Requests konfiguriert werden, der bei 5xx-Antworten dynamisch hochgefahren wird. So bleibt die Last vorhersehbar — kein DDoS deines eigenen Servers. Bei wiederholten Timeouts wird der Lauf automatisch pausiert.

Welche Cache-Layer werden unterstützt?

Der Warmer erkennt X-Cache-Header von Varnish, Cloudflare, Shopware HTTP-Cache, Nginx FastCGI-Cache und Plesk-Caching. Im Report wird pro Lauf ausgewiesen, wie viele Seiten als Hit oder Miss ankamen — du siehst sofort, ob dein Cache-Setup richtig greift.

Gibt es einen kostenlosen Test?

Ja, 14 Tage unverbindlich auf allen Tarifen. Kein Auto-Renewal, keine Kreditkarte nötig — Trial-Account anlegen, Sitemap eintragen, ersten Lauf starten. Wenn er passt, regulär weiterbuchen; wenn nicht, einfach laufen lassen und nichts weiter tun.

Technische Details

Sauber gebaut. Pragmatischer Stack.

Kein Marketing-Stack, sondern Tools, die wir selbst täglich nutzen. Alles läuft auf einem einzigen Creoline-Server, beobachtbar, debug-bar, ohne Vendor-Lock-in zu einem Cloud-Provider.

Kompatibilität

Shopware 6.5 Shopware 6.6 Shopware 6.7 WooCommerce Magento 2 Statische Sitemaps

Solange ein Shop eine sitemap.xml liefert, kann der Warmer ihn crawlen. Shopware-spezifisch ist nur das optionale Companion-Plugin.

Stack

Node.js 20 better-sqlite3 PM2 HTTP/2 React Admin PHP Sendmail

Single-Binary-Deployment auf Plesk-Nodejs-Runtime. Datenbank ist eine lokale SQLite-Datei — kein externer DB-Server nötig, kein Lock-in.

Datenschutz & Hosting

Der Warmer läuft auf unseren Creoline-Servern in Deutschland. Es werden nur die URLs deines Shops, ihre Antwortzeiten und Status-Codes gespeichert — keine Seiteninhalte, keine Cookies, keine Customer-Daten.

Optional auch als Self-Hosted-Variante auf deinem eigenen Server installierbar.

Architektur

Single-Node-Service mit PM2-Cluster-Modus für Lastverteilung. Run-State in lokaler SQLite, Pre-Fetch-Cache der Sitemap auf der Filesystem-Ebene. HTTP/2-Pools mit Origin-bound Connection-Limits.

Logs werden via PM2 rotiert (täglich, 14 Tage), Audit-Trail in der DB länger gespeichert.

Interesse?

Lass uns über deine Cache-Strategie sprechen.

Egal ob ein einzelner Shop oder ein Agentur-Portfolio mit fünfzig Storefronts — der Cache Warmer macht den ersten Besuch nach jedem Cache-Flush genauso schnell wie den hundertsten. Schreib uns für einen Testzugang oder eine kurze Demo.