https://static.shareasale.com/image/108816/US00336... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://cleantechnica.com/wp-content/uploads/2023/... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
17images2.2 MB
0oversized-0 KB
10legacy format
2missing 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
A
Third-Party Impact
34% third-party, 0 ms blocking
PASS
34% third-party, 0 ms blocking
Info::
i
Third-party code accounts for 34% of page weight (1.3 MiB of 3.9 MiB)
Info::
✓
Third-party blocking time is low (0 ms)
66%
34%
First-party Third-party
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
8 fonts (595 KB)
PASS
8 fonts (595 KB)
Info::
i
8 font(s) use font-display: swap (FOUT risk but functional)
Web fonts
8
595 KB total
Render-blocking
0
of 8
Dominant font-display
swap
Most common across fonts
Font loading timeline
TransferFOIT (block)FOUT (swap)
OpenSans-VariableFont.woffwoffswap
Size79 KB
Load time25 ms
Start211 ms
RiskFOUT — text flashes from fallback to web font
Convert to woff2 for ~30% smaller file size
fontawesome-webfont.woff2woff2swap
Size76 KB
Load time25 ms
Start212 ms
RiskFOUT — text flashes from fallback to web font
OpenSans-Italic.woffwoffswap
Size82 KB
Load time37 ms
Start314 ms
RiskFOUT — text flashes from fallback to web font
Convert to woff2 for ~30% smaller file size
OpenSans-Medium.woffwoffswap
Size79 KB
Load time51 ms
Start315 ms
RiskFOUT — text flashes from fallback to web font
Convert to woff2 for ~30% smaller file size
OpenSans-SemiBold.woffwoffswap
Size79 KB
Load time51 ms
Start315 ms
RiskFOUT — text flashes from fallback to web font
Convert to woff2 for ~30% smaller file size
OpenSans-SemiBoldItalic...woffswap
Size82 KB
Load time56 ms
Start316 ms
RiskFOUT — text flashes from fallback to web font
Convert to woff2 for ~30% smaller file size
memvYaGs126MiZpBA-UvWbX...woff2swap
Size42 KB
Load time96 ms
Start1.2 s
RiskFOUT — text flashes from fallback to web font
OpenSans-Bold.woffwoffswap
Size77 KB
Load time16 ms
Start1.2 s
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 ~143 KB and ~286 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
1 hints, 0 missing preconnects
PASS
1 hints, 0 missing preconnects
Info::
✓
Page uses 1 resource hint(s)
Current Resource Hints
preconnect—
preload—
dns-prefetch
1
prefetch—
1 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
A+
Green Hosting
Whether the site is served from green-energy infrastructure
PASS
Green Hosting
This site is hosted on green energy infrastructure
Provider: Google Cloud
A
HTTP Caching
max-age=600 (10 minutes)
PASS
max-age=600 (10 minutes)
Info::
✓
Cache-Control header is set
Got: max-age=600, must-revalidate
Info::
✓
Effective TTL: 10 minutes (max-age=600)
Info::
i
No ETag or Last-Modified header
Conditional requests (304 Not Modified) are not possible without validators.
Cache-Control
max-age=600, must-revalidate
Directive
Value
Meaning
max-age
600
Cache for 10 minutes
must-revalidate
—
Must recheck with server after expiry
Effective TTL: 600 seconds
Network Waterfall
75 requests over 1359ms
INFO
HTML JavaScript CSS Images Fonts XHR/Fetch Other
Third-Party Script Cost
Per-script blocking time, transfer cost, and cache headers
INFO
67%of JavaScript execution is third-party
First-party Third-party2369ms · 898KB · $31/mo
Script
Category
Execution
Transfer
Unused
Monthly Cost
Verdict
Unattributable
Unattributable
Other
410ms
0 KB
—
$5/mo
Costly
pagead2.googlesyndication.com
pagead2.googlesyndication.com
Other
323ms
55 KB
39%
$4/mo
Costly
Google Tag Manager
www.googletagmanager.com
Tag Manager
323ms
156 KB
42%
$4/mo
Costly
fundingchoicesmessages.google.com
fundingchoicesmessages.google.com
Other
267ms
68 KB
—
$4/mo
Costly
pagead2.googlesyndication.com
pagead2.googlesyndication.com
Other
235ms
178 KB
83%
$3/mo
Costly
Facebook Pixel
connect.facebook.net
Advertising
228ms
97 KB
35%
$3/mo
Costly
fundingchoicesmessages.google.com
fundingchoicesmessages.google.com
Other
183ms
70 KB
52%
$2/mo
Optional
Facebook Pixel
connect.facebook.net
Advertising
134ms
45 KB
—
$2/mo
Optional
Google Tag Manager
www.googletagmanager.com
Tag Manager
114ms
116 KB
57%
$2/mo
Optional
Facebook Pixel
connect.facebook.net
Advertising
80ms
78 KB
71%
$1/mo
Optional
confesschairs.com
confesschairs.com
Other
70ms
36 KB
—
$1/mo
Optional
Unattributable
Other
Costly
Execution410ms
Transfer0 KB
Monthly Cost$5/mo
pagead2.googlesyndication.com
Other
Costly
Execution323ms
Transfer55 KB
Unused39%
Monthly Cost$4/mo
Google Tag Manager
Tag Manager
Costly
Execution323ms
Transfer156 KB
Unused42%
Monthly Cost$4/mo
fundingchoicesmessages.google.com
Other
Costly
Execution267ms
Transfer68 KB
Monthly Cost$4/mo
pagead2.googlesyndication.com
Other
Costly
Execution235ms
Transfer178 KB
Unused83%
Monthly Cost$3/mo
Facebook Pixel
Advertising
Costly
Execution228ms
Transfer97 KB
Unused35%
Monthly Cost$3/mo
fundingchoicesmessages.google.com
Other
Optional
Execution183ms
Transfer70 KB
Unused52%
Monthly Cost$2/mo
Facebook Pixel
Advertising
Optional
Execution134ms
Transfer45 KB
Monthly Cost$2/mo
Google Tag Manager
Tag Manager
Optional
Execution114ms
Transfer116 KB
Unused57%
Monthly Cost$2/mo
Facebook Pixel
Advertising
Optional
Execution80ms
Transfer78 KB
Unused71%
Monthly Cost$1/mo
confesschairs.com
Other
Optional
Execution70ms
Transfer36 KB
Monthly Cost$1/mo
These scripts may cost more than they're worth
Unattributable adds 410ms and costs ~$5/month
pagead2.googlesyndication.com adds 323ms and costs ~$4/month
Google Tag Manager adds 323ms and costs ~$4/month
fundingchoicesmessages.google.com adds 267ms and costs ~$4/month
pagead2.googlesyndication.com adds 235ms and costs ~$3/month
Facebook Pixel adds 228ms and costs ~$3/month
67% of JavaScript execution time comes from third-party scripts.
Why this matters
Third-party scripts (analytics, ads, social, A/B testing) often dominate execution time — every one is a perf-and-privacy tax.
Learn more ▾▴
Each third-party script is a black box: you don't control when it loads, what it executes, or how much it grows. They often account for a major share of total blocking time on average sites (HTTP Archive's Web Almanac documents the trend). Audit which ones you actually need, defer the rest, and use facade patterns (lite-youtube, lite-vimeo) for embedded media.
Source: web.dev / HTTP Archive Web Almanac
Unattributable takes 410ms 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
pagead2.googlesyndication.com takes 323ms 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 323ms 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
fundingchoicesmessages.google.com 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
pagead2.googlesyndication.com takes 235ms 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
83% of pagead2.googlesyndication.com'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
Facebook Pixel takes 228ms 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
52% of fundingchoicesmessages.google.com'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
57% 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
71% of Facebook Pixel'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.