SEO Audit with AI: A Step-by-Step Guide
A practical SEO audit workflow covering Search Console, sitemaps, indexing, cannibalisation, duplicate pages and reporting.
👁 115 reads
An SEO audit answers one question: why isn’t your website getting as much traffic from Google as it could, and what should you fix first? I audit large websites, including one black-box site with 1.06 million URLs in its sitemaps, and have consolidated 265 duplicate pages on my own site. Here’s my process, step by step: the initial questions, a Search Console script, sitemaps, indexing, cannibalisation and a report for executives. I’ll also explain what you can check for free.
SEO audit pricing (October 2026)
The original figures are Poland-specific service rates, so they are not presented as prices for other markets.
Start with a conversation, not a crawler
My website obyty.pl was meant to focus on health, with 741 articles about symptoms, tests and medicines. When I opened Search Console in September, completely different articles were getting impressions. A comparison of the Emirates A380 and Boeing 777 had 219, and an article about average salaries according to Poland’s Central Statistical Office had 221. The entire site got 25 clicks in 90 days.
Those were old posts from an earlier version of the domain. A textbook audit would tell you to remove them because they were off-topic, but they were the only pages doing anything at all. That’s why I start by asking about the business and the website’s history. I run the crawler later.
Step 1: Ask five questions at the first meeting
- How does the website make money, and which sections contribute: ads, affiliate links, subscriptions or sales enquiries?
- What changed, and when? Ask about migrations, new templates, plugins and automations that publish or remove content. Request dates, even approximate ones.
- When did traffic drop, and which tool showed it? Analytics, Search Console and ad dashboards count different things.
- What must not be changed?
- Who will implement the recommendations, and how much time do they have? A list of 80 tasks will sit in a drawer if the team has one developer working half-time.
The second question can seem like a formality until you uncover a change nobody remembers. A reader once reported that a website looked like bare HTML. The cause was a plugin that cleared the cache, including minified CSS files, every time a post was published. With 7-24 posts a day, the stylesheets disappeared a dozen or more times daily. Without asking about automations, I would have looked for a template bug.
Step 2: Find out which sections bring in traffic
I check the client’s answers against the data. This script retrieves every page with impressions from Search Console and totals them by section, based on the first part of each URL path. The key part is pagination:
def get_all_pages():
rows, offset = [], 0
while True:
response = session.post(API, json={
"startDate": start,
"endDate": end,
"dimensions": ["page"],
"rowLimit": 25000,
"startRow": offset})
response.raise_for_status()
batch = response.json().get("rows", [])
rows += batch
if len(batch) < 25000:
return rows
offset += 25000
The API returns at most 25,000 rows per request, sorted by clicks, and truncates the rest. Once, I asked for data on 500 pages and found that only 3 of 41 reviews had impressions. The site had 3,269 pages with impressions, so the reviews simply hadn’t made it into the limit. When I repeated the measurement, 38 of 40 had impressions.
The script’s second result shows how concentrated the traffic is. On my site, three pages about an 1980s filter accounted for 57% of clicks over 28 days; the top five accounted for 72%. A template failure affecting those three URLs would cost more than the mess on the remaining 2,500-plus URLs in the sitemaps. That concentration determines the order of the entire audit.
Step 3: Compare sitemaps, crawls and the index
For a large website, I compare three sets: URLs in the sitemaps, URLs found by crawling and URLs in Google’s index. Each discrepancy can tell you something:
- In the sitemap but not linked internally - orphan pages that Google can find only through the sitemap.
- Linked internally but not in the sitemap - often tags, pagination or URLs with parameters.
- In the sitemap but not in the index - check the Search Console Pages report or the URL Inspection API for a reason.
I don’t crawl every URL on a million-page website. I take representative samples from each template and limit requests so I don’t overload the client’s server. Large websites usually repeat a few templates thousands of times, so a template-level issue becomes clear from just a few dozen URLs.
The URL Inspection API is limited to 2,000 requests a day per property, so I use samples for that, too. If the API returns nothing for a URL, I record it as “no data,” not “not indexed.”
“I don’t know” is not the same as zero
On my website noktus.pl, a noindex failure removed 1,311 posts from Google, and I had to undo it. It taught me a rule I apply to every audit: an empty API response means “I don’t know,” not “zero.”
I don’t make bulk changes based on missing data. I test each change on a sample first and set a safety threshold: if a script is about to mark more than an agreed percentage of a section for removal, it stops and waits for a person to review it.
Step 4: Find duplicate pages and keyword cannibalisation
I look for cannibalisation in Search Console data: queries for which several URLs on the same site compete. A script lists the pairs, but I make the decision manually. Sometimes two pages serve different search intents and should remain separate.
I consolidated 265 duplicate pages on obyty.pl. The process is the same each time: choose the destination URL, usually the one with traffic and links; combine the content; add a 301 redirect from the old URL; and update internal links so they don’t pass through the redirect. I merge or expand pages with no traffic and no links. I delete them only when the data clearly supports it.
Write one report for the team and another for executives
The technical report is for developers. Every recommendation describes the problem, its scale, example URLs and acceptance criteria, so it can be turned straight into a task. I prioritise fixes by impact, cost and risk.
Executives get one page: what is at risk, what it could cost and what to do first. No jargon and no promised traffic growth, because the client’s team is responsible for implementation.
Free SEO audit: what you can check yourself
You can check a small website with free tools. Search Console shows indexing and queries, PageSpeed Insights checks mobile speed, and the free version of Screaming Frog can crawl up to 500 URLs and list response codes, titles and redirects. A Google site: search can quickly show whether unwanted pages are appearing in the index.
A paid audit starts to make sense for a large website: thousands of URLs, several templates and traffic with a financial impact. What matters then isn’t just a list of errors, but the order in which to fix them and evidence of which issue is costing the most.
SEO audit course: auditing a large website with AI
I’ve laid out the full process in the course SEO Audits for Large Websites with AI: 28 lessons across 7 modules, with about 9 hours and 13 minutes of learning. The files include Python scripts for sitemaps, sample crawls, the URL Inspection API and Search Console exports, as well as instructions for Claude Code to build tools for a specific website. Lesson 1, on scope and business questions, is free.
To be clear, this isn’t a beginner SEO course. It assumes you know the basics of indexing and on-page SEO. The course’s original commercial pricing and bundle offer were specific to Poland and are not listed here. I also wrote about checking whether ChatGPT recommends a company in GEO SEO.
Frequently asked questions
How much does an SEO audit cost?
Prices vary by market and project scope. You can check a small business website yourself with free tools; a large site may need a paid audit covering thousands of URLs, multiple templates and traffic with a financial impact.
How do you do an SEO audit step by step?
I start by asking how the website makes money and what has changed. Then I check sections and traffic concentration in Search Console, compare sitemaps, crawls and the index, look for duplicates and review templates and structured data. Finally, I report the findings in priority order.
Can you do an SEO audit for free?
You can do a basic check with Search Console, PageSpeed Insights and the free version of Screaming Frog, which covers up to 500 URLs. These tools show indexing, speed and technical issues, but they won’t tell you which fix to make first.
How long does an SEO audit of a large website take?
It depends on the site’s scale and the access available. Gathering the data takes the longest: downloading sitemaps, crawling samples and measuring index coverage within API limits. AI can speed up data analysis, but the auditor is responsible for the conclusions.
Can AI do an SEO audit for me?
AI can calculate and group data, write scripts and draft reports. I make the decisions about deleting pages, merging them or adding noindex, because a mistake on a large website can remove thousands of pages from Google.
Google · Your sourcesQuantslant higher in your Google - one clickAdd to preferred sources →Sources and date checked
Information checked on 26 October 2026.


