> ## Documentation Index
> Fetch the complete documentation index at: https://docs.trysight.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Site Audit

> Crawl the site, see the technical issues worth fixing with a suggested fix for each, compare audits, check Core Web Vitals and map internal links.

## Overview

**Site audit** lives under **SEO Suite → Site audit** (`/seo/audit`). An audit crawls the site, checks every HTML page it reaches and turns the results into a list of issues with a severity, a reason and a fix. It runs monthly on its own and whenever you press **Run audit**.

<Note>
  Included from **Pro**.
</Note>

## Running an audit

Click **Run audit** in the header. The dialog has three options and remembers what you chose last time.

| Option | Default | What it does |
| - | - | - |
| **JavaScript rendering** | Off | Loads each page in a headless browser so content and links built by JavaScript are seen. Slower, and each page costs about 12 times more of the site's daily crawl budget. Leave it off for WordPress and other server-rendered sites. |
| **Max pages** | 100 | How many pages to crawl, from 100 to 1,000. Pages beyond the cap are not crawled, so set it at the size of the site. |
| **Lighthouse pages** | 5 | How many pages (0 to 50) get a Core Web Vitals run on a phone after the crawl: the top pages by Search Console clicks in the last 28 days, then by organic traffic, then the home page. Each run costs about as much as 35 crawled pages. 0 skips it. |

One audit runs at a time per site. While it runs the header reads **Crawling**, a banner shows the pages crawled so far, and the page refreshes itself every 10 seconds. The crawl usually takes a few minutes. The extra checks and the Lighthouse runs follow once the crawl finishes; Lighthouse waits up to 12 minutes for its runs. A crawl that has not finished after about an hour is marked failed.

When an audit completes, its results replace the previous ones on this page. The previous audit is kept for the **Compare** tab and the "vs last audit" figures.

## What you get

Four tiles: **On-page score** out of 100, **Errors**, **Warnings** and **Pages crawled**, each with the change against the last audit. The pages tile also shows how many pages are not indexable, or the CMS the crawler detected.

### Issues tab

Switch between **All**, **Errors**, **Warnings** and **Notices**, then:

* **By issue** lists each issue type with its severity and how many pages have it. Click a row for **Why it matters**, **How to fix it** and the affected pages.
* **By page** lists every page and issue pair. Filter by text or issue type, sort, and export to CSV.

Up to 2,000 issue rows are stored per audit, errors first.

## Issue types

| Severity | Issues |
| - | - |
| **Error** | Server error (5xx), Page not found (4xx), Broken page, Canonical loop, Canonical points to a broken page, Missing title, Served over HTTP not HTTPS, Links to broken pages |
| **Warning** | Missing meta description, Missing H1, Title too long, Title too short, More than one title tag, Duplicate meta tags, Thin content, Canonical points to a redirect, Canonical chain, Orphan page, Meta refresh redirect, Links to HTTP pages, Slow to load, Large page, Page over 3 MB, Placeholder text, Broken resources, Duplicate title, Duplicate description, Duplicate content, Redirect chain, In sitemap but not crawlable, Slow largest paint (LCP), Layout shift (CLS), Blocking time (TBT) |
| **Notice** | Redirects, Links to redirects, Images without alt text, Title does not match the content, Description does not match the content, Hard to read, Render-blocking resources, Deprecated HTML tags, No favicon, Not indexable, Crawled but not in sitemap, Missing canonical, Missing structured data |

Errors block indexing or ranking; warnings cost clicks; notices are worth tidying when you are on the page anyway. A page that returns a 4xx or 5xx status is one error, not also a broken page.

Redirect chains, duplicate titles and descriptions, non-indexable pages, the sitemap comparison, structured data and the Core Web Vitals issues come from extra checks that run after the crawl. If one of those checks cannot run, the audit still completes and a banner names what was skipped; the page issues are complete, and running the audit again retries the rest.

## Fixing an issue

Issues of these types have a **Fix** button: Missing title, Title too long, Title too short, Duplicate title, Title does not match the content, Missing meta description, Duplicate description, Description does not match the content, Missing H1, Images without alt text, Links to broken pages, Missing canonical, Thin content and Missing structured data.

Fix opens a panel with the proposal. Nothing changes until you act on it.

| Badge | When | What happens |
| - | - | - |
| **Can be applied through the CMS** | The page is a Sight article that is synced or published, and the fix is a title, a description or an H1. | **Before** and **After** show the change with character counts. **Apply** writes the article and re-syncs it to its CMS. A site with no active CMS integration is updated in Sight, and you sync it from Articles. The issue row then shows **Applied**. |
| **Copy and paste** | The fix is markup (a canonical link, a JSON-LD block), or the page is not managed by Sight. | **Copy** puts the snippet or the suggested text on the clipboard for the CMS. |
| **Needs the agent** | Alt text, thin content, broken links: the fix needs a look at the page. | **Ask agent** copies the instruction and opens the agent, which shows you the edits before syncing. |

The automatic title is 30 to 60 characters built from the article's own title, summary and site name. The automatic description is up to 155 characters from the summary or the first paragraph. The H1 is added at the top of the article body, and only when the body has none. Apply checks that the article has not changed since the proposal was made and refuses otherwise, so open the fix again after editing. **Ask agent** and **Copy** are available on every proposal.

## Compare tab

**Errors and warnings over time** charts every completed audit; it needs two. Once two audits exist, three lists match issues by type and page between the latest audit and the one before: **Fixed** (gone), **New** and **Still open**.

## Performance tab

**Core Web Vitals (mobile)** lists the Lighthouse runs for the audit, worst performance first.

| Metric | Good | Poor |
| - | - | - |
| **Performance** | 90 and up | under 50 |
| **LCP** (Largest Contentful Paint) | under 2.5 s | over 4 s |
| **CLS** (Cumulative Layout Shift) | under 0.1 | over 0.25 |
| **TBT** (Total Blocking Time) | under 200 ms | over 600 ms |
| **FCP** (First Contentful Paint) | under 1.8 s | over 3 s |
| **Speed Index** | under 3.4 s | over 5.8 s |

A page with LCP over 2.5 s, CLS over 0.1 or TBT over 300 ms also gets a warning in the Issues tab.

## Links tab

The crawl's internal link graph, up to 20,000 links:

* **Pages in graph**: crawled pages plus sitemap URLs. **Orphan pages**: in the sitemap but reached by no internal link. **Weak pages**: fewer than three inbound links. **Equity** scores each page 0 to 100 against the site's best-linked page.
* **Link suggestions**: for each orphan or weak page, the most similar pages that do not link to it yet, with an anchor taken from its top keyword, title or slug and a match percentage. **Apply with agent** copies the instruction and opens the agent.

## Schedule

An audit runs on the **1st of every month** for every site whose plan includes it, with the default options (100 pages, 5 Lighthouse pages, no JavaScript rendering), and whenever you press **Run audit**. The stamp beside the button shows when the site was last audited. The [SEO alerts](/seo/alerts) rule **Site audit errors** fires when an audit finds more page errors than the last one.

<AccordionGroup>
  <Accordion title="The audit failed. What now?">
    Run it again. If it keeps failing, the crawler is probably blocked by the site: check the firewall, bot protection and robots rules. A crawl can also stop when the site's daily SEO data budget is used up; it works again the next day.
  </Accordion>

  <Accordion title="Why does the crawl find fewer pages than my site has?">
    The crawl stops at **Max pages**. Raise it in the Run audit dialog. Pages the crawler cannot reach from internal links are not found either; the Links tab lists the orphans from the sitemap.
  </Accordion>

  <Accordion title="Why is Performance empty?">
    Lighthouse pages was 0, or no run finished in time. Set it above zero and run the audit again.
  </Accordion>
</AccordionGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.