Real User Monitoring for Shopware 6
Where your Shopware storeloses time,and what causes it.
Every RUM tool shows you a high LCP. fastmon shows you, on the same pageview, whether the full-page cache hit, how long PHP took and how long the template rendered. The Shopware 6 plugin ships those numbers as a Server-Timing header.
What you get
What fastmon does for your Shopware store.
In plain language, before this page turns technical further down.
- 01
You see which pages keep your customers waiting
Not one average across the whole store, but split by home, category, product page and checkout. fastmon recognises those page types on Shopware by itself.
- 02
You see whether the server or the frontend is at fault
That is the question that decides who you call: the host or the agency. fastmon measures both on every pageview and puts them side by side.
- 03
You see where in the checkout people drop out
And how fast the page was that they dropped out on. Cart, checkout and completion stand next to each other as their own stages.
- 04
You do not have to touch the theme
The plugin injects the measuring code into the storefront itself. And because fastmon sets no cookies, the measurement needs no banner.
In short
- LCP
- Largest Contentful Paint: how long the biggest visible element of a page takes to appear, the product image for instance. Google rates pages on it.
- Full-page cache
- The finished page your store keeps in memory so PHP does not have to rebuild it on every request. When it misses, things get slow.
- p75
- The value three out of four visitors reach or beat. More telling than an average, because single outliers cannot flatter it.
The difference
A high LCP is a symptom. The header names the cause.
A script tag sees what happens in the browser. It does not see what your server did before that. The FastmonCollector plugin therefore writes a Server-Timing header into every storefront response, and fastmon correlates it with the Core Web Vitals of that exact visitor.
What the header carries, with no extra software
- fm-origin-cache
- Full-page cache: hit, miss or bypass
- fm-origin-age
- Age of the cached copy in seconds
- fm-backend
- Total PHP wall time
- fm-render
- Template render time
- fm-pagetype
- Page type from the dispatched route
- fm-host
- Machine that answered (optional)
- fm-loggedin
- Logged in or not (optional)
Optional: one layer deeper
With the Tideways PHP extension 5.23 or newer installed, the plugin also reports how the backend time splits across layers. Without Tideways, all seven entries above still arrive in full.
- Database
- Cache
- Search
- Outbound HTTP
Server-Timing can be switched off per sales channel. Hostname and login status are off by default.
From shelf to till
See which stage your revenue stops at.
For stores, fastmon recognises the checkout stage and builds a funnel from it: one bar per stage, plus its share of the stage before. That makes it visible where people drop out, not only that they do.
Checkout funnel
Example- Cart
- Visitors
- 1,240
- Of the stage before
- 100 %
- LCP p75
- 1.9 s
- Checkout
- Visitors
- 712
- Of the stage before
- 57 %
- LCP p75
- 2.8 s
- Completed
- Visitors
- 389
- Of the stage before
- 55 %
- LCP p75
- 2.1 s
How to read this
Between cart and checkout 43% drop out here, and that is exactly where the LCP peaks. A funnel alone shows the drop-off, RUM alone shows the load time. Only together do they show the connection.
Illustrative figures, not real customer data.
- 01
Checkout stage as a filter and a dimension across every report
- 02
Live visitors of the last five minutes, split by cart, checkout and confirmation page
- 03
In the visitor detail, the stage and the cart actions of that one visit
To be straight about it: the stages come from page types, not from instrumented events. And there is no bounce rate, whether someone left afterwards is not in the data.
No configuration
Metrics per Shopware page type, from the first pageview.
When the application is created, the plugin sets the page-type ruleset to shopware6. Page types come from the storefront's body classes, so there are no path patterns to maintain. Every sales-channel domain registers itself on its first pageview.
Listing versus product page
A slow listing and a slow product page rarely share a cause. Measured apart, judged apart.
Checkout as its own type
The pages the money hangs on stop disappearing into the average of all pageviews.
Several sales channels
Each domain gets its own dashboard, and the settings stay controllable per sales channel.
Install
Two ways in, depending on your shop.
Without a Composer deploy you upload the plugin as a ZIP. With Composer you take the command. Connecting afterwards is a click in the admin, over OAuth 2.0 with PKCE and no key to copy.
Upload the plugin as a ZIP
The route without a command line. The ZIP already carries the built administration files, so the build step falls away and you stay in the Shopware admin throughout.
- 1Download FastmonCollector-X.Y.Z.zip from the releases on GitHub
- 2In the admin, go to Extensions, My extensions, Upload extension
- 3Install and activate, both straight from the admin
- 4Hit Configure and connect to fastmon
No Composer, no build, no console. If you have no server access, this is your route.
Install via Composer
For agencies and deploy pipelines. The admin build in the middle is not optional: the Composer package does not carry the built administration files, they are generated.
composer require fastmon/shopware-collector
bin/console plugin:refresh
bin/console plugin:install --activate FastmonCollector
shopware-cli project admin-build . --only-extensions FastmonCollector
bin/console cache:clearWithout the build step the configuration page in the admin has no panel at all.
Then just connect
Extensions, My extensions, fastmon.eu, Configure, then hit Connect to fastmon. That is one click, not a key to copy: the connection runs over OAuth and can be revoked at any time.
Requirements
- Shopware
- 6.6.x or 6.7.x
- PHP
- 8.2 or newer
- Tideways
- optional, 5.23 or newer
- Multiple nodes
- LOCK_DSN pointing at a shared lock store
You can serve tracker and beacon from fastmon, from your own domain or from the same origin as the store. The latter two need your web server to proxy to fastmon. The Check setup function verifies every endpoint before a change takes effect.
The plugin on GitHubPrivacy
No cookie banner for the measurement.
fastmon sets no cookies, in any configuration. New applications start on the Standard preset, which works without personal data and stores nothing on the device.
- Minimal: vitals, error kinds and device classes only, no identifiers
- Standard (default): plus fetch and XHR aggregates, query key names and stack frames, still without error text, query values and session ID
- Full: writes an identifier into sessionStorage and therefore needs consent
- Hosted in Germany, 100% EU data path
* On the Minimal and Standard presets fastmon stores nothing on the device; it only reads status values the browser produces at runtime. In our assessment that is not access to stored information under § 25 TDDDG. That has not been settled in court, a residual risk remains, and the assessment for a specific deployment is the store operator's to make.
Measure your Shopware store, not a test device.
Start for free, install the plugin, connect. Your first real visitors land in the dashboard today.
FAQ
Common questions about Shopware
What store operators and agencies want to know before installing.
Do I need Tideways for the Server-Timing header?
No. The seven entries, including the cache verdict, the PHP wall time and the render time, come from the plugin with no extra software. Tideways 5.23 or newer is optional and only adds the split of backend time across database, cache, search and outbound HTTP.
Which Shopware versions are supported?
Shopware 6.6.x and 6.7.x with PHP 8.2 or newer. There is no plugin for older versions; there you can still embed fastmon with a script tag in the theme, but then without Server-Timing and without automatic page-type detection.
Does fastmon track individual cart clicks?
No. The checkout funnel is built from page types, not from instrumented events. You see how many visitors sit in cart, checkout and completion and where they drop out, but not individual click events on a button.
Do I need a cookie banner?
Not for the measurement. fastmon sets no cookies in any configuration, and the Minimal and Standard presets write nothing to the device. Only the Full preset puts an identifier in sessionStorage and needs consent under § 25 TDDDG.
The full derivationWhat happens with several sales channels?
Every sales-channel domain registers itself on its first pageview and gets its own dashboard. Tracking, error bootstrap and Server-Timing can each be switched per channel.
Does this work across several servers?
Yes, but LOCK_DSN has to point at a shared lock store, Redis or the database for instance. Otherwise several nodes can try to renew the connection at the same time.
Shopware is a registered trademark of shopware AG. fastmon is not a partner of shopware AG and is neither endorsed nor reviewed by them.