TL;DR
A full SEO audit for a SaaS website checks five layers in order: crawling and indexing, technical health, on-page and content, backlinks, and AI search visibility, then ranks every issue by business impact. The SEO audit checklist below walks through each layer with Search Console, a site crawler, and a handful of free tools. What you want at the end is not a long export of warnings but a short, prioritized fix plan tied to the pages that drive signups. If you hand the job to a technical SEO audit service instead, that plan is exactly what it should deliver.
What an SEO audit for a SaaS site should produce
Most audits fail at the output, not the analysis. A crawler export with hundreds of warnings sorted by severity tells a developer nothing about which fix moves pipeline. A useful SEO audit ends with a ranked list where every row names the page or template, the issue, the evidence, the fix, who owns it, and the rough effort.
SaaS sites make this harder than most because they are rarely one site. The marketing pages, blog, docs, help center, changelog and app often run on different stacks, owned by different teams. An audit that only crawls the www host misses half the indexable surface. Set up the scope properly before you crawl anything:
- List every hostname you own: www, app, docs, blog, help, status, and any staging or preview domains that might be public.
- Get access: a Search Console domain property (it covers all subdomains), analytics, the CMS, and a named developer who can answer questions about rendering and redirects.
- Group pages by template: homepage, product and feature pages, pricing, integrations, comparison pages, blog, docs, and legal. Template-level issues are where the biggest wins hide.
- Mark your money pages, the ones that actually start trials or demo requests. Every finding later gets judged by whether it touches these.
- Export a baseline from Search Console: clicks, impressions and indexed pages per template group for the last three months, so you can measure the effect of fixes later.
- Run a full crawl with JavaScript rendering switched on, plus a second crawl with it off. The difference between the two is your first finding.
Crawling and indexing checks
Nothing else in the audit matters for a page Google cannot crawl or chooses not to index, so start here.
Robots.txt and noindex
Paste your robots.txt into the robots.txt tester and test your money pages against Googlebot. Look for leftover Disallow rules from a staging launch and for blocked CSS or JavaScript files the page needs to render. Then run key templates through the noindex checker. A stray noindex shipped with a CMS template change is one of the most common causes of a sudden traffic drop we look for first.
Canonicals and duplicates
Check that every indexable page has a self-referencing canonical and that it points to the final URL, with no redirect, no trailing slash mismatch and no tracking parameters. The canonical checker shows what a page declares; the URL Inspection tool in Search Console shows which canonical Google actually picked. When those two disagree, Google has decided your signals are inconsistent, and that is worth chasing.
The Page indexing report
In Search Console, read the reasons pages are not indexed rather than the totals. "Crawled, currently not indexed" on blog posts usually points to thin or overlapping content. "Discovered, currently not indexed" on a large site points to weak internal linking or crawl priority. "Duplicate, Google chose different canonical than user" points straight back to the canonical checks above. Also check the opposite problem: login pages, signup flows, staging environments and internal search results that are indexed when they should not be.
Technical health checks
We covered the most common technical failures and their fixes in detail in technical SEO mistakes slowing down SaaS sites, so the audit job here is detection, not repair.
- Rendering: compare the raw HTML with the rendered HTML in URL Inspection. If headings, body copy or internal links only appear after JavaScript runs, flag the template.
- Status codes: find redirect chains, 302s left over from old migrations, internal links pointing at redirected URLs, and soft 404s where a missing page returns a 200.
- XML sitemaps: they should list only canonical, indexable URLs that return a 200. A sitemap full of redirects and noindexed pages wastes the signal.
- Core Web Vitals: use the field data in Search Console's Core Web Vitals report, grouped by template, rather than one lab test of the homepage. LCP, INP and CLS problems are almost always template-wide.
- International: if you run localized pages, run them through the hreflang checker to confirm return tags and matching canonicals.
- Structured data: check that Organization, BreadcrumbList and article markup are present and valid where they belong, and use the schema markup generator to fill gaps.
If you have a docs site, give it its own pass. Versioned docs, generated API reference pages and language tabs create duplication patterns a marketing site never has; our guide to technical SEO for API documentation covers them.
On-page and content checks
The page-level detail lives in our on-page SEO checklist for SaaS. In an audit, you are looking for patterns across the site rather than polishing single pages.
- Keyword to page mapping: every important query should have one clear target page. Export queries by page from Search Console and look for two or more of your URLs swapping positions for the same query. That is cannibalization, and the fix is usually merging or re-targeting, not more content.
- Titles, descriptions and headings at scale: run templates through the meta tag checker and H1 checker to catch duplicate titles, missing descriptions and pages with zero or several H1s.
- Spot-check money pages with the on-page SEO checker.
- Thin templates: integration pages, glossary pages and location pages generated from one template with a name swapped in are a frequent source of "crawled, not indexed" issues.
- Content decay: compare clicks per page against the same period a year earlier. Posts that used to bring signups and have slid are usually the cheapest wins in the whole audit.
- Internal links to money pages: check how many internal links your pricing, product and integration pages receive compared with old blog posts. Often the wrong pages get the most.
Backlink and AI visibility checks
Backlink profile
Pull your referring domains from a backlink tool and Search Console's Links report, then answer three questions. Which pages receive the links (often the homepage and a few old posts, not the pages that need authority)? Which external links point at URLs that now 404 or redirect through a chain? Those are free authority you recover with a single 301. And how does your referring domain count to key pages compare with the pages that outrank you for your target queries? That gap, not a domain-level score, is what sizes your link building work.
AI search visibility
Confirm robots.txt does not block Googlebot or OAI-SearchBot (the crawler behind ChatGPT search results) from pages you want cited. Check for nosnippet or max-snippet rules that would keep a page out of AI Overviews, since Google says a page only needs to be indexed and eligible for a snippet to appear there. Then run a small set of buyer prompts in ChatGPT, Perplexity and Gemini and note whether your brand appears and whether it is described accurately. Treat it as a snapshot, since answers vary between runs.
The SEO audit checklist at a glance
Use this table as the working SEO audit checklist. Each row is a check you can finish in one sitting with the tool listed.
| Area | What to check | Where to check it | Typical fix |
|---|---|---|---|
| Scope | All hostnames, templates and money pages listed | Search Console domain property, crawler | Add missing hosts to the crawl and reporting |
| Robots.txt | Money pages and render resources allowed | Robots.txt tester | Remove stale Disallow rules |
| Noindex | No noindex on pages that should rank | Noindex checker, crawler | Fix the template or CMS setting |
| Canonicals | Self-referencing, final URL, matches Google's choice | Canonical checker, URL Inspection | Point canonicals at the 200 URL |
| Indexing | Reasons in the Page indexing report | Search Console | Improve or merge thin pages, add internal links |
| Rendering | Content and links in the raw HTML | URL Inspection, crawler with JS off | Server-side render or prerender templates |
| Status codes | Chains, stray 302s, soft 404s | Crawler | Collapse chains, return real 404s |
| Core Web Vitals | Field data by template | Core Web Vitals report | Fix per template, starting with money pages |
| On-page | Titles, H1s, descriptions, intent | Meta tag checker, H1 checker, on-page checker | Rewrite at template level first |
| Cannibalization | Several URLs ranking for one query | Search Console queries by page | Merge, redirect or re-target |
| Backlinks | Links to 404s, link gap on key pages | Backlink tool, Links report | 301 dead URLs, plan links to money pages |
| AI visibility | Crawler access, snippet rules, prompt snapshot | Robots.txt tester, manual prompts | Unblock crawlers, fix inaccurate brand info |
How to prioritize audit findings
Score each finding on two things: how close it sits to revenue, and how many pages one fix touches. Then work in this order:
- Blockers on money pages: anything stopping pricing, product, integration or comparison pages from being crawled, rendered or indexed.
- Template-level issues: one fix in a shared component that corrects hundreds of pages at once, such as a canonical bug or a missing H1 on the integration template.
- Recovered authority: redirects for dead URLs that still hold backlinks.
- Content consolidation: merging cannibalizing pages and refreshing decayed posts that used to convert.
- Page-level polish: individual titles, descriptions and internal links.
Write each developer ticket with the URL, the evidence (a screenshot of URL Inspection or the crawler row), the expected behavior and how to verify it. After fixes ship, re-crawl the affected templates and use Search Console's Validate Fix button where it applies. A full audit once a year, or after any migration or redesign, plus lighter monthly checks is a sensible rhythm for most SaaS sites.
Choosing a technical SEO audit service
If you buy SEO audit services rather than running the audit yourself, judge them on the output. Ask for a sample deliverable. Check that it covers every hostname, not just www, that it prioritizes by business impact, and that it includes implementation support rather than a PDF handed over at the end. Whether an outside team or an in-house hire should own this work long term is its own question, which we cover in in-house SEO vs. hiring an agency.
How Chung Digital runs SaaS SEO audits
This audit is the starting point of our SaaS SEO services. The Starter plan ($1,799/mo) includes a full technical SEO audit plus priority fixes, on-page optimization for up to 5 pages a month, 2 guest post backlinks a month and a monthly performance report. Growth ($3,199/mo) adds ongoing technical monitoring and fixes, a new blog post and 4 backlinks a month, and Authority ($5,999/mo) moves to dedicated technical SEO ownership of Core Web Vitals, crawl budget and schema.
We crawl every host you own, group findings by template, and hand your developers tickets they can act on. If you want to see what that looks like on your own site first, request a free audit and we will review it. An audit cannot guarantee rankings, and nobody honest will promise that, but it does tell you exactly what is standing between your best pages and the people searching for them.
Frequently asked questions
How long does an SEO audit take for a SaaS website?
A focused audit of a small marketing site can be done in a few days. A site with a blog, docs, a help center and localized pages usually takes a couple of weeks, mostly because of the time spent confirming findings and writing usable tickets rather than crawling.
What is the difference between a technical SEO audit and a full SEO audit?
A technical audit covers crawling, indexing, rendering, status codes, speed and structured data. A full audit adds on-page and content analysis, the backlink profile and, increasingly, AI search visibility. Most SaaS sites need the full version at least once, then lighter technical checks between.
Which tools do you need to run an SEO audit?
Search Console is non-negotiable, since it is the only source of Google's own view of your site. Add a crawler that can render JavaScript, a backlink index, and spot-check tools for robots.txt, canonicals and meta tags. Expensive suites help with scale but are not required for a first pass.
Should we disavow bad backlinks found during an audit?
Usually not. Google says it ignores most spammy links on its own, and disavowing is meant for cases where you have a manual action or know of a link scheme built in your name. Removing good links by mistake does more harm than leaving low-quality ones alone.
Is a free SEO audit worth anything?
It depends on who reviews it. An automated report run by a tool is a list of warnings with no priority. A free review done by a person who looks at your templates and Search Console data can surface the two or three issues that matter most, which is often enough to decide what to fix first.
Can you audit a site built on React or another JavaScript framework?
Yes, but the crawl needs JavaScript rendering switched on, and you should compare it with a non-rendered crawl. The gap shows which content and links depend on scripts. Google renders JavaScript, but rendering can be delayed, and many other crawlers read only the raw HTML.
Who should implement the fixes from an audit?
Template, rendering and redirect fixes need a developer. Content consolidation and on-page changes can usually be handled by marketing in the CMS. The audit should assign each ticket to an owner so nothing waits on an unclear handoff.
