Guide SaaS SEO Audit
How to en réalité run a SaaS SEO audit — cadence, scoping the explorer à travers marketing site/docs/app, checking indexation pour bloat, Core Web Vitals on a JS-heavy stack, competitive gap analysis contre comparison and integration pages, and prioritizing findings au lieu de printing a 200-page report.
Langues
A SaaS SEO audit isn't a plus long checklist — it's the recurring traiter of running the examiner: exploration the marketing site (pendant que confirming the app and docs are handled deliberately, pas by accident), checking indexation pour bloat by reconciling submitted vs. crawled vs. indexé counts, testing Core Web Vitals with field données (pas un lab run) on a JavaScript-heavy stack, running a content gap analysis contre competitors' comparison and integration pages, and alors prioritizing findings by impact and effort au lieu de reporting everything vous trouvé. Cadence is continuous light monitoring plus a complet réussir quarterly-to-semiannually. The échec mode is a 200-page audit nobody reads.
TL;DR — A SaaS SEO audit is the traiter of reviewing votre software site to trouver and fix what’s hurting votre search performances — on a schedule, with a façon to decide ce que to fix premier. It’s différent from a checklist: a checklist is the liste of choses to regarder at; the audit is vous en réalité looking, on a cadence, and alors ranking ce que vous trouvé. The SaaS-specific partie is que you’re auditing three choses at une fois — a marketing site, aider docs, and an app — and making certain the app and signup pages aren’t accidentally in Google.
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
Ce que a SaaS SEO audit en réalité is
A lot of personnes think an “audit” signifie running a robot d’exploration and handing over everything it flags. It doesn’t. A robot d’exploration prints a liste; an audit is a person deciding qui items on que liste en réalité matter pour votre site and fixing ceux premier.
The sibling SaaS SEO checklist covers ce que to vérifier — free outils, pricing pages, comparison pages, integration pages, docs, JavaScript rendering, qui funnel pages to garder out of Google. Ce page is à propos de how vous run the examiner en utilisant que liste:
- Pick a cadence. Light, automatic monitoring tout the temps (explorer errors, Core Web Vitals, indexation changements), plus a bigger, thorough audit every few months.
- Decide ce que to explorer — and ce que pas to. Votre marketing site is the target. Votre aider docs obtenir leur propre attention. Votre app, dashboard, and signup pages devrait be confirmed to be out of Google, pas crawled by accident.
- Vérifier indexation. Are plus pages in Google que vous attendu? That’s “indexation bloat,” and it usually signifie thin or duplicate pages are diluting votre site.
- Vérifier speed the correct façon. Utiliser real-visitor speed données, pas un tester run on votre fast laptop — SaaS sites are usually construit with JavaScript, qui rend the difference bigger que la plupart personnes realize.
- Comparer yourself to competitors. Specifically, regarder at leur “us vs. them” comparison pages and leur integration pages, and voir ce que you’re manquant.
- Rank ce que vous trouvé. Fix the high-impact, low-effort choses premier. Don’t hand anyone a giant report of everything — nobody reads ceux.
Vouloir the practitioner version — with the exact outils, the three-number indexation vérifier, and the prioritization frameworks — switch to the Avancé tab.
TL;DR — An audit is a traiter, pas a plus long checklist. Google’s Martin Splitt: a technical audit “peut utiliser checklists and guidelines to do so, but it nécessite experience and expertise to adapt ces guidelines and checklists to le site vous audit.” Run it on a cadence appropriate to release frequency and risk. Scope the explorer by property — marketing site, docs, and app surfaces — and confirmer app/trial/dashboard URLs aren’t crawled and indexé by accident. Vérifier indexation bloat by reconciling submitted vs. crawled vs. indexé. Prioritize Core Web Vitals with field données, split by page template, parce que lab outils mislead on a hydration-heavy stack. Vérifier JS rendering with URL Inspection / Résultats enrichis and account pour the render-queue delay. Commencer le contenu gap analysis from competitors’ comparison and integration pages, pas a keyword liste. Alors prioritize with an Impact/Effort Matrix and/or severity tiers, and cap the report at a short, prioritized définir the team peut 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 traiter, pas a plus long checklist
I’ll ouvrir the façon I ouvrir every audit conversation, parce que the misconception is que persistent: a bon SaaS SEO audit n’est pas “run Screaming Frog, export everything it flags, send it over.” That’s a robot d’exploration report. An audit is ce que a human fait 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, “devrait assurez-vous aucun technical problèmes prevent or interfere with exploration or indexation. It peut utiliser checklists and guidelines to do so, but it nécessite experience and expertise to adapt ces guidelines and checklists to le site vous audit” (as covered by Moteur de recherche Journal). Que dernier clause is the whole job. The checklist is the input; the adaptation to votre spécifique site is the audit. And he’s blunt à propos de the tooling trap, aussi: “Please, please don’t follow votre outils blindly. Assurez-vous votre findings are meaningful pour the website in question and prendre the temps to prioritize les pour maximum impact” (SEJ coverage).
My version of the même point, from Ce que is an Enterprise SEO Audit & How To Do Un: “SEO checklists are impractical at scale. It’s a waste of temps to vérifier every little chose on every page parce que there’s simply aucun ROI in doing so, and aucun un is going to lire votre 200-page SEO audit.” Everything ci-dessous is written to éviter producing que 200-page report.
The standard disclaimer I attach to tout of ce: it’s my understanding of how ces systems fonctionner and how I’d approach the problem, pas a guarantee — moteur de recherches modifier constantly, so vérifier contre the principal docs in the Official Docs and Quotes tabs. And as with the checklist article: there’s aucun SaaS algorithm. The explorer → render → index → rank pipeline is identical to a recipe blog’s. What’s SaaS-specific ici is the scope (three properties au lieu de un) and a couple of échec modes, pas a special ranking system.
Cadence: continuous monitoring + a complet periodic réussir
There’s aucun Google- or Bing-mandated audit frequency, so ce is practitioner consensus, pas doctrine. The model que fonctionne pour 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 peut
noindexa template or break rendering à travers a whole page type overnight. Vous vouloir to catch que in days, pas at the suivant quarterly examiner. - A complet, comprehensive réussir on a slower cycle. In my enterprise-audit fonctionner I remarque que comprehensive audits “may occur every few months or yearly” (source). Pour a growing SaaS site I’d land on quarterly-to-semiannual, and scale que with how fast vous ship nouveau integration and comparison pages and how grand votre docs have grown — a company minting hundreds of programmatic pages a quarter nécessite the complet réussir plus souvent que a five-page marketing site fait.
The industry-common shorthand you’ll voir repeated à travers competitor guides is “complet audit quarterly, lighter monthly checks.” That’s a reasonable par défaut; simplement don’t treat it as a rule handed bas from a moteur de recherche. It isn’t un.
Scoping the explorer: marketing site, docs, and confirming the app is excluded
Here’s the SaaS-specific step almost aucun generic audit guide noms as a discrete step:
decide ce que you’re exploration avant vous explorer it, and segment by property. A SaaS
brand is usually three sites wearing un logo — www (marketing), docs. (docs), and
app. (the product) — and auditing les as un undifferentiated blob is how vous soit
miss problems or drown in noise.
Segment premier. In my audit traiter I lean on a site-structure view to slice le site “by spécifique pages, sections of a site, différent languages or regions, or a spécifique CMS or JavaScript framework” avant exploration — the SaaS translation is: explorer the marketing site as its propre scope, treat the docs subdomain as its propre property, and explicitly vérifier ce que the app is doing.
- Marketing site — the principal target. Ce is où the audit’s weight goes: comparison pages, pricing, free outils, integration pages, the blog.
- Docs — its propre crawl-budget property. Si docs live on a subdomain, it’s a separate Search Console property with its propre budget d’exploration (the checklist article covers the subdomain-vs-subfolder decision itself — I won’t re-litigate it ici). The auditing point is: explorer it separately so a bloated, thousands-of-pages docs tree doesn’t distort the marketing site’s numbers. Remarque Google’s propre scoping hint pour the Statistiques d’exploration report — it’s “aimed at advanced users” and “si vous have a site with fewer que a thousand pages, vous ne doit pas besoin to utiliser ce report” (Search Console Aider). A standalone SaaS marketing site is souvent sous a thousand URLs; it’s the docs and a growing integration library que push the total past the point où budget d’exploration starts to matter.
- App / trial / dashboard — confirmer exclusion, don’t assume it. Ce is the
distinct audit action: don’t simplement trust que
noindexand robots.txt are configuré correct (that’s the checklist’s job) — vérifier during the audit que/app/,/dashboard/,/signup/, and post-login URLs aren’t being crawled and indexé by accident. Scope a explorer at ceux paths and vérifier Search Console’s indexed-URL liste pour anything sous les que shouldn’t be là. “Ignoring the app” and “confirming the app is correctement excluded” ne sont pas the même chose — the audit fait the latter.
Checking indexation pour bloat
Indexation bloat is quand Google has plus pages of yours indexé que devrait be — thin, duplicate, or unintentionally-crawlable URLs diluting the index. The audit vérifier is a three-number reconciliation:
- URLs submitted in votre sitemap(s).
- URLs Google en réalité crawled.
- URLs en réalité indexé — from Search Console’s Page Indexation report, qui splits votre URLs into “indexed” and “not indexed” with a raison pour chaque exclusion.
Big, unexplained gaps entre ceux three numbers are the signal to chase. In my
audit méthode I flag que a typical site has some pages indexé que shouldn’t be, and
plenty of pages noindexed que devrait be indexé — so vous vérifier les deux directions: a
pricing or comparison page wrongly excluded, and /app/ or filtered doc-search URLs
wrongly inclus.
The word doing the fonctionner ci-dessus is unexplained. Splitt’s framing is exactly correct pour SaaS, qui sunsets old comparison and integration pages constantly: “A élevé number of 404s, pour instance, is attendu si vous supprimé a lot of content recently. That’s pas a problem… But si vous have an unexplained rise in 404 réponses, though, that’s something vous vouloir to point out and investigate” (SEJ coverage). A dip in indexé pages correct après vous pruned a hundred dead integration pages is a success, pas a crisis. The audit’s job is spotting the deviation vous can’t expliquer.
Google’s propre crawl-budget doc noms the root causer on the explorer side: “Sans guidance from vous, Google tries to explorer tout or la plupart of l’URLs que it knows à propos de on votre site” (Optimize votre budget d’exploration). On a SaaS site the “perceived inventory” it’s talking à propos de is filtered doc-search URLs, tag and pagination variants on the blog, and templated integration pages que went thin — exactly the stuff an indexation-bloat réussir exists to trouver.
Core Web Vitals on a JavaScript-rendered stack
Core Web Vitals is, per Google, “a définir of metrics que mesurer real-world utilisateur experience pour chargement performances, interactivity, and visual stability of lune page” (Recherche Google 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 moins que 0,1” (même doc). Ceux numbers aren’t the SaaS-specific partie. How vous mesurer les is.
The trap on a JavaScript-heavy SaaS marketing site — React, Suivant.js, Vue — is trusting a unique lab run (un PageSpeed Insights or Lighthouse tester). A lab tester souvent reflects a warm cache, a fast machine, and a fully-hydrated app shell — the experience a developer sees locally — pas the cold, render-blocking-JavaScript experience a first-time trial visitor on a slower connection en réalité obtient. Google’s propre lab-vs-field guidance is explicit à propos de qui to trust: “As a general rule, si vous have les deux field données and lab données pour a donné page, field données is ce que vous devez utiliser to prioritize votre efforts” (web.dev). Lab données encore earns its garder — it’s how vous reproduce and debug a problem — qui is pourquoi the même doc concludes “les deux lab données and field données are important parts of effective performances measurement” (web.dev). Pour prioritizing the audit, though, vous lead with field données (Search Console’s Core Web Vitals report, CrUX).
The second SaaS-specific déplacer: split field données by page template, pas site-wide average. A comparison page with an embedded interactive calculator or a giant fonctionnalité table carries a very différent CWV profile que a plain blog post on the même domain. A site-wide average hides the exact template that’s failing. Groupe by page type, and the audit indique vous qui template to fix.
JavaScript rendering checks as an audit step
The checklist article covers the fixes pour JS rendering (réel <a href> liens,
rendu côté serveur, History API routing). The audit’s job is the méthode — en réalité
opening the outils and looking. Google noms the two: “To assurez-vous que Google peut encore
voir votre content après it’s rendered, utiliser the Résultats enrichis Tester or the Inspection d’URL
Outil and regarder at the rendered HTML”
(JavaScript SEO basics).
Comparer the rendered DOM contre view-source, per template, and confirmer le contenu que
devrait rank — headlines, prices, corps copy, comparison tables — is en réalité présent
après render.
Un chose que saves vous from a faux alarm: the render queue. Google warns “lune page may stay on ce queue pour a few seconds, but it peut prendre plus long que que” (JavaScript SEO basics). Quand you’re auditing a freshly-published batch of integration pages, distinguish “ce page is a genuine rendering échec” from “ce page is simplement encore waiting in the render queue.” Flagging the second as a bug wastes everyone’s temps.
Content and competitive gap analysis: commencer from comparison and integration pages
Competitor benchmarking in la plupart audits signifie a generic keyword gap or referring-domain diff. Pour SaaS, the higher-leverage version is structural and bottom-funnel. Plutôt que starting from a keyword liste, I commencer from my competitors’ top-performing pages and fonctionner backward — a habit I décrire in my enterprise SEO audit traiter. Applied to SaaS, que signifie pulling up votre top two or three competitors’ comparison (“alternatives to X”) pages and leur integration / marketplace directories, alors diffing les contre yours:
- Qui integrations do ils have landing pages pour que vous don’t (même though vous prise en charge the integration)?
- Qui “X vs. Y” and “alternatives to” pages exist pour les and pas pour vous?
- Où do vous les deux have une page but theirs is winning — and is it a content-depth gap or a technical un (rendering, thin template, manquant lien internes)?
Ce is deliberately narrower que “run the Content Gap tool.” Ceux bottom-funnel page types are où SaaS deals en réalité obtenir won, and they’re the exact page types the checklist article named as SaaS’s differentiators — so the gap analysis targets les specifically plutôt que chasing top-funnel keyword volume.
Prioritizing findings
Ce is où audits succeed or échouer, and it’s the step outils can’t do pour vous. 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 rapide win, so tackle ceux tasks
premier.” On a SaaS audit the rapide wins are souvent a stray noindex on a comparison page,
a broken lien interne to a pricing page, or a manquant render on un template — élevé
impact, low effort.
2. Severity tiers. Bing bakes ce into its propre audit outil, qui is a clean model to borrow. In Bing’s Site Scan, “problèmes detected during the scan are grouped into three categories and listed in order of severity”: Errors are “the la plupart critical and devrait be addressed premier,” Warnings “may impact SEO health, but are considéré medium in terms of severity,” and Notices are “low priority and devrait be addressed seulement après resolving errors and warnings” (via Moteur de recherche Journal).
Alors cap the deliverable. From my audit reporting advice: “I highly recommend focusing on a few clé problèmes and pas a massive report of everything vous looked at… I’ve trouvé reporting on 5-10 principal problèmes or opportunities va be meilleur reçu and the changements are plus probable to be implemented” (enterprise SEO audit). Que reframes “we found 40 issues” from a boast into a prioritization problem: the audit isn’t fait quand you’ve trouvé 40 choses, it’s fait quand you’ve decided qui 5–10 to ship. An audit que recommends fixing everything has failed at prioritization, pas succeeded at thoroughness.
Putting it ensemble: a repeatable audit cadence
The whole loop pour a growing SaaS site: continuous automated monitoring catches regressions entre passes; a quarterly-to-semiannual complet audit scopes the explorer by property (marketing / docs / confirm-app-excluded), reconciles submitted-vs-crawled-vs- indexé to catch bloat, prioritizes CWV from field données split by template, verifies JS rendering with the render queue in mind, diffs votre comparison and integration coverage contre competitors, and ships a prioritized 5–10-item report plutôt que a 200-page un. Aucun SaaS algorithm — simplement the normal pipeline, audited à travers three properties, with the discipline to fix ce que matters au lieu de everything vous trouvé.
AI summary
A condensed prendre on the Avancé version:
- An audit is a traiter, pas a plus long checklist. Splitt: a technical audit peut utiliser checklists “but it nécessite experience and expertise to adapt ces guidelines and checklists to le site vous audit.” Patrick: “aucun un is going to lire votre 200-page SEO audit.” Aucun SaaS algorithm — même explorer → render → index → rank pipeline, audited à travers three properties.
- Cadence: continuous light automated monitoring (explorer errors, CWV, indexation deltas, ideally tied to deploys) + a complet réussir quarterly-to-semiannual, scaled to how fast vous ship integration/comparison pages.
- Scope the explorer by property: marketing site (principal), docs (propre budget d’exploration, explorer separately), and confirmer app/trial/dashboard URLs aren’t crawled and indexé by accident — vérifier, don’t assume.
- Indexation bloat = three-number reconciliation: submitted vs. crawled vs. indexé (Page Indexation report). Chase unexplained gaps; 404/index dips après a content prune are attendu, pas a crisis.
- Core Web Vitals: prioritize with field données, pas un lab run (lab reflects a warm-cache dev machine, pas a first-time JS-rendered visit). Split by page template.
- JS rendering: vérifier with Inspection d’URL / Résultats enrichis contre the rendered DOM; account pour the render-queue delay avant appel a fresh page broken.
- Content gap analysis: commencer from competitors’ comparison and integration pages, pas a generic keyword liste.
- Prioritize: Impact/Effort Matrix + severity tiers (Bing’s Error/Warning/Notice model); cap the report at 5–10 problèmes.
Documentation officielle
The principal sources behind the audit steps. A SaaS site is governed by ces the même as quelconque autre site.
- Comprendre Core Web Vitals and Search Console reports — the LCP/INP/CLS metric definitions and thresholds behind the performances step, and the Search Console CWV report vous pull field données from.
- Lab données vs. field données (web.dev) — pourquoi field données drives prioritization and lab données drives debugging; the core doc pour the JS-stack CWV section.
- Optimize votre budget d’exploration — “perceived inventory” and pourquoi undirected exploration accumulates l’URLs an indexation-bloat réussir exists to trouver.
- Page indexation report — the indexé vs. not-indexed breakdown pour the three-number reconciliation.
- Statistiques d’exploration report — explorer requêtes by réponse, fichier type, and objectif; remarque its propre “advanced users / a thousand pages” scoping caveat.
- Comprendre JavaScript SEO basics — the two rendering-verification outils (Inspection d’URL, Résultats enrichis Tester) and the render-queue delay.
Bing / Microsoft
- Site Scan — Bing Webmaster Outils Aider — Bing’s free on-demand technical audit outil, with the Error/Warning/Notice severity model borrowed in the prioritization section.
- Keeping content discoverable with sitemaps in AI-powered search (July 2025) — accurate
lastmodso a re-crawl audit peut distinguish genuinely-updated from stale pages.
Quotes from the source
On-the-record statements from Google, Bing, and Patrick Stox. Chaque lien deep-links to the quoted passage on the source page où the source page supports a text fragment.
Google — ce que a technical audit is pour (Martin Splitt, Search Central, 2025)
- “A technical audit, in my opinion, 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.” Lire the coverage (SEJ)
- “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.” Lire the coverage (SEJ)
- “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…” Lire the coverage (SEJ)
Google — indexation and explorer mechanics
- “Without guidance from you, Google tries to crawl all or most of the URLs that it knows about on your site.” Jump to quote
- “This report is aimed at advanced users. If you have a site with fewer than a thousand pages, you should not need to use this report or worry about this level of crawling detail.” (Statistiques d’exploration report) Jump to quote
Google — Core Web Vitals thresholds
- “Core Web Vitals is a set of metrics that measure real-world user experience for loading performance, interactivity, and visual stability of the page.” Jump to quote
- “strive to have LCP occur within the first 2.5 seconds of the page starting to load” · “strive to have an INP of less than 200 milliseconds” · “strive to have a CLS score of less than 0.1” Jump to quote
Google — lab vs. field données (web.dev)
- “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.” Jump to quote
- “Overall, both lab data and field data are important parts of effective performance measurement.” Jump to quote
Google — JavaScript rendering checks
- “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.” Jump to quote
- “The page may stay on this queue for a few seconds, but it can take longer than that.” Jump to quote
Bing — Site Scan severity tiers
- “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.” Lire the coverage (SEJ)
Patrick Stox — audit traiter and prioritization
- “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.” Jump to quote
- “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.” Jump to quote
- “These audits may occur every few months or yearly…” Jump to quote
- “Anything high-impact and low-effort is a quick win, so tackle those tasks first.” Jump to quote
#:~:text= fragment — treat
the SEJ liens as relay coverage and re-confirm contre the principal source avant
treating les as final. Google’s CWV and JavaScript SEO doc pages render partly via
JavaScript, so spot-check ceux fragments contre the live page. Qui audit devrait vous run correct now?
Two decisions come up at the commencer of almost every SaaS audit: how big a réussir ce is, and how you’ll rank whatever vous trouver.
A. Complet audit, or a light monitoring vérifier?
Q1. Did something spécifique break or drop — a trafic dip, a deploy, a template modifier?
- Yes → run a targeted vérifier on the affected property/template, pas a complet audit. Reproduce it (Inspection d’URL, field-data by template, indexed-URL liste) and fix the un chose. Arrêter ici.
- Aucun → continuer.
Q2. Has it been a quarter (or votre choisi full-pass interval), or did vous ship a grand batch of nouveau integration/comparison pages since the dernier complet audit?
- Yes → run the complet comprehensive réussir (scope → indexation → CWV → JS render → gap analysis → prioritize).
- Aucun → stay on continuous light monitoring (explorer errors, CWV regressions, indexation deltas). A complet audit on a site que hasn’t modifié is mostly re-confirming ce que vous déjà know.
B. You’ve got a pile of findings — how do vous rank les?
Q1. Fait the finding arrêter une page from being crawled, rendered, or indexé at tout?
- Yes → it’s an Error tier (Bing’s model) — la plupart critical, adresse premier.
Exemples: a comparison page wrongly
noindexed, a template que renders vide, the app accidentally indexé. - Aucun → continuer.
Q2. Is it high-impact and low-effort?
- Yes → rapide win — do it now regardless of tier. A broken lien interne to pricing, a stray canonical, un manquant render fix.
- Aucun → continuer.
Q3. Fait it plausibly déplacer rankings/conversions, at reasonable effort?
- Yes → Warning tier / medium priority — schedule it.
- Aucun / cosmetic / low-confidence → Notice tier — seulement après errors and warnings, and honestly, maybe jamais.
The one-line version: decide the size of the réussir by ce que modifié, and rank findings by “does it block indexing?” alors “is it a quick win?” — and cap ce que vous en réalité report at 5–10 items.
The mental models
1. Checklist vs. audit. A checklist is ce que to vérifier; an audit is checking it, on a cadence, adapted to ce site, with a prioritization step at the fin. Si votre “audit” is a robot d’exploration export, vous have a checklist result, pas an audit.
2. Three properties, un brand. A SaaS site is marketing + docs + app. Scope the explorer by property avant vous run it. The marketing site is the target; docs obtenir leur propre budget d’exploration; the app obtient confirmed excluded, pas ignored.
3. The three-number reconciliation. Submitted (sitemap) → Crawled → Indexé. Bloat and coverage problems les deux hide in the gaps entre ceux three numbers — and seulement the unexplained gaps are bugs. A dip vous peut expliquer (vous pruned dead pages) is a success.
4. Field données prioritizes; lab données debugs. On a JS-heavy stack, lead prioritization with field données (réel visitors), parce que a lab run reflects a warm-cache dev machine. Alors utiliser lab outils to reproduce and fix. Split les deux by page template — jamais trust a site-wide CWV average.
5. Two prioritization lenses que stack. Severity tier (fait it block explorer/render/index?) indique vous what’s an emergency. Impact/Effort quadrant indique vous what’s a rapide win. Utiliser les deux, alors cap the report at 5–10 items. Completeness n’est pas the goal; the correct 5–10 is.
6. “No site is perfect” is the professional standard. An audit que recommends fixing everything failed at prioritization. Finding 40 problèmes isn’t the finish line — deciding qui handful to ship is.
The audit-process checklist
Ce isn’t the SaaS page-type checklist (that’s the sibling article) — it’s the sequence pour running a complet audit réussir.
Avant vous explorer — scope
- Complet réussir or targeted vérifier decided (nothing broke → light monitoring, pas a complet audit).
- Explorer segmented by property: marketing site, docs subdomain, app.
- Marketing site définir as the principal explorer scope.
- Docs crawled separately so its size doesn’t distort marketing-site numbers.
- App / trial / dashboard paths explicitly vérifié — pas crawled-and-indexed by accident (vérifier Search Console’s indexed-URL liste, don’t assume config).
Indexation
- Three numbers reconciled: sitemap-submitted vs. crawled vs. indexé.
- Page Indexation report raisons reviewed — attendu exclusions vs. mistakes.
- Les deux directions vérifié: ranking pages wrongly excluded, junk pages wrongly inclus.
- 404 / indexed-count spikes classified as attendu (recent prune) or unexplained (investigate).
Core Web Vitals (JS stack)
- Field données (Search Console CWV / CrUX) utilisé to prioritize — pas a unique lab run.
- Results split by page template (comparison/interactive vs. plain content).
- Lab outils utilisé seulement to reproduce/debug the field-data échecs.
JavaScript rendering
- Rendered DOM vérifié (Inspection d’URL / Résultats enrichis) contre view-source, per template.
- Content que devrait rank confirmed présent après render.
- Render-queue delay accounted pour avant flagging a fresh page as broken.
Competitive gap analysis
- Top competitors’ comparison (“alternatives to”) pages diffed contre yours.
- Competitors’ integration/marketplace directories diffed contre yours.
- Commencé from competitors’ top pages, pas a generic keyword liste.
Prioritize & report
- Every finding sorted by severity tier (Error/Warning/Notice).
- Impact/Effort quadrant applied; rapide wins pulled forward.
- Deliverable capped at ~5–10 problèmes, pas a complet dump.
SaaS SEO audit — cheat sheet
Ce que to explorer, and how to treat it
| Property | Explorer it? | The audit action |
|---|---|---|
Marketing site (www) | Yes — principal target | Complet audit weight: comparison, pricing, outils, integrations, blog |
Docs (docs.) | Yes — separately | Propre budget d’exploration; don’t let its size distort marketing numbers |
App / dashboard (app.) | Confirmer it’s excluded | Vérifier /app/, /signup/, post-login aren’t crawled/indexé by accident |
The three-number indexation vérifier
| Number | Source | Gap signifie |
|---|---|---|
| Submitted | Votre sitemap(s) | — |
| Crawled | GSC Statistiques d’exploration / logs | Submitted ≫ crawled → discovery/crawl-budget problème |
| Indexé | GSC Page Indexation report | Crawled ≫ indexé → quality/duplication; indexé ≫ attendu → bloat |
Seulement unexplained gaps are bugs. A drop après pruning dead pages is a win.
Core Web Vitals thresholds (mesurer with field données, split by template)
| Metric | Threshold |
|---|---|
| LCP | < 2,5 s |
| INP | < 200 ms |
| CLS | < 0,1 |
Prioritization — two stacked lenses
| Lens | Question | Output |
|---|---|---|
| Severity tier (Bing model) | Fait it block explorer/render/index? | Error → Warning → Notice |
| Impact/Effort | Élevé impact, low effort? | Rapide win → do premier |
Alors cap the report at 5–10 problèmes. A 200-page audit nobody reads is a échec mode, pas thoroughness.
Cadence
- Continuous: explorer errors, CWV regressions, indexation deltas (tie to deploys).
- Complet réussir: quarterly-to-semiannual, faster si vous ship nombreux integration/comparison pages.
Outils pour running the audit
- Recherche Google Console — the backbone: Page Indexation report (three-number reconciliation, bloat, incorrect exclusions), Core Web Vitals report (field données, by page type), Inspection d’URL (rendered DOM per URL), Statistiques d’exploration (réponse codes, explorer objectif), and a separate property per subdomain (marketing, docs, app).
- Bing Webmaster Outils — Site Scan — Bing’s free on-demand technical audit, with a built-in Error/Warning/Notice severity model vous pouvez borrow pour prioritization même si vous don’t act on every Bing-specific finding.
- A robot d’exploration (Ahrefs Site Audit / Screaming Frog) — scope a explorer by property/chemin
to segment marketing vs. docs vs. app, surface
noindextags, robots.txt blocks, chaîne de redirectionss, thin programmatic pages, and orphaned integration/outil pages. - PageSpeed Insights / Lighthouse — lab outils pour reproducing and debugging a CWV problem the field données déjà flagged — pas pour prioritizing on leur propre.
- CrUX (Chrome UX Report) — field données at the origin/URL level to corroborate GSC’s Core Web Vitals report.
- Résultats enrichis Tester — the second rendering-verification outil Google noms; confirmer the rendered HTML matches ce que devrait rank.
- Server log fichier analysis — ground truth pour ce que bots en réalité crawled à travers properties, and où explorer is being wasted on app/parameter/filtered-doc URLs.
- Content Gap / competitor tooling (Ahrefs et al.) — but pointed at competitors’ comparison and integration pages premier, pas a generic keyword liste.
Snippets pour the audit
Ces are inspection helpers, pas automation — run les in votre navigateur’s DevTools console on a rendered page, or contre a explorer export.
Confirmer nav/cross-links are réel <a href> liens (DevTools console)
JS-rendered SaaS sites souvent “link” with onClick handlers Google can’t follow. Count
réel anchors vs. clickable non-anchors on lune page:
// Real, crawlable links on this page
const anchors = [...document.querySelectorAll('a[href]')]
.map(a => a.getAttribute('href'))
.filter(h => h && !h.startsWith('#') && !h.startsWith('javascript:'));
console.log('Real <a href> links:', anchors.length);
// Suspicious: clickable elements that are NOT anchors (likely JS-only navigation)
const fakeNav = [...document.querySelectorAll('[onclick], [role="link"]')]
.filter(el => el.tagName !== 'A');
console.log('Non-anchor clickable elements (audit these):', fakeNav.length, fakeNav);Spot app/dashboard paths in the rendered page’s propre liens
Rapide vérifier que the marketing page isn’t leaking explorer paths into /app/, /signup/,
or /dashboard/ que devrait stay out of the index:
const leaky = [...document.querySelectorAll('a[href]')]
.map(a => a.getAttribute('href'))
.filter(h => /\/(app|dashboard|signup|account|login)(\/|$|\?)/i.test(h || ''));
console.log('Links into app/auth paths (confirm these are intended):', leaky);Comparer rendered content vs. raw HTML (is content JS-injected?)
Si a template’s clé content seulement exists après render, that’s the app-shell risk. Rough signal — comparer the raw HTML length to the rendered DOM length:
// Run in console: rendered DOM text length right now
console.log('Rendered text length:', document.body.innerText.length);
// Then compare against "View Source" / fetch of the raw HTML for the same URL:
fetch(location.href).then(r => r.text()).then(html => {
const raw = new DOMParser().parseFromString(html, 'text/html');
console.log('Raw HTML text length:', raw.body ? raw.body.innerText.length : 0);
});
// A large gap (rendered ≫ raw) means content is JS-injected — verify Google renders it
// via the URL Inspection Tool, don't trust this heuristic alone.Regex pour finding app/auth URLs in a explorer export
Filter a Screaming Frog / explorer CSV of indexé URLs pour paths que shouldn’t be indexé:
/(app|dashboard|signup|account|login|onboarding|billing)(/|$|\?)Remember: ces snippets surface candidates. Confirmer the réel rendered state in the Inspection d’URL Outil avant vous record a finding — the render queue signifie une page peut regarder “broken” locally pendant que Google renders it fine.
Audit mistakes que créer noise au lieu de decisions
Appel a robot d’exploration export an audit
A outil peut enumerate réponse codes, directives, and liens; it ne peut pas decide qui findings matter pour ce SaaS site’s goals and architecture. Segment the properties, investigate the causes, prioritize by impact and effort, and attach an owner avant appel the fonctionner an audit.
Follow every outil warning blindly
Generic scoring systems ne peut pas know si a 404 follows an intentional integration-page prune or an accidental routing regression. Classify attendu versus unexplained changements and preserve the evidence behind the judgment.
Ignore the app au lieu de confirming its exclusion
The logged-in product may pas besoin SEO, but trial, signup, dashboard, and share URLs peut leak into the crawlable surface. Tester ceux paths and Search Console coverage explicitly; “we do not audit the app” n’est pas proof que it is excluded.
Treat un site-wide score as le résultat
Marketing, docs, and app surfaces have différent responsibilities, pendant que comparison, blog, and interactive templates have différent performances profiles. Report by property and template so a grand clean section ne fait pas hide a broken high-value cohort.
Report everything vous trouvé
A long problème inventory transfers prioritization fonctionner to the reader and reduces the chance anything ships. Lead with the petit définir of highest-impact, actionable findings; garder supporting observations in evidence, pas in the executive queue.
Classify explorer and indexation changements
Classify each URL or template change as expected, unexplained, or needs evidence.
Use the crawl export, sitemap status, Page Indexing reason, release notes, and content
retirement log I provide. For every row return:
1. Classification
2. Evidence supporting it
3. The missing evidence, if any
4. Whether it blocks crawl, rendering, indexing, or none
5. The next concrete check and owner
Examples of expected changes can include intentionally retired integration pages.
Do not assume every 404 or index-count drop is a defect, and do not excuse an unexplained
change without evidence.
Audit inputs:
[PASTE CSV + RELEASE/PRUNE LOG]Turn findings into a focused audit queue
Prioritize these SaaS SEO audit findings using both severity and impact/effort.
Separate the marketing site, docs, and app/trial surface. Return no more than 10
recommended actions, each with: affected cohort, evidence, SEO stage affected,
impact rationale, effort/dependency notes, owner, and a pass/fail verification step.
Do not rank an item highly only because a tool labels it an error. Do not invent traffic,
revenue, engineering effort, or affected URL counts. Put unsupported claims in a
"needs evidence" section rather than the action queue.
Findings:
[PASTE EXPORT AND CONTEXT] Submitted-to-crawled coverage
Metric: The share and count of sitemap-submitted URLs observed in explorer données or server logs, segmented by property and template. Ce que it indique vous: Si intended inventory is discoverable and receiving explorer attention. How to pull it: Join current sitemap URLs to Search Console Statistiques d’exploration où usable and, preferably, bot log records. Benchmark / realistic range: Establish a baseline by template and mettre à jour frequency; a universal ratio voudrait ignore site size, demande d’exploration, and intentional low-cadence pages. Cadence: Monitor monthly and autour major releases; examiner the trend in chaque complet audit.
Crawled-to-indexed reconciliation
Metric: The gap entre URLs crawled and URLs indexé, with Page Indexation raisons and attendu exclusions separated. Ce que it indique vous: Si explorer is reaching utile pages que Google peut index, or spending on duplicates, junk paths, and intentional exclusions. How to pull it: Reconcile robot d’exploration/log cohorts with Recherche Google Console’s Page Indexation export. Benchmark / realistic range: Utiliser le site’s documented intended-index inventory; the target is explained exclusions, pas 100% indexation. Cadence: Monthly as a leading health vérifier and quarterly-to-semiannually in the complet audit.
Unintended indexé app-surface URLs
Metric: Count of indexé /app/, /dashboard/, /signup/, trial, and share-page URLs que policy dit devrait be private or excluded. Ce que it indique vous: Si the product surface is leaking into search and creating index bloat. How to pull it: Maintain the approved chemin inventory and comparer it with Search Console Page Indexation exports and targeted site requêtes/Inspection d’URLs. Benchmark / realistic range: Zero pour cohorts explicitly designated private or excluded; document intentional public share pages separately. Cadence: Vérifier après routing/indexation releases and monthly.
Field Core Web Vitals réussir rate by template
Metric: The proportion of URL groupes with bon field LCP, INP, and CLS, segmented by comparison, pricing, outils, docs, and content templates. Ce que it indique vous: Si réel visitors recevoir acceptable chargement, interaction, and visual stability on the templates que matter. How to pull it: Utiliser Search Console’s Core Web Vitals report and CrUX field données; utiliser lab tests seulement to diagnose. Benchmark / realistic range: Bon field thresholds are LCP dans 2,5 seconds, INP sous 200 milliseconds, and CLS sous 0,1; comparer comme templates plutôt que a site-wide average. Cadence: Monitor monthly and après frontend releases, with quarterly trend examiner.
Ressources utiles
My connexe writing
- Ce que is an Enterprise SEO Audit & How To Do Un — my complet audit traiter: scoping and segmenting avant vous explorer, checking indexation, starting content research from competitors’ top pages, and the “5-10 main issues, not a 200-page report” reporting discipline. The parent pour ce article’s methodology.
- Enterprise SEO Strategies Pour Maximum Growth — où the Impact/Effort Matrix (“high-impact and low-effort is a quick win”) comes from, plus the broader scale-and-prioritization framing.
- Unlocking Growth Via Enterprise SaaS SEO — my SaaS guide on lune page types you’re auditing (product-led, comparison, integration) and pourquoi SaaS JS frameworks are “relatively newer than CMSs and less understood by SEOs.”
- JavaScript SEO Problèmes & Meilleur Practices — the rendering side you’re verifying: réel liens, History API, rendu côté serveur, and the render-queue delay.
My speaking
- Ce que I learned from auditing over 1 000 000 websites (Tech SEO Connecter) — the throughline behind ce whole article at scale: the la plupart courant problèmes weren’t the la plupart important ones, and aucun major site is technically perfect. My standing disclaimer s’applique — ce is my understanding, pas gospel.
From autour the industry
- Google Warns Contre Relying On SEO Audit Outil Scores — Moteur de recherche Journal — the coverage of Martin Splitt’s 2025 Search Central talk on audit methodology; the checklist-vs-audit and “don’t follow your tools blindly” framing.
- Comprendre Core Web Vitals and Search Console reports — Recherche Google Central — the LCP/INP/CLS thresholds and the Search Console CWV report vous pull field données from.
- Lab données vs. field données — web.dev — pourquoi field données drives prioritization on a JS-heavy stack.
- Comprendre JavaScript SEO basics — Recherche Google Central — the two rendering-verification outils and the render-queue delay.
- Optimize votre budget d’exploration — Recherche Google Central — “perceived inventory” and the explorer side of indexation bloat.
- Bing ‘Site Scan’ Outil Audits Sites Pour SEO technique Problèmes — Moteur de recherche Journal — the Error/Warning/Notice severity model borrowed in the prioritization section.
Testez vos connaissances: SaaS SEO Audit
Five questions on how to run a SaaS SEO audit — the traiter, pas the checklist. Pick an réponse pour chaque, alors vérifier.
Journal des modifications
Mis à jour le 25 juil. 2026.
Résumé éditorial et détails enregistrés des changements.Détails des changements
-
Les notes détaillées des changements sont actuellement disponibles en anglais.
Comparaison complète indisponible — aucun instantané antérieur n’a été archivé pour cette révision.
Mis à jour le 19 juil. 2026.
Résumé éditorial et détails enregistrés des changements.Détails des changements
-
Les notes détaillées des changements sont actuellement disponibles en anglais.
Comparaison complète indisponible — aucun instantané antérieur n’a été archivé pour cette révision.