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
33 images, 0 KB saveable
REVIEW
33 images, 0 KB saveable
Warning::
!
https://indianapolis.iu.edu/images/homepage/iu-ind... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://indianapolis.iu.edu/images/homepage/iu-ind... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://indianapolis.iu.edu/images/homepage/iu-ind... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://indianapolis.iu.edu/images/homepage/iu-ind... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://indianapolis.iu.edu/images/homepage/home-h... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://indianapolis.iu.edu/images/homepage/iu-ind... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://indianapolis.iu.edu/images/homepage/skylin... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://indianapolis.iu.edu/images/homepage/iu-ind... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://indianapolis.iu.edu/images/homepage/studen... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://indianapolis.iu.edu/images/homepage/iu-tri... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
33images1.5 MB
0oversized-0 KB
15legacy format
10missing 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
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
7 fonts (258 KB)
PASS
7 fonts (258 KB)
Info::
i
7 font(s) use font-display: swap (FOUT risk but functional)
Web fonts
7
258 KB total
Render-blocking
0
of 7
Dominant font-display
swap
Most common across fonts
Font loading timeline
TransferFOIT (block)FOUT (swap)
benton-sans-regular.woffwoffswap
Size41 KB
Load time426 ms
Start954 ms
RiskFOUT — text flashes from fallback to web font
Convert to woff2 for ~30% smaller file size
benton-sans-cond-black....woffswap
Size39 KB
Load time316 ms
Start1.0 s
RiskFOUT — text flashes from fallback to web font
Convert to woff2 for ~30% smaller file size
benton-sans-medium.woffwoffswap
Size41 KB
Load time333 ms
Start1.0 s
RiskFOUT — text flashes from fallback to web font
Convert to woff2 for ~30% smaller file size
3XFuErsiyJsY9O_Gepph-HH...woff2swap
Size26 KB
Load time9 ms
Start1.0 s
RiskFOUT — text flashes from fallback to web font
benton-sans-bold.woffwoffswap
Size42 KB
Load time339 ms
Start1.0 s
RiskFOUT — text flashes from fallback to web font
Convert to woff2 for ~30% smaller file size
georgia-pro-regular.woffwoffswap
Size35 KB
Load time322 ms
Start1.1 s
RiskFOUT — text flashes from fallback to web font
Convert to woff2 for ~30% smaller file size
georgia-pro-bold.woffwoffswap
Size35 KB
Load time336 ms
Start1.1 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 ~70 KB and ~140 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
Network Waterfall
118 requests over 4071ms
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-party8368ms · 1549KB · $99/mo
Script
Category
Execution
Transfer
Unused
Monthly Cost
Verdict
indianapolis.iu.edu
indianapolis.iu.edu
Other
1111ms
26 KB
—
$13/mo
Costly
indianapolis.iu.edu
indianapolis.iu.edu
Other
975ms
5 KB
—
$12/mo
Costly
Unattributable
Unattributable
Other
915ms
0 KB
—
$11/mo
Costly
Google Tag Manager
www.googletagmanager.com
Tag Manager
691ms
123 KB
51%
$8/mo
Costly
Google Tag Manager
www.googletagmanager.com
Tag Manager
647ms
174 KB
38%
$8/mo
Costly
Google Tag Manager
www.googletagmanager.com
Tag Manager
475ms
129 KB
48%
$6/mo
Costly
Google Tag Manager
www.googletagmanager.com
Tag Manager
458ms
158 KB
49%
$5/mo
Costly
Google Tag Manager
www.googletagmanager.com
Tag Manager
452ms
170 KB
32%
$5/mo
Costly
analytics.tiktok.com
analytics.tiktok.com
Other
408ms
121 KB
52%
$5/mo
Costly
Facebook Pixel
connect.facebook.net
Advertising
389ms
45 KB
—
$5/mo
Costly
Facebook Pixel
connect.facebook.net
Advertising
329ms
97 KB
35%
$4/mo
Costly
Google Tag Manager
www.googletagmanager.com
Tag Manager
318ms
145 KB
47%
$4/mo
Costly
Google Tag Manager
www.googletagmanager.com
Tag Manager
288ms
130 KB
49%
$3/mo
Costly
sc-static.net
sc-static.net
Other
208ms
25 KB
—
$2/mo
Costly
siteimproveanalytics.com
siteimproveanalytics.com
Other
199ms
93 KB
77%
$2/mo
Optional
unpkg
unpkg.com
CDN
158ms
2 KB
—
$2/mo
Optional
news.iu.edu
news.iu.edu
Other
142ms
36 KB
—
$2/mo
Optional
analytics.tiktok.com
analytics.tiktok.com
Other
80ms
39 KB
—
$1/mo
Optional
LinkedIn Insight
snap.licdn.com
Advertising
70ms
19 KB
—
$1/mo
Optional
js.adsrvr.org
js.adsrvr.org
Other
58ms
12 KB
—
$1/mo
Optional
indianapolis.iu.edu
Other
Costly
Execution1111ms
Transfer26 KB
Monthly Cost$13/mo
indianapolis.iu.edu
Other
Costly
Execution975ms
Transfer5 KB
Monthly Cost$12/mo
Unattributable
Other
Costly
Execution915ms
Transfer0 KB
Monthly Cost$11/mo
Google Tag Manager
Tag Manager
Costly
Execution691ms
Transfer123 KB
Unused51%
Monthly Cost$8/mo
Google Tag Manager
Tag Manager
Costly
Execution647ms
Transfer174 KB
Unused38%
Monthly Cost$8/mo
Google Tag Manager
Tag Manager
Costly
Execution475ms
Transfer129 KB
Unused48%
Monthly Cost$6/mo
Google Tag Manager
Tag Manager
Costly
Execution458ms
Transfer158 KB
Unused49%
Monthly Cost$5/mo
Google Tag Manager
Tag Manager
Costly
Execution452ms
Transfer170 KB
Unused32%
Monthly Cost$5/mo
analytics.tiktok.com
Other
Costly
Execution408ms
Transfer121 KB
Unused52%
Monthly Cost$5/mo
Facebook Pixel
Advertising
Costly
Execution389ms
Transfer45 KB
Monthly Cost$5/mo
Facebook Pixel
Advertising
Costly
Execution329ms
Transfer97 KB
Unused35%
Monthly Cost$4/mo
Google Tag Manager
Tag Manager
Costly
Execution318ms
Transfer145 KB
Unused47%
Monthly Cost$4/mo
Google Tag Manager
Tag Manager
Costly
Execution288ms
Transfer130 KB
Unused49%
Monthly Cost$3/mo
sc-static.net
Other
Costly
Execution208ms
Transfer25 KB
Monthly Cost$2/mo
siteimproveanalytics.com
Other
Optional
Execution199ms
Transfer93 KB
Unused77%
Monthly Cost$2/mo
unpkg
CDN
Optional
Execution158ms
Transfer2 KB
Monthly Cost$2/mo
news.iu.edu
Other
Optional
Execution142ms
Transfer36 KB
Monthly Cost$2/mo
analytics.tiktok.com
Other
Optional
Execution80ms
Transfer39 KB
Monthly Cost$1/mo
LinkedIn Insight
Advertising
Optional
Execution70ms
Transfer19 KB
Monthly Cost$1/mo
js.adsrvr.org
Other
Optional
Execution58ms
Transfer12 KB
Monthly Cost$1/mo
These scripts may cost more than they're worth
indianapolis.iu.edu adds 1111ms and costs ~$13/month
indianapolis.iu.edu adds 975ms and costs ~$12/month
Unattributable adds 915ms and costs ~$11/month
Google Tag Manager adds 691ms and costs ~$8/month
Google Tag Manager adds 647ms and costs ~$8/month
Google Tag Manager adds 475ms and costs ~$6/month
Google Tag Manager adds 458ms and costs ~$5/month
Google Tag Manager adds 452ms and costs ~$5/month
analytics.tiktok.com adds 408ms and costs ~$5/month
Facebook Pixel adds 389ms and costs ~$5/month
Facebook Pixel adds 329ms and costs ~$4/month
Google Tag Manager adds 318ms and costs ~$4/month
Google Tag Manager adds 288ms and costs ~$3/month
sc-static.net adds 208ms and costs ~$2/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
indianapolis.iu.edu takes 1111ms 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
indianapolis.iu.edu takes 975ms 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 915ms 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 691ms 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
51% 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
Google Tag Manager takes 647ms 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 475ms 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 458ms 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 452ms 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
analytics.tiktok.com takes 408ms 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 analytics.tiktok.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 389ms 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
Facebook Pixel takes 329ms 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 318ms 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 288ms 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
sc-static.net takes 208ms 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
77% of siteimproveanalytics.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.