Performance
· 17 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.
3.24 s
Largest Contentful Paint Largest Contentful Paint — how long until the largest visible element loads. Under 2.5s is good.
4.42 s
Total Blocking Time Total Blocking Time — total time the main thread was blocked, preventing user input. Under 200ms is good.
6 ms
Cumulative Layout Shift Cumulative Layout Shift — measures visual stability. How much the page layout shifts during loading. Under 0.1 is good.
0.000
Speed Index Speed Index — how quickly content is visually displayed during load. Under 3.4s is good.
3.27 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.
4.44 s
Page Load Progression
FHTTP CachingActionNo cache headersFIX
No Cache-Control header
Adding a Cache-Control header can significantly improve repeat-visit performance.
CImage OptimizationAction10 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
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
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
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
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
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
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
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
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
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
BJS Execution Cost650ms total JS executionREVIEW
Main Thread Breakdown
| Script | Total | Scripting | Parse/Compile | Party |
|---|---|---|---|---|
| https://launchpad.net/ | 349ms | 133ms | 5ms | 1st |
| Unattributable | 151ms | 6ms | 0ms | 3rd |
| https://launchpad.net/+combo/rev866d07beecca8ac2e3326342adf6c1740cd3e7b3/?yui/yui/yui-min.js&lp/meta.js&yui/loader/loader-min.js | 150ms | 103ms | 21ms | 1st |
BJS Bundles4 scripts, 70 KB unusedREVIEW
Downloaded but never executed on this page.
| Script | Size | Unused | Minified | Party |
|---|---|---|---|---|
| https://launchpad.net/+combo/rev866d07beecca8ac2e3326342adf6c1740cd3e7b3/?yui/anim-base/anim-base-min.js&yui/anim-color/anim-color-min.js&yui/anim-xy/anim-xy-min.js&yui/anim-curve/anim-curve-min.js&yui/anim-easing/anim-easing-min.js&yui/anim-node-plugin/anim-node-plugin-min.js&yui/anim-scroll/anim-scroll-min.js&lp/app/effects/effects-min.js&lp/app/expander-min.js&lp/app/lp-min.js&lp/app/foldables-min.js&lp/app/sorttable/sorttable-min.js&yui/widget-stdmod/widget-stdmod-min.js&yui/widget-position/widget-position-min.js&yui/widget-position-align/widget-position-align-min.js&yui/widget-stack/widget-stack-min.js&yui/widget-position-constrain/widget-position-constrain-min.js&yui/overlay/overlay-min.js&lp/app/overlay/overlay-min.js&yui/querystring-stringify-simple/querystring-stringify-simple-min.js&yui/io-base/io-base-min.js&yui/datatype-xml-parse/datatype-xml-parse-min.js&yui/io-xdr/io-xdr-min.js&yui/io-form/io-form-min.js&yui/io-upload-iframe/io-upload-iframe-min.js&yui/queue-promote/queue-promote-min.js&yui/io-queue/io-queue-min.js&lp/app/inlinehelp/inlinehelp-min.js&yui/json-parse/json-parse-min.js&yui/json-stringify/json-stringify-min.js&yui/array-extras/array-extras-min.js&yui/querystring-parse/querystring-parse-min.js&yui/querystring-stringify/querystring-stringify-min.js&lp/app/client-min.js&lp/app/lp-links-min.js&lp/app/mustache-min.js&lp/app/formoverlay/formoverlay-min.js&lp/app/extras/extras-min.js&lp/app/anim/anim-min.js&lp/app/choiceedit/choiceedit-min.js&yui/dump/dump-min.js&lp/app/ui/ui-min.js&lp/app/activator/activator-min.js&yui/escape/escape-min.js&yui/plugin/plugin-min.js&lp/app/picker/picker-min.js&lp/app/client-min.js&yui/event-simulate/event-simulate-min.js&yui/async-queue/async-queue-min.js&yui/gesture-simulate/gesture-simulate-min.js&yui/node-event-simulate/node-event-simulate-min.js&lp/app/choice-min.js&lp/app/picker/team-min.js&lp/app/picker/person_picker-min.js&lp/app/picker/picker_patcher-min.js&yui/substitute/substitute-min.js&lp/app/errors-min.js | 58 KB | 47 KB (82%) | ✓ | 1st |
| https://launchpad.net/+combo/rev866d07beecca8ac2e3326342adf6c1740cd3e7b3/?yui/oop/oop-min.js&yui/attribute-core/attribute-core-min.js&yui/event-custom-base/event-custom-base-min.js&yui/event-custom-complex/event-custom-complex-min.js&yui/attribute-observable/attribute-observable-min.js&yui/attribute-extras/attribute-extras-min.js&yui/attribute-base/attribute-base-min.js&yui/base-core/base-core-min.js&yui/base-observable/base-observable-min.js&yui/base-base/base-base-min.js&yui/pluginhost-base/pluginhost-base-min.js&yui/pluginhost-config/pluginhost-config-min.js&yui/base-pluginhost/base-pluginhost-min.js&yui/base-build/base-build-min.js&yui/dom-core/dom-core-min.js&yui/dom-base/dom-base-min.js&yui/selector-native/selector-native-min.js&yui/selector/selector-min.js&yui/node-core/node-core-min.js&yui/node-base/node-base-min.js&yui/event-base/event-base-min.js&yui/event-delegate/event-delegate-min.js&yui/node-event-delegate/node-event-delegate-min.js&yui/node-pluginhost/node-pluginhost-min.js&yui/color-base/color-base-min.js&yui/dom-style/dom-style-min.js&yui/dom-screen/dom-screen-min.js&yui/node-screen/node-screen-min.js&yui/node-style/node-style-min.js&yui/event-synthetic/event-synthetic-min.js&yui/event-focus/event-focus-min.js&yui/intl/intl-min.js&yui/console/lang/console_en.js&yui/attribute-complex/attribute-complex-min.js&yui/classnamemanager/classnamemanager-min.js&yui/widget-base/widget-base-min.js&yui/widget-htmlparser/widget-htmlparser-min.js&yui/widget-skin/widget-skin-min.js&yui/widget-uievents/widget-uievents-min.js&yui/console/console-min.js&yui/event-mousewheel/event-mousewheel-min.js&yui/event-mouseenter/event-mouseenter-min.js&yui/event-key/event-key-min.js&yui/event-resize/event-resize-min.js&yui/event-hover/event-hover-min.js&yui/event-outside/event-outside-min.js&yui/event-touch/event-touch-min.js&yui/event-move/event-move-min.js&yui/event-flick/event-flick-min.js&yui/event-valuechange/event-valuechange-min.js&yui/event-tap/event-tap-min.js&yui/cookie/cookie-min.js | 43 KB | 23 KB (54%) | ✓ | 1st |
| https://launchpad.net/+combo/rev866d07beecca8ac2e3326342adf6c1740cd3e7b3/?yui/yui/yui-min.js&lp/meta.js&yui/loader/loader-min.js | 45 KB | — | ✓ | 1st |
| https://launchpad.net/+combo/rev866d07beecca8ac2e3326342adf6c1740cd3e7b3/?lp/bugs/bug_subscription_portlet-min.js&lp/app/confirmationoverlay/confirmationoverlay-min.js&lp/bugs/bug_picker-min.js&lp/bugs/bugtask_index-min.js&lp/app/information_type-min.js&lp/bugs/duplicates-min.js&lp/app/lp-names-min.js&lp/app/subscribers/subscribers_list-min.js&lp/bugs/subscribers-min.js&lp/app/ellipsis-min.js&lp/code/branchmergeproposal.diff-min.js&yui/view/view-min.js&lp/app/ui/banner-min.js&lp/app/views/global-min.js | 23 KB | — | ✓ | 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
CGreen HostingActionWhether the site is served from green-energy infrastructureREVIEW
Green Hosting
No green hosting detected
A+Page Weight Budget405 KB transferred, 20 requestsPASS
AThird-Party Impact29% third-party, 0 ms blockingPASS
A+Text CompressionAll text resources are compressedPASS
A+Font Loading1 fonts (93 KB)PASS
Web fonts
1
93 KB total
Render-blocking
0
of 1
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+Page Weight Inventory20 resources · 405 KB · 70 KB savings availablePASS
~70.1 KiB of savings available
| # | Resource | Type | Size | Cache | Unused | 3rd party | Issues |
|---|---|---|---|---|---|---|---|
| — | — | ||||||
| 20 resources | 405.0 KiB | ||||||
A+Render-Blocking ResourcesNo render-blocking resources detectedPASS
A+Third-Party ResourcesNo third-party resources detectedPASS
Network Waterfall20 requests over 580msINFO
Third-Party Script CostPer-script blocking time, transfer cost, and cache headersINFO
| Script | Category | Execution | Transfer | Unused | Monthly Cost | Verdict |
|---|---|---|---|---|---|---|
Unattributable Unattributable | Other | 151ms | 0 KB | — | $2/mo | Optional |