The stack is JavaScript
Most B2B SaaS marketing sites run on React or Vue. The rendering mode somebody picked in week one decides whether a crawler gets your words or an empty div.
Technical SEO is the work that decides whether a crawler can reach your pages, read them and trust what it finds. Indexation, rendering, speed, schema, migrations. A site at DR 30 with broken indexation ranks below a site at DR 12 with clean indexation.
Two programs, three views. Every figure on these tabs is on the case study it links to.
Authority numbers come from Ahrefs, traffic from the client's own analytics, pipeline from the client's CRM. All case studies
Most of that advice is correct, and most of it is beside the point on a B2B SaaS marketing site.
Most B2B SaaS marketing sites run on React or Vue. The rendering mode somebody picked in week one decides whether a crawler gets your words or an empty div.
Marketing, product app and docs sit on three platforms. Subdomain or subdirectory, gated or indexable, linked or orphaned: a separate call each time.
Integration, comparison and location pages come off one template. So do thin duplicates, canonicals pointing at an index, and pages Google never picks up.
The demo form, the trial start, the pricing calculator. Each one is a rendering question and an interaction score with revenue sitting behind it.
The sites we audit get replatformed every 18 to 36 months. Each rebuild is the highest-risk week in the SEO calendar, and the risk is usually unmanaged.
ChatGPT, Perplexity, Gemini and Claude read the HTML you serve and move on. They do not return later to run your bundle the way Google does.
That range covers a marketing site of 100 to 500 URLs, and a large programmatic directory pushes it to twenty working days.
Screaming Frog and Ahrefs Site Audit, read against the GSC Coverage report. In most audits we run, a large share of submitted URLs sit in Excluded or Discovered, not indexed. We sample 10 to 20 URLs per bucket until the one cause shows up.
Field data from real visits on your highest-traffic templates, not a lab score for the homepage. Google's bar is 2.5s for LCP, 200ms for INP and 0.1 for CLS. We report the template, the number and the cause together.
why is our pricing page slow on mobile
Seven types earn their place and the rest are noise. Each template gets validated once in the Rich Results Test before it ships to a thousand pages, because wrong schema is worse than none.
Screaming Frog, Internal Inlinks, sorted ascending. Under three inlinks a page will not rank whatever the writing does. A pillar should hold 50 to 150 inbound internal links and a sub-pillar 20 to 50.
Engineering ignores "fix indexation". It ships a ticket with a path, a line number, an acceptance test and a number attached to the outcome. Every finding leaves the audit in that shape, ranked by impact.
Google renders JavaScript on a second pass days after the first crawl, and Bing, the AI crawlers and every preview bot read the first response and move on.
| What lands in the first response | What it costs you | |
|---|---|---|
| CSR | An empty root div. The words arrive only after the browser runs the bundle. | Google indexes you late. The crawlers that do not render see nothing at all, so you are absent from AI answers. |
| SSR | The full page, built on the server for each request. | Server load and a little latency per request. Both are cheap at marketing-site traffic. |
| SSG | The full page, built at deploy time and served as a file. | A rebuild when content changes. This is the right default for marketing pages. |
| ISR | The full page from cache, regenerated on a schedule or on demand. | More moving parts in the build. Worth it when a template updates often. |
Nobody chooses any of these. They arrive with a template update, a staging clone or a migration, and then they stay.
The response is an empty root div and the words arrive once the bundle runs. Google comes back to render days later. Bing, ChatGPT, Perplexity and the preview bots do not come back. In Next.js the fix is usually one config change.
google not indexing our react site
A template update sets the canonical on every resource page to the category index instead of the page itself. Each page now asks Google to index a different URL. Three view-sources answer it in a minute.
Production gets cloned, a robots noindex tag keeps the clone out of the index, and the tag rides back to production with the new templates. Whole sections leave the index inside a fortnight.
One line left from a docs move blocks a directory that now holds real pages. Reading the file takes a minute and almost nobody does it before the audit.
Two hundred words per integration page, times four hundred pages. Google indexes some, ignores most, and reads the pattern as a quality signal for the whole domain.
A full audit turns up 40 to 90 issues and eight to twenty of them move rankings. These four habits are how the sorting never happens.
Ninety items with no order, no owner and no impact estimate. Engineering reads it once and goes back to the product roadmap.
Bundled audit tools grade your site. The grade moves when you fix trivia and sits still while indexation is broken.
Low-priority items cost sprint time and return nothing. Some findings are cheaper to live with, and we say which ones.
No reproduction step and no acceptance criteria means it never ships. It gets quoted back to you in the next audit.
The sites we audit get rebuilt every 18 to 36 months. This is the list we run for each one, and for the two weeks after it.
The map is written before the build, not reconstructed afterwards from a crawl of a site that no longer exists. A URL with no destination and no 410 is a page you chose to lose without noticing.
A 302 is temporary and does not pass full link equity. The new platform's redirect tool usually defaults to it, which is why this is the most common migration mistake we find and the cheapest one to avoid.
Links in posts and pages point at the new URL directly instead of riding the 301. Chains work until somebody tidies them up six months later and the equity stops arriving.
New templates rarely carry the old structured data across. Validate each page type in the Rich Results Test on launch day, not in the next quarterly audit.
A move from an HTML-first builder to a React app can quietly default to client-side rendering. That is the most expensive migration error there is, and one view-source per template catches it.
Eight to twelve hours of clicking: rendering, canonical, schema, redirect, content. Tools miss what a person spots in ten seconds.
Name the conditions that trigger a rollback while everyone is still calm. Then run daily GSC checks for two weeks, because most of the damage surfaces on days three to ten.
Seven questions from first calls: how long it takes, what to fix, how often to re-run it, which tools to buy, and what AI search changes.
Eight to fourteen working days for a site with 100 to 500 marketing-side URLs. Larger sites with programmatic content (heavy integration page directories, location pages, comparison libraries) extend to 20 working days. The audit is the first major deliverable on every engagement and the precondition for everything else. Skipping it or shortening it below 5 working days produces an incomplete diagnostic that misses many of the issues that actually matter.
No. A typical audit returns 40 to 90 issues. The critical and high-priority ones (usually 8 to 20 items) need to ship before content production scales. The medium and low items can be batched into quarterly cleanup work or ignored entirely if the cost-to-fix exceeds the ranking impact. The agencies that produce 47-item action plans are signaling effort, not value.
Mini-audits monthly (indexation drift, schema validation, CWV monitoring). Mid-scale audits quarterly (architecture review, internal linking density, new programmatic content checks). Full audits annually or after any major platform change. The annual full audit is non-negotiable for any B2B SaaS company over $5M ARR. Without periodic re-auditing, six months of small issues stack into a ranking drag nobody saw coming.
More, in three specific ways. AI Search engines crawl differently from Google, and structured data quality is a stronger signal for AI citation than for traditional search ranking. Core Web Vitals weights have grown for mobile rankings. JavaScript rendering issues are more common because more sites have moved to React-based stacks. The bar for baseline acceptable technical SEO is higher in 2026, and the cost of being below the bar is also higher because AI Search amplifies the gap.
Screaming Frog is the workhorse and pays for itself in the first audit. Ahrefs Site Audit is useful as a cross-check and for ongoing monitoring. Google Search Console is free and the most underrated tool in the stack. Sitebulb is worth the spend for sites over 1,000 URLs. Avoid the bundled audit features inside generic SEO tools that auto-grade your site on a 100-point scale; the grades are misleading and the underlying findings are usually shallow.
Translate every issue into a specific engineering ticket with reproduction steps, acceptance criteria, and a measurable ranking or traffic impact estimate. Engineering teams ignore tickets that read "fix indexation issues." They ship tickets that read "Pages /resources/* are returning noindex due to a wildcard rule in robots.txt at line 14. Remove the rule. Acceptance: GSC Coverage shows /resources/* moving from Excluded to Valid within 14 days. Estimated impact: 6 to 12 percent traffic recovery." Specificity is the entire fight.
AI Search engines (ChatGPT, Perplexity, Gemini, Claude) crawl differently from Google, weight structured data more heavily, and tend to cite sources with cleaner entity signals. The technical foundations that matter most for AI Search visibility: comprehensive Article and Person schema, llms.txt with site context, clean canonical structures, and self-contained paragraphs that AI extractors can lift cleanly. The work overlaps significantly with traditional SEO but with three additions: llms.txt deployment, knowledge-graph entity disambiguation through structured data, and content formatting for AI extraction.
Send us the domain. On a 30-minute call you will get a first read on indexation, rendering and architecture, plus the two or three fixes worth doing before anything else.
Or email Rizwan