Browsers will use heuristic caching, which can be unpredictable. Set explicit cache headers.
No Cache-Control header
Adding a Cache-Control header can significantly improve repeat-visit performance.
C
Image Optimization
Action
74 images, 0 KB saveable
REVIEW
74 images, 0 KB saveable
Warning::
!
is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://images.teepublic.com/derived/production/de... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://images.teepublic.com/derived/production/de... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://images.teepublic.com/derived/production/de... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://images.teepublic.com/derived/production/de... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://images.teepublic.com/derived/production/de... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://images.teepublic.com/derived/production/de... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://images.teepublic.com/derived/production/de... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://images.teepublic.com/derived/production/de... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://images.teepublic.com/derived/production/de... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://images.teepublic.com/derived/production/de... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://images.teepublic.com/derived/production/de... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://images.teepublic.com/derived/production/de... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://images.teepublic.com/derived/production/de... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://images.teepublic.com/derived/production/de... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://res.cloudinary.com/teepublic/image/private... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://images.teepublic.com/derived/production/de... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://images.teepublic.com/derived/production/de... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://images.teepublic.com/derived/production/de... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://assets.teepublic.com/assets/logos/tp-full-... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://images.teepublic.com/derived/production/de... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://images.teepublic.com/derived/production/de... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://images.teepublic.com/derived/production/de... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://images.teepublic.com/derived/production/de... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://res.cloudinary.com/teepublic/image/private... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://images.teepublic.com/derived/production/de... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://images.teepublic.com/derived/production/de... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://images.teepublic.com/derived/production/de... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
74images1.3 MB
0oversized-0 KB
62legacy format
28missing dimensionsCLS risk
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
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
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
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
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
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
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
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
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
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
4 fonts (141 KB)
PASS
4 fonts (141 KB)
Info::
i
4 font(s) use font-display: swap (FOUT risk but functional)
Web fonts
4
141 KB total
Render-blocking
0
of 4
Dominant font-display
swap
Most common across fonts
Font loading timeline
TransferFOIT (block)FOUT (swap)
Roobert-Medium-88ba7802...woff2swap
Size30 KB
Load time140 ms
Start1.1 s
RiskFOUT — text flashes from fallback to web font
Roobert-SemiBold-9d9c1a...woff2swap
Size31 KB
Load time123 ms
Start1.1 s
RiskFOUT — text flashes from fallback to web font
Roobert-Bold-e95979b74e...woff2swap
Size31 KB
Load time112 ms
Start1.1 s
RiskFOUT — text flashes from fallback to web font
SharpGroteskBold-f0bacf...woff2swap
Size49 KB
Load time140 ms
Start1.1 s
RiskFOUT — text flashes from fallback to web font
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)
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
5 hints, 0 missing preconnects
PASS
5 hints, 0 missing preconnects
Info::
✓
Page uses 5 resource hint(s)
Current Resource Hints
preconnect
1
preload
4
dns-prefetch—
prefetch—
5 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
164 requests over 3014ms
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-party6948ms · 1485KB · €37/mo
Script
Category
Execution
Transfer
Unused
Monthly Cost
Verdict
www.teepublic.com
www.teepublic.com
Other
2334ms
49 KB
—
€12/mo
Costly
Unattributable
Unattributable
Other
839ms
0 KB
—
€4/mo
Costly
consent.cookiebot.com
consent.cookiebot.com
Other
683ms
116 KB
22%
€4/mo
Costly
static.cloudflareinsights.com
static.cloudflareinsights.com
Other
596ms
11 KB
—
€3/mo
Costly
Google Tag Manager
www.googletagmanager.com
Tag Manager
418ms
211 KB
27%
€2/mo
Costly
Google Tag Manager
www.googletagmanager.com
Tag Manager
254ms
170 KB
41%
€1/mo
Costly
www.paypalobjects.com
www.paypalobjects.com
Other
232ms
204 KB
44%
€1/mo
Costly
assets.teepublic.com
assets.teepublic.com
Other
231ms
85 KB
63%
€1/mo
Costly
www.teepublic.com
www.teepublic.com
Other
223ms
0 KB
—
€1/mo
Costly
Google Tag Manager
www.googletagmanager.com
Tag Manager
222ms
145 KB
43%
€1/mo
Costly
Google Tag Manager
www.googletagmanager.com
Tag Manager
215ms
154 KB
46%
€1/mo
Costly
assets.teepublic.com
assets.teepublic.com
Other
182ms
47 KB
49%
€1/mo
Optional
Google Tag Manager
www.googletagmanager.com
Tag Manager
125ms
126 KB
52%
€1/mo
Optional
consent.cookiebot.com
consent.cookiebot.com
Other
107ms
27 KB
—
€1/mo
Optional
PayPal
www.paypal.com
Payment
105ms
97 KB
69%
€1/mo
Essential
c.paypal.com
c.paypal.com
Other
69ms
24 KB
—
€0/mo
Optional
js.braintreegateway.com
js.braintreegateway.com
Other
59ms
12 KB
—
€0/mo
Optional
static.simonsignal.com
static.simonsignal.com
Other
54ms
6 KB
—
€0/mo
Optional
www.teepublic.com
Other
Costly
Execution2334ms
Transfer49 KB
Monthly Cost€12/mo
Unattributable
Other
Costly
Execution839ms
Transfer0 KB
Monthly Cost€4/mo
consent.cookiebot.com
Other
Costly
Execution683ms
Transfer116 KB
Unused22%
Monthly Cost€4/mo
static.cloudflareinsights.com
Other
Costly
Execution596ms
Transfer11 KB
Monthly Cost€3/mo
Google Tag Manager
Tag Manager
Costly
Execution418ms
Transfer211 KB
Unused27%
Monthly Cost€2/mo
Google Tag Manager
Tag Manager
Costly
Execution254ms
Transfer170 KB
Unused41%
Monthly Cost€1/mo
www.paypalobjects.com
Other
Costly
Execution232ms
Transfer204 KB
Unused44%
Monthly Cost€1/mo
assets.teepublic.com
Other
Costly
Execution231ms
Transfer85 KB
Unused63%
Monthly Cost€1/mo
www.teepublic.com
Other
Costly
Execution223ms
Transfer0 KB
Monthly Cost€1/mo
Google Tag Manager
Tag Manager
Costly
Execution222ms
Transfer145 KB
Unused43%
Monthly Cost€1/mo
Google Tag Manager
Tag Manager
Costly
Execution215ms
Transfer154 KB
Unused46%
Monthly Cost€1/mo
assets.teepublic.com
Other
Optional
Execution182ms
Transfer47 KB
Unused49%
Monthly Cost€1/mo
Google Tag Manager
Tag Manager
Optional
Execution125ms
Transfer126 KB
Unused52%
Monthly Cost€1/mo
consent.cookiebot.com
Other
Optional
Execution107ms
Transfer27 KB
Monthly Cost€1/mo
PayPal
Payment
Essential
Execution105ms
Transfer97 KB
Unused69%
Monthly Cost€1/mo
c.paypal.com
Other
Optional
Execution69ms
Transfer24 KB
Monthly Cost€0/mo
js.braintreegateway.com
Other
Optional
Execution59ms
Transfer12 KB
Monthly Cost€0/mo
static.simonsignal.com
Other
Optional
Execution54ms
Transfer6 KB
Monthly Cost€0/mo
These scripts may cost more than they're worth
www.teepublic.com adds 2334ms and costs ~€12/month
Unattributable adds 839ms and costs ~€4/month
consent.cookiebot.com adds 683ms and costs ~€4/month
static.cloudflareinsights.com adds 596ms and costs ~€3/month
Google Tag Manager adds 418ms and costs ~€2/month
Google Tag Manager adds 254ms and costs ~€1/month
www.paypalobjects.com adds 232ms and costs ~€1/month
assets.teepublic.com adds 231ms and costs ~€1/month
www.teepublic.com adds 223ms and costs ~€1/month
Google Tag Manager adds 222ms and costs ~€1/month
Google Tag Manager adds 215ms and costs ~€1/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.teepublic.com takes 2334ms 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 839ms 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
consent.cookiebot.com takes 683ms 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
static.cloudflareinsights.com takes 596ms 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 418ms 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 254ms 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.paypalobjects.com takes 232ms 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
assets.teepublic.com takes 231ms 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
63% of assets.teepublic.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
www.teepublic.com takes 223ms 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 222ms 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 215ms 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 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
69% of PayPal'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.