# Site audit and Core Web Vitals

URL: https://pulsora.co/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 Pulsora 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 `PulsoraBot`, or for `*` when there is no `PulsoraBot` group.
- **Identity:** it sends the user agent `Mozilla/5.0 (compatible; PulsoraBot/1.0; +https://pulsora.co/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: PulsoraBot
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 with traffic | 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 |

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]

Pulsora 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 Pulsora says so instead of guessing.
