B2B SaaS technical SEO, in plain English.
A site at DR 30 with broken indexation ranks worse than a site at DR 12 with clean indexation. Engineering calls it minor. The agency reports it as one line in a list of 47. Six months later the content engine underperforms and nobody connects it to the fix that never shipped.
Not 47 items. The 8 to 20 that move the needle, ordered by impact.

Audits written as engineering tickets, not PDFs
Reproduction steps, acceptance criteria, and an impact estimate on every item.
47
B2B SaaS clients
$48M+
Pipeline influenced
DR 70
Average end-state
92%
Retention year-2
Generic checklists were written for the websites that dominated the internet in 2015.
WordPress blogs. Shopify stores. Local business sites. That advice is mostly correct and mostly irrelevant for a B2B SaaS marketing site. Six structural reasons.
The stack is JavaScript-heavy.
Most B2B SaaS marketing sites in 2026 are built on React (Next.js, Gatsby, Remix) or Vue (Nuxt). The rendering question — CSR vs SSR vs SSG vs ISR — matters more than the marketing team understands and produces an entire class of technical SEO problem that does not exist for HTML-first sites.
The site is split across surfaces.
Marketing site, product app, and documentation typically live on three different infrastructures. Subdomain versus subdirectory, indexable versus gated, internal linking across surfaces — all B2B SaaS-specific calls.
Programmatic content is common.
B2B SaaS sites at scale have integration pages, comparison pages, location pages, and template galleries built from a single template populated with hundreds or thousands of variations. Programmatic content has its own technical SEO failure modes: thin content, near-duplicates, improper canonicals, indexation leaks.
Conversion paths are technical events.
The demo signup flow, the trial start flow, the pricing calculator, the demo scheduler. Each is a rendering and Core Web Vitals concern with direct revenue impact when broken.
Replatforming is frequent.
B2B SaaS sites get rebuilt every 18 to 36 months on average. WordPress to Webflow. Webflow to Framer. Framer to Lovable. Lovable to a custom Next.js build. Each migration is a high-risk technical SEO event, and most teams do not know they handled the previous one badly until the next agency audits them.
AI Search has technical preconditions.
Visibility in ChatGPT, Perplexity, Gemini, and Claude depends on technical foundations — structured data, entity clarity, llms.txt, self-contained content — that overlap with but are distinct from traditional Google SEO. The bar in 2026 is higher than the bar for Google ranking was in 2020.
Four questions. Everything else is downstream.
Eight to fourteen working days for a 100 to 500 URL marketing site. The audit is the first major deliverable on every engagement and the precondition for everything else.

What is being crawled, indexed, and what is in the gap?
Most B2B SaaS sites have 20 to 60 percent of their submitted URLs in the Excluded or Discovered, not indexed buckets. The first audit usually surfaces the systemic reason.
- GSC Coverage report
- Submitted vs Valid
- Excluded / Discovered, not indexed
Pull the Coverage report, segment by category, then sample 10 to 20 URLs in each bucket to identify the underlying pattern (rendering, canonical, robots, soft 404).
The tool stack we actually run.
Screaming Frog SEO Spider
The workhorse crawler. Catches broken links, redirect chains, missing tags, schema issues, indexability flags. Pays for itself in the first audit.
Ahrefs Site Audit
Cross-checks the Screaming Frog crawl, surfaces additional issues from a different perspective, useful for ongoing monthly monitoring.
Sitebulb
Higher-resolution architecture analysis for sites over 1,000 URLs. Visual hint maps and crawl path analysis.
Google Search Console
The indexation reality check. Coverage, performance, enhancements, page experience reports. Free and the most underrated tool in the stack.
Bing Webmaster Tools
Secondary index, less weight than GSC but useful for detecting issues before they show up in GSC.
Google Rich Results Test
Schema validation per page type. Every template validated at least once before deploying broadly.
PageSpeed Insights & CrUX
Real-user CWV data versus lab data. Both matter; real-user data matters more for ranking decisions.
Chrome DevTools
JavaScript rendering investigation. Coverage tab for unused code. Performance tab for INP issues.
Six ways B2B SaaS sites quietly tell Google not to index them.
Most sites have 20 to 60 percent of submitted URLs sitting in Excluded or Discovered, not indexed. The reason is almost always one of these six.
Marketing pages built in client-side React without SSR
When the page loads, the HTML response contains an empty <div id="root"></div> and content gets injected after page load. Google can render JavaScript, but rendering happens 2 to 3 days after the initial crawl, ranking is suppressed by 20 to 40 percent, and most non-Google crawlers (including AI Search engines) never see the content. Fix: enable SSR or SSG in Next.js — usually a one-time configuration change with massive ranking impact.
Pages canonicalized to other URLs by mistake
During a migration or template update, the canonical tag on resource pages gets pointed to a category index instead of self-referencing. Every resource page on the site quietly tells Google "do not index me, index this other page instead." Diagnostic: view source on resource pages and check the canonical URL matches the page URL.
noindex, nofollow left on pages from staging
Most teams clone production to staging, add <meta name="robots" content="noindex, nofollow"> to prevent staging from being indexed, then forget to remove it when the new templates ship to production. Entire sections of the site become uncrawlable overnight.
Robots.txt blocking entire path patterns nobody remembers
Old debugging or staging directives left in robots.txt block important page patterns. Common pattern: Disallow: /resources/ left over from a docs migration. Diagnostic: site.com/robots.txt → look for Disallow rules that affect indexable URLs.
URL parameters creating duplicate content
UTM parameters, session IDs, filter parameters all create distinct URLs from Google's perspective unless properly handled. Without consistent canonical tags, the marketing team's UTM-tagged campaign links create duplicate-content issues that suppress the canonical version's rankings.
Pages indexed but ranking poorly due to thin content
Programmatic page directories (integration pages, location pages) with 200-word templated content. Google indexes them but treats them as low-value, which drags down the entire site's quality signal.

Three numbers, measured on pages that actually get traffic.
Lab scores on the homepage are theatre. The aggregate field data on your highest-traffic templates is the ranking variable.
Largest Contentful Paint < 2.5s
Three usual culprits: 4 MB hero PNGs (fix: WebP, srcset, explicit dimensions, fetchpriority="high", loading="eager"), 800 KB JS bundles blocking the main thread (fix: code splitting, defer non-critical scripts), web fonts without font-display: swap (fix: swap, preload critical font, system fallback).
Interaction to Next Paint < 200ms
Almost always third-party script overhead. HubSpot tracking, Drift, Intercom, the cookie consent banner. Each loads synchronously, blocks the main thread, and degrades interactivity. Fix: defer, load after main-thread idle, lazy-load chat widgets that only appear after a delay.
Cumulative Layout Shift < 0.1
Images without explicit dimensions, late-loading embeds (YouTube, Wistia, calendar widgets), and web fonts causing reflow. Fix: explicit width and height on every image, reserve space with CSS aspect-ratio for embeds, font-display: optional or swap with size-adjust.
The rendering mode decides whether your content exists.
Google can render JavaScript. Most other crawlers — Bing, ChatGPT, Perplexity, social preview bots — will not wait around for it.
Client-side rendering only
- Empty HTML response
- Content injected after JS executes
- Other crawlers see nothing
Google can technically render JavaScript and will eventually index CSR pages, but rendering happens 2 to 3 days after the initial crawl. Other crawlers (Bing, AI Search engines, social preview bots, archive.org) often never see the rendered content at all. CSR pages typically rank 20 to 40 percent worse than SSR equivalents and earn dramatically fewer AI Search citations.
Server-side rendering
- Full HTML on each request
- All crawlers see content immediately
- Normal ranking baseline
The server generates the full HTML on each request. The browser receives complete content immediately. The cost is server load and per-request latency, both manageable for marketing-site traffic.
Static site generation
- HTML pre-built at deploy
- Served as static files
- Lowest runtime cost
Same crawler benefits as SSR with lower runtime cost. Best for marketing content that does not change frequently. The default for most marketing pages.
Incremental static regeneration
- Static + scheduled regeneration
- Next.js hybrid pattern
- On-demand revalidation
Pages are statically generated and cached, but regenerated on a schedule or on demand. Best of both worlds for content that updates periodically.
Three decisions that compound for years.
Architecture debt is the cheapest thing to fix before launch and the most expensive thing to fix at 2,000 URLs.

Subdomain vs subdirectory for the blog
Subdirectory wins almost always. /blog rather than blog.technotize.io. Google treats subdomains as separate sites in subtle but meaningful ways, including authority transfer and link equity flow. Programs that move a blog from subdomain to subdirectory typically see 15 to 35 percent organic traffic lifts within 6 months.
Subdomain vs subdirectory for docs
More nuanced. Customer-only reference docs are fine on a subdomain. Docs with prospect-education content that has search demand (tutorial guides, integration walkthroughs) belong in a subdirectory so the marketing site's authority lifts the docs content. The decision turns on whether docs content has commercial intent.
URL structure: hierarchical and shallow
/b2b-saas-seo/keyword-research is good. /blog/category/year/month/2026/keyword-research-guide-for-b2b-saas-companies is bad. Three levels deep maximum for most pages. Hyphens, lowercase, no parameters in canonicals, no trailing characters. Pick a trailing-slash convention and 301 the alternative.
Seven types to deploy. Everything else is noise.
Wrong schema is worse than no schema. Structured data deployed without a real underlying entity is a manual-review risk — and the strongest lever you have for AI Search citation when it is done properly.

Organization
One block, deployed in the homepage and global footer. Includes name, logo, URL, contact information, social profiles. Foundational for knowledge graph entity recognition.
WebSite
Deployed on the homepage. Includes the site search action if the site has a working search function. Enables sitelinks search box in some Google results.
Article
Every blog post, every pillar page, every sub-pillar. Headline, description, image, datePublished, dateModified, author linked to Person, publisher, articleSection. The single most-deployed schema on a B2B SaaS site.
FAQPage
Every page with a real FAQ section. The strongest single signal for AI Search citation because AI extractors lift Q&A pairs cleanly when structured. Required for any page that wants to compete for AI Overview citation.
BreadcrumbList
Every page, not just blog posts. Reinforces the site's hierarchical structure for both Google and AI crawlers. Cheap to deploy, consistently helpful.
SoftwareApplication
For the product page itself. The accurate type for B2B SaaS products. Includes name, description, applicationCategory, operatingSystem, offers (pricing), aggregateRating only if you have real, verifiable reviews.
Person
Every author profile page. Name, jobTitle, worksFor, image, sameAs (linking to verified LinkedIn, Twitter). Critical for the E-E-A-T signal that AI Search engines weight heavily.
Skip the rest
Speakable, Video (unless genuinely video-centric), Recipe, Event, Course (unless you actually offer one), most niche schema types. Wrong schema is worse than no schema. Schema deployed solely for SEO without an underlying real entity is a manual review risk.

The hub-and-spoke model, enforced rather than intended.
Most B2B SaaS sites have an internal linking plan in a slide and no internal linking in the HTML. The audit is one Screaming Frog report away.
Pillar pages receive links from every cluster post
Plus contextually relevant links from services pages, industry pages, and case studies. The /b2b-saas-seo master pillar should receive 50 to 150 internal links across the site. Each sub-pillar should receive 20 to 50.
Cluster posts link both up and sideways
Each cluster post receives a link from its parent pillar (top-down) plus 2 to 3 sideways links from sibling cluster posts. The bidirectional architecture is what Google reads as topical authority.
Commercial pages get linked from intent-mapped informational content
A comparison page about "HubSpot vs Pipedrive" should be linked from problem-aware and solution-aware content about CRM selection. Without those internal links, the comparison page ranks slower than it should.
Anchor text varies but stays descriptive
"Click here" produces no ranking signal. Exact-match keyword anchors over-optimized look spammy. The right pattern is descriptive natural-language anchors that include the target keyword variant.
Diagnose with Screaming Frog → Internal Inlinks
Sort ascending. Pages with fewer than 3 internal inlinks are isolated and will not rank well regardless of content quality. Fix is either linking to them more, retiring them through 301s, or removing them from the publishing roadmap.
Ten items. Migrate Tuesday morning, never Friday afternoon.
B2B SaaS sites get rebuilt every 18 to 36 months. Each rebuild is the single highest-risk technical SEO event in the calendar, and most teams do not learn they handled the last one badly until the next audit.
URL mapping document
Every old URL has a new URL it maps to or returns a 410 ("intentionally gone"). The mapping is documented before the migration, not improvised after.
301 redirects for every changed URL
Not 302s. 302 redirects are temporary and do not pass full link equity. The single most common migration mistake is using 302s by default because that is what the new platform's redirect tool defaults to.
Sitemap regeneration and resubmission
New sitemap files generated for the new URL structure, listed in a sitemap index, submitted to GSC and Bing Webmaster Tools the day of launch.
Internal linking audit on the new site
Internal links inside content that pointed to old URLs need to point directly to the new equivalent — not rely on the 301 chain. Direct linking is cleaner.
Schema markup re-deployment
Schema is often stripped during platform migrations because the new templates do not include the same structured data. Verify each page type's schema is intact after launch.
Core Web Vitals verification
The new platform's CWV profile is often worse during the first 30 days as caching warms up and edge nodes propagate. Monitor for regressions.
JavaScript rendering verification
If the new platform uses a different rendering approach (Webflow's HTML-first SSG to a Next.js site that defaulted to CSR), verify rendering on every major page type. Catches the most expensive migration error possible.
Manual spot-check of the top 50 traffic pages
Open each one. Verify rendering, canonical, schema, redirects, content. Eight to twelve hours of manual work that catches what automated tools miss.
Documented rollback plan
Before launch, document the conditions under which the migration gets rolled back. Without one, a failed migration produces panic decisions that compound the damage.
Two-week post-launch monitoring
Daily checks of GSC Coverage, Performance, and the top 20 traffic pages. Most migration issues show up days 3 to 10 after launch as Google re-crawls. Migrate Tuesday morning, not Friday afternoon.
Questions we get from engineering and marketing.
Still deciding?
Send us your domain. We will tell you on the call which of these issues your site currently has.
Want this audit run on your B2B SaaS site?
30-minute call. You will get a preliminary diagnostic on indexation, rendering, and architecture from the call alone.
Average response time: under 4 business hours.




