# How to Site Audit in Semrush, Step by Step

> How to site audit in Semrush step by step: project setup, crawl source, user agent, page limits, reading the issues report, PDF export, and honest cost math.

[Home](https://quanticdata.io/)/[Blog](https://quanticdata.io/blog/)/How to Site Audit in Semrush, Step by Step

# How to site audit in Semrush (and what the crawl does not tell you)

SEO dataJul 29, 2026·10 min read·QuanticData Team

On this page [What Site Audit actually does before you touch a setting](/blog/how-to-site-audit-in-semrush/#what-site-audit-actually-does-before-you-touch-a-setting) [How to site audit in Semrush, step by step](/blog/how-to-site-audit-in-semrush/#how-to-site-audit-in-semrush-step-by-step) [Reading the report without drowning in notices](/blog/how-to-site-audit-in-semrush/#reading-the-report-without-drowning-in-notices) [Exporting the audit: PDF, scheduled reports and raw data](/blog/how-to-site-audit-in-semrush/#exporting-the-audit-pdf-scheduled-reports-and-raw-data) [What a hosted crawl cannot tell you](/blog/how-to-site-audit-in-semrush/#what-a-hosted-crawl-cannot-tell-you) [Free tools, paid crawlers and honest cost math](/blog/how-to-site-audit-in-semrush/#free-tools-paid-crawlers-and-honest-cost-math) [Turning the audit into an agent workflow](/blog/how-to-site-audit-in-semrush/#turning-the-audit-into-an-agent-workflow) [A website audit checklist that survives tool changes](/blog/how-to-site-audit-in-semrush/#a-website-audit-checklist-that-survives-tool-changes)

To site audit in Semrush: open Site Audit, create a project for your domain, set the page limit and crawl source, choose a user agent and crawl delay, then start the crawl. Minutes later you get a health score plus errors, warnings and notices you can filter, export to PDF and re-crawl on a schedule.

That is the mechanical answer. The useful answer is knowing which settings change the results, which reports actually move rankings, and where a hosted crawler's single fetch per URL stops telling you the truth. This walkthrough covers all three, then shows the per-URL cost math for doing the same checks from an API when you need them inside CI or an agent instead of a dashboard.

## What Site Audit actually does before you touch a setting

Site Audit is a crawler plus a rules engine. A bot walks your site from a chosen starting point, stores a fetched copy of each URL, then runs a fixed battery of technical checks against it: status codes, title and meta duplication, canonical validity, hreflang, internal link structure, page weight, robots directives, structured data and more. Findings land in three severity buckets — errors, warnings, notices — and those counts feed a single Site Health percentage. Databox, which surfaces the same numbers through the Semrush integration, describes the audit score as a 0-100 technical health metric derived from the errors and warnings found during the crawl, alongside metrics like pages crawled, blocked pages, broken pages and crawl depth distribution ([Databox](https://databox.com/dashboard-examples/semrush-site-audit)).

Two consequences follow. First, the score is relative to what you let the crawler see: a 5,000-page limit on a 50,000-page store audits a tenth of the site and scores it as if it were the whole thing. Second, severity is generic, not business-weighted. A missing meta description on a paginated archive is technically a "warning" and practically nothing; a canonical pointing at a redirect chain on your money template is technically the same class of problem and practically expensive. You still do the prioritising.

## How to site audit in Semrush, step by step

1. **Create the project.** From the SEO dashboard, go to On Page & Tech SEO, open Site Audit and click Create project. Enter the domain exactly as it resolves — pick `https://www.` or the bare host consistently, or you will audit a redirect target instead of your site.

2. **Set the page limit.** The wizard asks how many pages to crawl per audit. Plan quotas cap this; 99signals notes that Pro-level accounts crawl up to 100,000 pages per month and 20,000 per audit ([99signals](https://www.99signals.com/semrush-site-audit-overlooked-features/)). If your site exceeds the per-audit cap, scope the crawl to a section rather than truncating the whole site arbitrarily.

3. **Choose the crawl source.** "Website" follows links from the homepage, which mirrors how a search crawler discovers pages and exposes orphan gaps. "Sitemaps" audits what you claim exists. "URLs from file" audits an exact list — the right choice for template-level or migration checks. Comparing a website crawl against a sitemap crawl is the fastest way to find orphaned and missing URLs.

4. **Pick a user agent and crawl delay.** Choose the desktop or mobile bot depending on which experience matters more to you, and set the delay. "Minimum delay" finishes fastest; "1 URL per 2 seconds" or respecting `robots.txt` crawl-delay is safer on shared hosting that rate-limits aggressively. If the crawl returns a wall of 5xx errors, suspect the delay before you suspect your code.

5. **Allow or disallow URL paths.** Exclude staging paths, faceted search, calendars and internal search results. Every excluded junk URL is a slot freed for a page that matters.

6. **Remove URL parameters.** List tracking and session parameters so the bot does not crawl the same page a dozen times under different query strings, which inflates duplicate-content warnings.

7. **Add credentials if needed.** For staging environments or gated sections, supply HTTP or form login details so the bot can reach them.

8. **Set the schedule.** Weekly is a sensible default; daily only earns its keep on sites that ship changes daily. Enable email notification on completion so the report reaches you instead of waiting to be remembered.

9. **Start the audit, then wait for a full crawl.** Reading a report at 12% crawled produces false comparisons. Semrush's own configuration guide walks through the same wizard if a specific field is unclear ([Semrush](https://www.semrush.com/kb/539-configuring-site-audit)).

## Reading the report without drowning in notices

Open the Issues tab and filter by category rather than scrolling severity. Four passes cover most of the value.

### Crawlability and indexability

Filter to those two categories. You are looking for internal 4xx links, redirect chains and loops, pages blocked by `robots.txt` or `noindex`, and pages that only appear in the sitemap. Cross-check against the Page indexing report in Google Search Console: the crawler tells you what is structurally reachable, Search Console tells you what Google decided to keep. Semrush's audit guide recommends exactly this pairing, and also flags pages closed to AI crawlers such as GPTBot, ClaudeBot and PerplexityBot on the overview ([Semrush](https://www.semrush.com/blog/website-audit/)).

### Internal linking and crawl depth

The Internal Linking thematic report gives you orphan pages, click depth distribution and Internal LinkRank — a per-page measure of internal link strength. Two actions come out of it: link from your strongest pages to the pages you want to rank, and pull anything commercially important above four clicks from the homepage.

### Site performance

Performance findings here are lab-style signals: heavy pages, uncompressed assets, slow HTML load time. Treat them as leads and confirm against field data before you spend engineering hours.

### Duplicates and canonicals

Duplicate titles, duplicate meta descriptions, broken or conflicting canonicals, and canonical-to-redirect issues cluster by template. Fix the template, not the 900 URLs.

## Exporting the audit: PDF, scheduled reports and raw data

Three export paths exist, and they suit different readers. The PDF export from the Site Audit overview is the client-facing artefact — brandable, scheduled by email, fine for a monthly retainer report. CSV or XLSX exports per issue are what you hand a developer, because they contain the actual URL lists. The API and BI integrations feed dashboards: pages crawled, site audit score, errors, warnings, notices, broken pages, blocked pages and crawl depth by pages are all exposed as metrics, which is how the Databox template builds its view.

One habit that saves arguments: export the URL list at the moment you agree a fix, not at the moment you check it. Crawls change between runs, and "the issue disappeared" is not the same evidence as "these 42 URLs now return 200".

## What a hosted crawl cannot tell you

A dashboard crawler fetches each URL once, under one configuration. That is enough for status codes and tags, and not enough for the failure mode that most often kills modern sites: content that exists only after JavaScript runs. If your product titles, prices, internal links or canonical tags are injected client-side, a plain HTTP fetch sees an empty shell while your browser sees a complete page — and you never notice, because both the audit tool and your eyes are looking at only one of the two.

This is the check our [SEO Audit API](https://quanticdata.io/seo-audit/) exists for: one call fetches a URL twice — a pure HTTP bot with no JavaScript, and a fully rendered view — and returns both plus the diff, including JS-only content, a title or description that changes between views, and a canonical that is missing without JS. At $0.0012 per URL it is a per-template test, not a whole-site crawl: run it on the twenty page types that generate revenue and you have covered the site.

```
curl https://api.quanticdata.io/v1/seo-audit \
  -H "Authorization: Bearer $QD_API_KEY" \
  -d '{ "url": "https://example.com/product/widget" }'

{ "success": true,
  "data": { "no_js": { … }, "rendered": { … }, "diff": { … } },
  "usage": { "cost_usd": 0.0012 } }
```

## Free tools, paid crawlers and honest cost math

Free SEO checkers and the free tier of a hosted audit answer one question well: is anything obviously broken on this domain? They cap pages and projects, which is fine for a sanity check and useless for a 40,000-URL catalogue. Paid crawler subscriptions buy you scheduling, historical comparison, PDF reporting and a rules engine you did not have to write. Per-URL APIs buy you the raw data with no seat and no quota. They are complementary, not rivals.

| Approach | What you get | Cost shape | Best for |
| --- | --- | --- | --- |
| Free checker / free tier | Limited pages, one domain, headline issues | Free | One-off sanity check before a pitch |
| Subscription crawler UI | Scored dashboard, 140+ checks, scheduling, PDF export | Monthly seat plus page quota | Recurring reporting, client deliverables |
| Your own crawler | Total control over checks and rendering | Engineering time plus proxy bandwidth | Bespoke rules a vendor will never ship |
| Pay-per-success API | Crawl, map and audit JSON per URL | $0.0005 per map call, $0.0003 per crawled page, $0.0012 per audited URL | CI checks, agent workflows, large one-off audits |

Concrete numbers: mapping a site to list every URL costs $0.0005 for the call. Crawling 20,000 of those pages to Markdown with the [Crawl & Map API](https://quanticdata.io/crawl-map/) is $6.00, with unfetched pages auto-refunded when the job settles. Running the no-JS versus rendered audit across 400 template URLs is $0.48. Failed calls cost nothing under the pay-per-success rule, so a blocked page does not appear on your bill. That is the whole point of the model: an audit you run once a quarter should not carry twelve months of subscription.

## Turning the audit into an agent workflow

The reporting loop most teams actually want is: list the URLs, crawl the important ones, diff the templates, write the findings into a ticket. That is a script, or increasingly a prompt. Our [MCP server](https://quanticdata.io/mcp-server/) exposes eight tools — search, scrape, map, crawl, crawl_status, batch, batch_status and seo_audit — to Claude, Claude Code, Cursor, Windsurf, VS Code and Cline, so an assistant can run the same sequence and reason about the output instead of you copying CSVs between tabs.

```
claude mcp add quantumproxies \
  -e QUANTUMPROXIES_API_KEY=qp_live_your_key_here \
  -- npx -y quantumproxies-mcp
```

Every endpoint returns the same envelope — `success`, `data`, `usage` — which makes the results easy to assert on in a test. Wiring `/v1/seo-audit` into CI so a deploy fails when the rendered title stops matching the no-JS title catches a class of regression no weekly dashboard crawl will surface in time. See the [API quickstart](https://quanticdata.io/docs/) for the parameter reference, or our longer walkthrough on [how to SEO audit a website](https://quanticdata.io/blog/how-to-seo-audit-a-website/) for the checks themselves.

## A website audit checklist that survives tool changes

Whichever tool you run, the same twelve questions decide whether the audit was worth doing:

- Does `robots.txt` block anything you need crawled, including AI crawlers you meant to allow?

- Do sitemap URL counts and crawled URL counts roughly agree?

- Are there orphan pages with commercial value?

- Is anything important deeper than four clicks from the homepage?

- Do internal links return 200, without redirect chains?

- Is every canonical self-referencing or pointing at a live, indexable URL?

- Are titles and descriptions unique per template, not per URL?

- Does Search Console agree with the crawler about what is indexed?

- Do Core Web Vitals field metrics match the lab warnings?

- Is structured data valid, and does product and pricing data reflect reality?

- Does the page still say the same thing with JavaScript disabled?

- Did anyone actually fix the last audit's list before you ran a new one?

Ship the fixes, note the date, re-crawl, and compare URL lists rather than scores. A health percentage moving from 78 to 84 is a talking point. Forty-two previously broken internal links now returning 200 is a result.

### Sources & further reading

- [How to do a website audit (Semrush blog)](https://www.semrush.com/blog/website-audit/)

- [Configuring Site Audit — Semrush Knowledge Base](https://www.semrush.com/kb/539-configuring-site-audit)

- [Semrush Site Audit: 10 Most Overlooked Features — 99signals](https://www.99signals.com/semrush-site-audit-overlooked-features/)

- [Semrush (Site Audit) Dashboard Template — Databox](https://databox.com/dashboard-examples/semrush-site-audit)

## FAQ

Quick answers on how to site audit in semrush.

[Something else? Ask us →](mailto:hello@quanticdata.io)

### Is Semrush Site Audit free?

There is a free checker and a limited free tier that audit a small number of pages on one domain — enough to spot obvious crawl and indexing problems. Full crawls, scheduling, historical comparison and large page quotas sit behind paid plans, with per-audit and monthly page caps that vary by tier.

### How do I export a Semrush site audit as a PDF?

Open the Site Audit overview for the project and use the PDF export or report option to generate a branded document, which you can also schedule by email after each crawl. For developer handoff, export the individual issue reports as CSV or XLSX instead — those contain the affected URL lists the PDF summarises.

### How many pages can Semrush crawl in one site audit?

It depends on your plan quota. 99signals reports that Pro-level accounts can crawl up to 100,000 pages per month and 20,000 pages per audit. If your site is larger than the per-audit cap, scope crawls by section or use a URL list rather than letting the crawler truncate the site arbitrarily.

### What is a good Site Health score?

Treat it as a trend, not a target. The score is computed from errors and warnings found across the pages you allowed the crawler to see, so it moves when you change the page limit or crawl source. A site above 90 with a broken canonical on its main template is worse off than an 80 with clean money pages.

### How often should I run a site audit?

Weekly scheduled crawls suit most sites; daily only helps if you deploy daily. Always run an extra audit immediately after a migration, redesign, CMS upgrade or template change, and re-crawl once fixes ship so you can compare URL lists before and after rather than relying on the headline score.

### How does a hosted site audit compare with Ahrefs Site Audit or an API?

Judge by criteria, not brand: crawl quota versus your site size, whether JavaScript rendering is included, export formats, scheduling, and how findings reach developers. Hosted crawlers give scored dashboards and reporting; per-URL APIs give raw crawl and no-JS versus rendered diff data you can assert on in CI or hand to an agent.

## Audit the pages that pay, per URL

The SEO Audit API fetches any URL twice — plain HTTP bot and fully rendered — and returns both views plus the diff for $0.0012 per URL, with failed calls charged nothing. Start with $2 of free usage every month, no card required.

[Start free — $2/month included](https://app.quanticdata.io/register)[Explore SEO Audit API](https://quanticdata.io/seo-audit/)

## Related reading

[SEO data How to SEO Audit a Website A step-by-step SEO audit process — crawlability, indexation, rendering, on-page and links — plus how to script the whole thing per URL instead of paying per dashboard. Read →](https://quanticdata.io/blog/how-to-seo-audit-a-website/) [SEO data How to Perform an SEO Audit A practical six-step SEO audit process with a checklist, the crawler-vs-user diff most audits skip, and how to run the whole thing programmatically. Read →](https://quanticdata.io/blog/how-to-perform-an-seo-audit/) [Use cases How to Price Watch on Amazon Three ways to price watch on Amazon — native price history and alerts, third-party trackers, or your own API watcher — with honest cost math for each. Read →](https://quanticdata.io/blog/how-to-price-watch-on-amazon/)

---

Source: https://quanticdata.io/blog/how-to-site-audit-in-semrush/ · Site index for AI: https://quanticdata.io/llms.txt
