https://digital.ihg.com/is/image/ihg/ihg-rewards-r... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://digital.ihg.com/is/image/ihg/ihg-rewards-l... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://digital.ihg.com/is/image/ihg/ihg-ourbrands... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://digital.ihg.com/is/image/ihg/ihg-rewards-r... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://digital.ihg.com/is/image/ihg/ihg-rewards-l... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://digital.ihg.com/is/image/ihg/ihg-ruby-feat... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://digital.ihg.com/is/image/ihg/ihg-rewards-l... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://digital.ihg.com/is/image/ihg/ihg-rewards-l... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://digital.ihg.com/is/image/ihg/ihg-refresh-l... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://digital.ihg.com/is/image/ihg/ihg-refresh-l... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://digital.ihg.com/is/image/ihg/ihg-refresh-l... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://digital.ihg.com/is/image/ihg/ihg-refresh-l... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://digital.ihg.com/is/image/ihg/ihg-refresh-l... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://digital.ihg.com/is/image/ihg/hgrc-hero-poi... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://digital.ihg.com/is/image/ihg/ihgor-member-... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://digital.ihg.com/is/image/ihg/ihg-our-brand... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://digital.ihg.com/is/image/ihg/ihg-refresh-l... 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://digital.ihg.com/is/image/ihg/uhf_AdChoices... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://digital.ihg.com/is/image/ihg/ihg-destinati... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://digital.ihg.com/is/image/ihg/ihgor-app-mkt... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
66images4.2 MB
0oversized-0 KB
42legacy format
21missing 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
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
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
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
13 fonts (921 KB)
PASS
13 fonts (921 KB)
Info::
i
13 font(s) use font-display: swap (FOUT risk but functional)
Web fonts
13
921 KB total
Render-blocking
0
of 13
Dominant font-display
swap
Most common across fonts
Font loading timeline
TransferFOIT (block)FOUT (swap)
Graphik-Regular.otfotfswap
Size53 KB
Load time34 ms
Start538 ms
RiskFOUT — text flashes from fallback to web font
Convert to woff2 for ~30% smaller file size
Graphik-Regular-Web.woff2woff2swap
Size32 KB
Load time26 ms
Start773 ms
RiskFOUT — text flashes from fallback to web font
Inter-Regular.ttfttfswap
Size145 KB
Load time57 ms
Start773 ms
RiskFOUT — text flashes from fallback to web font
Convert to woff2 for ~30% smaller file size
Subset this font — over 100 KB suggests Latin Extended or full glyph coverage that most pages don't need
fa-brands-400.woff2woff2swap
Size76 KB
Load time52 ms
Start773 ms
RiskFOUT — text flashes from fallback to web font
GraphikWide-Regular.otfotfswap
Size50 KB
Load time59 ms
Start774 ms
RiskFOUT — text flashes from fallback to web font
Convert to woff2 for ~30% smaller file size
Graphik-Medium.otfotfswap
Size59 KB
Load time60 ms
Start774 ms
RiskFOUT — text flashes from fallback to web font
Convert to woff2 for ~30% smaller file size
Graphik-Semibold.otfotfswap
Size59 KB
Load time91 ms
Start775 ms
RiskFOUT — text flashes from fallback to web font
Convert to woff2 for ~30% smaller file size
Graphik-Bold.otfotfswap
Size60 KB
Load time60 ms
Start775 ms
RiskFOUT — text flashes from fallback to web font
Convert to woff2 for ~30% smaller file size
GraphikWide-Bold.otfotfswap
Size55 KB
Load time44 ms
Start810 ms
RiskFOUT — text flashes from fallback to web font
Convert to woff2 for ~30% smaller file size
fa-solid-900.woff2woff2swap
Size79 KB
Load time163 ms
Start1.2 s
RiskFOUT — text flashes from fallback to web font
Inter-Medium.ttfttfswap
Size154 KB
Load time30 ms
Start3.5 s
RiskFOUT — text flashes from fallback to web font
Convert to woff2 for ~30% smaller file size
Subset this font — over 100 KB suggests Latin Extended or full glyph coverage that most pages don't need
getotfswap
Size56 KB
Load time27 ms
Start4.3 s
RiskFOUT — text flashes from fallback to web font
Convert to woff2 for ~30% smaller file size
getwoffswap
Size42 KB
Load time42 ms
Start4.3 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 ~369 KB and ~738 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
No optimization needed
PASS
No optimization needed
Info::
✓
No resource hint issues
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
HTTP Caching
max-age=14400 (4 hours)
PASS
max-age=14400 (4 hours)
Info::
✓
Cache-Control header is set
Got: max-age=14400
Info::
✓
Effective TTL: 4 hours (max-age=14400)
Info::
i
No ETag or Last-Modified header
Conditional requests (304 Not Modified) are not possible without validators.
Cache-Control
max-age=14400
Directive
Value
Meaning
max-age
14400
Cache for 4 hours
Effective TTL: 14400 seconds
Network Waterfall
183 requests over 8327ms
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-party17956ms · 2208KB · $238/mo
Script
Category
Execution
Transfer
Unused
Monthly Cost
Verdict
www.ihg.com
www.ihg.com
Other
11038ms
485 KB
41%
$147/mo
Costly
assets.adobedtm.com
assets.adobedtm.com
Other
1268ms
247 KB
16%
$17/mo
Costly
www.ihg.com
www.ihg.com
Other
913ms
44 KB
—
$12/mo
Costly
Unattributable
Unattributable
Other
836ms
0 KB
—
$11/mo
Costly
www.ihg.com
www.ihg.com
Other
772ms
2 KB
20%
$10/mo
Costly
www.ihg.com
www.ihg.com
Other
670ms
37 KB
—
$9/mo
Costly
www.ihg.com
www.ihg.com
Other
537ms
32 KB
—
$7/mo
Costly
www.ihg.com
www.ihg.com
Other
494ms
125 KB
64%
$7/mo
Costly
www.ihg.com
www.ihg.com
Other
392ms
346 KB
74%
$5/mo
Costly
identity.ihg.com
identity.ihg.com
Other
150ms
238 KB
62%
$2/mo
Optional
www.ihg.com
www.ihg.com
Other
146ms
47 KB
58%
$2/mo
Optional
assets.adobedtm.com
assets.adobedtm.com
Other
132ms
3 KB
—
$2/mo
Optional
unpkg
unpkg.com
CDN
105ms
98 KB
74%
$1/mo
Optional
messenger-ui.usw.ivastudio.ai
messenger-ui.usw.ivastudio.ai
Other
98ms
332 KB
51%
$1/mo
Optional
consent.trustarc.com
consent.trustarc.com
Other
87ms
36 KB
71%
$1/mo
Optional
www.ihg.com
www.ihg.com
Other
86ms
23 KB
—
$1/mo
Optional
siteintercept.qualtrics.com
siteintercept.qualtrics.com
Other
80ms
19 KB
—
$1/mo
Optional
www.ihg.com
www.ihg.com
Other
79ms
95 KB
—
$1/mo
Optional
identity.ihg.com
identity.ihg.com
Other
72ms
0 KB
—
$1/mo
Optional
www.ihg.com
Other
Costly
Execution11038ms
Transfer485 KB
Unused41%
Monthly Cost$147/mo
assets.adobedtm.com
Other
Costly
Execution1268ms
Transfer247 KB
Unused16%
Monthly Cost$17/mo
www.ihg.com
Other
Costly
Execution913ms
Transfer44 KB
Monthly Cost$12/mo
Unattributable
Other
Costly
Execution836ms
Transfer0 KB
Monthly Cost$11/mo
www.ihg.com
Other
Costly
Execution772ms
Transfer2 KB
Unused20%
Monthly Cost$10/mo
www.ihg.com
Other
Costly
Execution670ms
Transfer37 KB
Monthly Cost$9/mo
www.ihg.com
Other
Costly
Execution537ms
Transfer32 KB
Monthly Cost$7/mo
www.ihg.com
Other
Costly
Execution494ms
Transfer125 KB
Unused64%
Monthly Cost$7/mo
www.ihg.com
Other
Costly
Execution392ms
Transfer346 KB
Unused74%
Monthly Cost$5/mo
identity.ihg.com
Other
Optional
Execution150ms
Transfer238 KB
Unused62%
Monthly Cost$2/mo
www.ihg.com
Other
Optional
Execution146ms
Transfer47 KB
Unused58%
Monthly Cost$2/mo
assets.adobedtm.com
Other
Optional
Execution132ms
Transfer3 KB
Monthly Cost$2/mo
unpkg
CDN
Optional
Execution105ms
Transfer98 KB
Unused74%
Monthly Cost$1/mo
messenger-ui.usw.ivastudio.ai
Other
Optional
Execution98ms
Transfer332 KB
Unused51%
Monthly Cost$1/mo
consent.trustarc.com
Other
Optional
Execution87ms
Transfer36 KB
Unused71%
Monthly Cost$1/mo
www.ihg.com
Other
Optional
Execution86ms
Transfer23 KB
Monthly Cost$1/mo
siteintercept.qualtrics.com
Other
Optional
Execution80ms
Transfer19 KB
Monthly Cost$1/mo
www.ihg.com
Other
Optional
Execution79ms
Transfer95 KB
Monthly Cost$1/mo
identity.ihg.com
Other
Optional
Execution72ms
Transfer0 KB
Monthly Cost$1/mo
These scripts may cost more than they're worth
www.ihg.com adds 11038ms and costs ~$147/month
assets.adobedtm.com adds 1268ms and costs ~$17/month
www.ihg.com adds 913ms and costs ~$12/month
Unattributable adds 836ms and costs ~$11/month
www.ihg.com adds 772ms and costs ~$10/month
www.ihg.com adds 670ms and costs ~$9/month
www.ihg.com adds 537ms and costs ~$7/month
www.ihg.com adds 494ms and costs ~$7/month
www.ihg.com adds 392ms and costs ~$5/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.ihg.com takes 11038ms 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.adobedtm.com takes 1268ms 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.ihg.com takes 913ms 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 836ms 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.ihg.com takes 772ms 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.ihg.com takes 670ms 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.ihg.com takes 537ms 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.ihg.com takes 494ms 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
64% of www.ihg.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.ihg.com takes 392ms 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
74% of www.ihg.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
62% of identity.ihg.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
58% of www.ihg.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
74% of unpkg'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
51% of messenger-ui.usw.ivastudio.ai'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 consent.trustarc.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.