Audit Performance
audit_performanceAudit source code for performance red flags: lazy hero images, missing fetchpriority, unsized images, render-blocking scripts, and fonts without font-display. Returns prioritized findings with fixes.
Instructions
Audit a page, a component or a whole web project for the performance signals that are actually in the source: a hero image held back by loading="lazy", or contradicting its own fetchpriority; the LCP-candidate image declaring no fetch priority at all; a hero background declared in CSS or an inline style, which the HTML preload scanner never sees; images with no width/height or aspect-ratio to reserve their box; a in the carrying neither defer nor async nor type="module"; @font-face blocks with no font-display; fonts served from a third-party font CDN; and scripts loaded from more distinct remote domains than any reading of "minimise" defends. It reads source and does not measure anything: Core Web Vitals are 75th-percentile field data from real devices, this loads nothing and times nothing, and no finding is or can be an LCP, INP or CLS verdict — so do not call it expecting a vitals report. Its hero rules are deliberately narrow (the first image inside , with the header logo and the mid-article diagram structurally excluded), which means some pages get no hero finding at all; that limitation and the others are returned explicitly rather than left to read as a clean result. Returns markdown plus structured output: findings (rule, severity, message, fix, doc, file, line), a severity summary, and a machine-readable notVisible list of what it could not check. A missing or non-directory path is returned as an error result, not as an empty audit. Pair with audit_seo_geo for the crawl and answer-engine signals, and measure_screenshot for the rendered result.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | A single snippet to audit instead of a directory. | |
| path | No | Directory to audit. Absolute paths are strongly preferred. Every file is audited on its own — a stylesheet in another file does not size an image in this one, even when both are scanned. | |
| filename | No | Filename for the snippet, e.g. 'index.html', 'Page.tsx' or 'styles.css'. Some rules depend on it: a stylesheet and a component are read differently. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| summary | Yes | Counts by severity. Always agrees with `findings` — it is derived from the same list. | |
| findings | Yes | Every finding, in the order the markdown report lists them. | |
| notVisible | Yes | What this audit structurally could not check, one limitation per entry. Read it as a peer of `findings`: silence on a subject named here is this tool's reach, not a clean result. Nothing any of these tools reports is measured. |