SEO and visibility
See why your page feels slow.
Checks how one live page performs: the three Core Web Vitals (LCP, INP and CLS), page weight, render-blocking files, mobile fit, images and the accessibility basics. With nothing connected, it reads the page source and flags likely trouble. Hand it a Lighthouse JSON report, a PageSpeed Insights API response or CrUX field data, and it reads the measured numbers from that file.
- Works with nothing connected
- Says what was measured
- Each fix names its vital
At a glance
- Group
- SEO and visibility
- Command
- /web-vitals
- Uses
- A page address, test data optional
- Writes
- A scorecard and a fix table
- Sends
- Nothing. Drafts only.
01When to use it
Run it when speed is the suspect.
- A live page feels slow or janky, or converts below what its traffic suggests, and you want runtime evidence instead of guesses.
- You want the three vitals, page weight, mobile fit, image hygiene and the accessibility basics covered in one pass.
- You need the runtime picture the SEO skills miss. They read the HTML; this looks at what a browser does with it, measured with a browser connector or a test file, and inferred from the source without one.
- A site audit calls it in as the lens for performance and accessibility.
Not for
- Meta tags, headings and crawlability. Use /seo-audit
- A dedicated WCAG 2.1 AA audit. Use /a11y-audit
- One verdict on SEO, speed and conversion for a whole site. Use /site-audit
02What it needs
One address is enough to start.
- The address of one live page. On an agency setup, it must be a page of the client you are working for.
- Your strategy and offers files, which say what the page is meant to win: a signup, a demo, a purchase or a lead.
- Your team targets, if you set any. If not, it uses its default good marks: LCP under 2.5 seconds, INP under 200 milliseconds and CLS under 0.1.
- Optional: a Preview or Chrome DevTools connector, which lets it load the page itself at phone and desktop sizes and take real readings.
- Optional: a Lighthouse JSON report, a PageSpeed Insights API response or CrUX field data, plus any earlier run to chart against.
03What it writes
A report, screenshots and ledger rows.
- final/web-vitals-{domain}-{date}.md
- A header with the page, the date, the mode, the connector or file used, and whether the numbers are measured or inferred. Then a scorecard (the three vitals, weight, requests, mobile, accessibility) and the fix table: issue, severity, evidence, fix, the metric it moves and the estimated impact.
- Screenshots
- The page at mobile and desktop sizes, saved in the project folder when a browser connector was available.
- Ledger rows
- Rows in your numbers log, one per metric, appended and never edited. A value read from fetched HTML is marked inferred, and a reused old reading is marked stale.
04Limits
What it never does.
- Rewrite the page, push a fix live, or touch the live site in any other way.
- Make up a metric. A number it did not measure is labeled inferred, with a note on what a connector would confirm.
- Give a number without its source: the connector, the tool or the fetched file it came from.
- Sign off on legal compliance. Its accessibility notes are likely issues for a person to confirm.
What stays with you.
- Making the changes. It hands over a fix list for someone else to apply.
- Confirming each accessibility flag it raises.
05Sample output
Part of a fix table.
An excerpt for the product page of a made-up tea shop, run in Quick mode, so every number here was inferred from the page source.
| Issue | Evidence | Fix | Vital | Severity |
|---|---|---|---|---|
| Hero photo is the likely LCP element | oolong-hero.png, 1.8 MB, 2400px wide, shown at 600px | Serve it as WebP or AVIF at display size | LCP | High |
| Review widget blocks rendering | reviews.js in <head> with no defer or async | Add defer to the script tag | LCP | Medium |
| Thumbnails have no set size | 6 images missing width and height | Add width and height to each | CLS | Medium |
- Hero photo is the likely LCP element High
- Evidenceoolong-hero.png, 1.8 MB, 2400px wide, shown at 600px
- FixServe it as WebP or AVIF at display size
- VitalLCP
- Review widget blocks rendering Medium
- Evidencereviews.js in <head> with no defer or async
- FixAdd defer to the script tag
- VitalLCP
- Thumbnails have no set size Medium
- Evidence6 images missing width and height
- FixAdd width and height to each
- VitalCLS
From the report
- Mode: Quick. No connector and no test file.
- Status: inferred. A browser connector would confirm the LCP element and its timing.
- Conversion metric: purchases from this page, from the offers file.
06Related skills
Often run beside it.
-
/site-auditGo or no-go check on a whole site SEO and visibility -
/a11y-auditCheck a page for accessibility problems SEO and visibility -
/seo-auditFind the search problems on a site SEO and visibility /seo-imagesAlt text, file names and image sizes SEO and visibility
07Questions
Before you run it.
Do I need Lighthouse or PageSpeed Insights first?
No. Quick mode runs with nothing connected and labels its findings inferred. A Lighthouse JSON report, a PageSpeed Insights API response or CrUX field data is an optional extra, and where one disagrees with the scan, the measured file wins and the scan finding stays only as a probable cause.
Which problems come first in the list?
The ones that hurt the vitals most for the most visitors, not the ones that weigh the most bytes. A field reading that fails for most real users outranks a minor lab-only finding, which outranks a risk inferred from the page source.
How deep does the accessibility check go?
It covers the basics: contrast on the main text and the main call to action, alt text on images that carry meaning, form labels, a visible focus state and the focus order through the conversion path. Contrast failures are noted by ratio against WCAG AA. For a dedicated WCAG 2.1 AA audit, run a11y-audit.
Have us build it
We can build it for you.
Start with the free plan. A person names the first fix.



