Use nimo

Short answer

Covers audits as the workflow's find-the-gap step: the pipeline stages, where to run audits, full vs quick audits, report anatomy, Core Web Vitals thresholds for LCP, INP, CLS, and TTFB, field vs lab data, noise thresholds that decide whether a change is real, audit history and schedules, and why an audit can fail.

Audits

An audit is nimo checking how your site performs, explaining what matters, and saving the result so future changes can be compared. It is the find-the-gap step of the workflow: everything else, from recommendations to alerts, starts from audit evidence.

How an audit works

Each audit combines two kinds of measurement. Field data comes from real Chrome visitors through the Chrome UX Report (CrUX). Lab data comes from one controlled Lighthouse run through PageSpeed Insights. While Lighthouse runs, nimo also inspects the page's HTML and pulls context from any integrations you connected.

  1. 1

    Fetching field data

    Chrome UX Report data from real visitors, plus its trend history.

    Full audit
  2. 2

    Running Lighthouse

    A PageSpeed Insights lab run, usually the longest step.

  3. 3

    Generating summary

    Metrics, diagnostics, detected platform, and the change since the last run.

  4. 4

    Planning recommendations

    Measured evidence becomes a ranked list of next steps.

  5. 5

    Audit complete

    The report is saved to history and alerts go out if you enabled them.

Runs alongside Lighthouse

  • Page HTML inspection
  • Search Console
  • Google Analytics 4
  • PostHog
  • Ahrefs
  • Cloudflare detection
  • Previous audit
  • Link check (full audit)
Ship a fix, run the audit again, and nimo compares the new run with the last matching one.
Stage names match the progress labels nimo shows while an audit runs. Connected sources are optional; a missing connection never fails the audit.

The Lighthouse step usually takes the longest, often a minute or more. You can leave the page: the audit keeps running and the report is saved when it finishes.

Run an audit

You can start an audit wherever you work with nimo.

Pick the site

Use the dashboard, /site in Telegram, or list_sites through MCP.

Start the audit

Trigger it from the UI, /audit in Telegram, /nimo audit in Slack, by asking in chat, or with the run_audit MCP tool.

Wait for the report

nimo shows progress while it checks real visitor data, runs Lighthouse, and plans recommendations. If Telegram or Slack is connected, nimo messages you there when the report is ready.

Audits test the mobile experience by default. Each saved audit counts toward your plan's monthly audit allowance; see Billing and API keys. Agents can also use the audit_url MCP tool for a one-off performance check of any public URL, which is not saved to a site's history.

Full and quick audits

Full auditQuick audit
CrUX field data and trend historyYesSkipped
Lighthouse lab runYesYes
Page HTML inspection and connected sourcesYesYes
Broken link checkYesSkipped
Comparison with the last matching auditYesYes, against the last quick audit
Best forFirst audit, scheduled checks, client reportsRe-testing right after a fix ships

Field data changes slowly because CrUX is a rolling 28-day window, so a quick lab re-run is the faster way to see whether a deploy moved the needle. Confirm the result later with a full audit once real visitors have seen the change.

Read the results

nimo leads with the plain-language verdict, then shows metrics and recommendations. Every number carries its source.

1

Mobile visitors wait about 3.4 s for the main content. Start with the hero image.

2

LCP

3.4 s

Field

INP

180 ms

Field

CLS

0.04

Field

3

Lab LCP improvedTBT stableCLS stable

4

Serve the hero image in a smaller, modern format

It is the LCP element and the largest image transfer on the page.

5

ImagesScriptsThird partiesFonts

  1. 1Verdict: one plain sentence about what visitors feel and where to start.
  2. 2Metric cards: each value carries its source, so field and lab numbers are never mixed silently.
  3. 3Change since last audit: only moves bigger than normal noise are called better or worse.
  4. 4First fix: the top ranked recommendation, with the evidence that put it there.
  5. 5Diagnostics: images, scripts, third parties, fonts, and page structure behind the metric.
Sample report with illustrative values. Your report shows only the sections your data supports.

LCP

How long visitors wait before the main content appears. nimo describes this as page load, not as a metric acronym. See the LCP glossary entry.

CLS

How much the page shifts while visitors try to read or click. See CLS.

INP

How responsive the page feels when visitors interact. Field data only. See INP.

Diagnostics

Images, scripts, stylesheets, fonts, third parties, and page structure that explain why a metric is slow.

Reports can also include your detected platform, unused code, image savings, broken links, whether the site runs behind Cloudflare, and search or traffic context from connected integrations. The Reports and sharing guide covers each section in depth.

Reading your scores

Metric ratings use fixed boundaries. nimo rates each metric the same way Google does, and prefers field data when CrUX has enough real visits for your site.

LCP Main content visible

Field and lab

2.5 s4 s

INP Response to taps and clicks

Field only

200 ms500 ms

CLS Unexpected layout movement

Field and lab

0.10.25

TTFB Server response start

Field and lab

0.8 s1.8 s
Good Needs improvement Poor
Ratings use Google's published boundaries (TTFB is a diagnostic metric, not a Core Web Vital), applied to the 75th percentile of real visits when field data exists. INP needs real interactions, so lab runs cannot measure it.
  • Field dataReal Chrome visitors, 28-day window
  • Lab dataOne controlled Lighthouse run
  • Search dataSearch Console when connected
  • Traffic dataGA4 or PostHog when connected

The Lighthouse performance score (0 to 100) is a lab summary: 90 and above is good, 50 to 89 needs work, below 50 is poor. It is useful for spotting a trend, but it is not a Core Web Vital and it can move between identical runs. When field and lab disagree, trust field data for what visitors experience and use lab data to find the cause. The field vs lab guide explains why they differ.

Hint

Lighthouse scores can move between runs. nimo focuses on metric values, history, and real visitor impact.

Compare changes

Run an audit before and after a fix. nimo can compare two audits and show what improved, what got worse, and what stayed the same.

A change only counts as improved or degraded when it is larger than normal run-to-run noise. The threshold is the larger of a fixed floor and a percentage of the previous value, with a cap so very slow pages do not need huge swings.

MetricLab thresholdField threshold
LCP300 ms or 25%, capped at 2 s100 ms or 5%
CLS0.02 or 20%, capped at 0.050.01 or 10%
INPNot measured in lab20 ms or 10%
TTFB100 ms or 20%, capped at 500 ms50 ms or 10%
FCP200 ms or 20%, capped at 1.5 sLab only
TBT200 ms or 30%, capped at 600 msLab only
Speed Index400 ms or 15%, capped at 2 sLab only
Performance score5 pointsLab only

Example: if lab LCP was 2,000 ms, 25% is 500 ms, so the next run has to land below 1,500 ms or above 2,500 ms before nimo calls it a real change. Anything in between is reported as stable.

nimo compares like with like: the same page, the same device, and the same audit type.

Comparison prompt

Compare my last two audits. Which metrics changed enough to trust?

Use audit history

Audit history helps nimo tell the difference between a one-off slow run and a real trend. It also helps you explain client work with before-after evidence.

  • Schedules: set each site to daily, weekly, or manual audits. Scheduled audits build the history nimo uses for regression alerts. See Monitoring and alerts.
  • Field trends: full audits also read CrUX history, so reports can show whether real-visitor metrics are drifting over recent months.
  • Page changes: nimo notices when a page's structure changed between audits, which helps explain sudden jumps.
Idea

For important pages, run a manual audit before deploying a fix. Then run another audit after the change has shipped.

When an audit cannot finish

"PageSpeed Insights couldn't audit this page." Lighthouse could not load the page. Check that the URL is publicly reachable without a login, VPN, or IP allowlist, then try again.

No field data. CrUX only publishes data for sites with enough real Chrome traffic. New or low-traffic sites get lab data only, and nimo labels the report that way instead of guessing.

Results differ from PageSpeed Insights. Lab runs vary with network conditions and server load. Compare metric values across several audits, and read the noise thresholds above before treating a small difference as real.

Some links show as likely bot-blocked. Many CDNs and firewalls reject automated requests. nimo flags these separately so they are not mistaken for broken links.

The audit was skipped. An audit for the same site may already be running, or you reached your plan's audit allowance or a short-term rate limit. Wait for the running audit to finish, then try again.

Run an audit

Get the first report, then use history to prove whether each fix worked.

Get started