Cron + live mode
Cache warming can be tied to a cron job (overnight, early morning) — or triggered live after a theme deploy.
No first visitor has to wait — scheduled warming of all caches, multi-shop and customer-group aware.
Instead of hoping the first real visitor will fill the cache, we do it beforehand — scheduled, complete, with the right customer groups.
Cache warming can be tied to a cron job (overnight, early morning) — or triggered live after a theme deploy.
Product detail pages, listings, CMS pages, category pages — for every active storefront language and sales channel.
Each customer group gets its own cache run. B2B prices, net displays, restricted assortments — all kept warm correctly.
Multiple shops? No problem — cache warmer processes them sequentially and spares the server from parallel load.
Instead of a new connection per page, HTTP/2 with connection pooling is used — significantly faster at scale.
If the target server cannot do HTTP/2 or has connection issues — automatic fallback to HTTP/1.1.
admin.cache-warmer.de shows what is going on right now. Plus searchable history of the last 30 days per shop.
admin.cache-warmer.de provides a live dashboard showing in real time which shop is being warmed, how many pages are through, how much time remains. Including history of the last runs per shop.
Real-time display of currently processed pages per second — directly comparable to the trend of past runs.
For every shop and customer group, the success rate is tracked — error pages are flagged in the history.
All runs of the past 30 days are searchable in the dashboard — including duration, errors and affected URLs.
Per-shop email reports after every run — or Slack webhook. Threshold alerts dampen the noise.
After every run, a mail report goes to the configured addresses — including duration, error pages and performance trend.
Mail delivery via PHP sendmail — no SMTP setup, no external services, no vendor lock-in.
If a page returns an error (404, 500, timeout) — the report shows the exact URL, status and response time.
In the mail the average response time is compared with the last run — regressions are immediately visible.
Optional: only send mail when the success rate drops below X % — no daily "all OK" mails.
Instead of mail (or in addition): Slack webhook for the whole team — same content, directly in the channel.
Status of the current Cache Warmer setup at admin.cache-warmer.de.
Instead of large frameworks: lean Node worker, SQLite for state, PM2 for stability.
Node worker per shop, shared queue via SQLite. better-sqlite3 replaces the earlier sql.js which ran into WASM memory crashes. PM2 secures auto-restart on crashes.
Runs on Creoline server s23409 on port 3010, reachable at admin.cache-warmer.de. nodenv for Node version pinning, installable without root access.
We set up Cache Warmer for your Shopware instance — including customer-group mapping, mail configuration and integration with your monitoring.