JavaScript is 719 KB — consider code splitting or lazy loading
Large JavaScript bundles delay interactivity. Split code by route or defer non-critical scripts.
Got: 719 KB
Info::
i
Fonts are 401 KB — consider subsetting or using system fonts
Subset fonts to include only used characters, or switch to system font stacks.
Got: 401 KB
Info::
i
64 HTTP requests
Info::
i
Estimated 0.32 g CO2 per page load
1.5 MBtransferred
64 requests
0.32 g CO2 per page load
JavaScript719.3 KiB46%
Fonts400.8 KiB25%
Images350.9 KiB22%
CSS65.4 KiB4%
HTML22.9 KiB1%
Other10.7 KiB1%
Other1.2 KiB0%
Other617 B0%
Other599 B0%
02.4 MB4.9 MB
Approaching limit
Large JavaScript bundles delay interactivity. Split code by route or defer non-critical scripts.
Why this matters
JavaScript bundle is large — code-split routes and lazy-load off-screen components to defer.
Source: web.dev
Subset fonts to include only used characters, or switch to system font stacks.
Why this matters
Font payload is large — subset to used glyphs only, or fall back to system fonts (zero load time).
Source: web.dev font loading
C
Image Optimization
Action
33 images, 0 KB saveable
REVIEW
33 images, 0 KB saveable
Warning::
!
https://www.vaticannews.va/service/livestreaming/2... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://www.vaticannews.va/content/dam/vaticannews... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://www.vaticannews.va/content/dam/vaticannews... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://www.vaticannews.va/etc/designs/vatican-new... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
33images351 KB
0oversized-0 KB
27legacy format
6missing dimensionsCLS risk
Set explicit width and height to prevent CLS.
Why this matters
Image without explicit width/height — browser can't reserve space; CLS jumps when image loads.
Source: web.dev / Core Web Vitals
Set explicit width and height to prevent CLS.
Why this matters
Image without explicit width/height — browser can't reserve space; CLS jumps when image loads.
Source: web.dev / Core Web Vitals
Set explicit width and height to prevent CLS.
Why this matters
Performance issues directly impact user engagement and conversion rates.
Set explicit width and height to prevent CLS.
Why this matters
Image without explicit width/height — browser can't reserve space; CLS jumps when image loads.
Source: web.dev / Core Web Vitals
Set explicit width and height to prevent CLS.
Why this matters
Image without explicit width/height — browser can't reserve space; CLS jumps when image loads.
Source: web.dev / Core Web Vitals
Set explicit width and height to prevent CLS.
Why this matters
Image without explicit width/height — browser can't reserve space; CLS jumps when image loads.
Source: web.dev / Core Web Vitals
C
Green Hosting
Action
Whether the site is served from green-energy infrastructure
REVIEW
Green Hosting
No green hosting detected
B
HTTP Caching
no-cache
REVIEW
no-cache
Info::
✓
Cache-Control header is set
Got: no-cache
Info::
i
No ETag or Last-Modified header
Conditional requests (304 Not Modified) are not possible without validators.
Cache-Control
no-cache
Directive
Value
Meaning
no-cache
—
Cache but always revalidate first
A+
Text Compression
All text resources are compressed
PASS
All text resources are compressed
Info::
✓
All text resources are compressed
All text resources are properly compressed.
A+
Font Loading
7 fonts (401 KB)
PASS
7 fonts (401 KB)
Info::
i
7 font(s) use font-display: swap (FOUT risk but functional)
Web fonts
7
401 KB total
Render-blocking
0
of 7
Dominant font-display
swap
Most common across fonts
Font loading timeline
TransferFOIT (block)FOUT (swap)
35EC3A_0_0.woffwoffswap
Size66 KB
Load time35 ms
Start242 ms
RiskFOUT — text flashes from fallback to web font
Convert to woff2 for ~30% smaller file size
35EC3A_1_0.woffwoffswap
Size64 KB
Load time35 ms
Start243 ms
RiskFOUT — text flashes from fallback to web font
Convert to woff2 for ~30% smaller file size
35EC3A_2_0.woffwoffswap
Size68 KB
Load time39 ms
Start243 ms
RiskFOUT — text flashes from fallback to web font
Convert to woff2 for ~30% smaller file size
35EC3A_3_0.woffwoffswap
Size65 KB
Load time38 ms
Start245 ms
RiskFOUT — text flashes from fallback to web font
Convert to woff2 for ~30% smaller file size
35EC3A_4_0.woffwoffswap
Size68 KB
Load time41 ms
Start245 ms
RiskFOUT — text flashes from fallback to web font
Convert to woff2 for ~30% smaller file size
35EC3A_5_0.woffwoffswap
Size65 KB
Load time43 ms
Start246 ms
RiskFOUT — text flashes from fallback to web font
Convert to woff2 for ~30% smaller file size
icon.woffwoffswap
Size4 KB
Load time11 ms
Start514 ms
RiskFOUT — text flashes from fallback to web font
Convert to woff2 for ~30% smaller file size
Optimization checklist
Preload critical fonts (priority=high)
Use woff2 format for all fonts
Set font-display to swap, optional, or fallback
Subset large fonts (≤100 KB each)
Fixing the unchecked items could save ~120 KB and ~240 ms
A+
Resource Caching
All resources properly cached
PASS
All resources properly cached
Info::
✓
No caching issues found
All static resources have appropriate caching headers.
A+
Critical Rendering Path
No render-blocking resources
PASS
No render-blocking resources
Info::
✓
No render-blocking resources detected
A+
Resource Hints
6 hints, 0 missing preconnects
PASS
6 hints, 0 missing preconnects
Info::
✓
Page uses 6 resource hint(s)
Current Resource Hints
preconnect—
preload
6
dns-prefetch—
prefetch—
6 resource hints configured
A+
Render-Blocking Resources
No render-blocking resources detected
PASS
No render-blocking resources detected
Info::
✓
No render-blocking resources detected in <head>
A+
Third-Party Resources
No third-party resources detected
PASS
No third-party resources detected
Network Waterfall
64 requests over 1801ms
INFO
HTML JavaScript CSS Images Fonts XHR/Fetch Other
Third-Party Script Cost
Per-script blocking time, transfer cost, and cache headers
INFO
100%of JavaScript execution is third-party
First-party Third-party4655ms · 797KB · $62/mo
Script
Category
Execution
Transfer
Unused
Monthly Cost
Verdict
www.vaticannews.va
www.vaticannews.va
Other
1900ms
22 KB
—
$25/mo
Costly
www.vaticannews.va
www.vaticannews.va
Other
560ms
33 KB
—
$7/mo
Costly
Unattributable
Unattributable
Other
526ms
0 KB
—
$7/mo
Costly
Google Tag Manager
www.googletagmanager.com
Tag Manager
433ms
152 KB
42%
$6/mo
Costly
Google Tag Manager
www.googletagmanager.com
Tag Manager
429ms
157 KB
43%
$6/mo
Costly
Google Tag Manager
www.googletagmanager.com
Tag Manager
330ms
131 KB
50%
$4/mo
Costly
www.vaticannews.va
www.vaticannews.va
Other
267ms
174 KB
39%
$4/mo
Costly
www.vaticannews.va
www.vaticannews.va
Other
148ms
63 KB
69%
$2/mo
Optional
www.vaticannews.va
www.vaticannews.va
Other
63ms
64 KB
—
$1/mo
Optional
www.vaticannews.va
Other
Costly
Execution1900ms
Transfer22 KB
Monthly Cost$25/mo
www.vaticannews.va
Other
Costly
Execution560ms
Transfer33 KB
Monthly Cost$7/mo
Unattributable
Other
Costly
Execution526ms
Transfer0 KB
Monthly Cost$7/mo
Google Tag Manager
Tag Manager
Costly
Execution433ms
Transfer152 KB
Unused42%
Monthly Cost$6/mo
Google Tag Manager
Tag Manager
Costly
Execution429ms
Transfer157 KB
Unused43%
Monthly Cost$6/mo
Google Tag Manager
Tag Manager
Costly
Execution330ms
Transfer131 KB
Unused50%
Monthly Cost$4/mo
www.vaticannews.va
Other
Costly
Execution267ms
Transfer174 KB
Unused39%
Monthly Cost$4/mo
www.vaticannews.va
Other
Optional
Execution148ms
Transfer63 KB
Unused69%
Monthly Cost$2/mo
www.vaticannews.va
Other
Optional
Execution63ms
Transfer64 KB
Monthly Cost$1/mo
These scripts may cost more than they're worth
www.vaticannews.va adds 1900ms and costs ~$25/month
www.vaticannews.va adds 560ms and costs ~$7/month
Unattributable adds 526ms and costs ~$7/month
Google Tag Manager adds 433ms and costs ~$6/month
Google Tag Manager adds 429ms and costs ~$6/month
Google Tag Manager adds 330ms and costs ~$4/month
www.vaticannews.va adds 267ms and costs ~$4/month
100% of JavaScript execution time is spent on third-party scripts. Consider auditing which scripts are essential.
Why this matters
When third-party JS execution time exceeds your own, performance gains from frontend work are capped by code you don't own.
Learn more ▾▴
Every millisecond of third-party JS competes with your own for main-thread time. If their share is bigger than yours, optimization on your code base barely moves the needle. Audit, defer, or remove third-parties before further frontend optimization. Use Lighthouse's third-party audit to identify the worst offenders.
Source: web.dev
www.vaticannews.va takes 1900ms of CPU time. Consider loading it asynchronously or replacing it with a lighter alternative.
Why this matters
This script has high main-thread execution time — optimize hot paths or defer.
Source: web.dev
www.vaticannews.va takes 560ms of CPU time. Consider loading it asynchronously or replacing it with a lighter alternative.
Why this matters
This script has high main-thread execution time — optimize hot paths or defer.
Source: web.dev
Unattributable takes 526ms of CPU time. Consider loading it asynchronously or replacing it with a lighter alternative.
Why this matters
This script has high main-thread execution time — optimize hot paths or defer.
Source: web.dev
Google Tag Manager takes 433ms of CPU time. Consider loading it asynchronously or replacing it with a lighter alternative.
Why this matters
This script has high main-thread execution time — optimize hot paths or defer.
Source: web.dev
Google Tag Manager takes 429ms of CPU time. Consider loading it asynchronously or replacing it with a lighter alternative.
Why this matters
This script has high main-thread execution time — optimize hot paths or defer.
Source: web.dev
Google Tag Manager takes 330ms of CPU time. Consider loading it asynchronously or replacing it with a lighter alternative.
Why this matters
This script has high main-thread execution time — optimize hot paths or defer.
Source: web.dev
50% of Google Tag Manager's code is unused. The script may be loading features you don't use.
Why this matters
Bundle has high unused-code ratio — tree-shaking and route-splitting recover the wasted bytes.
Source: web.dev
www.vaticannews.va takes 267ms of CPU time. Consider loading it asynchronously or replacing it with a lighter alternative.
Why this matters
This script has high main-thread execution time — optimize hot paths or defer.
Source: web.dev
69% of www.vaticannews.va's code is unused. The script may be loading features you don't use.
Why this matters
Bundle has high unused-code ratio — tree-shaking and route-splitting recover the wasted bytes.