How do you customize Page load speed within budget?

page-load-speedfunctionalrecommended1 credit per run

Measures the page load from the browser's own performance timeline: Largest Contentful Paint, time to first byte, first paint, page weight and a per-resource-type breakdown of bytes and time, plus the heaviest and slowest resources. Only LCP is judged, against the configurable maxLcpMs budget (2500 ms by default); everything else is reported, because the harness measures one unthrottled load and no published threshold settles them. See docs/PAGE-LOAD-SPEED.md.

When is a custom rule warranted?

Override `maxLcpMs` when you know something about your audience or your origin that the default cannot. Tighten it — 1500 or 2000 — when you are enforcing an internal performance budget and want the lab test to fail before field data would, which is the whole point of a budget. Loosen it when the audited page is genuinely heavy by design and your goal is regression detection rather than a grade, so the check fires when the page gets worse instead of failing constantly.

When should you stay on the Standard?

Stay on 2500 when you want a defensible external number rather than a local one, especially if the result is going into a report someone outside the team will read. Keep the default when you are comparing many pages or sites, since a shared threshold is what makes those numbers comparable at all. If your real problem is that visitors on slow networks suffer, changing this number does not address it — that needs field measurement, not a different lab boundary.

What are the trade-offs?

A tightened threshold produces failures on pages that real users would find acceptable, and the team has to be willing to treat a budget breach as work rather than noise. A loosened threshold costs you the external reference: the finding no longer maps to a published boundary, so "we pass" means only that you cleared your own bar. Either direction breaks comparability with earlier runs, so change the value deliberately and note when you did, or a trend line will show an improvement that was really an edit.

How is a custom rule governed?

The Standard value is a transcription of a published web performance boundary, which is precisely why it is worth keeping when the audience for the result is external. A Custom value is your performance budget and should come from wherever that budget is agreed and reviewed, with the reasoning recorded — a threshold loosened once during a bad release tends to stay loosened. Because this is the only judged number on the check, it deserves an owner.

What does a configured rule look like?

A team with a published 2-second budget sets `maxLcpMs` to `2000`, so the lab check fails before field data would and the budget is enforced in the pipeline rather than in a monthly review. A media site with an intentionally heavy interactive feature sets `maxLcpMs` to `4000` on that page only, using the check as a regression detector while keeping the default everywhere else. A team preparing an external performance report keeps `2500` unchanged, because the value of the result there is that the boundary is not theirs.

How does an agent call it with your config?

{
  "type": "url",
  "validations": [
    { "id": "page-load-speed", "config": { /* your overrides */ } }
  ]
}

What can you configure?

maxLcpMsrequiredpositive-integer

Standard default: 2500

Author ArbiterQA · Reviewed by ArbiterQA · 2026-08-14

Appears in

Related

Run this check on your own assets

1,000 credits a month on the free plan. No card.