What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Set performance budgets from the journeys and user outcomes that matter, enforce them with repeatable checks in continuous integration (CI), and verify the experience with real-user field data. A budget is a regression guardrail—not a score to chase. As MDN puts it, “A performance budget is a limit to prevent regressions.”
Choose what the budget should protect
Start with a few important routes and the tasks clients perform on them. For each route, identify the outcome that must not degrade: important content appears promptly, a key interaction responds, the layout stays stable, or the amount of code and media remains bounded. MDN describes budgets for timing, resource quantities, rules, custom metrics, and periods of time. A budget can use one or more of these forms; it does not have to be a single page-load score.
As an Amazon Associate I earn from qualifying purchases.
Pick a small set of limits that connect those outcomes to causes your team can act on. Resource sizes and request counts help reveal what grew; experience metrics show whether the change affected users. Google’s introductory guidance recommends beginning with asset sizes and tracking First Contentful Paint (FCP) and Time to Interactive (TTI) as soon as possible. Its examples of under 5 seconds for TTI and under 170 KB for critical-path resources date to 2017 and were based on particular baseline devices and 3G conditions. Treat them as historical illustrations, not current universal targets.
Free tools Windows power users keep installed
One-click scans. No signup required.
Establish a baseline before choosing ceilings
Measure representative routes in a production-like build before setting thresholds. Record enough context to make later comparisons meaningful:
#1 Best Overall
- Build or commit and the tested route.
- Browser and device or emulation profile.
- Network and CPU settings.
- The measured result and the tool configuration.
Use the baseline and the product goal to set an initial target. Avoid copying another site’s limit without accounting for its routes, content, audience device mix, and business outcome. A threshold should be achievable, catch a meaningful regression, and tell a change author what failed. Tighten it as improvements make a stricter limit realistic.
Use multiple budget dimensions when each adds useful information. For example, a transfer-size ceiling and a JavaScript-size ceiling can reveal resource growth, while a loading or responsiveness metric checks whether the experience changed. Lighthouse’s resource summary groups requests and transfer sizes by resource type, helping teams investigate which class of resource contributed to a change.
Rank #2
Enforce budgets with Lighthouse CI
Lighthouse CI can run against critical routes and check either audit assertions or a budget file. Configure collection for the journeys that matter, then decide whether failures should initially warn or block. Warnings can help a team understand its baseline; make a limit a blocking error once results are stable and someone owns the threshold. The Lighthouse CI configuration documentation covers presets, assertions, budget files, and collection settings.
Choose assertions or a budget file
For a budget-file check, Lighthouse CI uses the budgetsFile option. The configuration reference also documents assertions such as resource-summary:<resourceType>:(size|count). A budget file can express timing, resource-size, and request-count limits, and budgets can be scoped to paths. The older Lighthouse budget documentation describes these budget types and path scoping; check supported metric names and behavior against the Lighthouse version your project installs.
Be explicit about units when configuring size limits. In Lighthouse CI style assertions, maxNumericValue for a size is expressed in bytes; file-size budgets in budget.json use kilobytes. A mistaken unit can make a limit ineffective or unexpectedly strict.
Control noise without making CI needlessly slow
More than one collection run can make a measurement workflow more complete, but the right count depends on CI duration and the variability you observe. Lighthouse CI documentation uses five runs as an example, not a requirement for every project. Keep the browser and test environment as consistent as practical. When a check fails, inspect the build diff and identify the source of the change before deciding whether to fix it, accept a trade-off, or revise a ceiling. Simply raising the limit can turn a guardrail into a record of regressions.
Rank #4
Check the client experience with field data
CI lab tests are useful for repeatable build-to-build checks under configured conditions. They do not represent every client device, connection, route, or interaction. Field data captures actual visits across that variation, but it depends on traffic composition and sufficient data. The two measurement layers answer different questions and should be used together.
Recommended Free Tools
For current Core Web Vitals, Google classifies these thresholds as good:
Best Value
- Used Book in Good Condition
- Largest Contentful Paint (LCP): 2.5 seconds or less.
- Interaction to Next Paint (INP): 200 milliseconds or less.
- Cumulative Layout Shift (CLS): 0.1 or less.
Google’s Core Web Vitals guidance also identifies poor results as LCP over 4 seconds, INP over 500 milliseconds, and CLS over 0.25. These thresholds are experience references, not a complete performance budget for every product. Assess them at the 75th percentile of page loads, split by mobile and desktop, and compare the same routes and user segments over time. Report percentiles or distributions rather than averages: an average can hide a poor experience for a substantial segment.
Use a field regression to find what the lab test missed
If field results worsen while CI stays green, treat the difference as a clue. Investigate whether the lab configuration covers the affected routes and interactions, and compare device capability, network conditions, third-party activity, caching, and server response. LCP can also be affected by connection setup, redirects, previous-page unload time, and server response. These factors can help explain why a controlled lab run and actual visits differ.
| Measurement layer | Main use | Strength | Limitation | Useful comparison |
|---|---|---|---|---|
| CI lab budget | Catch regressions during development and release | Repeatable conditions and a clear build gate | Represents configured test conditions, not every client | Build to build on the same route and setup |
| Client field measurement | Check the distribution of real-user experiences | Includes actual devices, connections, routes, and interactions | Varies with traffic composition and needs enough data | Percentile by route and device segment over time |
Give each limit an owner and a review point
A budget remains useful only if someone is responsible for it and reviews whether it still protects the intended outcome. Revisit limits when product features or user populations change. When a threshold is missed, make an explicit decision: fix the regression, accept a documented trade-off, or adjust the budget based on evidence. Record the reason and change so that a temporary exception does not silently become the new baseline.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




