Skip to content

SEO for SaaS and product marketing sites

The classic SaaS failure is technical: the marketing site is built as a client-rendered app by app developers, so it looks perfect in a browser and serves crawlers an empty shell. The pack checks Reach first and hard, then works up to intent-matched copy and the comparison queries AI engines love to answer.

The Visibility Ladder, tuned

Where sites like this actually fail

Same five rungs, same order, different emphasis. Diagnose top to bottom, fix bottom to top.

ReachCritical here

The prime suspect. Marketing pages built in the same SPA as the app often serve an empty shell. The pack verifies content is in the served HTML and keeps marketing routes server-rendered or static, even if the app itself is an SPA.

ReadHigh priority

Clear articulation of what the product does, for whom, and the problem it solves, matched to real search intent: problem-aware, solution-aware, comparison, branded.

UnderstandStandard checks

Organization and SoftwareApplication schema where appropriate, breadcrumbs, and FAQPage for genuine FAQs (for AEO clarity; Google retired FAQ rich results in 2026).

ConnectHigh priority

A coherent architecture: features, use cases, integrations, comparisons, and a real resources hub, all interlinked with clear canonicals.

RankStandard checks

Depth and demonstrated expertise on the topics you can credibly own, rather than chasing every keyword.

AEO layerHigh priority

Buyers ask AI engines 'best tool for X' and 'X vs Y'. Self-contained answers, honest comparison tables, and one consistent company entity make you citable.

Priority tilt: Check Reach first and hard, then Read (intent-matched clarity) and the AEO layer (comparison and answer formatting).

Checks specific to this kind of site

Marketing vs app rendering

Confirms the marketing routes are server-rendered or static even if the product app is client-side. A common, high-impact fix.

Crawlable pricing

Real pricing content in the served HTML, not a JavaScript-only calculator, so pricing queries can land on your page.

Comparison and alternatives pages

Legitimate, honest, genuinely useful pages, not thin competitor bait. High citation value when real.

Conversion vs SEO balance

Heavy interactivity and animation can wreck Core Web Vitals. Indexable content stays server-rendered and fast.

Skills that do the work

  • seo-orchestratorDetects the stack, applies the saas-marketing profile, and runs the audit lifecycle
  • 1-reach-indexationVerifies marketing pages actually reach crawlers in the served HTML
  • seo-positioning-strategyMaps the topical authority you can credibly own and how to differentiate
  • cite-aeo-geoFormats comparison and answer content for AI citation, once pages can rank

Driven by the saas-marketing profile in the pack.

Structured data it works with

  • Organization
  • SoftwareApplication
  • BreadcrumbList
  • FAQPage

Always honest: markup describes only what's real and visible on the page. Fabricated ratings, authors, or credentials are removed and flagged, never added.

Try it on your site

Paste this into Claude Code, Cursor, or any AI coding agent. It's read-only: the agent audits and reports, and changes nothing until you ask.

audit-saas
Use the seo-for-ai-agents skill pack (https://github.com/manibharij/seo-for-ai-agents) with the saas-marketing profile: audit my marketing site on the served HTML. Check first whether marketing pages and pricing are server-rendered and readable by crawlers, then intent match, comparison pages, and internal architecture. Report only, don't change any code or files yet.

Common questions

My SaaS app is an SPA. Do I have to rebuild it for SEO?

No. The app behind the login can stay a client-rendered SPA, because crawlers don't need it. What must be server-rendered or static is the marketing site: the homepage, features, pricing, comparisons, and blog. The pack verifies those routes on the served HTML and tells you the smallest change that fixes them.

Why isn't my SaaS landing page showing up in Google?

The most common cause is that the page is rendered client-side, so crawlers receive an empty HTML shell with no headings or copy. The second most common is copy that matches no real search intent. The pack diagnoses both, starting from the served HTML rather than the source code.

Are competitor comparison pages worth building?

Yes, if they're honest and genuinely useful. 'X vs Y' and 'best tool for Z' queries are heavily asked, both in search and to AI assistants, and a fair, detailed comparison is exactly what gets cited. Thin competitor bait pages hurt more than help, and the pack flags them rather than generating them.