# How to Perform an SEO Audit

> Step-by-step SEO audit: crawl, check indexation, diff no-JS vs rendered views, fix Core Web Vitals and build a prioritized fix list — or automate it via API.

[Home](https://quanticdata.io/)/[Blog](https://quanticdata.io/blog/)/How to Perform an SEO Audit

# How to perform an SEO audit: six steps, one checklist, zero guesswork

SEO dataJul 30, 2026·6 min read·QuanticData Team

On this page [What an SEO audit actually checks](/blog/how-to-perform-an-seo-audit/#what-an-seo-audit-actually-checks) [How to perform an SEO audit in six steps](/blog/how-to-perform-an-seo-audit/#how-to-perform-an-seo-audit-in-six-steps) [The SEO audit checklist](/blog/how-to-perform-an-seo-audit/#the-seo-audit-checklist) [What crawlers see vs what users see: the diff most audits skip](/blog/how-to-perform-an-seo-audit/#what-crawlers-see-vs-what-users-see-the-diff-most-audits-ski) [Free and paid tools: what each is good for](/blog/how-to-perform-an-seo-audit/#free-and-paid-tools-what-each-is-good-for) [Turning findings into a report and a fix order](/blog/how-to-perform-an-seo-audit/#turning-findings-into-a-report-and-a-fix-order)

An SEO audit is a structured check of everything that decides whether your pages get crawled, indexed and ranked: crawlability, indexation, on-page signals, what search engines actually see versus what users see, performance and links. Here is a six-step process you can run today, plus the checklist and the API version.

## What an SEO audit actually checks

Every audit, whatever the tool, examines three layers. The **technical layer** asks whether search engines can reach and index your pages at all: robots.txt, sitemaps, canonicals, redirects, status codes, and whether critical content requires JavaScript to appear. The **on-page layer** asks whether each page tells a coherent story: one h1, a unique title and meta description, heading hierarchy, internal links, structured data. The **authority layer** looks outward at backlinks and brand signals.

Suite tools bundle these into a single score — crawler-based site audits commonly test for [170+ individual issues](https://ahrefs.com/site-audit) — but a score is not a plan. The value of an audit is a short, ordered fix list, which is why the process below ends with prioritization rather than a report.

## How to perform an SEO audit in six steps

1. **Crawl the site like a search engine.** Start from the homepage, follow internal links, and record every URL, status code, title, meta description and canonical. Compare what the crawl finds against your sitemap: pages in the sitemap but not reachable by links are orphans; pages reachable but not in the sitemap are unaccounted inventory. A [crawl and map API](https://quanticdata.io/crawl-map/) gives you both lists in minutes for even large sites.

2. **Check indexation against reality.** In Google Search Console, compare submitted versus indexed pages, and read the exclusion reasons. "Crawled — currently not indexed" clusters usually point to thin or duplicated templates; "Discovered — currently not indexed" at scale points to crawl-budget or internal-linking problems.

3. **Diff the bot view against the rendered view.** Fetch each important URL twice — once as a plain HTTP client with no JavaScript, once fully rendered — and compare titles, meta descriptions, canonicals and main content. Anything that exists only in the rendered view is invisible to every crawler that does not execute your JavaScript, and that includes most AI crawlers today. This is the single most-skipped audit step, and the most common source of "my content is fine but nothing ranks" mysteries.

4. **Audit on-page signals where they matter.** Do not fix titles alphabetically. Pull your top pages by impressions, then check each for keyword-aligned titles under 60 characters, one h1, a meta description that earns the click, and internal links from at least two other pages with descriptive anchors.

5. **Measure performance on real templates.** Run Core Web Vitals checks on one URL per template (home, category, detail, article) rather than every page. LCP problems are template problems: fix the template, fix thousands of pages.

6. **Prioritize by impact, not by count.** An audit that ends with "1,400 issues found" ends nowhere. Order fixes: indexation blockers first (noindex, canonical errors, robots mistakes), then content visibility (JS-only content, missing titles), then speed and polish. Three fixes that restore indexation beat three hundred alt-text edits.

## The SEO audit checklist

| Area | What to check | Red flag |
| --- | --- | --- |
| Crawlability | robots.txt, sitemap coverage, orphan pages, redirect chains | Sitemap URLs returning 3xx/4xx; chains longer than one hop |
| Indexation | Indexed vs submitted in Search Console, exclusion reasons | Large "crawled — not indexed" clusters on one template |
| Rendering | No-JS view vs rendered view of key pages | Title, canonical or body content that only exists after JS runs |
| On-page | Unique titles ≤60 chars, one h1, meta descriptions, heading order | Template-generated duplicate titles across hundreds of URLs |
| Structured data | JSON-LD parses, matches visible content | Schema describing content the page does not visibly contain |
| Performance | Core Web Vitals per template | LCP over 2.5s on the money template |
| Internal links | Every important page linked from ≥2 pages, descriptive anchors | Money pages only reachable from the sitemap |
| Backlinks | Referring domains trend, toxic-link spikes, lost links | A sudden drop tracking a site migration |

## What crawlers see vs what users see: the diff most audits skip

Modern sites assemble pages in the browser, and every audit tool that renders JavaScript quietly hides the problem: *you* see the rendered page, but many crawlers never will. The only honest test is a side-by-side diff of the two views.

You can do it manually — curl the URL, then compare against the DOM in your browser's inspector — or make it one API call. The [SEO Audit API](https://quanticdata.io/seo-audit/) fetches any URL twice, as a pure HTTP bot and as a fully rendered browser, and returns both views plus the diff: content that only exists with JavaScript, titles or descriptions that change, canonicals missing from the no-JS view.

```
curl -X POST https://api.quanticdata.io/v1/seo-audit \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/pricing"}'

# → data.diff: js_only_content, title_changed,
#   canonical_missing_nojs, meta_changed …
```

At $0.0012 per URL, auditing a 500-page site's rendering gap costs well under a dollar — run it per release, not per quarter. To cover the whole site, feed the URL list from a [map call](https://quanticdata.io/crawl-map/) straight into the audit, or wire both up as MCP tools so your AI assistant runs the loop; the [API quickstart](https://quanticdata.io/docs/) shows both paths.

## Free and paid tools: what each is good for

Free checkers give you a one-page snapshot: meta tags, obvious speed issues, mobile-friendliness. They are fine for a first look at a small site. Crawler suites such as Semrush or Ahrefs add scheduled full-site crawls, issue tracking over time and backlink data — we walked through one in detail in [our Semrush site-audit guide](https://quanticdata.io/blog/how-to-site-audit-in-semrush/). API-level audits are the third category: they trade dashboards for composability, which matters once you want audits inside CI, on a schedule, or driven by an agent.

The honest rule: dashboards are for humans reviewing monthly; APIs are for pipelines that gate deploys or feed alerts. Most teams past a certain size end up with both.

## Turning findings into a report and a fix order

A useful audit report fits on one page: what blocks indexation today, what hides content from crawlers, what slows the money templates, and who owns each fix. Attach the evidence — the diff output, the crawl export — as appendices, not as the report. Re-run the same checks after each fix ships; an audit whose findings are never re-tested is a snapshot, not a process.

If you publish frequently, automate the regression check: a weekly job that maps the site, audits changed URLs and alerts on new diffs catches the "someone shipped a client-side title tag" class of bug before rankings move. Failed calls cost nothing on a pay-per-success model, so the safety net is effectively free to keep running.

### Sources & further reading

- [Ahrefs — Site Audit: run a complete SEO audit of your website](https://ahrefs.com/site-audit)

- [Semrush — Free SEO checker and site audit](https://www.semrush.com/siteaudit/)

## FAQ

Quick answers on how to perform seo audit.

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

### How long does an SEO audit take?

A focused audit of a small site takes two to four hours using the six-step process: crawl, indexation, render diff, on-page, performance, prioritization. Large sites take longer to crawl but not to audit — sample one URL per template instead of checking every page individually.

### Can I do an SEO audit for free?

Yes. Google Search Console covers indexation and Core Web Vitals, free checkers handle single-page snapshots, and browser dev tools let you compare no-JS and rendered views manually. What free tools lack is scale and automation: full-site crawls, scheduled re-checks and API access typically cost money.

### What is included in an SEO audit report?

A good report leads with a prioritized fix list: indexation blockers, content-visibility problems, then performance and on-page issues, each with an owner and evidence. Crawl exports, diff outputs and Core Web Vitals data belong in appendices. A raw issue count without priorities is a tool export, not a report.

### How often should you perform an SEO audit?

Run a full audit quarterly or after any migration, redesign or platform change. Between full audits, automate the regressions that matter weekly: indexation status on key pages, no-JS vs rendered diffs on changed URLs, and Core Web Vitals on your main templates.

### What is a technical SEO audit?

It is the subset of an audit covering how crawlers reach and read your site: robots.txt, sitemaps, status codes, redirects, canonicals, JavaScript rendering and page speed. It ignores content quality and backlinks. Technical issues come first because they gate everything else — an unindexed page cannot rank.

## Audit the gap your dashboard can't see

The SEO Audit API fetches every URL twice — pure HTTP bot and fully rendered — and returns the diff for $0.0012 per URL, pay per success. Every account gets $2 of free API usage per month.

[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 Site Audit in Semrush, Step by Step A practical walkthrough of Semrush Site Audit setup and reports — plus the JS-rendering gap a dashboard crawl hides, and per-URL API cost math. Read →](https://quanticdata.io/blog/how-to-site-audit-in-semrush/) [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-perform-an-seo-audit/ · Site index for AI: https://quanticdata.io/llms.txt
