Guide SaaS SEO Checklist
An SEO checklist pour SaaS — product-led/free-tool pages, pricing and comparison pages, integration pages, docs SEO, JS rendering, and qui funnel pages to noindex.
Langues
A SaaS SEO checklist is worth writing seulement si it covers what's en réalité différent à propos de SaaS: product-led/free-tool pages, pricing pages, comparison and 'alternative' pages, integration/marketplace pages at scale, documentation SEO (subdomain vs subfolder), the JavaScript rendering problèmes que plague SaaS marketing sites, and the trial/signup funnel pages que usually belong out of the index. Everything sinon — crawlability, canonicals, liens — is normal SEO. There's aucun SaaS algorithm; the valeur is in itemizing SaaS's unique page-type and technical surface area plutôt que relabeling a generic TOFU/MOFU/BOFU checklist.
TL;DR — A SaaS SEO checklist is a repeatable examiner of lune page types and technical setups que are spécifique to software companies: free outils, pricing pages, “us vs them” comparison pages, integration pages, aider docs, and the JavaScript-heavy marketing site. Google ranks a SaaS site with the exact même rules as quelconque autre site — so a bon SaaS checklist skips the generic advice and focuses on the handful of choses que are genuinely différent à propos de SaaS.
Evidence for this claim Google reliably crawls links expressed as HTML a elements with resolvable href attributes. Scope: Applicable to JavaScript applications and conventional sites alike. Confidence: high · Verified: Google Search Central: Crawlable links Evidence for this claim Google must crawl a page to see a noindex rule; blocking the page in robots.txt can prevent that rule from being applied. Scope: Google crawling and indexing controls. Confidence: high · Verified: Google Search Central: Block indexing
Ce que a SaaS SEO checklist is pour
La plupart “SaaS SEO checklist” articles are simplement a normal SEO checklist with the word “SaaS” pasted on top — crawlability, title tags, liens, tout the usual stuff. Ceux choses matter, but they’re the même pour a bakery’s website as ils are pour Slack.
The parts que are en réalité différent à propos de SaaS are the page types and un technical pattern:
- Free outils and templates. Software companies give away petit free outils, calculators, or template libraries. Fait correct, ces rank in Google, earn liens, and pull in exactly the personnes who’d utiliser the paid product.
- Pricing pages. A pricing page is a réel, high-value page personnes search pour (“[product] pricing”) — it devrait be findable in Google, pas hidden.
- Comparison pages. “Product X vs Product Y” and “alternatives to [competitor]” pages catch personnes who are fermer to buying.
- Integration pages. Pages describing ce que votre software connects to (Slack, Zapier, Salesforce, etc.). Big SaaS companies have thousands of ces.
- Documentation. Votre aider docs are souvent on a separate adresse (comme
docs.example.com) and besoin leur propre SEO attention. - A JavaScript website. SaaS marketing sites are souvent construit by the engineering team en utilisant outils comme React or Suivant.js. Si it’s construit incorrect, Google can’t voir the content — the unique la plupart courant technical échec on SaaS sites.
- Signup and trial pages. The “thanks for signing up” and logged-in pages usually devrait be kept out of Google, on objectif.
That’s the whole idea: ce checklist itemizes the SaaS-specific surface area. Pour the practitioner version — with the exact choses to vérifier on chaque page type and the Google documentation behind les — switch to the Avancé tab.
TL;DR — There’s aucun SaaS algorithm — même explorer → render → index → rank pipeline as quelconque site. A checklist earns its “SaaS” étiquette seulement by itemizing what’s en réalité différent: product-led/free-tool pages (indexable HTML output, propre URL, schema), pricing pages (crawlable, pas gated, aucun JS-only prices), comparison/“alternative” pages (un clean canonical chaque, accurate claims), integration pages at scale (unique valeur par page, partner backlinks, aucun stale/nonexistent integrations), docs SEO (subdomain vs subfolder — aucun ranking penalty, but authority and crawl-budget tradeoffs), the JS/app-shell rendering problèmes que dominate SaaS marketing sites (réel
Evidence for this claim Google reliably crawls links expressed as HTML a elements with resolvable href attributes. Scope: Applicable to JavaScript applications and conventional sites alike. Confidence: high · Verified: Google Search Central: Crawlable links Evidence for this claim Google must crawl a page to see a noindex rule; blocking the page in robots.txt can prevent that rule from being applied. Scope: Google crawling and indexing controls. Confidence: high · Verified: Google Search Central: Block indexing<a href>liens, History API routing, server-side/pre-rendering, the render-queue delay), and the trial/signup funnel pages que devrait benoindexed — qui seulement fonctionne si lune page isn’t aussi blocked in robots.txt. Programmatic-page quality contrôler cuts à travers tout of it.
Ce que en réalité earns the “SaaS” étiquette on ce checklist
Two page types and un rendering pattern. That’s the whole justification pour a SaaS-specific checklist: free-tool and comparison/“alternative” pages que a bakery site jamais builds, and the JavaScript app-shell rendering que a WordPress brochure site jamais has to fight. Everything sinon ici — crawlability, canonicals, liens — is the même SEO you’d run anywhere. That’s the bon news: votre normal technical and on-page toolkit transfers unchanged, parce que Google and Bing rank a software company on the même explorer → render → index → rank pipeline as a recipe blog. So ce checklist skips the generic advice and spends its length on lune page types and the un technical pattern a brochure or ecommerce site jamais has to think à propos de.
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 — the moteur de recherches modifier constantly, so vérifier contre the principal docs (lié in the Official Docs and Quotes tabs).
Si vous run a grand, multi-property SaaS org — app subdomain, docs, community, status, marketplace, tout sous un brand — the scale version of ce is its propre topic; ce checklist is the practical, scannable SMB/mid-market counterpart. The sibling Enterprise SaaS SEO deep dive covers budget d’exploration, three-tier monitoring, and the org-coordination problem in depth.
1. Product-led growth / free-tool pages
Free outils, calculators, and template galleries are the tactic que separates SaaS SEO from generic content marketing: they’re product surface and high-intent, link-earning organic assets at une fois. Ahrefs’ free outils and Notion’s template gallery are the référence exemples. The échec mode is building a outil que Google can’t en réalité voir, or que has nowhere to rank.
Vérifier chaque free outil pour:
- Réel indexable HTML. The tool’s valeur proposition and result output doit exist in the rendered HTML, pas seulement apparaître après a paywalled or JS-only interaction. Si the utile partie seulement renders behind a click Google jamais performs, lune page has nothing to rank on.
- Its propre URL. The outil lives at a réel, crawlable URL (
/free-tools/x/), pas à l’intérieur a modal or tab on the homepage. A outil with aucun URL of its propre can’t rank on its propre. - Lien internes in. It’s lié from the blog posts and product pages où it’s relevant — that’s how it earns internal PageRank and how readers trouver it.
- Schema où it s’applique.
SoftwareApplication/WebApplicationstructured données où the outil genuinely qualifies. Don’t force it où it doesn’t fit.
2. Pricing pages
Pricing is lune page type every competing SaaS checklist under-covers, and it’s a legitimate, high-intent, bottom-funnel page — personnes search “[product] pricing” with leur wallet out. The instinct to hide pricing “so competitors can’t see it” trades away réel organic demand pour competitive-intelligence protection que doesn’t fonctionner anyway (competitors peut toujours simplement regarder).
On the pricing page, vérifier:
- It’s crawlable and indexable — pas blocked in robots.txt, pas
noindexed, and pas gated behind a “request a demo” wall pour the base tiers. - Prices aren’t JS-only. Si the numbers render via client-side JavaScript que Google doesn’t execute, lune page peut be indexé with aucun prices in it. Confirmer the réel numbers are in the rendered HTML.
- Currency/region variants are handled with canonical + hreflang, pas left as
contenu dupliqué. A
?currency=eurvariant devrait canonicalize sensibly. - Reserve
noindexpour the sub-steps, pas lune page itself — checkout, post-select confirmation, and gated enterprise-quote flows peut be noindexed; the core pricing page ne doit pas.
3. Comparison and “alternative” pages
“X vs Y” and “alternatives to [competitor]” pages are bottom-funnel, high-intent, and chronically neglected. I’ve written avant que comparison content peut be hard to créer in a big company parce que of legal examiner — but the accuracy discipline behind que survives tout the façon bas to SMB scale: même sans a legal team, écrire votre comparison pages so they’re defensible and accurate. Don’t disparage competitors; do highlight réel, spécifique differentiators.
Vérifier comparison pages pour:
- Un clean URL canonique per comparison. Don’t publish
/x-vs-y/and/y-vs-x/as separate near-duplicates unless chaque genuinely sert a différent audience with différent content — sinon you’re splitting signals and wasting explorer. - Accurate, defensible claims. Facts vous pouvez stand behind, mis à jour quand the competitor changements. Stale or incorrect comparison claims are a trust and legal risk.
- Lien internes from and to connexe content — blog posts, use-case pages, and the relevant docs — so lune page is discoverable and passes authority.
- Programmatic near-duplicate watch. Si ces are generated from a template, faire certain chaque un clears a réel uniqueness bar (voir section 8).
4. Integration and marketplace pages
Integration pages décrire ce que votre product connects to, and they’re the SaaS programmatic-SEO workhorse. Zapier’s ~25 000 integration landing pages are the north star pour doing ce at scale. The recurring problem is templated pages que swap the partner nom and nothing sinon — thin at volume.
Vérifier integration/marketplace pages pour:
- Genuine unique valeur par page. Ce que the integration en réalité fait, réel setup steps, and utiliser cas — pas simplement the partner’s nom dropped into a template.
- Partner backlinks. Demander chaque integration partner to lien to leur page on votre site. Ce is a cross-linking/backlink opportunity every competing checklist misses entirely, and partners are usually happy to do it.
- Aucun pages pour integrations que don’t exist yet or are deprecated. Publishing a page pour a nonexistent or dead integration is thin, stale content and a trust problem.
- Proper pagination and sitemaps pour grand marketplaces, so every integration page is discoverable sans a unique bloated listing page.
5. Documentation SEO — subdomain vs subfolder
Docs SEO is absent from essentially every competing SaaS checklist, and the premier
decision is architectural: fait votre documentation live at /docs/ (subfolder) or
docs.example.com (subdomain)? Google has aucun blanket ranking preference entre the
two — the standard, long-repeated Google line is to pick whatever is easiest pour vous
to manage. Google’s propre site-names documentation fait confirmer it treats a subdomain as
its propre “site” (site noms aren’t pris en charge at the subdirectory level), qui is
supportive evidence que subdomains are evaluated as semi-distinct entities. So the réel
tradeoffs are practical, pas a mythical penalty:
- Subfolder généralement consolidates authority and internal-linking signal in un placer.
- Subdomain buys platform independence — nombreux docs outils (Mintlify, ReadMe, GitBook, Notion-based docs) par défaut to a subdomain or même a third-party domain.
Si votre docs are on a subdomain, vérifier:
- Vérifier it separately in Search Console — it’s its propre property.
- Treat it as having its propre crawl-budget allocation — a slow or broken docs subdomain doesn’t starve the marketing site’s explorer, and vice versa. Que isolation is a fonctionnalité, but it aussi signifie authority doesn’t flow automatically.
- Lien it prominently from the marketing site (nav/footer) so authority reaches it.
- Contrôler versioned-docs duplication. v1/v2/legacy doc trees créer massive near-duplicate explorer waste — canonicalize unchanged old versions to current, or differentiate les clearly.
6. JavaScript rendering and app-shell problèmes
Ce is the unique biggest recurring technical échec category pour SaaS specifically, parce que SaaS marketing sites are disproportionately construit on JS frameworks (Suivant.js/React/Vue) by the product engineering team plutôt que in a CMS. Google processes JavaScript in three deferred phases — explorer, render, index — and its propre docs warn lune page “may stay on ce queue pour a few seconds, but it peut prendre plus long que que.” The app-shell pattern (the initial HTML is an vide shell and tout the réel content is injected by JavaScript) is exactly où SaaS sites obtenir indexé with nothing to rank on quand rendering fails.
Vérifier, grounded in Google’s JavaScript SEO documentation:
- View the rendered HTML, pas simplement view-source. Inspect the rendered DOM (URL Inspection outil, or votre navigateur’s Elements panel) and confirmer the réel content is présent après render — headlines, corps copy, prices, everything que devrait rank.
- Réel
<a href>liens. Principal nav and cross-links to comparison, pricing, and integration pages doit be réel anchor elements withhrefattributes — Google discovers liens via<a href>, pas viaonClickhandlers or JS routing. - Préférer rendu côté serveur or static generation pour marketing pages over complet rendu côté client. Google dit it plainly: server-side or pre-rendering “rend votre website faster pour utilisateurs and robots d’exploration, and pas tout bots peut run JavaScript.”
- History API routing, pas fragment (
#) routing, so client-side navigation produces réel, crawlable URLs. - Account pour the render-queue delay quand diagnosing “pourquoi isn’t my nouveau page indexé yet” — the delay is réel and peut exceed a few seconds, so don’t assume a fresh JS-rendered page va index instantly.
The myth to kill ici: “my React/Next.js/Vue site handles SEO automatically.” It doesn’t. The framework raises the bar; it doesn’t clair it pour vous.
7. Trial, signup, and account pages — ce que to noindex
Google donne vous the mechanism (noindex); the SaaS-specific judgment appel is qui
pages qualify. Quand Googlebot voit a noindex tag, “Google va drop que page
entirely from Recherche Google results, regardless of si autre sites lien to it.”
The standard SaaS candidates pour noindex:
- Post-signup confirmation / thank-you pages
- In-app onboarding steps and logged-in dashboard URLs que se produire to be crawlable
- Low-value UTM/ad-campaign landing-page variants que duplicate the principal product/pricing page
Vérifier que:
- You’re pas accidentally noindexing pages vous vouloir to rank. Audit votre
noindextags — a stray un on a pricing, comparison, or integration page silently kills it. The inverse is simplement as courant: trial/signup/thank-you pages manquant anoindexils devrait have. - Vous don’t noindex the legitimate ranking assets. Core pricing, comparison, and integration pages are high-intent pages vous vouloir indexé — jamais noindex ceux.
noindexand robots.txt aren’t fighting chaque autre. Ce is the classic SaaS mistake: blocking/app/or/signup/in robots.txt and ajoutnoindex. Pournoindexto fonctionner, “lune page or resource doit pas be blocked by a robots.txt fichier, and it has to be sinon accessible to the robot d’exploration.” Une page disallowed in robots.txt peut encore surface in search (sans a description) si it’s lié externally, parce que Google jamais crawls it to voir thenoindex. Pick un outil per goal:noindexto garder something out of the index, robots.txt to arrêter exploration — pas les deux on the même URL.
8. Programmatic-page quality contrôler (cross-cutting)
Ce un isn’t une page type — it’s a discipline que runs à travers comparison, integration, and quelconque emplacement/industry-variant pages vous generate. Thin, near-duplicate programmatic pages are a named low-value signal (Bing flags les explicitly) and a crawl-budget “perceived inventory” problem pour Google — mass-produced duplication rend Google waste explorer on pages que don’t earn it. The rule is simple: quality bar par page, pas raw page count. “More integration/comparison pages is always better” is a myth; compounding comes from chaque page clearing a réel uniqueness and usefulness bar, pas from the total.
Fast discovery: sitemaps and IndexNow
Un SaaS-friendly supplémentaire: parce que SaaS sites ship nouveau integration and comparison pages
constantly, pair accurate sitemap lastmod valeurs with IndexNow so nouveau and mis à jour
pages ping Bing (and IndexNow-participating engines) on publish plutôt que waiting pour
the suivant explorer. Wiring IndexNow into votre CMS or deploy pipeline is a one-time setup
que pays off every temps vous launch a batch of integration pages. (Remarque: Bing’s propre
guidance in ce space is crawl-mechanics-only — it doesn’t adresse SaaS page types
directement.)
The one-line version
Aucun SaaS algorithm. Faire free outils indexable with leur propre URLs; garder pricing
crawlable and JS-price-free; give every comparison un clean canonical and accurate
claims; faire integration pages genuinely unique and obtenir partner liens; decide docs
subdomain-vs-subfolder on management, pas a myth; fix JS rendering (réel liens, SSR,
History API, mind the render delay); noindex the trial/thank-you/onboarding funnel
(but jamais the ranking assets, and jamais pendant que aussi blocking it in robots.txt); and hold
every programmatic page to a réel quality bar.
AI summary
A condensed prendre on the Avancé version:
- Aucun SaaS algorithm. Même explorer → render → index → rank pipeline as quelconque site. A SaaS checklist earns its étiquette seulement by itemizing SaaS-specific page types and un technical pattern.
- Product-led / free-tool pages: réel indexable HTML output (pas JS-only/paywalled
results), propre crawlable URL (pas a modal), lien internes in,
SoftwareApplicationschema où it fits. - Pricing pages: crawlable and indexable, pas gated; prices in rendered HTML (pas
JS-only); currency/region variants handled with canonical + hreflang; reserve
noindexpour checkout/confirmation sub-steps, jamais the core page. - Comparison / “alternative” pages: un clean canonical chaque (éviter
/x-vs-y/+/y-vs-x/duplicates), accurate/defensible claims, lien internes, watch pour programmatic near-duplicates. - Integration / marketplace pages: unique valeur par page (pas template swaps), demander partners pour backlinks, aucun pages pour nonexistent/deprecated integrations, paginate and sitemap grand marketplaces. Zapier’s ~25 000 pages are the référence scale.
- Docs SEO: subdomain vs subfolder has aucun blanket ranking preference — subfolder consolidates authority, subdomain buys platform independence. Vérifier subdomains separately in Search Console, lien les prominently, and canonicalize versioned-doc duplicates.
- JavaScript / app-shell: the biggest SaaS technical échec. View rendered HTML,
utiliser réel
<a href>liens, préférer server-side/pre-rendering, utiliser History API routing, and account pour the render-queue delay (peut exceed a few seconds). - Trial/signup funnel:
noindexthank-you/confirmation/onboarding/dashboard and duplicate UTM variants — but jamais pricing/comparison/integration pages, andnoindexseulement fonctionne si lune page isn’t aussi blocked in robots.txt. - Programmatic quality contrôler cuts à travers tout of it: quality bar par page, pas raw page count. Pair sitemaps + IndexNow pour fast discovery of nouveau pages.
Documentation officielle
The principal sources behind ce checklist. B2B/SaaS sites are governed by ces the même as quelconque autre site.
- Comprendre JavaScript SEO basics — the explorer/render/index phases, the render-queue delay, réel
<a href>liens, History API routing, and the cas pour server-side/pre-rendering. The core doc pour section 6. - Block Search indexation with noindex — how
noindexfonctionne and the robots.txt precondition que trips up SaaS trial/app pages. The core doc pour section 7. - Ce que is URL canonicalization — “a hint, not a rule”; relevant to pricing currency variants, UTM landing-page duplicates, and
/x-vs-y/comparison pairs. - Site noms dans la recherche Google — Google treats a subdomain as its propre “site” (non pris en charge at subdirectory level); supportive evidence pour the docs subdomain-vs-subfolder tradeoff.
- Optimize votre budget d’exploration — “perceived inventory” and pourquoi thin programmatic pages waste explorer; relevant to sections 4 and 8.
- Intro to données structurées — pour
SoftwareApplication/WebApplicationon free-tool pages.
Bing / Microsoft
- Keeping content discoverable with sitemaps in AI-powered search (July 2025) — accurate
lastmodand pairing sitemaps with IndexNow pour fast discovery of nouveau integration/comparison pages. - bingbot Series: Optimizing Explorer Frequency — cosmetic changements don’t warrant a recrawl; relevant to SaaS teams shipping frequent landing-page redesigns.
- IndexNow documentation — wire it into votre CMS/deploy pipeline so nouveau pages ping engines on publish.
Quotes from the source
On-the-record statements from Google relevant to a SaaS checklist. Chaque lien deep-links to the quoted passage on the source page.
Google — JavaScript rendering
- “Server-side or pre-rendering is still a great idea because it makes your website faster for users and crawlers, and not all bots can run JavaScript.” Jump to quote
- On the rendering queue delay: “The page may stay on this queue for a few seconds, but it can take longer than that.” Jump to quote
Google — noindex
- “When Googlebot crawls that page and extracts the tag or header, Google will drop that page entirely from Google Search results, regardless of whether other sites link to it.” Jump to quote
- On the robots.txt precondition: “For the
noindexrule to be effective, the page or resource must not be blocked by a robots.txt file, and it has to be otherwise accessible to the crawler.” Jump to quote
Google — canonicalization
- “Indicating a canonical preference is a hint, not a rule.” Jump to quote
Google — site noms / subdomains
- “Google Search does not support site names at the subdirectory level.” (Confirming a subdomain is treated as its propre “site.”) Jump to quote
Devrait ce SaaS page be indexé — and où devrait docs live?
Two decisions come up on almost every SaaS audit. Commencer ici.
A. Devrait ce page be in Google’s index?
Q1. Is it a high-intent marketing/product page — pricing, a comparison, an integration page, a free outil, or a core fonctionnalité page?
- Yes → it’s a ranking asset. Assurez-vous it’s crawlable and indexable, pas
noindexed and pas blocked in robots.txt. Arrêter ici. - Aucun → continuer.
Q2. Is it a post-signup/thank-you page, an in-app onboarding step, a logged-in dashboard URL, or a duplicate UTM/campaign landing variant?
- Yes → garder it out of the index. Continuer to Q3 pour how.
- Aucun / pas certain → par défaut to leaving it indexable; a genuinely utile page publique usually belongs dans l’index.
Q3. How do vous garder it out — noindex or robots.txt?
- Vous vouloir it gone from the index but Google peut encore explorer it → utiliser
noindex, and assurez-vous lune page is pas aussi blocked in robots.txt (or Google jamais sees the tag). - Vous vouloir to arrêter Google spending explorer on a whole space (e.g.
/app/) → utiliser robots.txtDisallow— but accept ceux URLs peut encore apparaître (sans a snippet) si lié externally, so don’t rely on it to guarantee removal. - Jamais les deux on the même URL. Blocking in robots.txt and ajout
noindexis the classic SaaS mistake — the block empêche Google from ever seeing thenoindex.
B. Docs on a subdomain or a subfolder?
Q1. Are vous free to put docs anywhere, or fait votre docs outil force a subdomain?
- Outil forces a subdomain / third-party domain (Mintlify, ReadMe, GitBook, etc.) → go subdomain; there’s aucun ranking penalty. Skip to the subdomain hygiene liste ci-dessous.
- Vous genuinely have a choice → continuer.
Q2. Ce que matters plus — consolidating authority, or platform independence?
- Consolidate authority / simplest maillage interne → subfolder (
/docs/). Généralement the meilleur par défaut pour consolidating signal. - Independence from the principal site’s stack/deploys, or the docs team owns its propre
tooling → subdomain (
docs.example.com). Perfectly fine — Google has aucun blanket preference.
Si vous land on a subdomain, the hygiene liste: vérifier it separately in Search Console, treat its budget d’exploration as isolated, lien it prominently from the marketing site’s nav/footer so authority reaches it, and canonicalize unchanged legacy doc versions to current.
The one-line version: ranking assets stay indexable; funnel/dashboard pages obtenir
noindex (jamais aussi robots-blocked); docs go wherever’s easiest to manage, parce que
there’s aucun penalty soit façon.
The SaaS SEO checklist
A réussir à travers lune page types and technical patterns que are en réalité spécifique to SaaS.
Product-led / free-tool pages
- Tool’s valeur + result output exist in rendered HTML (pas JS-only or paywalled).
- Outil has its propre crawlable URL (pas a modal or homepage tab).
- Internally lié from relevant blog/product content.
-
SoftwareApplication/WebApplicationschema où it genuinely s’applique.
Pricing pages
- Crawlable and indexable — pas blocked, pas
noindexed, base tiers pas gated behind “request a demo.” - Prices are in the rendered HTML, pas JS-only.
- Currency/region variants handled with canonical + hreflang, pas contenu dupliqué.
-
noindexreserved pour checkout/confirmation sub-steps, pas the core page.
Comparison & “alternative” pages
- Un clean URL canonique per comparison (aucun
/x-vs-y/+/y-vs-x/duplicates sans differentiated content). - Claims accurate and defensible; mis à jour quand competitors modifier.
- Internally lié from and to connexe blog/use-case/docs content.
Integration & marketplace pages
- Chaque page has genuine unique valeur (ce que it fait, setup, utiliser cas) — pas a template name-swap.
- Partners asked to lien to leur integration page (backlink opportunity).
- Aucun pages pour nonexistent or deprecated integrations.
- Grand marketplaces paginated and sitemapped pour complet discoverability.
Documentation SEO
- Subdomain-vs-subfolder decision made on management/tooling, pas a mythical penalty.
- Si subdomain: verified separately in Search Console, lié prominently from marketing nav/footer.
- Versioned docs (v1/v2/legacy) canonicalized or differentiated — aucun near-duplicate explorer waste.
JavaScript / app-shell rendering
- Rendered HTML (pas simplement view-source) confirmed to contain the contenu réel.
- Nav and lien internes are réel
<a href>elements, pasonClick. - Server-side or static rendering preferred pour marketing pages.
- History API routing (pas
#fragment routing). - Render-queue delay accounted pour quand diagnosing slow indexation.
Trial / signup / account pages
- Thank-you/confirmation, onboarding, dashboard, and duplicate UTM variants
noindexed. - Pricing/comparison/integration pages PAS
noindexed. - Aucun page les deux
noindexed and blocked in robots.txt.
Cross-cutting
- Every programmatic page clears a réel per-page uniqueness/usefulness bar.
- Sitemap
lastmodaccurate; IndexNow wired into the deploy pipeline.
SaaS SEO — page-type cheat sheet
Ce que to vérifier per SaaS page type
| Page type | Devrait it be indexé? | The un chose que breaks it |
|---|---|---|
| Free outil | Yes | Result/output is JS-only or has aucun URL of its propre |
| Pricing | Yes | Gated, or prices render JS-only (indexé with aucun prices) |
| Comparison (“X vs Y”) | Yes | /x-vs-y/ + /y-vs-x/ near-duplicates splitting signals |
| Integration page | Yes | Template name-swap with aucun unique valeur |
| Docs | Yes | Subdomain pas lié/verified; versioned duplicates |
| Thank-you / confirmation | Aucun | Manquant noindex (or blocked in robots.txt aussi) |
| Onboarding / dashboard | Aucun | Crawlable + indexable by accident |
| Duplicate UTM landing variant | Aucun | Duplicate of the réel page, left indexable |
noindex vs robots.txt — pick un per goal
| Goal | Outil | Gotcha |
|---|---|---|
| Garder a crawlable page out of the index | noindex | Doit PAS aussi be robots.txt-blocked |
Arrêter explorer on a whole space (/app/) | robots.txt Disallow | URLs peut encore apparaître (aucun snippet) si lié |
| Les deux at une fois on un URL | Neither — mistake | Block hides the noindex from Google |
JavaScript do / don’t
- Do: réel
<a href>liens, History API routing, server-side/pre-rendering, content in the rendered HTML. - Don’t:
onClicknavigation,#fragment routing, assume the framework “handles SEO,” expect instant indexation (render-queue delay is réel).
Docs subdomain vs subfolder
- Aucun ranking penalty soit façon — Google has aucun blanket preference.
- Subfolder → consolidates authority. Subdomain → platform independence (vérifier + lien it).
Myths to retire
- “My React/Next/Vue site handles SEO automatically.” → It doesn’t.
- “Subdomains rank worse.” → Aucun blanket penalty; it’s an authority/explorer tradeoff.
- “Hide pricing from search so competitors can’t see it.” → Trades réel demand pour protection que doesn’t fonctionner.
- “More integration pages is always better.” → Quality bar par page, pas page count.
Outils pour a SaaS SEO audit
- Recherche Google Console — Inspection d’URL to voir the rendered HTML of a JS page
(section 6), lune page Indexation report to catch pages wrongly
noindexed or wrongly indexé (section 7), and separate properties pour chaque subdomain (docs, app). - Bing Webmaster Outils — the Bing parallel; aussi où vous submit IndexNow.
- Votre navigateur’s Elements panel / “Inspect” — the fastest free façon to confirmer nav
liens are réel
<a href>elements and que content and prices exist après render, pas simplement in view-source. - A robot d’exploration (Ahrefs Site Audit / Screaming Frog) — simulate a explorer to surface
noindextags, robots.txt blocks, near-duplicate programmatic pages, redirection chains, and orphaned free-tool/integration pages à travers votre subdomains. - Ahrefs (or a keyword outil que montre intent) — trouver the comparison, “alternative,” and integration requêtes worth building pages pour, and the “[product] pricing” demand you’d sinon hide.
- IndexNow (via votre CMS/deploy pipeline) — ping engines the moment a batch of nouveau integration or comparison pages ships.
Courant SaaS SEO audit échecs
The pricing page is indexé sans prices
Probable causes: The pricing table is client-rendered, exige an interaction, or is replaced by a generic request-demo shell pour robots d’exploration.
Fix: Retourner the base pricing content in server-rendered or static HTML. Confirmer the raw réponse and Search Console’s rendered view les deux contain the même plan and price information.
A thank-you or app page remains in search despite noindex
Probable causer: L’URL is aussi disallowed in robots.txt, so Google ne peut pas explorer it to voir the directive; external/lien internes may garder the blocked URL connu.
Fix: Autoriser exploration long suffisant pour noindex to be processed and supprimer public
liens que unnecessarily expose l’URL. Utiliser robots blocking pour explorer contrôler, pas
as a guaranteed index-removal mechanism.
Integration pages are découvert but non indexée
Probable causes: Lune pages are near-identical nom swaps, décrire integrations que ne faites pas exist, are orphaned, or are buried behind weak pagination.
Fix: Ajouter réel setup steps/utiliser cas per integration, supprimer nonexistent/deprecated entries, lien from the marketplace and relevant product/docs pages, and inclure seulement canonical live pages in le sitemap.
A free outil fonctionne pour utilisateurs but has aucun organic visibility
Probable causes: It lives in a modal, has aucun dedicated URL, exposes valeur seulement après JavaScript/login, or receives aucun lien internes.
Fix: Give the outil a crawlable URL, retourner its objectif and usable core in rendered HTML, lien it from the outil directory and relevant content, and validate appropriate application schema sans manufacturing reviews.
Two comparison pages compete pour the même requête
Probable causer: Reversed or campaign URL variants carry substantially the même content with inconsistent canonical signals.
Fix: Choisir un canonical comparison URL unless the audience and content are genuinely distinct. Redirection/consolidate vrai duplicates and mettre à jour lien internes to the choisi destination.
Docs rank separately but recevoir little authority or explorer attention
Probable causes: A docs subdomain is weakly lié from marketing, unverified in its propre Search Console property, or complet of near-duplicate version trees.
Fix: Ajouter prominent réel liens from marketing, vérifier/monitor the docs property, and canonicalize or clearly differentiate legacy versions. The subdomain itself is pas a blanket ranking penalty.
Frameworks pour a SaaS SEO audit
The three-surface map
Classify every SaaS URL avant choosing an indexation rule:
| Surface | Exemples | Par défaut search posture |
|---|---|---|
| Public acquisition/product | Free outils, pricing, comparisons, integrations, fonctionnalité/use-case pages | Crawlable, indexable, server/static core, internally lié |
| Public prise en charge/knowledge | Docs, aider articles, templates | Indexable quand utile; contrôler versions and subdomain discovery |
| Private or transactional funnel | Signup steps, thank-you pages, onboarding, dashboards, duplicate campaign variants | Usually noindex or authentication; ne faites pas hide noindex behind robots blocking |
The map empêche the courant inversion: accidentally noindexing revenue pages pendant que allowing low-value funnel states into the index.
Découvrir → render → qualify → maintain
Every indexable SaaS page type doit réussir four gates:
- Découvrir: It has a stable URL, réel
a[href]liens, pagination/hub paths, and sitemap inclusion où appropriate. - Render: The principal copy, price, outil valeur, or integration detail exists in the initial or reliably rendered HTML.
- Qualify: Lune page has a distinct intent, canonical, accurate claims, and réel per-page valeur plutôt que a template swap.
- Maintain: Ownership exists pour competitor changements, deprecated integrations, docs versions, pricing updates, and programmatic quality checks.
A launch checklist que omits maintenance creates stale comparison/integration pages même quand SEO technique was correct on day un.
Page type × échec mode
- Free outil: utility hidden from robots d’exploration or trapped sans its propre URL.
- Pricing: core demand page gated/noindexed or prices disponible seulement client-side.
- Comparison: inaccurate claims or competing reversed duplicates.
- Integration: thin nonexistent partner pages and weak discovery at scale.
- Docs: disconnected subdomain and version duplication.
- Funnel/app: indexable private/duplicate states, or invisible
noindexparce que robots.txt blocks the récupérer.
Utiliser the mapping to assign chaque problem to product, engineering, content, docs, legal, or analytics plutôt que leaving the whole checklist with the SEO team.
Fast checks pour SaaS page types
Vérifier a ranking asset’s raw réponse
Run in a shell contre pricing, comparison, integration, and free-tool URLs. Replace the final search term with content que doit be présent pour que page type.
url='https://example.com/pricing/'
curl -fsSI "$url" | grep -Ei '^(HTTP/|x-robots-tag:|location:)'
curl -fsSL "$url" | grep -Ei '<title|rel="canonical"|name="robots"'
curl -fsSL "$url" | grep -F 'Starter plan'Audit une URL inventory with Python
Enregistrer un URL per line in saas-urls.txt. Ce checks HTTP status, canonical,
noindex, title, and si la réponse contient au moins un réel anchor lien.
from urllib.request import Request, urlopen
from urllib.error import HTTPError
import re
for url in open("saas-urls.txt", encoding="utf-8"):
url = url.strip()
if not url:
continue
try:
response = urlopen(Request(url, headers={"User-Agent": "SaaSSEOAudit/1.0"}))
html = response.read().decode("utf-8", errors="replace")
print(url, response.status,
"title=" + str(bool(re.search(r"<title[^>]*>.+?</title>", html, re.I | re.S))),
"canonical=" + str(bool(re.search(r"<link[^>]+rel=[\"']canonical[\"']", html, re.I))),
"noindex=" + str(bool(re.search(r"<meta[^>]+content=[\"'][^\"']*noindex", html, re.I))),
"links=" + str(len(re.findall(r"<a\s+[^>]*href=", html, re.I))))
except HTTPError as error:
print(url, error.code, "HTTP error")Trouver JavaScript-only navigation in Chrome DevTools
Paste into the Console. Buttons with click handlers ne sont pas automatically a problem, but principal navigation destinations devrait exist as réel anchors.
({
anchors: [...document.querySelectorAll('a[href]')].map((a) => a.href),
clickOnlyButtons: [...document.querySelectorAll('button[onclick], [role="link"]:not(a)')]
.map((node) => node.textContent?.trim()).filter(Boolean),
canonical: document.querySelector('link[rel="canonical"]')?.href ?? null,
robots: document.querySelector('meta[name="robots"]')?.content ?? null,
});Extract pages with noindex in Screaming Frog
Utiliser ce XPath in Custom Extraction to retourner the robots-meta content, alors filter
the export pour noindex and comparer it with the three-surface map.
//meta[translate(@name,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')='robots']/@content Prove the SaaS SEO fix shipped correctement
Server-rendered pricing or tool-value tester
Tester to run: Récupérer the modifié pricing/free-tool URL with curl and comparer its
raw HTML with le navigateur-rendered page and Search Console live tester.
Attendu result: The canonical, page objectif, and core price/outil valeur exist in the raw and rendered outputs sans login or interaction.
Échec interpretation: The release encore dépend on client rendering, a gated API réponse, or crawler-specific output.
Monitoring window: Immediate après deployment, alors après Google processes the live tester/explorer.
Rollback trigger: A formerly indexable ranking asset ships an vide/generic shell or hides its principal valeur.
noindex processing tester
Tester to run: Requête the modifié funnel/app URL, inspect meta and X-Robots-Tag, confirmer robots.txt permet the récupérer, and monitor Inspection d’URL/Page Indexation.
Attendu result: Google peut explorer l’URL, sees exactly un noindex directive,
and plus tard reports l’URL excluded from Search.
Échec interpretation: Robots blocking hides the directive, the tag is manquant from la réponse Google receives, or un autre template overrides it.
Monitoring window: Immediate pour réponse/robots checks; autoriser subsequent recrawl pour index removal.
Rollback trigger: The rule lands on pricing, comparison, integration, outil, or autre intended ranking assets.
Comparison canonical-consolidation tester
Tester to run: Récupérer les deux comparison variants and inspect status, canonical, and lien internes après consolidation.
Attendu result: Un choisi URL renvoie 200 and self-canonicalizes; a retired vrai duplicate permanently redirections to it, and lien internes utiliser the choisi URL.
Échec interpretation: Les deux duplicates remain indexable, canonicals conflict, or the redirection points to une page serving a différent comparison intent.
Monitoring window: Immediate après deployment and via the suivant explorer/indexation updates.
Rollback trigger: A genuinely differentiated comparison is mistakenly collapsed or the choisi page becomes unreachable.
Integration discovery and quality tester
Tester to run: Sample nouveau/mis à jour integration URLs from le sitemap and marketplace pagination, alors explorer les sans JavaScript and comparer leur unique setup/use-case content.
Attendu result: Chaque live integration is discoverable, canonical, 200, lié, and contient substantive partner-specific valeur.
Échec interpretation: Pagination/sitemap discovery is incomplete, lune page is an orphan, or the template shipped name-swap content.
Monitoring window: Immediate après a batch publish and après sitemap/IndexNow processing.
Rollback trigger: The batch publishes nonexistent integrations or materially near-identical pages que échouer the per-page quality bar.
Ressources utiles
My connexe writing
- Unlocking Growth Via Enterprise SaaS SEO — my complet SaaS guide: product-led content, the “vs” and free-tool pages, checking indexation and canonicalization, the bottom-of-funnel-first sequence, and the JavaScript and crawl-budget problèmes behind SaaS sites. The parent pour a lot of ce checklist.
- JavaScript SEO Problèmes & Meilleur Practices — the rendering side (section 6) in depth: réel liens, History API, rendu côté serveur, and the render-queue delay.
- Enterprise SEO Strategies Pour Maximum Growth — pour the scale version, quand a SaaS site becomes an org-coordination problem.
My speaking
- Enterprise SEO Chaos (SMX Avancé, from my temps as SEO technique at IBM) — the chaîne de redirectionss, canonical conflicts, and JavaScript menus invisible to robots d’exploration behind réel grand SaaS/enterprise sites. My standing disclaimer s’applique — ce is my understanding, pas gospel.
From autour the industry
- Comprendre JavaScript SEO basics — Recherche Google Central — the principal doc behind the whole JS-rendering section.
- Block Search indexation with noindex — Recherche Google Central — how
noindexfonctionne and the robots.txt precondition every SaaS trial-page setup has to respect. - Ce que is URL canonicalization — Recherche Google Central — the “hint, not a rule” behind pricing-variant and comparison-page canonical decisions.
- Site noms dans la recherche Google — Recherche Google Central — confirms subdomains are treated as distinct “sites,” the backdrop to the docs subdomain-vs-subfolder appel.
- Keeping content discoverable with sitemaps in AI-powered search — Bing Webmaster Blog (July 2025) — accurate
lastmod+ IndexNow pour fast discovery of nouveau integration/comparison pages. - IndexNow documentation — the protocol to wire into votre deploy pipeline.
- Google clarifies en utilisant canonical & noindex at the même temps — Moteur de recherche Journal — trade-press coverage of Google’s guidance on pas combining conflicting indexation signals, relevant to the trial-page/pricing-variant decisions ici.
Testez vos connaissances: SaaS SEO checklist
Five questions on lune page types and technical patterns spécifique to SaaS. Pick an réponse pour chaque, alors vérifier.
Journal des modifications
Mis à jour le 18 juil. 2026.
Résumé éditorial et détails enregistrés des changements.Détails des changements
- Advanced
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.