# Site audit and Core Web Vitals

URL: https://supapulse.app/docs/seo/site-audit

A weekly crawl of your site with a 0–100 health score and a fix for every issue, plus real-user Core Web Vitals from the Chrome UX Report.

The **Audit** view of the SEO tab crawls your site once a week, checks every page it finds and gives you a health score from 0 to 100. Below it, Core Web Vitals show how fast your pages are for real Chrome users.

## How the crawl works [#how-the-crawl-works]

- **Where it starts:** your homepage, the URLs in your sitemap (from `robots.txt`, or `/sitemap.xml`), and your 200 most visited paths in Supapulse from the last 30 days. Pageview data finds pages a sitemap misses.
- **What it follows:** links on the same host, with or without `www`. Images, PDFs, scripts and other files are skipped.
- **robots.txt:** the crawler obeys the rules for `SupapulseBot`, then for the old `PulsoraBot` name, or for `*` when neither group exists.
- **Identity:** it sends the user agent `Mozilla/5.0 (compatible; SupapulseBot/1.0; +https://supapulse.app/docs/seo/site-audit)`.
- **Load on your server:** at most 4 requests at a time, each with a 10-second timeout. Redirects are recorded, not followed blindly.
- **Pages per crawl:** 100 on Starter and during the trial, 500 on Growth, and 2,000 on Business and higher plans.

Every site is audited once a week at its own hour, and new sites within an hour of being added. Owners and admins can **Re-run audit** once an hour.

To block the crawler, add this to `robots.txt`:

```txt title="robots.txt"
User-agent: SupapulseBot
Disallow: /
```

## Issues [#issues]

| Issue | Severity |
| --- | --- |
| Page returns 4xx or 5xx | Error |
| Page did not respond | Error |
| Links to pages returning 4xx or 5xx | Error |
| Redirect loop | Error |
| `noindex` on a page visitors reach from a search engine | Error |
| Canonical URL returns an error | Error |
| Redirect chain (more than one hop) | Warning |
| Missing or duplicate title | Warning |
| Missing or duplicate meta description | Warning |
| Missing H1, or more than one | Warning |
| Images without an `alt` attribute | Warning |
| Mixed content (`http://` scripts, styles or images on an `https` page) | Warning |
| Slow response (over 1.5 s to the first byte) | Warning |
| Title over 60 characters | Notice |
| Meta description under 70 or over 160 characters | Notice |
| Page missing from the sitemap | Notice |
| Orphan page: in the sitemap but not linked from any crawled page | Notice |

Pages with `noindex` skip the title, meta description and H1 checks, since search engines don't show them. They don't count towards duplicates either. Alt text and mixed content are still checked.

Open an issue to see the affected URLs and the detail, such as the status code, the redirect chain or the broken links.

## Health score [#health-score]

Each crawled page is worth 5 points. Every error takes away 5 and every warning 1; notices take away nothing. The score is the share of points left, from 0 to 100. The trend shows your last 8 audits.

## Core Web Vitals [#core-web-vitals]

Supapulse reads the [Chrome UX Report](https://developer.chrome.com/docs/crux), Google's public data from real Chrome users, once a week:

- For the whole site, on mobile and desktop, with up to 25 weeks of history.
- For your 10 most visited pages of the last 28 days.

| Metric | Good | Needs work | Poor |
| --- | --- | --- | --- |
| Largest Contentful Paint (LCP) | up to 2.5 s | up to 4 s | over 4 s |
| Interaction to Next Paint (INP) | up to 200 ms | up to 500 ms | over 500 ms |
| Cumulative Layout Shift (CLS) | up to 0.1 | up to 0.25 | over 0.25 |

Values are the 75th percentile over 28 days. Sites and pages with too few Chrome visitors have no data in the report, and Supapulse says so instead of guessing.
