Core Web Vitals & site speed
Executive summary
Vampire Vape's mobile performance is sitting in the danger zone — scores as low as 50 on key pages — putting organic rankings and paid landing page Quality Scores at measurable risk; the single biggest revenue-adjacent issue is a third-party stylesheet (srverror.com/styles.css) blocking render on 86% of pages and wasting over 65 seconds of aggregate load time across the site, meaning shoppers on mobile are staring at blank screens before they can browse or convert. Two root causes — unoptimised Google Tag Manager tag firing and render-blocking CSS and font resources — are suppressing scores that could realistically reach the low-to-mid 90s with targeted fixes, directly improving ad efficiency and SEO visibility.
At a glance
(134 occurrences)
Top 3 fixes
The highest-impact actions from the full recommendation list. Start here — these three alone are projected to move the needle most.
Fix srverror.com/styles.css immediately
this single stylesheet blocks render on 86% of mobile pages (65,823ms aggregate waste). Audit whether it is actually needed — the domain name suggests it may be an error-monitoring asset loaded incorrectly. If required, load it non-blocking using the pattern: …
Fix the Google Fonts render block
fonts.googleapis.com/css?family=Open+Sans blocks render on 86% of mobile pages (65,032ms aggregate). Replace the standard <link> with a preconnect + font-display:swap approach: add <link rel='preconnect' href='https://fonts.googleapis.com'> in <head>, then loa…
Audit and slim down GTM tags
Open GTM Preview and identify every tag set to fire on 'All Pages'. Tags for remarketing, heatmaps, chat widgets, and A/B testing tools should be scoped to specific page paths or event triggers instead. GTM is costing 218ms blocking time per mobile page load a…
Core Web Vitals distribution
How the sample splits across Google's Good / Needs Improvement / Poor bands for each metric. A passing site needs ≥75% of URLs in Good for every metric. Hover each segment for exact counts.
mobile
desktop
CrUX field trend — last 6 months
Real-user data from Google's Chrome User Experience Report. Each sparkline spans ~25 weekly periods ending now. Background bands show Good (green) / Needs Improvement (yellow) / Poor (red). A diverging field vs lab story is a signal — lab tests reveal the bad page-load path, but field data is what Google ranks on.
1 additional per-URL CrUX trends — show all
LCP anti-patterns
A correctly-tuned LCP element loads eagerly, has fetchpriority="high", and is
discoverable in the initial HTML. Any of these missing will delay paint.
loading="lazy" on LCPloading="lazy" on above-the-fold LCP elementfetchpriority="high"fetchpriority="high" to LCP img / preload tag<link rel="preload">6 URLs with lazy-loaded LCP — show list
| URL | Strategy | LCP (lab) | Score |
|---|---|---|---|
| https://www.vampirevape.co.uk | desktop | 1341ms | 58 |
| https://www.vampirevape.co.uk | mobile | 5251ms | 71 |
| https://www.vampirevape.co.uk/aspire-pockex-replacement-glass | desktop | 1031ms | 50 |
| https://www.vampirevape.co.uk/aspire-pockex-replacement-glass | mobile | 4801ms | 43 |
| https://www.vampirevape.co.uk/bar-salts-strawberry-ice-10ml-60ml-longfill-concentrate | desktop | 988ms | 62 |
| https://www.vampirevape.co.uk/delivery | desktop | 1081ms | 85 |
Worst pages
Lowest-scoring URLs per strategy — prioritise these for manual investigation in addition to sitewide fixes.
mobile
| # | URL | Score | LCP (lab) | TBT (lab) | CLS | Flags |
|---|---|---|---|---|---|---|
| 1 | https://www.vampirevape.co.uk/faqs | 34 | 10285ms | 491ms | 0.417 | |
| 2 | https://www.vampirevape.co.uk/aspire-pockex-replacement-glass | 43 | 4801ms | 1730ms | 0.071 | lazy LCPno fp |
| 3 | https://www.vampirevape.co.uk/delivery | 52 | 9806ms | 306ms | 0.038 | |
| 4 | https://www.vampirevape.co.uk/catalog/category/view/id/1145 | 55 | 3151ms | 1018ms | 0.126 | |
| 5 | https://www.vampirevape.co.uk/lost-mary-bm6000-prefilled-pod-10mg-1pk | 57 | 4652ms | 370ms | 0.162 | no fp |
| 6 | https://www.vampirevape.co.uk/catalog/category/view/id/3778 | 61 | 10826ms | 119ms | 0.14 | |
| 7 | https://www.vampirevape.co.uk | 71 | 5251ms | 281ms | 0.035 | lazy LCPno fp |
| 8 | https://www.vampirevape.co.uk/catalog/category/view/id/2496 | 94 | 2255ms | — | — | |
| 9 | https://www.vampirevape.co.uk/vampire-vape-70-30-caramelised-banana-pancake-50ml-shortfill-e-liquid | 95 | 2341ms | — | — | |
| 10 | https://www.vampirevape.co.uk/vampire-vape-vamp-toes-10ml-e-liquid | 95 | 2340ms | — | — |
desktop
| # | URL | Score | LCP (lab) | TBT (lab) | CLS | Flags |
|---|---|---|---|---|---|---|
| 1 | https://www.vampirevape.co.uk/catalog/category/view/id/2508 | 43 | 2453ms | 445ms | 0.288 | |
| 2 | https://www.vampirevape.co.uk/aspire-pockex-replacement-glass | 50 | 1031ms | 935ms | 0.268 | lazy LCPno fp |
| 3 | https://www.vampirevape.co.uk | 58 | 1341ms | 1845ms | 0.053 | lazy LCPno fp |
| 4 | https://www.vampirevape.co.uk/bar-salts-strawberry-ice-10ml-60ml-longfill-concentrate | 62 | 988ms | 974ms | 0.054 | lazy LCPno fp |
| 5 | https://www.vampirevape.co.uk/environmental-policy | 77 | 2386ms | 217ms | 0.021 | |
| 6 | https://www.vampirevape.co.uk/delivery | 85 | 1081ms | 262ms | 0.043 | lazy LCPno fp |
| 7 | https://www.vampirevape.co.uk/e-liquid/10ml-e-liquid/vape-spot-10ml-e-liquids | 87 | 1156ms | 200ms | 0.105 | |
| 8 | https://www.vampirevape.co.uk/privacy-policy | 94 | 1206ms | 28ms | 0.04 | |
| 9 | https://www.vampirevape.co.uk/innokin-pzp-max-coils-3pk | 99 | 667ms | — | — | |
| 10 | https://www.vampirevape.co.uk/aspire-veynom-ex-kit-rainbow | 99 | 655ms | — | — |
Sitewide third-party impact
How each vendor compounds across every audited page. Fixing a script on 1% of pages nudges the score. Fixing a script on 90% of pages moves it.
| Vendor | Strategy | Coverage | Mean blocking | Aggregate blocking | Transfer total | Consent |
|---|---|---|---|---|---|---|
| Google Tag Manager
(gtm) |
desktop | 8/100 · 8% | 325ms | 2600ms | 3031 KB | before consent |
| Cookiebot | desktop | 8/100 · 8% | 31ms | 246ms | 1067 KB | before consent |
| lipscore.com | desktop | 8/100 · 8% | 3ms | 25ms | 991 KB | — |
| ahrefs.com | desktop | 8/100 · 8% | 1ms | 10ms | 29 KB | — |
| New Relic | desktop | 8/100 · 8% | 1ms | 8ms | 265 KB | — |
| Ometria | desktop | 8/100 · 8% | 0ms | 0ms | 71 KB | — |
| Trust Pilot | desktop | 8/100 · 8% | 0ms | 0ms | 99 KB | — |
| affiliatefuture.com | desktop | 8/100 · 8% | 0ms | 0ms | 12 KB | — |
| Google Analytics
(ga4) |
desktop | 8/100 · 8% | 0ms | 0ms | 9 KB | before consent |
| Google Fonts | desktop | 85/100 · 85% | 0ms | 0ms | 1377 KB | — |
| srverror.com | desktop | 85/100 · 85% | 0ms | 0ms | 94 KB | — |
| Google Tag Manager
(gtm) |
mobile | 7/100 · 7% | 318ms | 2223ms | 2734 KB | before consent |
| Cookiebot | mobile | 7/100 · 7% | 28ms | 198ms | 902 KB | before consent |
| lipscore.com | mobile | 7/100 · 7% | 2ms | 12ms | 849 KB | — |
| Ometria | mobile | 7/100 · 7% | 1ms | 9ms | 62 KB | — |
Sitewide heavy files
Specific files that either render-block or ship large amounts of unused code on many pages at once. One-file fixes that propagate everywhere.
| File | Type | Strategy | Coverage | Wasted |
|---|---|---|---|---|
| https://www.srverror.com/styles.css | render blocking | desktop | 85/100 · 85% | 18393ms aggregate |
| https://fonts.googleapis.com/css?family=Open+Sans | render blocking | desktop | 85/100 · 85% | 17588ms aggregate |
| https://www.vampirevape.co.uk/static/version1774449510/_cache/merged/4b99b28e82d75b2e19802a36528948d2.min.css | render blocking | desktop | 8/100 · 8% | 1268ms aggregate |
| https://www.vampirevape.co.uk/static/version1774449510/_cache/merged/dc682e5d32b130d237723be506e42f0a.min.css | render blocking | desktop | 6/100 · 6% | 499ms aggregate |
| sion1774449510/frontend/FlavourWarehouse/VampireVape/en_GB/FlavourWarehouse_Marketing/js/product/labels.min.js | render blocking | desktop | 2/100 · 2% | 391ms aggregate |
| atic/version1774449510/frontend/FlavourWarehouse/VampireVape/en_GB/FlavourWarehouse_Marketing/js/labels.min.js | render blocking | desktop | 2/100 · 2% | 389ms aggregate |
| https://www.vampirevape.co.uk/static/version1774449510/_cache/merged/6cca0708a05d06be0c985d3aa34e2da9.min.css | render blocking | desktop | 2/100 · 2% | 172ms aggregate |
| https://custom-page.qa-apptrana.com/ifc/400/styles/main.css | render blocking | desktop | 1/100 · 1% | 0ms aggregate |
| https://www.vampirevape.co.uk/static/version1774449510/_cache/merged/dc682e5d32b130d237723be506e42f0a.min.css | unused css | desktop | 6/100 · 6% | 174KB (91% unused) |
| ://static.lipscore.com/assets/lipscore-v1-98cfc83a3af5ccbf62bf453b84995412470b050e7eaebe9eef2630dbceb5773f.css | unused css | desktop | 8/100 · 8% | 131KB (98% unused) |
| https://www.vampirevape.co.uk/static/version1774449510/_cache/merged/6cca0708a05d06be0c985d3aa34e2da9.min.css | unused css | desktop | 2/100 · 2% | 57KB (89% unused) |
| https://www.googletagmanager.com/gtag/js?id=G-B0FRYP2L33&cx=c>m=4e64t1 | unused js | desktop | 6/100 · 6% | 518KB (55% unused) |
| https://www.googletagmanager.com/gtm.js?id=GTM-WDR9M62 | unused js | desktop | 8/100 · 8% | 482KB (43% unused) |
| https://static.lipscore.com/assets/en/lipscore-v1.js | unused js | desktop | 8/100 · 8% | 452KB (70% unused) |
| https://www.googletagmanager.com/gtag/destination?id=G-B0FRYP2L33&cx=c>m=4e64t1 | unused js | desktop | 3/100 · 3% | 192KB (40% unused) |
What-if: projected score lift per fix
Directional estimates — each scenario assumes an 80% reduction in the named script's blocking contribution. Actual lift varies based on what Lighthouse then sees as the next bottleneck.
Removing 80% of Google Tag Manager's 372ms blocking contribution drops TBT from 445ms to 147ms. Directional only — actual lift depends on which other scripts Lighthouse then sees as bottlenecks.
Removing 80% of Google Tag Manager's 319ms blocking contribution drops TBT from 491ms to 235ms. Directional only — actual lift depends on which other scripts Lighthouse then sees as bottlenecks.
Template rollup
Median performance per template. Each template can be expanded to show the exact URLs audited — useful for tracing why a template is underperforming.
mobile
INP: 89ms
CLS: —
INP: 89ms
CLS: —
INP: 85ms
CLS: 0.02
INP: 89ms
CLS: —
INP: 89ms
CLS: —
desktop
INP: 57ms
CLS: 0.05
INP: 57ms
CLS: 0.05
INP: 49ms
CLS: 0.05
INP: 57ms
CLS: 0.05
INP: 57ms
CLS: 0.05
Which URLs were audited? Expand to see the full sample by template.
branded (3 URLs)
category (25 URLs)
- https://www.vampirevape.co.uk/brands/avomi/avomi-cliq-mini-kit
- https://www.vampirevape.co.uk/catalog/category/view/id/1145
- https://www.vampirevape.co.uk/catalog/category/view/id/1735
- https://www.vampirevape.co.uk/catalog/category/view/id/2496
- https://www.vampirevape.co.uk/catalog/category/view/id/2508
- https://www.vampirevape.co.uk/catalog/category/view/id/2509
- https://www.vampirevape.co.uk/catalog/category/view/id/2514
- https://www.vampirevape.co.uk/catalog/category/view/id/2516
- https://www.vampirevape.co.uk/catalog/category/view/id/2547
- https://www.vampirevape.co.uk/catalog/category/view/id/2561
- https://www.vampirevape.co.uk/catalog/category/view/id/2562
- https://www.vampirevape.co.uk/catalog/category/view/id/2566
- https://www.vampirevape.co.uk/catalog/category/view/id/287
- https://www.vampirevape.co.uk/catalog/category/view/id/3375
- https://www.vampirevape.co.uk/catalog/category/view/id/3413
- https://www.vampirevape.co.uk/catalog/category/view/id/3617
- https://www.vampirevape.co.uk/catalog/category/view/id/3771
- https://www.vampirevape.co.uk/catalog/category/view/id/3778
- https://www.vampirevape.co.uk/catalog/category/view/id/3846
- https://www.vampirevape.co.uk/catalog/category/view/id/3912
- https://www.vampirevape.co.uk/e-liquid
- https://www.vampirevape.co.uk/eleaf-istick-20w
- https://www.vampirevape.co.uk/environmental-policy
- https://www.vampirevape.co.uk/terms-of-use
- https://www.vampirevape.co.uk/vampire-vape-awards
home (1 URLs)
other (6 URLs)
- https://www.vampirevape.co.uk/clearance/vape-prefilled-pod-clearance
- https://www.vampirevape.co.uk/e-liquid/10ml-e-liquid/vape-spot-10ml-e-liquids
- https://www.vampirevape.co.uk/e-liquid/beverage-e-liquids/blackcurrant-flavour-e-liquid
- https://www.vampirevape.co.uk/e-liquid/e-liquid-multibuys/e-liquid-4-for-12
- https://www.vampirevape.co.uk/vape-pods/dot-pro-vape-pods
- https://www.vampirevape.co.uk/vape-pods/prefilled-pods-multibuy/prefilled-pods-multibuy-3-for-12
product (65 URLs)
- https://www.vampirevape.co.uk/aspire-k3-vape-tank
- https://www.vampirevape.co.uk/aspire-pixo-replacement-pods-2pk
- https://www.vampirevape.co.uk/aspire-pockex-replacement-glass
- https://www.vampirevape.co.uk/aspire-veynom-air-replacement-pod-2pk
- https://www.vampirevape.co.uk/aspire-veynom-ex-kit-gunmetal
- https://www.vampirevape.co.uk/aspire-veynom-ex-kit-rainbow
- https://www.vampirevape.co.uk/bar-salts-grape-10ml-60ml-longfill-concentrate
- https://www.vampirevape.co.uk/bar-salts-pink-lemonade-30ml-e-liquid-concentrate
- https://www.vampirevape.co.uk/bar-salts-strawberry-ice-10ml-60ml-longfill-concentrate
- https://www.vampirevape.co.uk/double-drip-coil-sauce-strawberry-banana-waffle-50ml-shortfill-e-liquid
- https://www.vampirevape.co.uk/double-drip-watermelon-100ml-shortfill-e-liquid
- https://www.vampirevape.co.uk/elfliq-elfa-turbo-vape-pod-kit
- https://www.vampirevape.co.uk/famovape-yup-rda-rainbow
- https://www.vampirevape.co.uk/freemax-rexa-lite-vape-pod-kit
- https://www.vampirevape.co.uk/freemax-rexa-smart-vape-pod-kit
- https://www.vampirevape.co.uk/geek-vape-aegis-force-vape-kit
- https://www.vampirevape.co.uk/horizontech-aquila-tank-blue
- https://www.vampirevape.co.uk/horizontech-falcon-king-tank-2ml-black
- https://www.vampirevape.co.uk/innokin-endura-t18-ii-mini-kit-green
- https://www.vampirevape.co.uk/innokin-ez-watt-kit-blue
- https://www.vampirevape.co.uk/innokin-pzp-max-coils-3pk
- https://www.vampirevape.co.uk/lost-mary-airplane-mode-film-mint-20pk
- https://www.vampirevape.co.uk/lost-mary-bm6000-prefilled-pod-10mg-1pk
- https://www.vampirevape.co.uk/lost-vape-ub-ultra-coils-5pk-m8-0-15ohm
- https://www.vampirevape.co.uk/lost-vape-ursa-nano-pod-kit
- https://www.vampirevape.co.uk/lost-vape-ursa-v3-replacement-pods-3pk
- https://www.vampirevape.co.uk/oxva-origin-x-rba-1pk
- https://www.vampirevape.co.uk/oxva-xlim-sq-pro-2-vape-pod-kit
- https://www.vampirevape.co.uk/pablo-nic-pouches-grape-ice-24mg
- https://www.vampirevape.co.uk/pocket-fuel-50-50-peppermint-ice-10ml-e-liquid
- https://www.vampirevape.co.uk/promotional-postcard-vv-e-liquid-0325
- https://www.vampirevape.co.uk/resin-short-section-510-drip-tip
- https://www.vampirevape.co.uk/smok-mag-empty-pod-2ml-3pk
- https://www.vampirevape.co.uk/smok-pozz-pro-replacement-pods-3pk
- https://www.vampirevape.co.uk/smok-propod-gt-kit-purple-grey
- https://www.vampirevape.co.uk/smok-vape-pen-22-replacement-glass
- https://www.vampirevape.co.uk/snu-nic-pouches-triple-mango-20pk
- https://www.vampirevape.co.uk/uwell-caliburn-tenet-koko-vape-pod-kit-black-white
- https://www.vampirevape.co.uk/uwell-caliburn-tenet-vape-pod-kit-carbon-black
- https://www.vampirevape.co.uk/uwell-crown-d-vape-pod-kit-blue
- https://www.vampirevape.co.uk/uwell-viscore-8000-prefilled-pod-refill
- https://www.vampirevape.co.uk/vampire-vape-70-30-caramelised-banana-pancake-50ml-shortfill-e-liquid
- https://www.vampirevape.co.uk/vampire-vape-70-30-purple-craze-ice-100ml-shortfill-e-liquid
- https://www.vampirevape.co.uk/vampire-vape-bar-salts-cherry-ice-10ml-e-liquid
- https://www.vampirevape.co.uk/vampire-vape-catapult-30ml-e-liquid-concentrate
- https://www.vampirevape.co.uk/vampire-vape-max-orange-pineapple-10ml-nic-salt-e-liquid
- https://www.vampirevape.co.uk/vampire-vape-passionfruit-splash-10ml-e-liquid
- https://www.vampirevape.co.uk/vampire-vape-pineapple-10ml-e-liquid
- https://www.vampirevape.co.uk/vampire-vape-tobacco-1961-30ml-e-liquid-concentrate
- https://www.vampirevape.co.uk/vampire-vape-vamp-toes-10ml-e-liquid
- https://www.vampirevape.co.uk/vampire-vape-vamp-toes-30ml-e-liquid-concentrate
- https://www.vampirevape.co.uk/vaporesso-armour-s-kit-yellow
- https://www.vampirevape.co.uk/vaporesso-luxe-x3-kit
- https://www.vampirevape.co.uk/vaporesso-xros-pro-vape-pod-kit
- https://www.vampirevape.co.uk/vaporesso-xros-series-corex-2-0-version-replacement-pods-4pk
- https://www.vampirevape.co.uk/vapouriz-50-50-double-menthol-10ml-e-liquid
- https://www.vampirevape.co.uk/velo-nicotine-pouches-ruby-berry-20pk
- https://www.vampirevape.co.uk/voopoo-argus-p1-pod-kit-bright-yellow
- https://www.vampirevape.co.uk/voopoo-argus-snap-cartridge-3pk
- https://www.vampirevape.co.uk/voopoo-drag-q-kit-classic-red
- https://www.vampirevape.co.uk/voopoo-mtl-pnp-replacement-pods-2pk
- https://www.vampirevape.co.uk/voopoo-tpp-pod-silver-2pk
- https://www.vampirevape.co.uk/voopoo-vinci-spark100-vape-kit
- https://www.vampirevape.co.uk/voopoo-vmate-pro-kit-red
- https://www.vampirevape.co.uk/vozol-ace-max-vape-pod-kit
Deep script inspection
Top scripts fetched directly and inspected for minification, compression, cache TTL, and stale library versions.
| Script | Size | Minified | Encoding | Cache TTL | Version | Notes |
|---|---|---|---|---|---|---|
| end/FlavourWarehouse/VampireVape/en_GB/FlavourWarehouse_Marketing/js/product/labels.min.js | 0 KB | gzip | 30d | — | healthy | |
| 10/frontend/FlavourWarehouse/VampireVape/en_GB/FlavourWarehouse_Marketing/js/labels.min.js | 0 KB | gzip | 30d | — | healthy | |
| https://www.googletagmanager.com/gtm.js?id=GTM-WDR9M62 | 143 KB | gzip | 0d | — | Cache-Control max-age is only 900s — users re-download on every visit. Aim for ≥1 year with a content hash in the filename. | |
| https://www.googletagmanager.com/gtag/js?id=G-B0FRYP2L33&cx=c>m=4e64t1 | 162 KB | gzip | 0d | — | Cache-Control max-age is only 900s — users re-download on every visit. Aim for ≥1 year with a content hash in the filename. | |
| https://static.lipscore.com/assets/en/lipscore-v1.js | 81 KB | gzip | — | — | healthy | |
| https://www.googletagmanager.com/gtag/js?id=G-B0FRYP2L33&cx=c>m=4e64t1h1 | 162 KB | gzip | 0d | — | Cache-Control max-age is only 900s — users re-download on every visit. Aim for ≥1 year with a content hash in the filename. | |
| https://www.googletagmanager.com/gtag/destination?id=G-B0FRYP2L33&cx=c>m=4e64t1 | 162 KB | gzip | 0d | — | Cache-Control max-age is only 900s — users re-download on every visit. Aim for ≥1 year with a content hash in the filename. | |
| 949-a465-e709abdeeb5e/cc.js?renew=false&referer=www.vampirevape.co.uk&dnt=false&init=false | 78 KB | gzip | 0d | — | Cache-Control max-age is only 1s — users re-download on every visit. Aim for ≥1 year with a content hash in the filename. | |
| https://www.googletagmanager.com/gtag/destination?id=G-B0FRYP2L33&cx=c>m=4e64t1h1 | 162 KB | gzip | 0d | — | Cache-Control max-age is only 900s — users re-download on every visit. Aim for ≥1 year with a content hash in the filename. | |
| =f1ba143c-1f4b-4949-a465-e709abdeeb5e&implementation=gtm&consentmode-dataredaction=dynamic | 27 KB | gzip | 0d | — | Cache-Control max-age is only 314s — users re-download on every visit. Aim for ≥1 year with a content hash in the filename. | |
| https://www.googletagmanager.com/gtag/js?id=G-B0FRYP2L33&cx=c>m=4e64u0h2 | 161 KB | gzip | 0d | — | Cache-Control max-age is only 900s — users re-download on every visit. Aim for ≥1 year with a content hash in the filename. |
All recommendations
- Fix srverror.com/styles.css immediately: this single stylesheet blocks render on 86% of mobile pages (65,823ms aggregate waste). Audit whether it is actually needed — the domain name suggests it may be an error-monitoring asset loaded incorrectly. If required, load it non-blocking using the pattern: <link rel='stylesheet' href='...' media='print' onload='this.media=\'all\''>. This is the highest ROI change on the entire site.
- Fix the Google Fonts render block: fonts.googleapis.com/css?family=Open+Sans blocks render on 86% of mobile pages (65,032ms aggregate). Replace the standard <link> with a preconnect + font-display:swap approach: add <link rel='preconnect' href='https://fonts.googleapis.com'> in <head>, then load the font stylesheet using the media='print' onload pattern to make it non-blocking.
- Audit and slim down GTM tags: Open GTM Preview and identify every tag set to fire on 'All Pages'. Tags for remarketing, heatmaps, chat widgets, and A/B testing tools should be scoped to specific page paths or event triggers instead. GTM is costing 218ms blocking time per mobile page load and 343ms on desktop — reducing the tag count firing on page load is projected to lift desktop scores by up to 12 points.
- Gate GTM initialisation behind consent: Change analytics and advertising tags inside GTM to use a 'Consent Initialization' trigger gated on analytics_storage=granted (analytics) or ad_storage=granted (ads). This prevents the GTM script payload from executing on cold loads for non-consenting users, reducing main-thread work by up to 414ms on mobile and 621ms on desktop.
- Defer or async Cookiebot: Cookiebot is adding 83ms of blocking time and 189ms of main-thread work on desktop. If it is loaded via GTM, add it as a tag with a 'Consent Initialization' trigger. If it is hard-coded in the HTML template, add the async and defer attributes to its <script> tag. Ensure it is placed as low in <head> as your compliance requirements allow.
- Eliminate remaining render-blocking resources for a further ~2,100ms FCP saving: A Lighthouse audit flags 2–3 additional render-blocking CSS and JS files delaying First Contentful Paint by 460–626ms per page. For each CSS file, apply the media='print' onload='this.media=\'all\'' non-blocking load pattern; for JS files, add the defer attribute. If any are injected via GTM tags, set document.write to false and apply consent triggers as above.
Findings
24 distinct finding types across 134 occurrences. Numeric variants of the same finding (e.g. "costs 867ms" vs "costs 698ms") are collapsed into one row with a range in the title.
| Severity | Finding | Affected | Recommendation |
|---|---|---|---|
|
critical
third_party
desktop |
Google Tag Manager costs 343–621ms blocking + varies main-thread on desktop
Rank #1 by blocking time on this page. Google Tag Manager transfers 299 KB and keeps the main thread busy for 621ms, delaying INP and TBT. It fires BEFORE consent according to the tracking audit — so … |
www.vampirevape.co.uk | GTM's own weight usually means a lot of tags. Run GTM Preview and look for tags firing on every page that could be scoped to specific events or URLs. |
|
critical
third_party
mobile |
Google Tag Manager costs 218–414ms blocking + varies main-thread on mobile
Rank #1 by blocking time on this page. Google Tag Manager transfers 299 KB and keeps the main thread busy for 414ms, delaying INP and TBT. It fires BEFORE consent according to the tracking audit — so … |
www.vampirevape.co.uk | GTM's own weight usually means a lot of tags. Run GTM Preview and look for tags firing on every page that could be scoped to specific events or URLs. |
|
critical
third_party
desktop |
Cookiebot costs 83–189ms blocking + varies main-thread on desktop
Rank #2 by blocking time on this page. Cookiebot transfers 141 KB and keeps the main thread busy for 189ms, delaying INP and TBT. It fires BEFORE consent according to the tracking audit — so it's degr… |
www.vampirevape.co.uk | Load Cookiebot with `async defer`, push it as late as safely possible, and if it's tag-manager-loaded, add a consent trigger. If it's not strictly needed for functionality, lazy-load on first interaction. |
|
high
render_blocking
desktopmobile |
2–3 render-blocking resources delay FCP by 202–1560ms
The top offenders: …sion1774449510/_cache/merged/4b99b28e82d75b2e19802a36528948d2.min.css (268ms); …rehouse/VampireVape/en_GB/FlavourWarehouse_Marketing/js/labels.min.js (268ms); …sion1774449510/_cach… |
96 URLs+46 more — see xlsx |
Move non-critical CSS to preload + onload flip, or inline critical CSS for above-the-fold. For scripts, add `defer` (or `async` for independent scripts). If the file is first-party + required, consider HTTP/2 push or bundle it into the initial chunk. |
|
high
third_party
desktop |
Google Tag Manager costs 258–1036ms blocking + varies main-thread on desktop
Rank #1 by blocking time on this page. Google Tag Manager transfers 458 KB and keeps the main thread busy for 1036ms, delaying INP and TBT. |
GTM's own weight usually means a lot of tags. Run GTM Preview and look for tags firing on every page that could be scoped to specific events or URLs. | |
|
high
third_party
mobile |
Google Tag Manager costs 267–1014ms blocking + varies main-thread on mobile
Rank #1 by blocking time on this page. Google Tag Manager transfers 458 KB and keeps the main thread busy for 1014ms, delaying INP and TBT. |
GTM's own weight usually means a lot of tags. Run GTM Preview and look for tags firing on every page that could be scoped to specific events or URLs. | |
|
high
lcp
mobile |
LCP element takes 4652–5251ms to paint on mobile
LCP element snippet: `[LAZY_LOADED|NO_FETCHPRIORITY] <img width="1920" height="1080" style="aspect-ratio: auto 1920 / 1080" src="https://www.vampirevape.co.uk/media/.renditions/wysiwyg/hyva-theme-plac… |
The LCP element is an image — the single most impactful fix is usually preloading it and serving it in AVIF/WebP at the exact display size. | |
|
high
render_blocking
desktopmobile |
https://www.srverror.com/styles.css blocks render on 85–86%% of pages — 18393–65823ms aggregate wasted
×2 occurrencesSeen on 86/100 audited mobile pages. |
sitewide | This single file blocks render across most of the site. Defer it (add `defer`), preload it, or inline its critical portion. Biggest sitewide win per line-of-change you'll find. |
|
high
render_blocking
desktopmobile |
https://fonts.googleapis.com/css?family=Open+Sans blocks render on 85–86%% of pages — 17588–65032ms aggregate wasted
×2 occurrencesSeen on 86/100 audited mobile pages. |
sitewide | This single file blocks render across most of the site. Defer it (add `defer`), preload it, or inline its critical portion. Biggest sitewide win per line-of-change you'll find. |
|
high
third_party
desktop |
Google Tag Manager — 2599ms aggregate blocking across the audit (desktop)
Google Tag Manager appears on 8/100 pages (8%). Mean blocking per page: 324ms. Total main-thread time: 4732ms. Transfer: 3031KB sitewide. Fires BEFORE consent on pages with a CMP — degrading experienc… |
sitewide | Because Google Tag Manager is on most of the site, fixing it once yields a sitewide lift. Move it behind a consent trigger, defer until user interaction, or switch to server-side tagging if it supports it. |
|
high
third_party
mobile |
Google Tag Manager — 2222ms aggregate blocking across the audit (mobile)
Google Tag Manager appears on 7/100 pages (7%). Mean blocking per page: 317ms. Total main-thread time: 4054ms. Transfer: 2734KB sitewide. Fires BEFORE consent on pages with a CMP — degrading experienc… |
sitewide | Because Google Tag Manager is on most of the site, fixing it once yields a sitewide lift. Move it behind a consent trigger, defer until user interaction, or switch to server-side tagging if it supports it. |
|
high
unused_js
desktopmobile |
3941KB unused JavaScript from www.googletagmanager.com across 12 URLs
Top files: /gtag.js/js (65KB / 41%); /assets/en/lipscore-v1.js (62KB / 76%); /gtm.js (60KB / 43%); /f1ba143c-1f4b-4949-a465-e709abdeeb5e/cc.js (25KB / 24%); /uc.js (22KB / 64%). Every KB of JS costs netw… |
12 URLs |
Tree-shake or code-split these bundles. For third-party, check whether you can import subsets (e.g. lodash → lodash-es per-method). For first-party, consider dynamic imports on the routes that actually need them. |
|
medium
render_blocking
desktop |
2–3 render-blocking resources delay FCP by 202–323ms
The top offenders: …sion1774449510/_cache/merged/4b99b28e82d75b2e19802a36528948d2.min.css (121ms); …rehouse/VampireVape/en_GB/FlavourWarehouse_Marketing/js/labels.min.js (121ms); …sion1774449510/_cach… |
Move non-critical CSS to preload + onload flip, or inline critical CSS for above-the-fold. For scripts, add `defer` (or `async` for independent scripts). If the file is first-party + required, consider HTTP/2 push or bundle it into the initial chunk. | |
|
medium
third_party
desktop |
Google Tag Manager costs 100–455ms blocking + varies main-thread on desktop
Rank #1 by blocking time on this page. Google Tag Manager transfers 458 KB and keeps the main thread busy for 455ms, delaying INP and TBT. |
GTM's own weight usually means a lot of tags. Run GTM Preview and look for tags firing on every page that could be scoped to specific events or URLs. | |
|
medium
third_party
mobile |
Google Tag Manager costs 145–435ms blocking + varies main-thread on mobile
Rank #1 by blocking time on this page. Google Tag Manager transfers 300 KB and keeps the main thread busy for 435ms, delaying INP and TBT. |
GTM's own weight usually means a lot of tags. Run GTM Preview and look for tags firing on every page that could be scoped to specific events or URLs. | |
|
medium
cwv_lab
mobile |
Mobile LCP runs 1.6–10.2ss–86s slower than desktop on varies URLs
A large mobile-vs-desktop LCP gap usually indicates mobile-specific issues: larger hero image being served on mobile, JS bundles not being split by device class, or slow 4G network simulation exposing… |
86 URLs+36 more — see xlsx |
Audit the `<picture>` source served on mobile, check if the JS bundle has mobile-specific code paths gated behind expensive conditions, and verify the CDN's mobile edge is healthy. |
|
medium
unused_js
|
Script health: https://www.googletagmanager.com/gtm.js?id=GTM-WDR9M62
Cache-Control max-age is only 900s — users re-download on every visit. Aim for ≥1 year with a content hash in the filename. |
sitewide | Address the specific issues flagged: produce a minified build, enable compression, extend cache-TTL with a filename hash, and upgrade deprecated libraries. |
|
medium
unused_js
|
Script health: https://www.googletagmanager.com/gtag.js/js?id=G-B0FRYP2L33&cx=c>m=4e64t1
Cache-Control max-age is only 900s — users re-download on every visit. Aim for ≥1 year with a content hash in the filename. |
sitewide | Address the specific issues flagged: produce a minified build, enable compression, extend cache-TTL with a filename hash, and upgrade deprecated libraries. |
|
medium
unused_js
|
Script health: https://www.googletagmanager.com/gtag.js/js?id=G-B0FRYP2L33&cx=c>m=4e64t1h1
Cache-Control max-age is only 900s — users re-download on every visit. Aim for ≥1 year with a content hash in the filename. |
sitewide | Address the specific issues flagged: produce a minified build, enable compression, extend cache-TTL with a filename hash, and upgrade deprecated libraries. |
|
medium
unused_js
|
Script health: ttps://www.googletagmanager.com/gtag.js/destination?id=G-B0FRYP2L33&cx=c>m=4e64t1
Cache-Control max-age is only 900s — users re-download on every visit. Aim for ≥1 year with a content hash in the filename. |
sitewide | Address the specific issues flagged: produce a minified build, enable compression, extend cache-TTL with a filename hash, and upgrade deprecated libraries. |
|
medium
unused_js
|
Script health: 709abdeeb5e/cc.js?renew=false&referer=www.vampirevape.co.uk&dnt=false&init=false
Cache-Control max-age is only 1s — users re-download on every visit. Aim for ≥1 year with a content hash in the filename. |
sitewide | Address the specific issues flagged: produce a minified build, enable compression, extend cache-TTL with a filename hash, and upgrade deprecated libraries. |
|
medium
unused_js
|
Script health: ps://www.googletagmanager.com/gtag.js/destination?id=G-B0FRYP2L33&cx=c>m=4e64t1h1
Cache-Control max-age is only 900s — users re-download on every visit. Aim for ≥1 year with a content hash in the filename. |
sitewide | Address the specific issues flagged: produce a minified build, enable compression, extend cache-TTL with a filename hash, and upgrade deprecated libraries. |
|
medium
unused_js
|
Script health: 1f4b-4949-a465-e709abdeeb5e&implementation=gtm&consentmode-dataredaction=dynamic
Cache-Control max-age is only 314s — users re-download on every visit. Aim for ≥1 year with a content hash in the filename. |
sitewide | Address the specific issues flagged: produce a minified build, enable compression, extend cache-TTL with a filename hash, and upgrade deprecated libraries. |
|
medium
unused_js
|
Script health: https://www.googletagmanager.com/gtag.js/js?id=G-B0FRYP2L33&cx=c>m=4e64u0h2
Cache-Control max-age is only 900s — users re-download on every visit. Aim for ≥1 year with a content hash in the filename. |
sitewide | Address the specific issues flagged: produce a minified build, enable compression, extend cache-TTL with a filename hash, and upgrade deprecated libraries. |