Performance
· 27 checks — Lighthouse + waterfall + sustainability rolled into one auditable list.Performance-focused optimization plan with CWV assessment, top offenders, and time estimates
First Contentful Paint First Contentful Paint — how long until the browser renders the first piece of content. Under 1.8s is good.
8.81 s
Largest Contentful Paint Largest Contentful Paint — how long until the largest visible element loads. Under 2.5s is good.
8.81 s
Total Blocking Time Total Blocking Time — total time the main thread was blocked, preventing user input. Under 200ms is good.
596 ms
Cumulative Layout Shift Cumulative Layout Shift — measures visual stability. How much the page layout shifts during loading. Under 0.1 is good.
0.051
Speed Index Speed Index — how quickly content is visually displayed during load. Under 3.4s is good.
8.81 s
Time to Interactive Time to Interactive — how long until the page is fully interactive and responds to user input. Under 3.8s is good.
14.10 s
Page Load Progression
DPage Weight BudgetAction2.2 MB transferred, 78 requestsFIX
Large JavaScript bundles delay interactivity. Split code by route or defer non-critical scripts.
JavaScript bundle is large — code-split routes and lazy-load off-screen components to defer.
Source: web.dev
Remove unused CSS rules with tools like PurgeCSS to reduce stylesheet size.
CSS bundle is large — purge unused styles (PurgeCSS, Tailwind JIT) to reduce CSS payload.
Source: web.dev
DJS Execution CostAction3293ms total JS executionFIX
Main Thread Breakdown
| Script | Total | Scripting | Parse/Compile | Party |
|---|---|---|---|---|
| https://www.myhealth.va.gov/mhv-portal-web/combo?browserId=other&minifierType=js&languageId=en_US&t=1777597615606&/o/frontend-js-web/loader/config.js&/o/frontend-js-web/loader/loader.js&/o/frontend-js-web/aui/aui/aui.js&/o/frontend-js-web/aui/aui-base-html5-shiv/aui-base-html5-shiv.js&/o/frontend-js-web/liferay/browser_selectors.js&/o/frontend-js-web/liferay/modules.js&/o/frontend-js-web/liferay/aui_sandbox.js&/o/frontend-js-web/misc/svg4everybody.js&/o/frontend-js-web/aui/arraylist-add/arraylist-add.js&/o/frontend-js-web/aui/arraylist-filter/arraylist-filter.js&/o/frontend-js-web/aui/arraylist/arraylist.js&/o/frontend-js-web/aui/array-extras/array-extras.js&/o/frontend-js-web/aui/array-invoke/array-invoke.js&/o/frontend-js-web/aui/attribute-base/attribute-base.js&/o/frontend-js-web/aui/attribute-complex/attribute-complex.js&/o/frontend-js-web/aui/attribute-core/attribute-core.js&/o/frontend-js-web/aui/attribute-observable/attribute-observable.js&/o/frontend-js-web/aui/attribute-extras/attribute-extras.js&/o/frontend-js-web/aui/base-base/base-base.js&/o/frontend-js-web/aui/base-pluginhost/base-pluginhost.js&/o/frontend-js-web/aui/classnamemanager/classnamemanager.js&/o/frontend-js-web/aui/datatype-xml-format/datatype-xml-format.js&/o/frontend-js-web/aui/datatype-xml-parse/datatype-xml-parse.js&/o/frontend-js-web/aui/dom-base/dom-base.js&/o/frontend-js-web/aui/dom-core/dom-core.js&/o/frontend-js-web/aui/dom-screen/dom-screen.js&/o/frontend-js-web/aui/dom-style/dom-style.js&/o/frontend-js-web/aui/event-base/event-base.js&/o/frontend-js-web/aui/event-custom-base/event-custom-base.js&/o/frontend-js-web/aui/event-custom-complex/event-custom-complex.js&/o/frontend-js-web/aui/event-delegate/event-delegate.js&/o/frontend-js-web/aui/event-focus/event-focus.js&/o/frontend-js-web/aui/event-hover/event-hover.js&/o/frontend-js-web/aui/event-key/event-key.js&/o/frontend-js-web/aui/event-mouseenter/event-mouseenter.js&/o/frontend-js-web/aui/event-mousewheel/event-mousewheel.js | 668ms | 349ms | 30ms | 1st |
| https://www.myhealth.va.gov/mhv-portal-web/home | 662ms | 106ms | 14ms | 1st |
| Unattributable | 516ms | 15ms | 0ms | 3rd |
| https://www.myhealth.va.gov/ruxitagentjs_ICA7NVfgqrux_10335260306043831.js | 430ms | 373ms | 20ms | 1st |
| https://www.googletagmanager.com/gtm.js?id=GTM-WZ6MXMD>m_auth=EVfhr6k93Fl16jzaZVCafQ>m_preview=env-2>m_cookies_win=x | 222ms | 189ms | 30ms | 3rd |
| https://www.googletagmanager.com/gtag/js?id=G-YPB3FD0PQ9&cx=c>m=4e6562h1 | 214ms | 183ms | 30ms | 3rd |
| https://www.googletagmanager.com/gtag/js?id=G-CSLL4ZEK4L | 197ms | 166ms | 30ms | 3rd |
| https://www.myhealth.va.gov/mhv-portal-web/combo?browserId=other&minifierType=js&languageId=en_US&t=1777600661669&/mhv-portal-web/o/frontend-js-jquery-web/jquery/jquery.min.js&/mhv-portal-web/o/frontend-js-jquery-web/jquery/bootstrap.bundle.min.js&/mhv-portal-web/o/frontend-js-jquery-web/jquery/collapsible_search.js&/mhv-portal-web/o/frontend-js-jquery-web/jquery/fm.js&/mhv-portal-web/o/frontend-js-jquery-web/jquery/form.js&/mhv-portal-web/o/frontend-js-jquery-web/jquery/popper.min.js&/mhv-portal-web/o/frontend-js-jquery-web/jquery/side_navigation.js | 99ms | 69ms | 25ms | 1st |
| https://www.myhealth.va.gov/mhv-portal-web/combo?browserId=other&minifierType=js&languageId=en_US&t=1777597615606&/o/frontend-js-web/aui/aui-base-lang/aui-base-lang.js&/o/frontend-js-web/aui/aui-classnamemanager/aui-classnamemanager.js&/o/frontend-js-web/aui/aui-component/aui-component.js&/o/frontend-js-web/aui/aui-debounce/aui-debounce.js&/o/frontend-js-web/aui/aui-delayed-task-deprecated/aui-delayed-task-deprecated.js&/o/frontend-js-web/aui/aui-event-base/aui-event-base.js&/o/frontend-js-web/aui/aui-event-input/aui-event-input.js&/o/frontend-js-web/aui/aui-form-validator/aui-form-validator.js&/o/frontend-js-web/aui/aui-node-base/aui-node-base.js&/o/frontend-js-web/aui/aui-node-html5/aui-node-html5.js&/o/frontend-js-web/aui/aui-selector/aui-selector.js&/o/frontend-js-web/aui/aui-timer/aui-timer.js&/o/frontend-js-web/liferay/dependency.js&/o/frontend-js-web/liferay/dom_task_runner.js&/o/frontend-js-web/liferay/events.js&/o/frontend-js-web/liferay/language.js&/o/frontend-js-web/liferay/lazy_load.js&/o/frontend-js-web/liferay/liferay.js&/o/frontend-js-web/liferay/util.js&/o/frontend-js-web/liferay/global.bundle.js&/o/frontend-js-web/liferay/portal.js&/o/frontend-js-web/liferay/portlet.js&/o/frontend-js-web/liferay/workflow.js&/o/frontend-js-web/liferay/form.js&/o/frontend-js-web/liferay/form_placeholders.js&/o/frontend-js-web/liferay/icon.js&/o/frontend-js-web/liferay/menu.js&/o/frontend-js-web/liferay/notice.js&/o/frontend-js-web/liferay/poller.js | 88ms | 56ms | 31ms | 1st |
| https://www.myhealth.va.gov/mhv-portal-web/o/mhv-portal-theme/js/jquery-3.7.1.min.js?mhvv=20260510 | 85ms | 65ms | 6ms | 1st |
Showing top 10 of 12 scripts
FJS BundlesAction31 scripts, 591 KB unusedFIX
Downloaded but never executed on this page.
| Script | Size | Unused | Minified | Party |
|---|---|---|---|---|
| https://www.googletagmanager.com/gtag/js?id=G-CSLL4ZEK4L&cx=c>m=4e6562h1 | 147 KB | 106 KB (72%) | ✓ | 3rd |
| https://www.googletagmanager.com/gtag/js?id=G-CSLL4ZEK4L | 148 KB | 63 KB (43%) | ✓ | 3rd |
| https://www.googletagmanager.com/gtag/js?id=G-YPB3FD0PQ9&cx=c>m=4e6562h1 | 144 KB | 63 KB (44%) | ✓ | 3rd |
| https://www.googletagmanager.com/gtm.js?id=GTM-WZ6MXMD>m_auth=EVfhr6k93Fl16jzaZVCafQ>m_preview=env-2>m_cookies_win=x | 141 KB | 62 KB (44%) | ✓ | 3rd |
| https://www.myhealth.va.gov/mhv-portal-web/o/mhv-portal-theme/js/jquery-ui-1.13.2.min.js?mhvv=20260510 | 67 KB | 59 KB (89%) | ✓ | 1st |
| https://www.myhealth.va.gov/mhv-portal-web/combo?browserId=other&minifierType=js&languageId=en_US&t=1777597615606&/o/frontend-js-web/aui/aui-base-lang/aui-base-lang.js&/o/frontend-js-web/aui/aui-classnamemanager/aui-classnamemanager.js&/o/frontend-js-web/aui/aui-component/aui-component.js&/o/frontend-js-web/aui/aui-debounce/aui-debounce.js&/o/frontend-js-web/aui/aui-delayed-task-deprecated/aui-delayed-task-deprecated.js&/o/frontend-js-web/aui/aui-event-base/aui-event-base.js&/o/frontend-js-web/aui/aui-event-input/aui-event-input.js&/o/frontend-js-web/aui/aui-form-validator/aui-form-validator.js&/o/frontend-js-web/aui/aui-node-base/aui-node-base.js&/o/frontend-js-web/aui/aui-node-html5/aui-node-html5.js&/o/frontend-js-web/aui/aui-selector/aui-selector.js&/o/frontend-js-web/aui/aui-timer/aui-timer.js&/o/frontend-js-web/liferay/dependency.js&/o/frontend-js-web/liferay/dom_task_runner.js&/o/frontend-js-web/liferay/events.js&/o/frontend-js-web/liferay/language.js&/o/frontend-js-web/liferay/lazy_load.js&/o/frontend-js-web/liferay/liferay.js&/o/frontend-js-web/liferay/util.js&/o/frontend-js-web/liferay/global.bundle.js&/o/frontend-js-web/liferay/portal.js&/o/frontend-js-web/liferay/portlet.js&/o/frontend-js-web/liferay/workflow.js&/o/frontend-js-web/liferay/form.js&/o/frontend-js-web/liferay/form_placeholders.js&/o/frontend-js-web/liferay/icon.js&/o/frontend-js-web/liferay/menu.js&/o/frontend-js-web/liferay/notice.js&/o/frontend-js-web/liferay/poller.js | 76 KB | 59 KB (79%) | ✓ | 1st |
| https://www.myhealth.va.gov/mhv-portal-web/combo?browserId=other&minifierType=js&languageId=en_US&t=1777600661669&/mhv-portal-web/o/frontend-js-jquery-web/jquery/jquery.min.js&/mhv-portal-web/o/frontend-js-jquery-web/jquery/bootstrap.bundle.min.js&/mhv-portal-web/o/frontend-js-jquery-web/jquery/collapsible_search.js&/mhv-portal-web/o/frontend-js-jquery-web/jquery/fm.js&/mhv-portal-web/o/frontend-js-jquery-web/jquery/form.js&/mhv-portal-web/o/frontend-js-jquery-web/jquery/popper.min.js&/mhv-portal-web/o/frontend-js-jquery-web/jquery/side_navigation.js | 70 KB | 54 KB (77%) | ✓ | 1st |
| https://www.myhealth.va.gov/mhv-portal-web/o/mhv-portal-theme/js/datatables-2.1.6.min.js?mhvv=20260510 | 46 KB | 39 KB (85%) | ✓ | 1st |
| https://www.myhealth.va.gov/ruxitagentjs_ICA7NVfgqrux_10335260306043831.js | 82 KB | 32 KB (39%) | ✓ | 1st |
| https://www.myhealth.va.gov/mhv-portal-web/combo?browserId=other&minifierType=js&languageId=en_US&t=1777597615606&/o/frontend-js-web/aui/event-outside/event-outside.js&/o/frontend-js-web/aui/event-resize/event-resize.js&/o/frontend-js-web/aui/event-simulate/event-simulate.js&/o/frontend-js-web/aui/event-synthetic/event-synthetic.js&/o/frontend-js-web/aui/intl/intl.js&/o/frontend-js-web/aui/io-base/io-base.js&/o/frontend-js-web/aui/io-form/io-form.js&/o/frontend-js-web/aui/io-queue/io-queue.js&/o/frontend-js-web/aui/io-upload-iframe/io-upload-iframe.js&/o/frontend-js-web/aui/io-xdr/io-xdr.js&/o/frontend-js-web/aui/json-parse/json-parse.js&/o/frontend-js-web/aui/json-stringify/json-stringify.js&/o/frontend-js-web/aui/node-base/node-base.js&/o/frontend-js-web/aui/node-core/node-core.js&/o/frontend-js-web/aui/node-event-delegate/node-event-delegate.js&/o/frontend-js-web/aui/node-event-simulate/node-event-simulate.js&/o/frontend-js-web/aui/node-focusmanager/node-focusmanager.js&/o/frontend-js-web/aui/node-pluginhost/node-pluginhost.js&/o/frontend-js-web/aui/node-screen/node-screen.js&/o/frontend-js-web/aui/node-style/node-style.js&/o/frontend-js-web/aui/oop/oop.js&/o/frontend-js-web/aui/plugin/plugin.js&/o/frontend-js-web/aui/pluginhost-base/pluginhost-base.js&/o/frontend-js-web/aui/pluginhost-config/pluginhost-config.js&/o/frontend-js-web/aui/querystring-stringify-simple/querystring-stringify-simple.js&/o/frontend-js-web/aui/queue-promote/queue-promote.js&/o/frontend-js-web/aui/selector-css2/selector-css2.js&/o/frontend-js-web/aui/selector-css3/selector-css3.js&/o/frontend-js-web/aui/selector-native/selector-native.js&/o/frontend-js-web/aui/selector/selector.js&/o/frontend-js-web/aui/widget-base/widget-base.js&/o/frontend-js-web/aui/widget-htmlparser/widget-htmlparser.js&/o/frontend-js-web/aui/widget-skin/widget-skin.js&/o/frontend-js-web/aui/widget-uievents/widget-uievents.js&/o/frontend-js-web/aui/yui-throttle/yui-throttle.js&/o/frontend-js-web/aui/aui-base-core/aui-base-core.js | 35 KB | 28 KB (83%) | ✓ | 1st |
Consider code splitting or tree shaking to reduce unused code.
This bundle has high unused code — code-split or tree-shake to ship only what executes.
Source: web.dev / Lighthouse coverage
Consider code splitting or tree shaking to reduce unused code.
This bundle has high unused code — code-split or tree-shake to ship only what executes.
Source: web.dev / Lighthouse coverage
Consider code splitting or tree shaking to reduce unused code.
This bundle has high unused code — code-split or tree-shake to ship only what executes.
Source: web.dev / Lighthouse coverage
Consider code splitting or tree shaking to reduce unused code.
This bundle has high unused code — code-split or tree-shake to ship only what executes.
Source: web.dev / Lighthouse coverage
Consider code splitting or tree shaking to reduce unused code.
This bundle has high unused code — code-split or tree-shake to ship only what executes.
Source: web.dev / Lighthouse coverage
DPage Weight InventoryAction78 resources · 2.2 MB · 591 KB savings availableFIX
~590.6 KiB of savings available
| # | Resource | Type | Size | Cache | Unused | 3rd party | Issues |
|---|---|---|---|---|---|---|---|
| — | — | ||||||
| 78 resources | 2.2 MiB | ||||||
BImage Optimization16 images, 0 KB saveableREVIEW
Set explicit width and height to prevent CLS.
Image without explicit width/height — browser can't reserve space; CLS jumps when image loads.
Source: web.dev / Core Web Vitals
BHTTP/3 (QUIC)HTTP/3 not advertisedREVIEW
CCompression AlgorithmActionMain response served uncompressedREVIEW
BJavaScript Blocking1 JS blocking issue(s) detectedREVIEW
CGreen HostingActionWhether the site is served from green-energy infrastructureREVIEW
Green Hosting
No green hosting detected
BHTTP Cachingno-cache, privateREVIEW
no-cache, private
| Directive | Value | Meaning |
|---|---|---|
| no-cache | — | Cache but always revalidate first |
| private | — | Only browser cache, not CDN/proxy |
AThird-Party Impact27% third-party, 0 ms blockingPASS
A+Text CompressionAll text resources are compressedPASS
A+Font Loading3 fonts (119 KB)PASS
Web fonts
3
119 KB total
Render-blocking
0
of 3
Dominant font-display
swap
Most common across fonts
Font loading timeline
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 CachingAll resources properly cachedPASS
A+Critical Rendering PathNo render-blocking resourcesPASS
A+Resource HintsNo optimization neededPASS
A+LCP Image PreloadLCP preload audit not availablePASS
A+Main HTML Cache-ControlMain HTML uses no-cache -- safe revalidate-on-request policyPASS
A+Server-Timing Observability2 Server-Timing entries advertisedPASS
A+Server Response Intelligence1 server-response signal(s) detectedPASS
A+Render-Blocking ResourcesNo render-blocking resources detectedPASS
A+Third-Party ResourcesNo third-party resources detectedPASS
ACSS Performance Depth1 CSS depth issue(s) detectedPASS
Network Waterfall78 requests over 7174msINFO
Third-Party Script CostPer-script blocking time, transfer cost, and cache headersINFO
| Script | Category | Execution | Transfer | Unused | Monthly Cost | Verdict |
|---|---|---|---|---|---|---|
Unattributable Unattributable | Other | 516ms | 0 KB | — | $7/mo | Costly |
Google Tag Manager www.googletagmanager.com | Tag Manager | 222ms | 141 KB | 44% | $3/mo | Costly |
Google Tag Manager www.googletagmanager.com | Tag Manager | 214ms | 144 KB | 44% | $3/mo | Costly |
Google Tag Manager www.googletagmanager.com | Tag Manager | 197ms | 148 KB | 43% | $3/mo | Optional |
These scripts may cost more than they're worth
- Unattributable adds 516ms and costs ~$7/month
- Google Tag Manager adds 222ms and costs ~$3/month
- Google Tag Manager adds 214ms and costs ~$3/month
Unattributable takes 516ms of CPU time. Consider loading it asynchronously or replacing it with a lighter alternative.
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.
This script has high main-thread execution time — optimize hot paths or defer.
Source: web.dev
Google Tag Manager takes 214ms of CPU time. Consider loading it asynchronously or replacing it with a lighter alternative.
This script has high main-thread execution time — optimize hot paths or defer.
Source: web.dev
Real-User Performance (CrUX)Field metrics from the Chrome User Experience ReportINFO
Chrome User Experience (CrUX)
Real-user metrics from the Chrome UX Report (2026-04-11 — 2026-05-08)
LCP (p75)
2521 ms
74% good
INP (p75)
137 ms
89% good
CLS (p75)
0.030
99% good
FCP (p75)
2437 ms
TTFB (p75)
949 ms
Image Optimization6 images, 10 KB total, 1 KB wastedINFO
Image Optimization Audit
Total Images
6
Total Size
10 KB
Oversized
1
Wasted
1 KB