Documentation Blog Free tools [email protected]Log in

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

One URL fetched twice — plain bot view and rendered view — diffed into a list of SEO issuesBot view · no JSRendered viewDifftitle changedcanonical missingJS-only contentmeta shrankFix firstcanonical + indexationFix nextJS-only content, titlesThen polishspeed, images, links

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 — 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 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

AreaWhat to checkRed flag
Crawlabilityrobots.txt, sitemap coverage, orphan pages, redirect chainsSitemap URLs returning 3xx/4xx; chains longer than one hop
IndexationIndexed vs submitted in Search Console, exclusion reasonsLarge "crawled — not indexed" clusters on one template
RenderingNo-JS view vs rendered view of key pagesTitle, canonical or body content that only exists after JS runs
On-pageUnique titles ≤60 chars, one h1, meta descriptions, heading orderTemplate-generated duplicate titles across hundreds of URLs
Structured dataJSON-LD parses, matches visible contentSchema describing content the page does not visibly contain
PerformanceCore Web Vitals per templateLCP over 2.5s on the money template
Internal linksEvery important page linked from ≥2 pages, descriptive anchorsMoney pages only reachable from the sitemap
BacklinksReferring domains trend, toxic-link spikes, lost linksA 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 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 straight into the audit, or wire both up as MCP tools so your AI assistant runs the loop; the API quickstart 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. 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

FAQ

Quick answers on how to perform seo audit.

Something else? Ask us →

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.

Related reading