SaaS SEO Audit

How to actually run a SaaS SEO audit — cadence, scoping the crawl across marketing site/docs/app, checking indexation for bloat, Core Web Vitals on a JS-heavy stack, competitive gap analysis against comparison and integration pages, and prioritizing findings instead of printing a 200-page report.

First published: Jul 3, 2026 · Last updated: Jul 25, 2026 · Advanced
demand #7 in SaaS SEO#357 on the site

A SaaS SEO audit isn't a longer checklist — it's the recurring process of running the review: crawling the marketing site (while confirming the app and docs are handled deliberately, not by accident), checking indexation for bloat by reconciling submitted vs. crawled vs. indexed counts, testing Core Web Vitals with field data (not one lab run) on a JavaScript-heavy stack, running a content gap analysis against competitors' comparison and integration pages, and then prioritizing findings by impact and effort instead of reporting everything you found. Cadence is continuous light monitoring plus a full pass quarterly-to-semiannually. The failure mode is a 200-page audit nobody reads.

TL;DR — An audit is a process, not a longer checklist. Google’s Martin Splitt: a technical audit “can use checklists and guidelines to do so, but it needs experience and expertise to adapt these guidelines and checklists to the site you audit.” Run it on a cadence appropriate to release frequency and risk. Scope the crawl by property — marketing site, docs, and app surfaces — and confirm app/trial/dashboard URLs aren’t crawled and indexed by accident. Check indexation bloat by reconciling submitted vs. crawled vs. indexed. Prioritize Core Web Vitals with field data, split by page template, because lab tools mislead on a hydration-heavy stack. Verify JS rendering with URL Inspection / Rich Results and account for the render-queue delay. Start the content gap analysis from competitors’ comparison and integration pages, not a keyword list. Then prioritize with an Impact/Effort Matrix and/or severity tiers, and cap the report at a short, prioritized set the team can implement.

Evidence for this claim Google renders JavaScript with a web rendering service, but server-side or pre-rendered content remains a useful reliability strategy. Scope: Google JavaScript SEO guidance; rendering behavior is not SaaS-specific. Confidence: high · Verified: Google Search Central: JavaScript SEO basics Evidence for this claim Core Web Vitals assessment is based on real-user field data rather than a single lab run. Scope: Core Web Vitals measurement; lab tools remain useful for diagnosis. Confidence: high · Verified: web.dev: Web Vitals

An audit is a process, not a longer checklist

I’ll open the way I open every audit conversation, because the misconception is that persistent: a good SaaS SEO audit is not “run Screaming Frog, export everything it flags, send it over.” That’s a crawler report. An audit is what a human does with it.

Google’s Martin Splitt put the distinction cleanly in his 2025 Search Central lightning talk on audit methodology. A technical audit, he said, “should make sure no technical issues prevent or interfere with crawling or indexing. It can use checklists and guidelines to do so, but it needs experience and expertise to adapt these guidelines and checklists to the site you audit” (as covered by Search Engine Journal). That last clause is the whole job. The checklist is the input; the adaptation to your specific site is the audit. And he’s blunt about the tooling trap, too: “Please, please don’t follow your tools blindly. Make sure your findings are meaningful for the website in question and take the time to prioritize them for maximum impact” (SEJ coverage).

My version of the same point, from What is an Enterprise SEO Audit & How To Do One: “SEO checklists are impractical at scale. It’s a waste of time to check every little thing on every page because there’s simply no ROI in doing so, and no one is going to read your 200-page SEO audit.” Everything below is written to avoid producing that 200-page report.

The standard disclaimer I attach to all of this: it’s my understanding of how these systems work and how I’d approach the problem, not a guarantee — search engines change constantly, so verify against the primary docs in the Official Docs and Quotes tabs. And as with the checklist article: there’s no SaaS algorithm. The crawl → render → index → rank pipeline is identical to a recipe blog’s. What’s SaaS-specific here is the scope (three properties instead of one) and a couple of failure modes, not a special ranking system.

Cadence: continuous monitoring + a full periodic pass

There’s no Google- or Bing-mandated audit frequency, so this is practitioner consensus, not doctrine. The model that works for SaaS has two speeds:

  • Continuous, light, automated monitoring — crawl-error alerts, Core Web Vitals regressions, and indexation deltas, ideally tied to deploys. SaaS ships fast, and a bad deploy can noindex a template or break rendering across a whole page type overnight. You want to catch that in days, not at the next quarterly review.
  • A full, comprehensive pass on a slower cycle. In my enterprise-audit work I note that comprehensive audits “may occur every few months or yearly” (source). For a growing SaaS site I’d land on quarterly-to-semiannual, and scale that with how fast you ship new integration and comparison pages and how large your docs have grown — a company minting hundreds of programmatic pages a quarter needs the full pass more often than a five-page marketing site does.

The industry-common shorthand you’ll see repeated across competitor guides is “full audit quarterly, lighter monthly checks.” That’s a reasonable default; just don’t treat it as a rule handed down from a search engine. It isn’t one.

Scoping the crawl: marketing site, docs, and confirming the app is excluded

Here’s the SaaS-specific step almost no generic audit guide names as a discrete step: decide what you’re crawling before you crawl it, and segment by property. A SaaS brand is usually three sites wearing one logo — www (marketing), docs. (docs), and app. (the product) — and auditing them as one undifferentiated blob is how you either miss problems or drown in noise.

Segment first. In my audit process I lean on a site-structure view to slice the site “by specific pages, sections of a site, different languages or regions, or a specific CMS or JavaScript framework” before crawling — the SaaS translation is: crawl the marketing site as its own scope, treat the docs subdomain as its own property, and explicitly check what the app is doing.

  • Marketing site — the primary target. This is where the audit’s weight goes: comparison pages, pricing, free tools, integration pages, the blog.
  • Docs — its own crawl-budget property. If docs live on a subdomain, it’s a separate Search Console property with its own crawl budget (the checklist article covers the subdomain-vs-subfolder decision itself — I won’t re-litigate it here). The auditing point is: crawl it separately so a bloated, thousands-of-pages docs tree doesn’t distort the marketing site’s numbers. Note Google’s own scoping hint for the Crawl Stats report — it’s “aimed at advanced users” and “if you have a site with fewer than a thousand pages, you should not need to use this report” (Search Console Help). A standalone SaaS marketing site is often under a thousand URLs; it’s the docs and a growing integration library that push the total past the point where crawl budget starts to matter.
  • App / trial / dashboard — confirm exclusion, don’t assume it. This is the distinct audit action: don’t just trust that noindex and robots.txt are configured right (that’s the checklist’s job) — verify during the audit that /app/, /dashboard/, /signup/, and post-login URLs aren’t being crawled and indexed by accident. Scope a crawl at those paths and check Search Console’s indexed-URL list for anything under them that shouldn’t be there. “Ignoring the app” and “confirming the app is correctly excluded” are not the same thing — the audit does the latter.

Checking indexation for bloat

Indexation bloat is when Google has more pages of yours indexed than should be — thin, duplicate, or unintentionally-crawlable URLs diluting the index. The audit check is a three-number reconciliation:

  1. URLs submitted in your sitemap(s).
  2. URLs Google actually crawled.
  3. URLs actually indexed — from Search Console’s Page Indexing report, which splits your URLs into “indexed” and “not indexed” with a reason for each exclusion.

Big, unexplained gaps between those three numbers are the signal to chase. In my audit method I flag that a typical site has some pages indexed that shouldn’t be, and plenty of pages noindexed that should be indexed — so you check both directions: a pricing or comparison page wrongly excluded, and /app/ or filtered doc-search URLs wrongly included.

The word doing the work above is unexplained. Splitt’s framing is exactly right for SaaS, which sunsets old comparison and integration pages constantly: “A high number of 404s, for instance, is expected if you removed a lot of content recently. That’s not a problem… But if you have an unexplained rise in 404 responses, though, that’s something you want to point out and investigate” (SEJ coverage). A dip in indexed pages right after you pruned a hundred dead integration pages is a success, not a crisis. The audit’s job is spotting the deviation you can’t explain.

Google’s own crawl-budget doc names the root cause on the crawl side: “Without guidance from you, Google tries to crawl all or most of the URLs that it knows about on your site” (Optimize your crawl budget). On a SaaS site the “perceived inventory” it’s talking about is filtered doc-search URLs, tag and pagination variants on the blog, and templated integration pages that went thin — exactly the stuff an indexation-bloat pass exists to find.

Core Web Vitals on a JavaScript-rendered stack

Core Web Vitals is, per Google, “a set of metrics that measure real-world user experience for loading performance, interactivity, and visual stability of the page” (Google Search Central), with the familiar thresholds — “strive to have LCP occur within the first 2.5 seconds,” “strive to have an INP of less than 200 milliseconds,” and “strive to have a CLS score of less than 0.1” (same doc). Those numbers aren’t the SaaS-specific part. How you measure them is.

The trap on a JavaScript-heavy SaaS marketing site — React, Next.js, Vue — is trusting a single lab run (one PageSpeed Insights or Lighthouse test). A lab test often reflects a warm cache, a fast machine, and a fully-hydrated app shell — the experience a developer sees locally — not the cold, render-blocking-JavaScript experience a first-time trial visitor on a slower connection actually gets. Google’s own lab-vs-field guidance is explicit about which to trust: “As a general rule, if you have both field data and lab data for a given page, field data is what you should use to prioritize your efforts” (web.dev). Lab data still earns its keep — it’s how you reproduce and debug a problem — which is why the same doc concludes “both lab data and field data are important parts of effective performance measurement” (web.dev). For prioritizing the audit, though, you lead with field data (Search Console’s Core Web Vitals report, CrUX).

The second SaaS-specific move: split field data by page template, not site-wide average. A comparison page with an embedded interactive calculator or a giant feature table carries a very different CWV profile than a plain blog post on the same domain. A site-wide average hides the exact template that’s failing. Group by page type, and the audit tells you which template to fix.

JavaScript rendering checks as an audit step

The checklist article covers the fixes for JS rendering (real <a href> links, server-side rendering, History API routing). The audit’s job is the method — actually opening the tools and looking. Google names the two: “To make sure that Google can still see your content after it’s rendered, use the Rich Results Test or the URL Inspection Tool and look at the rendered HTML” (JavaScript SEO basics). Compare the rendered DOM against view-source, per template, and confirm the content that should rank — headlines, prices, body copy, comparison tables — is actually present after render.

One thing that saves you from a false alarm: the render queue. Google warns “the page may stay on this queue for a few seconds, but it can take longer than that” (JavaScript SEO basics). When you’re auditing a freshly-published batch of integration pages, distinguish “this page is a genuine rendering failure” from “this page is just still waiting in the render queue.” Flagging the second as a bug wastes everyone’s time.

Content and competitive gap analysis: start from comparison and integration pages

Competitor benchmarking in most audits means a generic keyword gap or referring-domain diff. For SaaS, the higher-leverage version is structural and bottom-funnel. Rather than starting from a keyword list, I start from my competitors’ top-performing pages and work backward — a habit I describe in my enterprise SEO audit process. Applied to SaaS, that means pulling up your top two or three competitors’ comparison (“alternatives to X”) pages and their integration / marketplace directories, then diffing them against yours:

  • Which integrations do they have landing pages for that you don’t (even though you support the integration)?
  • Which “X vs. Y” and “alternatives to” pages exist for them and not for you?
  • Where do you both have a page but theirs is winning — and is it a content-depth gap or a technical one (rendering, thin template, missing internal links)?

This is deliberately narrower than “run the Content Gap tool.” Those bottom-funnel page types are where SaaS deals actually get won, and they’re the exact page types the checklist article named as SaaS’s differentiators — so the gap analysis targets them specifically rather than chasing top-funnel keyword volume.

Prioritizing findings

This is where audits succeed or fail, and it’s the step tools can’t do for you. Two complementary frameworks:

1. Impact/Effort Matrix. Sort every finding into the quadrant grid. As I put it in my enterprise SEO strategies piece: “Anything high-impact and low-effort is a quick win, so tackle those tasks first.” On a SaaS audit the quick wins are often a stray noindex on a comparison page, a broken internal link to a pricing page, or a missing render on one template — high impact, low effort.

2. Severity tiers. Bing bakes this into its own audit tool, which is a clean model to borrow. In Bing’s Site Scan, “issues detected during the scan are grouped into three categories and listed in order of severity”: Errors are “the most critical and should be addressed first,” Warnings “may impact SEO health, but are considered medium in terms of severity,” and Notices are “low priority and should be addressed only after resolving errors and warnings” (via Search Engine Journal).

Then cap the deliverable. From my audit reporting advice: “I highly recommend focusing on a few key issues and not a massive report of everything you looked at… I’ve found reporting on 5-10 main issues or opportunities will be better received and the changes are more likely to be implemented” (enterprise SEO audit). That reframes “we found 40 issues” from a boast into a prioritization problem: the audit isn’t done when you’ve found 40 things, it’s done when you’ve decided which 5–10 to ship. An audit that recommends fixing everything has failed at prioritization, not succeeded at thoroughness.

Putting it together: a repeatable audit cadence

The whole loop for a growing SaaS site: continuous automated monitoring catches regressions between passes; a quarterly-to-semiannual full audit scopes the crawl by property (marketing / docs / confirm-app-excluded), reconciles submitted-vs-crawled-vs- indexed to catch bloat, prioritizes CWV from field data split by template, verifies JS rendering with the render queue in mind, diffs your comparison and integration coverage against competitors, and ships a prioritized 5–10-item report rather than a 200-page one. No SaaS algorithm — just the normal pipeline, audited across three properties, with the discipline to fix what matters instead of everything you found.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin an expert quote first.