Measuring Accelerate Guru's impact requires methodology. A single Lighthouse run is not enough — Lighthouse has variance, your network matters, and browser caching can mask or exaggerate results. This page covers the correct way to measure before-and-after performance.
#The built-in check command
The fastest way to verify Accelerate Guru is working correctly is:
This command:
- Fetches your homepage directly from the Magento origin (bypassing the proxy).
- Fetches your homepage through the proxy.
- Compares both responses and reports:
- Cache hit/miss status
- Compression encoding used
- AVIF images served
- Response time difference
- Any new JavaScript errors introduced by the proxy
- CORS issues
- HTML size before and after optimisation
- Missing or incorrect headers
Example output (healthy install):
ACCELERATE GURU HEALTH CHECK
=============================
CONNECTION
Origin: http://127.0.0.1:8080 → 200 OK (824ms)
Proxy: https://yourstore.com → 200 OK (3ms) ← CACHE HIT
COMPRESSION
Encoding: zstd ✓
HTML size: 89 KB → 21 KB (−76%)
IMAGES
Hero image: AVIF served ✓ (original: 1.1 MB → 44 KB, −96%)
LCP preload: <link rel=preload> injected ✓
SECURITY
WAF: active ✓
X-Content-Type-Options: nosniff ✓
X-Frame-Options: SAMEORIGIN ✓
JAVASCRIPT
Console errors from proxy: none ✓
Scripts deferred: 8 scripts ✓
RESULT: All checks passed. Cache hit rate: 100% (warm cache)
#Google PageSpeed Insights
Google PageSpeed Insights runs Lighthouse in Google's lab environment and is the standard reference for Magento performance.
#How to use it correctly
Warm the cache first. Visit your homepage through the proxy 2–3 times before running PageSpeed. A cold cache will show slower results.
Test the correct URL. If your proxy is on
https://yourstore.combut Magento's base URL ishttp://127.0.0.1:8080, make sure you're testing the proxy URL.Use Mobile view. The Mobile score is the primary Lighthouse score for Google ranking purposes. Desktop is easier to pass but less representative.
Run 3 times and average. Lighthouse has variance of ±5–10 points. Run three times and use the median.
#What to expect
| Metric | Before | After (target) |
|---|---|---|
| Performance score (mobile) | 15–30 | 90–100 |
| TTFB | 800–2000 ms | < 500 ms |
| First Contentful Paint | 3–6 s | < 1.5 s |
| Largest Contentful Paint | 5–12 s | < 2.5 s |
| Total Blocking Time | 500–2000 ms | < 200 ms |
| Cumulative Layout Shift | 0.1–0.4 | < 0.1 |
#Reading the report
The Lighthouse report's Opportunities section shows exactly what is contributing to your score. After a successful Accelerate Guru install, most of these should be gone or significantly reduced:
- "Reduce initial server response time" — resolved by caching (TTFB drops from 800ms to 3ms).
- "Serve images in next-gen formats" — resolved by AVIF encoding.
- "Efficiently encode images" — resolved by AVIF encoding.
- "Eliminate render-blocking resources" — resolved by script deferral and Critical CSS.
- "Enable text compression" — resolved by zstd/brotli compression.
- "Serve static assets with an efficient cache policy" — resolved by
Cache-Control: max-age=31536000headers on assets.
#Lighthouse CLI
For automated testing in CI/CD pipelines:
# Install
# Run (mobile, performance category only)
# Extract the score
|
#Correct throttling settings for before/after comparison
Use identical settings for both measurements:
#WebPageTest
WebPageTest provides more detailed waterfall views and is excellent for identifying bottlenecks. Key settings:
- Location: choose a test location geographically near your target market.
- Browser: Chrome (latest).
- Connection: 4G (for mobile), Cable (for desktop).
- Repeat view: always check the Repeat View tab — this shows performance for a returning visitor with a warm browser cache.
After Accelerate Guru installation, the Repeat View should show most static assets served from the Service Worker or browser cache (shown as green in the waterfall).
#Verifying cache and compression headers with curl
# Check cache and compression headers
| \
Expected response headers on a cache hit:
x-cache: HIT
content-encoding: zstd
age: 3600
cache-control: public, max-age=5, stale-while-revalidate=60
#What each header means
| Header | Value | Meaning |
|---|---|---|
x-cache | HIT | Response served from DragonflyDB |
x-cache | MISS | Response fetched from Magento origin |
content-encoding | zstd | Body compressed with zstd |
content-encoding | br | Body compressed with brotli |
age | 3600 | Entry has been in cache for 1 hour |
x-ag-vary | hash | Magento variation segment for this cache entry |
#Verifying AVIF images
# Check that an image is served as AVIF
| \
Expected: content-type: image/avif
If you see content-type: image/jpeg, the image hasn't been encoded yet (background encoding is in progress). Wait 30 seconds and try again.
#Common reasons for a lower-than-expected score
#Score is still below 90 after install
Cache not warm. Run
accelerate-guru check --url https://yourstore.com— if it showsMISS, the cache isn't populated yet. Visit the homepage 5–10 times or setwarmup_sitemap.Large third-party scripts. Google Tag Manager, live chat widgets, and payment SDK pre-loads can consume 200–500 ms of TBT regardless of how fast your pages load. Enable
delay_third_party_js = truein[optimization_assets].force_defer_js = false. Ensure JavaScript deferral is enabled:[optimization_assets] force_defer_js = trueLCP image not being preloaded. Check that
preload_lcp_image = trueand that the<link rel=preload>appears near the top of<head>.High CLS from images without dimensions. Ensure
inject_asset_dimensions = true.Font still loading from Google CDN. Enable font self-hosting:
[optimization_fonts] enabled = true
#TTFB is still high
- Check that the cache is warm (
x-cache: HITin response headers). - If
x-cache: MISS, every request goes to Magento. Check DragonflyDB is running:redis-cli ping. - If DragonflyDB is running but no hits occur, check
redis_host/redis_portin[cache].
#PageSpeed score is 95 locally but 70 on Google's servers
Google's lab tests simulate a 4G mobile connection with CPU throttling. A score of 70 from Google versus 95 from your local test usually means there is a large JavaScript bundle that blocks the main thread. Enable delay_third_party_js and check the Lighthouse TBT metric specifically.