Core Web Vitals & site speed
Executive summary
Vampire Vape's mobile Core Web Vitals are failing in the field — LCP is hitting 6.70 seconds against Google's 2.5-second pass threshold, which puts organic rankings at direct risk on mobile where the majority of vape shoppers browse; the single biggest revenue-adjacent issue is that two render-blocking files (srverror.com/styles.css and the Google Fonts stylesheet) are wasting over 42,000ms of aggregate load time across 56% of pages, actively delaying when products become visible and purchasable. Fixing the render-blocking resources and taming Google Tag Manager — which alone is burning up to 980ms of blocking time per page and over 10,000ms sitewide — could push mobile performance scores from the current 68–70 range into the high 70s to 80, with projected TBT cuts of roughly 55%. These are not cosmetic score improvements: faster LCP and lower interactivity delay directly correlate with higher add-to-cart rates and lower bounce on product and category pages.
At a glance
(236 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.
CRITICAL — Fix render-blocking srverror.com/styles.css (mobile priority)
This single external stylesheet blocks render on 56% of all pages, wasting 42,736ms in aggregate on mobile. It appears to be a third-party or legacy asset — audit whether it is still needed at all; if yes, self-host it and load it using the pattern `<link rel=…
CRITICAL — Fix render-blocking Google Fonts (fonts.googleapis.com/css?family=Open+Sans)
This blocks render on 56% of pages (42,325ms aggregate mobile waste). Replace the standard `<link>` with the font-display swap approach: add `&display=swap` to the Google Fonts URL, preconnect with `<link rel='preconnect' href='https://fonts.googleapis.com'>` …
Audit and slim down Google Tag Manager tag firing rules
GTM is causing up to 980ms of blocking time on individual desktop pages and over 10,800ms of aggregate blocking on mobile across the audit. Open GTM Preview mode, filter the tag firing summary by 'All Pages' trigger, and identify every tag firing on every page…
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">25 URLs with lazy-loaded LCP — show list
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/catalog/category/view/id/3375 | 37 | 11672ms | 1180ms | 0.127 | |
| 2 | https://www.vampirevape.co.uk/catalog/category/view/id/287 | 43 | 11113ms | 867ms | 0.147 | |
| 3 | https://www.vampirevape.co.uk/catalog/category/view/id/3846 | 43 | 10987ms | 946ms | 0.069 | |
| 4 | https://www.vampirevape.co.uk/lost-vape-galaxy-t360-vape-pod-kit | 45 | 4876ms | 985ms | 0.184 | lazy LCPno fp |
| 5 | https://www.vampirevape.co.uk/catalog/category/view/id/2547 | 48 | 4426ms | 1465ms | 0.063 | |
| 6 | https://www.vampirevape.co.uk/catalog/category/view/id/2496 | 49 | 4651ms | 762ms | 0.063 | |
| 7 | https://www.vampirevape.co.uk/double-drip-nic-salts-lemon-and-lime-10ml-e-liquid | 51 | 13576ms | 309ms | 0.017 | no fp |
| 8 | https://www.vampirevape.co.uk/delivery | 51 | 11098ms | 364ms | 0.0 | |
| 9 | https://www.vampirevape.co.uk/privacy-policy | 51 | 9967ms | 726ms | 0.065 | |
| 10 | https://www.vampirevape.co.uk/catalog/category/view/id/2514 | 51 | 4951ms | 563ms | 0.143 |
desktop
| # | URL | Score | LCP (lab) | TBT (lab) | CLS | Flags |
|---|---|---|---|---|---|---|
| 1 | https://www.vampirevape.co.uk/catalog/category/view/id/3617 | 39 | 3999ms | 2225ms | 0.076 | |
| 2 | https://www.vampirevape.co.uk/e-liquid | 51 | 2690ms | 342ms | 0.253 | |
| 3 | https://www.vampirevape.co.uk/catalog/category/view/id/2496 | 55 | 2281ms | 261ms | 0.376 | |
| 4 | https://www.vampirevape.co.uk/catalog/category/view/id/2514 | 56 | 2830ms | 493ms | 0.041 | |
| 5 | https://www.vampirevape.co.uk/catalog/category/view/id/2509 | 56 | 2688ms | 490ms | 0.092 | |
| 6 | https://www.vampirevape.co.uk/catalog/category/view/id/287 | 57 | 2449ms | 546ms | 0.089 | |
| 7 | https://www.vampirevape.co.uk/catalog/category/view/id/3375 | 58 | 2403ms | 298ms | 0.213 | |
| 8 | https://www.vampirevape.co.uk/catalog/category/view/id/2508 | 59 | 2303ms | 245ms | 0.287 | |
| 9 | https://www.vampirevape.co.uk/faqs | 61 | 2342ms | 338ms | 0.191 | |
| 10 | https://www.vampirevape.co.uk/voopoo-vmate-pro-kit-pink | 64 | 1541ms | 510ms | 0.13 | no fp |
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 | 44/100 · 44% | 253ms | 11126ms | 19028 KB | before consent |
| Cookiebot | desktop | 44/100 · 44% | 21ms | 930ms | 5841 KB | before consent |
| lipscore.com | desktop | 44/100 · 44% | 2ms | 70ms | 6029 KB | — |
| New Relic | desktop | 41/100 · 41% | 0ms | 1ms | 1236 KB | — |
| ahrefs.com | desktop | 44/100 · 44% | 0ms | 0ms | 158 KB | — |
| Ometria | desktop | 44/100 · 44% | 0ms | 0ms | 391 KB | — |
| Trust Pilot | desktop | 44/100 · 44% | 0ms | 0ms | 544 KB | — |
| affiliatefuture.com | desktop | 44/100 · 44% | 0ms | 0ms | 69 KB | — |
| Google Analytics
(ga4) |
desktop | 44/100 · 44% | 0ms | 0ms | 35 KB | before consent |
| Google Fonts | desktop | 54/100 · 54% | 0ms | 0ms | 874 KB | — |
| srverror.com | desktop | 54/100 · 54% | 0ms | 0ms | 60 KB | — |
| Google Tag Manager
(gtm) |
mobile | 44/100 · 44% | 246ms | 10822ms | 19029 KB | before consent |
| Cookiebot | mobile | 44/100 · 44% | 18ms | 772ms | 5729 KB | before consent |
| lipscore.com | mobile | 44/100 · 44% | 1ms | 27ms | 6026 KB | — |
| Ometria | mobile | 44/100 · 44% | 0ms | 22ms | 391 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 | 54/100 · 54% | 11390ms aggregate |
| https://fonts.googleapis.com/css?family=Open+Sans | render blocking | desktop | 54/100 · 54% | 11177ms aggregate |
| https://www.vampirevape.co.uk/static/version1774449510/_cache/merged/4b99b28e82d75b2e19802a36528948d2.min.css | render blocking | desktop | 44/100 · 44% | 5622ms aggregate |
| atic/version1774449510/frontend/FlavourWarehouse/VampireVape/en_GB/FlavourWarehouse_Marketing/js/labels.min.js | render blocking | desktop | 21/100 · 21% | 2541ms aggregate |
| https://www.vampirevape.co.uk/static/version1774449510/_cache/merged/dc682e5d32b130d237723be506e42f0a.min.css | render blocking | desktop | 28/100 · 28% | 2248ms aggregate |
| sion1774449510/frontend/FlavourWarehouse/VampireVape/en_GB/FlavourWarehouse_Marketing/js/product/labels.min.js | render blocking | desktop | 16/100 · 16% | 1936ms aggregate |
| https://www.vampirevape.co.uk/static/version1774449510/_cache/merged/6cca0708a05d06be0c985d3aa34e2da9.min.css | render blocking | desktop | 16/100 · 16% | 1296ms aggregate |
| https://custom-page.qa-apptrana.com/ifc/400/styles/main.css | render blocking | desktop | 2/100 · 2% | 0ms aggregate |
| https://www.vampirevape.co.uk/static/version1774449510/_cache/merged/dc682e5d32b130d237723be506e42f0a.min.css | unused css | desktop | 28/100 · 28% | 805KB (90% unused) |
| ://static.lipscore.com/assets/lipscore-v1-98cfc83a3af5ccbf62bf453b84995412470b050e7eaebe9eef2630dbceb5773f.css | unused css | desktop | 44/100 · 44% | 717KB (97% unused) |
| https://www.vampirevape.co.uk/static/version1774449510/_cache/merged/6cca0708a05d06be0c985d3aa34e2da9.min.css | unused css | desktop | 16/100 · 16% | 458KB (89% unused) |
| https://www.googletagmanager.com/gtag/js?id=G-B0FRYP2L33&cx=c>m=4e64m2 | unused js | desktop | 33/100 · 33% | 3230KB (62% unused) |
| https://www.googletagmanager.com/gtm.js?id=GTM-WDR9M62 | unused js | desktop | 44/100 · 44% | 2667KB (43% unused) |
| https://static.lipscore.com/assets/en/lipscore-v1.js | unused js | desktop | 44/100 · 44% | 2360KB (66% unused) |
| https://www.googletagmanager.com/gtag/destination?id=G-B0FRYP2L33&cx=c>m=4e64m2 | unused js | desktop | 29/100 · 29% | 1952KB (43% 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 315ms blocking contribution drops TBT from 490ms to 237ms. Directional only — actual lift depends on which other scripts Lighthouse then sees as bottlenecks.
Removing 80% of Google Tag Manager's 341ms blocking contribution drops TBT from 762ms to 488ms. Directional only — actual lift depends on which other scripts Lighthouse then sees as bottlenecks.
Removing 80% of Cookiebot's 57ms blocking contribution drops TBT from 762ms to 715ms. Directional only — actual lift depends on which other scripts Lighthouse then sees as bottlenecks.
Removing 80% of Cookiebot's 53ms blocking contribution drops TBT from 747ms to 704ms. 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: 90ms
CLS: —
INP: 90ms
CLS: —
INP: 86ms
CLS: 0.03
INP: 90ms
CLS: —
INP: 90ms
CLS: —
desktop
INP: 58ms
CLS: 0.05
INP: 58ms
CLS: 0.05
INP: 52ms
CLS: 0.05
INP: 58ms
CLS: 0.05
INP: 58ms
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/e-liquid/10ml-e-liquid/vapouriz-10ml-e-liquid
- https://www.vampirevape.co.uk/e-liquid/sweets-candy-e-liquids/cola-bottles-flavour-e-liquid
- https://www.vampirevape.co.uk/e-liquid/tropical-fruit-flavours/pineapple-flavour-e-liquid
- https://www.vampirevape.co.uk/nicotine-alternatives/nicotine-pouches/killa-nic-pouches
- https://www.vampirevape.co.uk/vape-kits/vaporesso-vape-kits/vaporesso-luxe-vape-kits
- https://www.vampirevape.co.uk/vape-pods/prefilled-pod-flavours/dessert
product (65 URLs)
- https://www.vampirevape.co.uk/aspire-af-mesh-coils-5pk
- https://www.vampirevape.co.uk/aspire-gotek-x-iii-vape-pod-kit
- https://www.vampirevape.co.uk/aspire-magnum-vape-pod-kit
- https://www.vampirevape.co.uk/bar-salts-kiwi-passion-fruit-guava-100ml-shortfill-e-liquid
- https://www.vampirevape.co.uk/black-friday-vape-deals
- https://www.vampirevape.co.uk/dojo-blast-2000-go-transparent-prefilled-vape-kit
- https://www.vampirevape.co.uk/double-drip-nic-salts-lemon-and-lime-10ml-e-liquid
- https://www.vampirevape.co.uk/eleaf-istick-10w-black
- https://www.vampirevape.co.uk/elfbar-4-in-1-prefilled-pods-4pk
- https://www.vampirevape.co.uk/elfbar-600-prefilled-replacement-pods-2pk
- https://www.vampirevape.co.uk/famovape-yup-rda-stainless-steel
- https://www.vampirevape.co.uk/feoba-treo-33k-prefilled-vape-kit
- https://www.vampirevape.co.uk/freemax-maxus-100w-vape-kit-resin-orange-green
- https://www.vampirevape.co.uk/fumi-nicotine-pouches-zingy-ginger-20pk
- https://www.vampirevape.co.uk/geek-vape-aegis-force-vape-kit
- https://www.vampirevape.co.uk/geek-vape-frenzy-replacement-coils-5pk
- https://www.vampirevape.co.uk/geek-vape-wenax-q-2-pod-kit
- https://www.vampirevape.co.uk/helwit-nic-pouch-orange-20pk
- https://www.vampirevape.co.uk/horizontech-falcon-coils-3pk
- https://www.vampirevape.co.uk/innokin-endura-t22e-vape-kit
- https://www.vampirevape.co.uk/innokin-endura-v-vape-pod-kit
- https://www.vampirevape.co.uk/innokin-klypse-pod-kit-charcoal-black
- https://www.vampirevape.co.uk/killa-nic-pouches-bubblegum-16mg
- https://www.vampirevape.co.uk/lost-vape-centaurus-e40-max-vape-pod-kit
- https://www.vampirevape.co.uk/lost-vape-centaurus-n100-mod
- https://www.vampirevape.co.uk/lost-vape-galaxy-t360-vape-pod-kit
- https://www.vampirevape.co.uk/nordic-spirit-nic-pouch-frosty-mint-20pk
- https://www.vampirevape.co.uk/oxva-origin-2-kit-black
- https://www.vampirevape.co.uk/oxva-slimstick-prefilled-vape-kit
- https://www.vampirevape.co.uk/oxva-xlim-c-kit-black-camo
- https://www.vampirevape.co.uk/oxva-xlim-v3-top-fill-cartridge-3pk
- https://www.vampirevape.co.uk/pablo-nicotine-pouch-kiwi-24mg
- https://www.vampirevape.co.uk/pocket-fuel-50-50-golden-tobacco-10ml-e-liquid
- https://www.vampirevape.co.uk/smok-novo-5-kit-white-cobra
- https://www.vampirevape.co.uk/smok-rpm-2-coils-5pk
- https://www.vampirevape.co.uk/smok-rpm-85-rpm-100-empty-pods-rpm2-2ml-3pk
- https://www.vampirevape.co.uk/smok-trinity-alpha-replacement-pod-silver
- https://www.vampirevape.co.uk/snu-nic-pouches-black-ice-20pk
- https://www.vampirevape.co.uk/uwell-caliburn-tenet-koko-vape-pod-kit-copper
- https://www.vampirevape.co.uk/vampire-vape-70-30-caramel-latte-100ml-shortfill-e-liquid
- https://www.vampirevape.co.uk/vampire-vape-bar-salts-blue-sour-raspberry-10ml-e-liquid
- https://www.vampirevape.co.uk/vampire-vape-catapult-30ml-e-liquid-concentrate
- https://www.vampirevape.co.uk/vampire-vape-concentrate-caramel-latte-30ml
- 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/vampire-vape-white-chocolate-hazelnut-tobacco-30ml-e-liquid-concentrate
- https://www.vampirevape.co.uk/vaporesso-gen-80-s-kit-itank-2-version-neon-orange
- https://www.vampirevape.co.uk/vaporesso-luxe-x3-kit
- https://www.vampirevape.co.uk/vaporesso-vibe-se-pod-kit
- https://www.vampirevape.co.uk/vaporesso-xros-4-nano-vape-pod-kit
- https://www.vampirevape.co.uk/vaporesso-xros-4-vape-pod-kit
- https://www.vampirevape.co.uk/vapouriz-50-50-strawberry-watermelon-10ml-e-liquid
- https://www.vampirevape.co.uk/vapouriz-classic-berry-menthol-10ml-e-liquid
- https://www.vampirevape.co.uk/vapouriz-premium-virginia-tobacco-10ml-e-liquid
- https://www.vampirevape.co.uk/velo-nicotine-pouches-peppermint-storm-20pk
- https://www.vampirevape.co.uk/velo-nicotine-pouches-purple-grape-20pk
- https://www.vampirevape.co.uk/vlads-vg-loser-10ml
- https://www.vampirevape.co.uk/voopoo-drag-h40-kit-sky-blue
- https://www.vampirevape.co.uk/voopoo-finic-fish-pod-1-6ohm-4pk
- https://www.vampirevape.co.uk/voopoo-pnp-x-replacement-pods-2pk
- https://www.vampirevape.co.uk/voopoo-tpp-pod-silver-2pk
- https://www.vampirevape.co.uk/voopoo-vmate-pro-kit-gold
- https://www.vampirevape.co.uk/voopoo-vmate-pro-kit-pink
- https://www.vampirevape.co.uk/wismec-reux-mini-vape-tank
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 |
|---|---|---|---|---|---|---|
| 10/frontend/FlavourWarehouse/VampireVape/en_GB/FlavourWarehouse_Marketing/js/labels.min.js | 0 KB | gzip | 30d | — | healthy | |
| end/FlavourWarehouse/VampireVape/en_GB/FlavourWarehouse_Marketing/js/product/labels.min.js | 0 KB | gzip | 30d | — | healthy | |
| https://www.googletagmanager.com/gtag/js?id=G-B0FRYP2L33&cx=c>m=4e64m2 | 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. | |
| https://www.googletagmanager.com/gtm.js?id=GTM-WDR9M62 | 142 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/destination?id=G-B0FRYP2L33&cx=c>m=4e64m2 | 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. | |
| =f1ba143c-1f4b-4949-a465-e709abdeeb5e&implementation=gtm&consentmode-dataredaction=dynamic | 27 KB | gzip | 0d | — | Cache-Control max-age is only 278s — 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 | 102 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/js?id=G-B0FRYP2L33&cx=c>m=4e64m2h1 | 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. | |
| https://www.googletagmanager.com/gtag/js?id=G-B0FRYP2L33&cx=c>m=4e64n0h2 | 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. | |
| https://www.googletagmanager.com/gtag/destination?id=G-B0FRYP2L33&cx=c>m=4e64m2h1 | 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. | |
| https://www.googletagmanager.com/gtag/destination?id=G-B0FRYP2L33&cx=c>m=4e64n0h2 | 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
- CRITICAL — Fix render-blocking srverror.com/styles.css (mobile priority): This single external stylesheet blocks render on 56% of all pages, wasting 42,736ms in aggregate on mobile. It appears to be a third-party or legacy asset — audit whether it is still needed at all; if yes, self-host it and load it using the pattern `<link rel='stylesheet' media='print' onload='this.media="all"'>` so it no longer blocks first paint. This is the highest effort-to-impact ratio change on the entire site.
- CRITICAL — Fix render-blocking Google Fonts (fonts.googleapis.com/css?family=Open+Sans): This blocks render on 56% of pages (42,325ms aggregate mobile waste). Replace the standard `<link>` with the font-display swap approach: add `&display=swap` to the Google Fonts URL, preconnect with `<link rel='preconnect' href='https://fonts.googleapis.com'>` and `<link rel='preconnect' href='https://fonts.gstatic.com' crossorigin>` in `<head>`, then load the stylesheet itself non-blocking using the `media='print'` onload swap pattern. Better still, self-host the font files and serve them from your own CDN to eliminate the third-party DNS lookup entirely.
- CRITICAL — Audit and slim down Google Tag Manager tag firing rules: GTM is causing up to 980ms of blocking time on individual desktop pages and over 10,800ms of aggregate blocking on mobile across the audit. Open GTM Preview mode, filter the tag firing summary by 'All Pages' trigger, and identify every tag firing on every page load. For analytics and ads tags, change triggers to fire on `Consent Initialization` only when the relevant consent signal (analytics_storage or ad_storage) is granted. Scope any remarketing or heatmap tags to specific page paths or events rather than All Pages. Target: reduce tags firing on page load by at least 50%.
- HIGH — Consent-gate and async-load the GTM snippet itself: The GTM loader script is hard-blocking the main thread. In your CMS template, ensure the GTM `<script>` tag has both `async` and `defer` attributes. If you are using a consent management platform (CMP), initialise GTM only after the consent SDK fires its ready event — this alone is projected to lift your desktop performance score by 10 points and cut TBT from ~490ms to ~238ms according to model projections.
- HIGH — Investigate and resolve the srverror.com domain: The fact that a domain literally named 'srverror.com' is serving a stylesheet loaded on the majority of your pages is a reliability and performance red flag. Determine what this resource is (likely a third-party widget or legacy embed), check whether it is still required, and if so either self-host the CSS or replace the dependency. If it is not required, remove the `<link>` tag entirely — this would be the fastest possible fix for both LCP and FCP.
- HIGH — Address the two additional render-blocking resources delaying FCP by 431–576ms: Beyond the Fonts and srverror assets, Lighthouse flagged two further blocking resources on individual pages. Identify them by running Lighthouse on your highest-traffic URLs (homepage, category pages, top product pages) and checking the 'Eliminate render-blocking resources' audit. For any blocking CSS, apply the `media='print' onload` swap pattern; for any blocking JS, add the `defer` attribute. If either resource is injected via GTM, convert it to a GTM Custom HTML tag with `document.write: false` and attach a consent-based trigger.
Findings
37 distinct finding types across 236 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 199–1683ms 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 1683ms, 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. | |
|
critical
third_party
mobile |
Google Tag Manager costs 183–356ms 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 356ms, 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
cwv_field
mobile |
LCP field p75 is 2.5–6.7ss on mobile (target ≤variess)
Google's Core Web Vitals threshold for LCP is ≤2.5s at the 75th percentile of real Chrome users. This page is at 6.70s (rated poor). Real-user data — this is what impacts Search rankings. |
oxva-slimstick-prefilled-vape-kit | |
|
high
render_blocking
desktopmobile |
2–3 render-blocking resources delay FCP by 202–1503ms
The top offenders: /styles.css (346ms); /css (230ms). Every ms saved here shows up in FCP and usually LCP too. |
100 URLs+50 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
lcp
mobile |
LCP element takes 4741–13576ms 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… |
17 URLs |
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
third_party
mobile |
Google Tag Manager costs 255–971ms 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 971ms, delaying INP and TBT. |
16 URLs |
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
desktop |
Google Tag Manager costs 258–653ms blocking + varies main-thread on desktop
Rank #1 by blocking time on this page. Google Tag Manager transfers 457 KB and keeps the main thread busy for 653ms, delaying INP and TBT. |
16 URLs |
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
render_blocking
desktopmobile |
https://www.srverror.com/styles.css blocks render on 54–56%% of pages — 11390–42736ms aggregate wasted
×2 occurrencesSeen on 56/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 54–56%% of pages — 11177–42325ms aggregate wasted
×2 occurrencesSeen on 56/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 — 11125ms aggregate blocking across the audit (desktop)
Google Tag Manager appears on 44/100 pages (44%). Mean blocking per page: 252ms. Total main-thread time: 20743ms. Transfer: 19028KB sitewide. Fires BEFORE consent on pages with a CMP — degrading exper… |
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 — 10821ms aggregate blocking across the audit (mobile)
Google Tag Manager appears on 44/100 pages (44%). Mean blocking per page: 245ms. Total main-thread time: 20236ms. Transfer: 19029KB sitewide. Fires BEFORE consent on pages with a CMP — degrading exper… |
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 |
25805KB unused JavaScript from www.googletagmanager.com across 44 URLs
Top files: /gtag.js/js (64KB / 40%); /assets/en/lipscore-v1.js (62KB / 76%); /gtm.js (61KB / 44%); /f1ba143c-1f4b-4949-a465-e709abdeeb5e/cc.js (24KB / 24%); /uc.js (22KB / 64%). Every KB of JS costs netw… |
44 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
third_party
mobile |
Google Tag Manager costs 90–459ms 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 459ms, delaying INP and TBT. |
27 URLs |
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
desktop |
Google Tag Manager costs 118–464ms 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 464ms, delaying INP and TBT. |
26 URLs |
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
desktop |
Cookiebot — 929ms aggregate blocking across the audit (desktop)
Cookiebot appears on 44/100 pages (44%). Mean blocking per page: 21ms. Total main-thread time: 3743ms. Transfer: 5841KB sitewide. Fires BEFORE consent on pages with a CMP — degrading experience even f… |
sitewide | Because Cookiebot 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. |
|
medium
third_party
mobile |
Cookiebot — 771ms aggregate blocking across the audit (mobile)
Cookiebot appears on 44/100 pages (44%). Mean blocking per page: 17ms. Total main-thread time: 3484ms. Transfer: 5729KB sitewide. Fires BEFORE consent on pages with a CMP — degrading experience even f… |
sitewide | Because Cookiebot 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. |
|
medium
third_party
desktop |
Cookiebot costs 129–265ms 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 265ms, delaying INP and TBT. |
3617 | 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. |
|
medium
third_party
desktop |
lipscore.com — 69ms aggregate blocking across the audit (desktop)
lipscore.com appears on 44/100 pages (44%). Mean blocking per page: 1ms. Total main-thread time: 1848ms. Transfer: 6029KB sitewide. |
sitewide | Because lipscore.com 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. |
|
medium
third_party
mobile |
lipscore.com — 26ms aggregate blocking across the audit (mobile)
lipscore.com appears on 44/100 pages (44%). Mean blocking per page: 0ms. Total main-thread time: 1662ms. Transfer: 6026KB sitewide. |
sitewide | Because lipscore.com 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. |
|
medium
third_party
mobile |
Ometria — 21ms aggregate blocking across the audit (mobile)
Ometria appears on 44/100 pages (44%). Mean blocking per page: 0ms. Total main-thread time: 822ms. Transfer: 391KB sitewide. |
sitewide | Because Ometria 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. |
|
medium
third_party
desktop |
New Relic — 1ms aggregate blocking across the audit (desktop)
New Relic appears on 41/100 pages (41%). Mean blocking per page: 0ms. Total main-thread time: 649ms. Transfer: 1236KB sitewide. |
sitewide | Because New Relic 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. |
|
medium
third_party
mobile |
Trust Pilot — 1ms aggregate blocking across the audit (mobile)
Trust Pilot appears on 44/100 pages (44%). Mean blocking per page: 0ms. Total main-thread time: 724ms. Transfer: 544KB sitewide. |
sitewide | Because Trust Pilot 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. |
|
medium
cwv_lab
mobile |
Mobile LCP runs 1.5–12.1ss–98s 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… |
98 URLs+48 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
third_party
desktop |
ahrefs.com — 0ms aggregate blocking across the audit (desktop)
ahrefs.com appears on 44/100 pages (44%). Mean blocking per page: 0ms. Total main-thread time: 1072ms. Transfer: 158KB sitewide. |
sitewide | Because ahrefs.com 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. |
|
medium
third_party
desktop |
Ometria — 0ms aggregate blocking across the audit (desktop)
Ometria appears on 44/100 pages (44%). Mean blocking per page: 0ms. Total main-thread time: 790ms. Transfer: 391KB sitewide. |
sitewide | Because Ometria 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. |
|
medium
third_party
desktop |
Trust Pilot — 0ms aggregate blocking across the audit (desktop)
Trust Pilot appears on 44/100 pages (44%). Mean blocking per page: 0ms. Total main-thread time: 720ms. Transfer: 544KB sitewide. |
sitewide | Because Trust Pilot 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. |
|
medium
third_party
mobile |
ahrefs.com — 0ms aggregate blocking across the audit (mobile)
ahrefs.com appears on 44/100 pages (44%). Mean blocking per page: 0ms. Total main-thread time: 1028ms. Transfer: 157KB sitewide. |
sitewide | Because ahrefs.com 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. |
|
medium
third_party
mobile |
New Relic — 0ms aggregate blocking across the audit (mobile)
New Relic appears on 43/100 pages (43%). Mean blocking per page: 0ms. Total main-thread time: 673ms. Transfer: 1296KB sitewide. |
sitewide | Because New Relic 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. |
|
medium
unused_js
|
Script health: https://www.googletagmanager.com/gtag.js/js?id=G-B0FRYP2L33&cx=c>m=4e64m2
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/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: ttps://www.googletagmanager.com/gtag.js/destination?id=G-B0FRYP2L33&cx=c>m=4e64m2
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 278s — 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: https://www.googletagmanager.com/gtag.js/js?id=G-B0FRYP2L33&cx=c>m=4e64m2h1
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=4e64n0h2
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: ps://www.googletagmanager.com/gtag.js/destination?id=G-B0FRYP2L33&cx=c>m=4e64m2h1
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: ps://www.googletagmanager.com/gtag.js/destination?id=G-B0FRYP2L33&cx=c>m=4e64n0h2
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. |