# Inspector



Inspector is a one-shot, on-demand audit for any URL on the public internet. Paste a URL, pick mobile or desktop, and Inspector fans out to six checks, computes a single 0–100 **Inspector Score**, and lists prioritized issues with concrete recommendations.

Unlike RUM or Synthetic Monitoring, Inspector does **not** require the URL to be a monitored domain in your workspace. It's a quick second opinion on any page - your own, a competitor's, a staging environment, or a page you're about to ship.

## Where to Find It [#where-to-find-it]

Inspector is a top-level tab in the header. Clicking it opens the Inspector workspace at `/dashboard/inspector`.

## Running an Inspection [#running-an-inspection]

The input page has a single hero card with:

* A URL input - placeholder `https://www.example.com/page`. Must be `http://` or `https://`, public, and resolvable. Localhost, private IPs, and link-local addresses are rejected.
* A **device toggle** - two icon buttons next to the URL: phone (mobile) and monitor (desktop). The headless Chrome check runs in the matching profile, and CrUX field data is requested for the matching form factor.
* A **Run inspection** button - disabled while a run is in flight or your quota is exhausted.

After you submit, the page redirects to the detail view (`/dashboard/inspector/[testId]`) where progress and results render in place. Every test gets a stable URL from the moment it starts.

### Quota [#quota]

Each workspace has a monthly Inspector quota set by its plan:

| Plan     | Inspector tests / month |
| -------- | ----------------------- |
| Free     | 3                       |
| Starter  | 10                      |
| Lite     | 30                      |
| Standard | 100                     |
| Advanced | 500                     |

The quota chip in the top-right corner of the input page shows current usage:

* Available: `5 / 30 inspections · Resets Apr 20`
* Exhausted: `Quota exhausted · Resets Apr 20` - the **Run inspection** button is disabled until reset.

The cycle is anchored to your workspace's package activation day, not the first of the calendar month. A workspace activated on the 14th resets on the 14th of every month. Current usage is also shown on the workspace [Billing & Plans](/workspace/billing) page alongside your other resource limits.

<Callout type="info">
  A test counts as one quota unit regardless of which checks succeeded. Tests that fail URL validation (invalid scheme, private IP, unresolvable host) do not count.
</Callout>

## History Sidebar [#history-sidebar]

The left-hand sidebar lists past inspections for the workspace. Each row shows:

* A device icon (mobile / desktop)
* The inspected URL
* A status badge (queued / running / completed / failed)
* A timestamp

A &#x2A;*Filter by URL…** input narrows the list. Empty states read &#x2A;*No inspections yet.** or &#x2A;*No matches.**

## What Happens After You Submit [#what-happens-after-you-submit]

Inspector runs six checks in parallel:

| Check          | What it captures                                                                                      |
| -------------- | ----------------------------------------------------------------------------------------------------- |
| **CrUX**       | Real-user p75 Core Web Vitals from Chrome users (LCP, INP, CLS, FCP, TTFB)                            |
| **Chrome**     | Headless-Chrome lab audit - full waterfall, filmstrip, console errors, SEO snapshot, security headers |
| **Uptime**     | HTTP status, redirect chain, TTFB, total response time, response headers                              |
| **SSL**        | Certificate validity, expiry, chain completeness, key strength, TLS version                           |
| **WHOIS**      | Registrar, creation date, expiry, nameservers, privacy flag                                           |
| **robots.txt** | Raw file, parsed groups, and a clear allow/disallow verdict for the inspected URL                     |

Each check runs independently and is retried once on transport failure. A check can finish in three states: **success**, **no\_data** (e.g. CrUX has no data for low-traffic URLs - not an error), or **failed**.

While the test runs, the detail page shows a progress bar with `~Xs remaining` based on the checks not yet finished. When all checks have settled, the label briefly switches to &#x2A;*Finalizing…** while the Inspector Score and issues are computed.

If you submit a test and the queue isn't empty, you'll see `Queued - N tests ahead of you` until your run starts.

## What You See When It's Done [#what-you-see-when-its-done]

The detail page renders, top to bottom:

* A **Verdict banner** - the device badge (purple for mobile, blue for desktop) and the inspected URL, followed by a plain-English verdict headline that a non-technical owner can act on. When AI phrasing is enabled it also carries a short 1–2 paragraph narrative marked **Generated by AI**, plus a row of stat pills (page weight, image share, the worst single script's blocking time, and request count).
* The **Inspector Score** card - the 0–100 score in a gauge, the count of critical / warning / info issues, and a per-pillar breakdown (Performance, SEO, Security, Infrastructure, Availability) showing each pillar's percentage and points.
* Per-check sections rendering each successful check's data - Overview, Field data (CrUX), Lab data (Chrome vitals), Visual Loading, Waterfall, CWV Diagnostics, Resources, SEO, Crawlability, and Security.
* The **Issues** panel - every finding the rule engine produced, each with a severity, category, description, recommendation, and a link to the relevant report section.
* A **section navigation pill** pinned to the bottom of the viewport, jumping you between Overview, Field data, Lab data, Visual Loading, Waterfall, CWV Diagnostics, Resources, SEO, Crawlability, Security, and Issues.

If a previous inspection of the same URL and device exists, key metrics carry a small **delta badge** showing the change vs the prior run.

<Callout type="info">
  Inspector results are kept for 12 months. Past tests remain visible in the history sidebar until they expire.
</Callout>

## What Inspector Does Not Do (Yet) [#what-inspector-does-not-do-yet]

* No scheduled re-runs - Inspector is one-shot. Use Synthetic Monitoring for recurring tests.
* No public share links or PDF export.
* No diff view between two runs (delta badges aside).
* No retry button on a failed check - re-submit the test.

## Related [#related]

<Cards>
  <Card title="Inspector Score" href="/inspector/inspector-score">
    How the 0–100 score and grade are computed.
  </Card>

  <Card title="Checks" href="/inspector/checks">
    What each of the six checks measures.
  </Card>

  <Card title="Issues" href="/inspector/issues">
    Severities, categories, and how findings are deduplicated.
  </Card>

  <Card title="Synthetic Monitoring" href="/features/synthetic-monitoring">
    Recurring Lighthouse tests for monitored URLs.
  </Card>
</Cards>
