Get the working resource ↓
SaaS SEO Guide 9 min read

SaaS site architecture for SEO

URL rules, click depth limits and crawl paths for a SaaS site with a marketing site, blog, docs, community and app all on the same brand domain.

On this page 9 sections
  1. The five surfaces of a SaaS web estate and where each one belongs
  2. Why app.domain.com should never host marketing content
  3. URL rules that survive a rebrand
  4. Three clicks is the limit for any page that can convert
  5. A before and after from a real estate rebuild
  6. Canonicals, pagination and hreflang belong in the template, not the page
  7. Navigation, footer and body links do different jobs
  8. What an architecture rebuild costs, and when not to do one
  9. Do these five things this month
  10. Frequently asked questions

The short answer

SaaS site architecture decides how much authority ever reaches the pages that can convert. Keep the marketing site, blog and docs in subfolders on the root domain, put the product app on its own subdomain with no marketing content, and cap every revenue page at three clicks from the homepage. URL slugs should describe stable concepts rather than product names or dates, because SaaS products get renamed and repositioned far more often than they get rebuilt.

Key points before you start

A pricing page sitting four clicks behind a hover menu gets crawled less often, receives almost none of the authority your blog earns, and ranks the way you would expect. No amount of writing fixes that. Most SaaS sites carry the same shape: a heavily linked homepage, a heavily linked blog, and a set of feature, use case and integration pages that nothing points at except a navigation menu the crawler may not even see.

Architecture sets the ceiling on everything else you do. Get it wrong and you spend two years publishing into a building with no corridors.

The five surfaces of a SaaS web estate and where each one belongs

Most software companies run five distinct web surfaces, and only three of them should share a host with your commercial pages. Marketing site, blog and documentation go on the root domain. The application goes on a subdomain and stays out of the index. Community is the only genuine judgement call.

SurfaceWhere it goesIndexedReason
Marketing sitedomain.com rootYesEvery commercial page lives here and inherits host authority directly
Blog and resourcesdomain.com/blog/YesLinks earned by posts lift the same host that serves pricing and features
Docs and help centredomain.com/docs/ via proxy, else docs.domain.comYesEarns developer links, ranks for error, API and integration queries
Product appapp.domain.comNoAuthenticated, unstable HTML, session parameters, no link value
Community forumdomain.com/community/ if you control the template, else community.domain.comSelectivelyHigh URL count and low quality per URL, so it needs its own index rules
Five surfaces, one brand. The split is about link value and crawl control, not about what is easiest to host.

The subfolder preference is not theory. Every link a docs page or a blog post earns is a link to your host, and hosts are how Google accumulates trust in practice. Split those links across three hostnames and you are asking one brand to earn authority three separate times. The full argument, including the cases where a subdomain is the right answer, sits in the subfolder vs subdomain comparison.

Docs are the surface people get wrong most often. Teams proxy help.domain.com into /docs/, feel good about it, then discover the help centre article outranks the feature page for the product’s own category term. That is a query-level decision, not a hosting decision.

Merging docs into the root without deciding who wins each query

Once docs sit on the same host, they compete with marketing pages for the same terms. Before the proxy goes live, list the 30 terms both surfaces could rank for, assign each to one URL, and make the losing page point at the winner with a body link. Skip that step and you spend the next quarter watching an API reference page outrank the page with the demo form on it.

Why app.domain.com should never host marketing content

The app subdomain is the worst possible home for a page you want ranked. It sits behind authentication, so Googlebot sees a login screen rather than content. It generates session and state parameters that bloat any crawl that reaches it. Unknown routes return a 200 with an empty shell instead of a 404, which is the classic soft 404 pattern.

None of that is fixable without engineering work that would be better spent elsewhere. Put nothing indexable on app.domain.com, disallow the whole host in robots.txt, and stop treating it as free real estate.

There is one real exception and it is worth naming precisely. Public share surfaces, the kind Loom uses for recorded videos and Figma uses for community files, are genuine product-led SEO assets: real content, real URLs, real external links. Those belong on their own hostname with their own template, their own canonical policy and their own noindex rules for private or expired items. They do not belong mixed into the authenticated product.

3 clicks

Maximum distance from the homepage for any SaaS page that can start a trial or book a demo

Editorial standard used across SaaS SEO audits

URL rules that survive a rebrand

SaaS companies rename products, merge tiers and reposition categories roughly every 18 to 30 months. URLs that encode the current naming die on that schedule. Write slugs that describe the durable thing: the job, the integration, the category, the comparison.

PatternBadGoodWhy
Dates in the path/blog/2024/03/pipeline-reporting//blog/pipeline-reporting/A dated URL looks stale in the SERP and blocks refreshes
Product names/flowpro-connect-for-slack//integrations/slack/FlowPro Connect becomes FlowPro AI in 14 months
Funnel stage/bofu/crm-alternatives//alternatives/crm/Nobody outside marketing knows what BOFU means
CMS defaults/?p=4021 or /posts/4021//blog/churn-benchmarks/Numeric slugs carry no relevance and break on export
Deep nesting/product/platform/modules/workflows/approvals//product/approvals/Every level is another place a rename breaks things
Mixed conventions/Use-Cases/Finance_Teams/use-cases/finance-teams/Case and underscore inconsistency creates duplicate URLs

Three more rules that save arguments later. Pick a trailing slash convention once and 301 the other version permanently. Cap path depth at three segments for anything commercial. Never put a version number, a year or a quarter in a slug you intend to keep.

If you are already carrying bad URLs, the question is whether the fix is worth the risk, which is a different exercise entirely. Work through the SaaS website migration playbook before you touch a single redirect rule.

Editable working copy

Get this checklist as a working file

Save the checks on this page as a working copy and assign an owner, status and evidence for each action.

We never sell your data. Your resource opens here after submission.

Three clicks is the limit for any page that can convert

Click depth is the shortest path a crawler can take from the homepage to a URL using in-body and navigation links. It is the single number that best predicts how often your commercial pages get crawled, and you can measure it in about ten minutes with any crawler in the SaaS SEO tools set.

The working rule for a SaaS estate:

  • Pricing, the main product page, the primary use case hub and the integrations hub sit at depth one
  • Individual feature, use case, comparison and integration pages sit at depth two
  • Blog posts and supporting content sit at depth two or three
  • Programmatic page sets sit at depth three maximum, reached through a paginated hub with real links

Anything deeper needs a reason you would say out loud in a meeting. Depth five on a page that converts is not a nuance, it is a defect.

Two things make depth worse than it looks on a diagram. Mega menus rendered on hover through JavaScript often produce no crawlable links at all in the raw HTML, so the real depth is far greater than the design implies. And paginated hubs that use infinite scroll with no <a href> fallback strand everything past page one.

Measure depth against money, not against the whole site

Crawl the site, export crawl depth, then join it to Search Console clicks and GA4 conversions on the URL. You are hunting for one list: pages at depth four or more that already produce impressions, signups or demo requests. On a 400-page SaaS site that list is usually between 15 and 60 URLs, and it is the entire project.

A before and after from a real estate rebuild

This is an anonymised composite drawn from several audits of the same shape. A workflow automation company at roughly 9M ARR had 41 feature and use case pages, all reachable only through a hover mega menu and a /product/ overview page. Twelve of those URLs had never been indexed. Screaming Frog with JavaScript rendering disabled found links to exactly four of them.

BEFORE
Home
 └ /product/ depth 1 (mega menu, JS rendered)
    └ /product/workflows/ depth 2
       └ /product/workflows/approvals/ depth 3
          └ /use-cases/approvals-for-finance/ depth 4 not indexed

AFTER
Home
 ├ /product/approvals/ depth 1
 ├ /use-cases/ depth 1 (hub, 41 HTML links)
 │ └ /use-cases/approvals-for-finance/ depth 2
 └ /integrations/ depth 1 (hub, 88 HTML links)

Three changes did the work. The mega menu got a server-rendered HTML fallback so the links existed without JavaScript. A real /use-cases/ hub replaced the overview page and linked every child in plain markup. And 60 existing blog posts received contextual body links pointing at the relevant use case page, chosen by topic rather than by rota.

MetricBefore14 weeks after
Feature and use case URLs indexed29 of 4141 of 41
Median crawl depth, commercial pages42
Monthly organic clicks, use case set~300~4,100
Demo requests attributed to the set2 per month19 per month

Be honest about the distribution. Three pages produced about 70 percent of that traffic gain, and eleven pages barely moved at all. Flattening depth does not make a weak page good. It gives an already-decent page the crawl frequency and internal anchor text it should have had from the start. The way those hubs should be organised by topic rather than by product taxonomy is covered in the SaaS topic clusters guide.

Review request

Free SaaS marketing audit

Share your site, stage and priorities to request a review of your positioning, funnel and acquisition plan.

We never sell your data. Your request is saved for review.

Canonicals, pagination and hreflang belong in the template, not the page

Set these rules once per template and they stop being a recurring cleanup task. Set them per page and they will be wrong within a quarter.

Canonical tags: every indexable template emits a self-referencing canonical with an absolute URL, one per page, matching the trailing slash convention exactly. Parameter URLs canonicalise to the clean version. A page with a canonical pointing somewhere else should also be missing from your sitemap, and if those two disagree, the template is broken.

Pagination: give page two a self-referencing canonical, not a canonical back to page one. Google retired support for rel=prev and rel=next in 2019, so the working pattern is plain <a href> links between pages, self-canonicals throughout, and paginated URLs excluded from the sitemap while remaining crawlable. Avoid noindex on paginated hubs, because a long-term noindex is eventually treated as nofollow and the children lose their crawl path.

Hreflang: every locale variant references every other variant including itself, plus an x-default. Use subfolders such as /de/ rather than country domains unless you have a genuine legal or entity reason to split. Keep the slug identical across locales where the product name is identical, and translate the slug where the query is genuinely different in that market.

The template rule that breaks silently

Marketing teams add a new template every few months. Comparison pages, glossary entries, a webinar library. Each new template starts life without the canonical, hreflang and breadcrumb rules the old ones have, because nobody documented them. Keep the rules in the same repository as the templates and make them a pull request checklist item. The detail belongs in your technical SEO audit checklist so it gets checked on a schedule rather than remembered.

A link in the primary navigation appears on every page, which sounds powerful and mostly is not. Site-wide links are common, predictable and heavily discounted. A contextual link inside the body of a relevant article carries more relevance signal, because its surroundings describe what the target page is about.

The practical allocation for a SaaS site:

  • Primary navigation: 20 to 25 links maximum, covering hubs and the pages you want at depth one
  • Footer: 30 to 40 links, used for integration hubs, comparison hubs, legal and locale switching
  • Body content: unlimited, chosen by topical relevance, and the main mechanism for lifting individual pages

Mega menus with sixty entries are the usual failure. Every link dilutes the others, the design team eventually hides half of it behind hover states, and the pages you actually want promoted end up sharing attention with a careers link. Cut the menu to hubs, then let the hubs do the distribution.

What an architecture rebuild costs, and when not to do one

Restructuring is not free and the industry undersells the risk. For a 400 page SaaS site, expect roughly three to six weeks of engineering plus two weeks of SEO time to map redirects, rebuild hubs, add HTML fallbacks and update sitemaps. Redirect mapping alone usually takes one to three days for a site that size.

Then expect a dip. A carefully executed URL change on a healthy site commonly costs 10 to 25 percent of organic traffic for four to eight weeks. A sloppy one costs more and sometimes never fully recovers, particularly where redirect chains stack up or the new URLs change meaning as well as address.

So here is the position: if your commercial pages are already at depth two, already indexed and already receiving contextual links, do not restructure. The diagram in your head is not worth a quarter of recovery. Spend the same effort on content and links instead, and use the SaaS SEO ROI calculator to compare the two options honestly before you commit budget.

Restructure when one of these is true: commercial pages are not indexed, crawl depth exceeds three for pages that convert, the same content is reachable at multiple URLs, or a rebrand has already made the current URLs wrong. Those are structural failures, and content cannot outrun them.

Architecture also fixes nothing about demand. A perfectly organised site for a product nobody searches for still returns nothing, which is a forecasting question rather than a structural one. Run the numbers in the organic traffic forecast calculator before you assume flattening depth will produce a pipeline.

Do these five things this month

Architecture triage for an existing SaaS site

  1. Crawl twice

    Run Screaming Frog with JavaScript rendering off, then on. Compare the URL counts. A large gap means your navigation is invisible to crawlers that do not render, including most AI crawlers.

  2. Join depth to revenue

    Export crawl depth, then merge with Search Console clicks and GA4 conversions by URL. You want the list of deep pages that already earn something. Anything else can wait.

  3. Build the missing hubs

    Create a real HTML hub for use cases, integrations and comparisons, each linking every child page in plain markup. Verify the links appear in view-source, not only in the rendered DOM.

  4. Cut the menu

    Reduce the primary navigation to hubs plus pricing. Move the long tail into the hubs. Confirm pricing is at depth one from every template including the blog.

  5. Write the template rules down

    Document canonical, pagination, hreflang and breadcrumb behaviour per template in the codebase, and add it to the pull request checklist so the next template ships correct.

None of this needs a redesign, and none of it needs new content. It needs someone to open a crawler, look at the actual depth of the pages that pay for the team, and fix the shortest paths first. If you would rather work through it with a structured sequence and deadlines, the SaaS SEO Sprint covers architecture in week one, and the wider SaaS SEO hub explains where architecture sits relative to content, links and measurement. The next thing to fix after the map is the plumbing, which is where technical SEO for SaaS picks up.

Editable CSV worksheet

SaaS SEO planning worksheet

A practical seo planning worksheet: decisions, owners, evidence and next actions.

We never sell your data. Your resource opens here after submission.

Frequently asked questions

Should a SaaS blog live on a subdomain or a subfolder?

Subfolder, in almost every case. Put it at domain.com/blog/ so links earned by posts strengthen the same host that serves your pricing and feature pages. A subdomain is treated as a related but separate property, and you end up building authority twice for one brand. The exception is a blog you cannot control technically, where a clean subdomain beats a broken subfolder proxy.

Where should SaaS product documentation live?

At /docs/ on the root domain if your docs platform proxies cleanly, otherwise docs.domain.com. Docs earn links from developers and rank for integration and error queries, which is worth capturing on the main host. The cost is cannibalisation, because docs pages regularly outrank the marketing page for the same term, so decide which URL should win each query before you merge the two.

How many clicks from the homepage should a SaaS pricing page be?

One. Pricing belongs in the primary navigation on every template, because it is the highest-intent page on a SaaS site and the one most often linked to from outside. Feature and use case pages should sit at one or two clicks. Anything that can start a trial and sits at four or more clicks is a structural bug, not a minor optimisation.

Does click depth actually affect rankings?

Indirectly and reliably. Google publishes no depth factor, but depth correlates with how many internal links a page receives and how often it gets recrawled. Pages at depth five on mid-size SaaS sites are routinely discovered late, refreshed monthly rather than weekly, and starved of internal anchor text. Flattening depth works because it adds links, not because the number itself is magic.

Should SaaS marketing content ever live on app.domain.com?

No. The app subdomain sits behind authentication, returns unstable HTML, generates session parameters and produces soft 404s on unknown routes. None of that helps a marketing page rank. Public share surfaces such as shared documents or embedded recordings are a genuinely different case, and they deserve their own subdomain with their own indexing rules and templates.

What URL structure should SaaS integration pages use?

A flat, predictable pattern such as domain.com/integrations/slack/ with exactly one level under the hub. Avoid nesting by category, because categories get renamed and you inherit redirect chains. Spell the partner name the way the partner spells it, keep everything lowercase, and do not append qualifiers like -integration when the directory already says it.

How do I find the pages that are too deep on my site?

Crawl with Screaming Frog or Sitebulb, then sort by crawl depth. Export everything at depth four or more and join it against Search Console clicks and your analytics conversions. The list that matters is the intersection: deep pages that already convert or already earn impressions. Fix those first and leave the rest of the tail alone until you have a reason.

The saas-marketing.net editorial team Research and editorial

We research, write and maintain every page on this site. The library explains marketing decisions through practical frameworks, explicit assumptions and references. Corrections can be requested through the contact page.

Published September 11, 2026. Last updated .