Guide

The SEO Audit Guide

An SEO audit identifies the barriers holding a site’s organic visibility back. It is a structured diagnostic, not a single tool check. This guide covers the full process: what to check, how to check it, and how to decide what to fix first.

For the tactical checklist of technical SEO items, see the Technical SEO Audit Checklist. This guide explains the reasoning and scope behind a complete audit.

Before you start

Access and tools

You need the following before beginning:

  • Google Search Console access for the property being audited. Owner or full user access is required to see all reports. If access is not available, request it - GSC data is irreplaceable.
  • A crawl tool: Screaming Frog SEO Spider or Sitebulb. Set the crawl to follow the same rules as Googlebot (crawl as Googlebot, render JavaScript if the site uses it).
  • GA4 access for organic traffic and conversion data.
  • A backlink tool (Ahrefs, Semrush, or Ahrefs Webmaster Tools free tier) for the off-page component.

Establish a baseline

Record current performance before starting. At minimum: organic sessions over the past 3 months, total impressions and clicks from GSC, and a ranking snapshot for the site’s target queries. This baseline makes it possible to measure the impact of changes made after the audit.

Define scope

A full audit of a 50,000-page e-commerce site is a different project from auditing a 30-page service site. Define what is in scope: all pages, a specific section, or a sample across site types. For large sites, audit the most commercially important sections first.


Part 1: Technical audit

Crawlability

Run a full crawl of the site. Export the data.

Check:

  • Which URLs return 4xx errors (broken pages). A 404 that previously ranked or receives inbound links should be redirected.
  • Which URLs redirect, and whether there are chains longer than two hops. Each hop slows crawling and dilutes link equity. Redirect chains should be collapsed to point directly to the final destination.
  • Which URLs are blocked by robots.txt. Confirm that blocked paths are intentional. An accidentally disallowed path can hide entire sections of a site from Googlebot.
  • Crawl depth: how many clicks from the homepage does it take to reach important pages? Pages more than three to four clicks deep are often crawled less frequently.

GSC check: Compare the crawl tool’s URL count against the number of pages indexed in GSC (Indexing > Pages). A large gap suggests either a crawl configuration issue or significant indexation problems.

Indexation

Open the Page Indexing report in GSC (Indexing > Pages). Review the reason codes for non-indexed URLs:

  • Crawled - currently not indexed: Google visited the page but chose not to index it. Usually a content quality signal. Check the pages flagged here — they tend to be thin, duplicated, or targeting queries that are better served by another page on the site.
  • Discovered - currently not indexed: Google knows the URL exists but has not yet crawled it. Often affects pages deep in site architecture or with few internal links.
  • Excluded by noindex tag: Confirm these are intentional. Accidentally noindexed pages are one of the most common audit findings.
  • Alternate page with proper canonical tag: These pages are excluded in favour of their canonical version. Check that the canonical URLs are correct.
  • Duplicate without user-selected canonical: Google identified duplication and chose a canonical you did not specify. Investigate the duplicate patterns and add explicit canonicals or redirects.

Redirect audit

Every redirect has a cost: it adds latency, and chains dilute link equity. Crawl data will show redirect chains. Check:

  • 302 (temporary) redirects used where 301 (permanent) redirects are appropriate. 302s do not reliably pass link equity.
  • Redirect loops (A redirects to B, B redirects to A).
  • Chains longer than two hops. Collapse them to direct redirects.
  • Redirects pointing to 4xx pages (broken redirect targets).

Core Web Vitals

Open GSC’s Core Web Vitals report (Experience > Core Web Vitals). Segment by mobile and desktop. URLs flagged as “Poor” or “Needs improvement” on LCP, INP, or CLS require investigation.

Cross-reference with PageSpeed Insights for individual URLs to identify root causes. Common culprits: large unoptimised images (LCP), third-party scripts blocking interaction (INP), layout shifts from images without dimensions or late-loading ads (CLS).

Structured data

If the site uses structured data, check the relevant rich result reports in GSC (Enhancements section). Errors in structured data prevent rich results from appearing. Warnings are lower priority but worth resolving.

Check for structured data types that are no longer supported: Google periodically retires schemas, and outdated markup creates noise without benefit.

HTTPS and security

Confirm that:

  • All pages serve over HTTPS. Any HTTP pages should redirect to HTTPS.
  • No mixed content warnings (HTTP resources loaded on HTTPS pages).
  • The SSL certificate is valid and not approaching expiry.

Mobile usability

Check the Mobile Usability report in GSC (Experience > Mobile Usability). Errors here affect rankings through Google’s mobile-first indexing. Common issues: content wider than the viewport, touch targets too small, font size too small to read without zooming.


Part 2: Content audit

The content audit identifies pages that are holding the site back through thin content, duplication, or keyword cannibalisation. It requires both crawl data and GSC performance data.

Identifying underperforming pages

In GSC, export the Performance report filtered by the last 12 months. Sort by impressions. Look for:

  • High impressions, low CTR: The page is appearing in results but not attracting clicks. The title tag or meta description may be weak, or the SERP position is too low.
  • High impressions, few clicks, low position: The page ranks but not highly enough to earn clicks. It may be targeting a competitive query where rankings in the 5–20 range produce minimal traffic.
  • Pages with zero impressions: Not appearing in results at all. Either not indexed, not targeting any query, or ranking beyond position 100 for everything.

Thin content

Thin content pages have little substance relative to the queries they target. They may be indexed but not ranking, or they may be in the “Crawled - currently not indexed” bucket from the indexation review.

Diagnosis: look at pages with low word counts in the crawl export. Cross-reference with GSC to see which have impressions or rankings. Pages with no impressions and thin content are candidates for consolidation, expansion, or removal.

Options: expand the content to adequately cover the topic; merge it with a more substantial related page and redirect; or remove it and redirect to the nearest relevant alternative if the URL has no inbound links or rankings worth preserving.

Duplicate content

Duplicate content dilutes the authority that should be concentrated on one URL. Common sources: HTTP vs HTTPS versions, www vs non-www, trailing slash variations, URL parameters creating duplicate views of the same content, and category/tag pages on CMSs that surface the same posts.

Check in the crawl data for pages with identical or near-identical titles and descriptions. Use GSC to see which URL Google has chosen as canonical where duplicates exist.

Resolution: use canonical tags to consolidate signals, or redirect duplicate URLs to the primary version.

Keyword cannibalisation

Cannibalisation occurs when two or more pages on the same site compete for the same query. Google cannot clearly determine which to rank and may alternate between them, resulting in neither ranking consistently.

Identify it: export GSC data, filter by target queries, and look for multiple URLs appearing for the same keyword. Check whether rankings for those URLs fluctuate week-on-week.

Resolution: consolidate pages targeting the same intent into one stronger page; redirect the weaker one. Or differentiate the pages by targeting clearly different facets of the topic.

Content quality pass

Review the pages with the most organic traffic and impression volume. For each:

  • Does the page match the search intent of the queries it ranks for?
  • Is the information accurate, specific, and more useful than what competitors offer for the same query?
  • Are there clear next steps or related content for the reader?

This is an editorial judgement call. The goal is to identify pages where a targeted improvement, additional data, a clearer structure, or an updated section would meaningfully improve the user’s experience.


Part 3: Off-page audit

Export backlink data from Ahrefs, Semrush, or a comparable tool. Key metrics to review:

Referring domains: Total count and trend over time. Is the site acquiring new referring domains or losing them?

Referring domain quality: Filter for domains with meaningful authority metrics (Domain Rating in Ahrefs, Authority Score in Semrush). A large number of links from low-quality or irrelevant sources indicates either natural noise or a historical pattern of low-quality link acquisition.

Anchor text distribution: Natural backlink profiles have varied anchor text dominated by branded terms, naked URLs, and generic phrases (“click here”, “this article”). An unusually high concentration of exact-match keyword anchors can be a signal of manipulative link building that may attract a manual action.

Lost links: Identify recently lost referring domains. Some loss is natural (sites close, pages are removed). Significant unexplained link loss may indicate a technical issue (the page that was linked to may have changed URL) or a competitor outreach effort.

Truly harmful backlink profiles are less common than many audit tools suggest. Most “toxic” link scores are false positives. Before submitting a disavow file, verify that links are genuinely unnatural or spammy, rather than merely low-authority. Google is generally good at ignoring low-quality links; disavowing legitimate links can remove equity you would prefer to keep.

Cases where a disavow is warranted: a manual action has been issued for unnatural links, or there is clear evidence of previous paid link building that violates Google’s guidelines.

Compare your backlink profile against two or three competitors ranking for the same target queries. Identify referring domains that link to competitors but not to your site. These represent link acquisition opportunities: sites that have already linked to similar content in your space and may be receptive to linking to yours.


Prioritising findings

A large site audit produces many findings. Not all are worth fixing. Use a simple impact-versus-effort framework:

Fix immediately (high impact, low effort):

Plan to fix (high impact, higher effort):

Monitor but defer (low impact, any effort):

  • Cosmetic issues that do not affect indexation or rankings
  • Minor structured data warnings
  • Low-authority pages with zero impressions

Deprioritise entirely:

  • Issues flagged by tools but confirmed to be irrelevant in context
  • Optimisation on pages targeting zero-volume queries

Reporting

An audit report should present findings in plain language alongside their business relevance. A list of technical issues with no explanation of why they matter is not useful to stakeholders making decisions about resource allocation.

Structure the report by priority tier, not by audit category. Lead with findings that have the clearest impact on revenue or traffic. Use before-and-after comparisons where available (baseline traffic data establishes the “before”). Include specific next steps for each priority finding, not general recommendations.

Track the baseline metrics captured at the start. Revisit them 60 to 90 days after implementing priority fixes. SEO changes take time to reflect in rankings and traffic, and expecting results in days leads to premature conclusions.