BlogSEO

How to do an SEO audit, step by step

The seven checks of an SEO audit, in the order they matter: crawling, indexing, on-page, rendering, speed, structured data and authority. With a checklist.

Published
6 min read
6 min read

What you need before you start

  • Access to Google Search Console. It is the only source of Google's own data on which pages it has indexed, why it left the others out and which searches you appear in.
  • Access to Bing Webmaster Tools. The same for Bing, whose index also feeds other search engines and assistants.
  • A crawler that walks the site the way a search engine would. The free version of Screaming Frog SEO Spider crawls up to 500 URLs; our free SEO audit does a first pass in under a minute.
  • PageSpeed Insights for speed, with real-user data once the site has enough traffic.

1. Crawling: can Google get in?

If the crawler cannot reach a page, nothing else matters. Check:

  • robots.txt. It should not block sections you want in Google, or the CSS and JavaScript files a page needs to render. Note that robots.txt controls crawling, not indexing: a blocked URL can still show up in Google if other pages link to it. To keep a page out, use noindex.
  • Status codes. Pages you want to rank should answer 200; removed pages, 404 or 410; moved pages, a 301 redirect to their new address.
  • Redirect chains and loops. Every hop (A → B → C) slows down crawling and loading.
  • Broken internal links, which send Google and your visitors into a dead end.
  • The XML sitemap. It should exist, be declared in robots.txt or submitted in Search Console, and list only canonical URLs that answer 200.
  • One version of the site. http://, https://, with and without www: all of them should end up at the same address through a 301.

2. Indexing: which pages does Google have?

Google being able to crawl a page does not mean it keeps it.

  • Open the page indexing report in Search Console. It tells you how many URLs are indexed and, for the rest, the exact reason.
  • Treat site:yourdomain.com as a rough guide only. Google warns that the operator doesn't necessarily return all indexed URLs. To know whether a specific URL is indexed, use the URL Inspection tool.
  • Look for accidental noindex, in the meta robots tag or in the X-Robots-Tag HTTP header. It is a classic after a staging site goes live.
  • Check canonicals. Every indexable page should point to itself, not to another URL.
  • If the site is in several languages, check that the hreflang tags point to URLs that exist and that each version links back to the others.

If a lot of pages are missing, continue with our guide to why Google isn't indexing your site.

3. On-page: does Google understand each page?

  • A unique title per page that says what that page is, with the important part first. Google sets no character count, but long titles get cut off in results.
  • A useful meta description. Google builds the result snippet primarily from the page content and only sometimes uses the description, so write it to win the click, not to hold keywords.
  • A clear H1, and headings that follow the logical order of the content.
  • Unique content. Near-identical pages compete with each other, and Google ends up showing only one.
  • Internal links. Important pages should get links from other pages on the site, and the most important ones from the home page.
  • Alt text on images that carry information.

4. Rendering: is the content in the HTML?

Google runs JavaScript, but in a phase after crawling: the page waits in a rendering queue that can take seconds or a good deal longer. Other crawlers do not even try. A December 2024 analysis by Vercel found that none of the major AI crawlers rendered JavaScript: ChatGPT's and Claude's crawlers downloaded the files but did not execute them. If your content only appears after JavaScript runs, to them the page is empty.

How to check: open the page source (Ctrl + U) and search it for a sentence from your content. If it is not there, compare with what Google sees in Search Console's URL Inspection, under "View crawled page".

5. Speed and experience: Core Web Vitals

Google measures three metrics with real-user data and considers a page good when, for 75% of visits:

MetricWhat it measuresGood
LCPHow long the main element takes to appear2.5 s or less
INPHow long the page takes to respond to a click or tap200 ms or less
CLSHow much the content moves while loading0.1 or less

Use Search Console's Core Web Vitals report for real-user data and PageSpeed Insights to find the causes. We cover them in depth in Core Web Vitals: what LCP, INP and CLS measure.

Check the basics too: HTTPS on every page, a viewport tag for mobile, and no interstitial covering the content as soon as someone arrives.

6. Structured data

Structured data (JSON-LD using the schema.org vocabulary) tells Google, and any other system reading the page, what each thing is. The minimum:

  • Organization on the home page, with name, URL, logo and sameAs links to your official profiles.
  • BreadcrumbList on inner pages.
  • Article or BlogPosting on articles, with an author and a date.
  • Product with Offer in a shop, and LocalBusiness if customers visit you.

Validate it with the Rich Results Test and the Schema Markup Validator. And do not add FAQ markup expecting a rich result: Google stopped showing them on 7 May 2026, after three years of limiting them to government and health websites.

7. Authority and brand

  • Search for your brand name. You should come first. If other things appear first (a company with the same name, a product, an old website), you have an entity problem, and it also affects how AI assistants describe you.
  • See who links to you in Search Console's links report.
  • Look at where you are mentioned: industry directories, press, reviews, associations.
  • Make sure your details match everywhere: same name, same description, same phone number and address.

How to prioritise what you find

A useful audit is not a list of 200 warnings. Rank each finding by the damage it does:

LevelExamplesWhen
Blockingnoindex on key pages, robots.txt blocking the site, 5xx errors, no HTTPSToday
ImportantWrong canonicals, duplicate content, broken links, LCP above 4 sThis month
ImprovementDescriptions, alt text, additional structured dataWhen there is time

Every finding should say what to change, where and why. If it does not, it is a list of warnings, not an audit.

Checklist

  1. robots.txt blocks nothing important.
  2. Every variant of the site redirects with a 301 to a single one.
  3. The sitemap exists, is submitted and lists only canonical URLs that answer 200.
  4. There are no broken internal links and no redirect chains.
  5. Search Console shows no important pages excluded.
  6. No page you want in Google carries noindex.
  7. Each page has its own title, its own H1 and a canonical pointing to itself.
  8. The main content is in the HTML without running JavaScript.
  9. Core Web Vitals are "good" on mobile.
  10. The home page has Organization markup with a logo and sameAs, and the structured data validates without errors.
  11. Your brand comes first when you search for it.

Sources

How does your site do?

The free SEO audit checks crawling, indexing, structured data and speed on your real pages, live, in under a minute.

Your customers are searching.The only question is whether they find you.

Google. AI. Organic. Paid.

One visibility strategy.

WhatsApp