SEO GEO for SaaS

Complete SEO + GEO (Generative Engine Optimization) system for SaaS companies wanting to rank on both Google and AI search engines (ChatGPT, Perplexity, Gemi...

berthelol

@berthelol

Install

$ openclaw skills install @berthelol/seo-geo

SEO + GEO for SaaS

A battle-tested SEO system built by a bootstrapped SaaS founder who grew from 0 to 30k+ organic sessions/month. This isn't theory — it's the exact methodology, templates, and checklists used to rank a real SaaS product.

This skill covers two modes:

  1. Setup — onboard a new SaaS, analyze existing SEO, build a strategy, create a content calendar
  2. Publish — write, optimize, and ship SEO+GEO articles using proven templates

First-time setup

If the user has never used this skill before (no seo/ directory in their project), run the onboarding flow. Read references/onboarding.md for the full step-by-step process.

Onboarding creates these files in the user's project:

seo/
├── overview.md        # Site architecture, clusters, competitor landscape — context for spawning new agents
├── keywords.md        # Master keyword table — local cache, avoids repeat API calls
├── opportunities.md   # Prioritized gaps, CTR fixes, quick wins
├── published.md       # Log of every published article — avoids needing a database
├── calendar.md        # 5-month content calendar with progress tracking
├── positioning.md     # Current rankings snapshot — updated during audits
├── templates.md       # Article templates adapted for the user's SaaS
└── screenshots/       # Product screenshots to use as article images
├── positioning.md     # Current rankings snapshot
└── templates.md       # Article templates adapted for their SaaS

Choosing your SEO data source

This skill works with two data providers. During onboarding, ask the user which they have access to:

Option A: SemRush (preferred if available)

  • More accurate keyword data, better competitor intelligence
  • If the user has the semrush-research skill installed, use it directly
  • Otherwise, ask the user to export data from SemRush web UI (CSV exports)

Option B: DataForSEO (recommended if no SemRush)

  • Cheaper, API-first, good enough for most SaaS
  • If the user has the dataforseo skill installed, use it directly
  • If the user has an account, help them configure credentials

Option C: Manual data

  • User pastes data from Google Search Console, exports, or screenshots
  • Works but slower — encourage API setup for ongoing use

Always check which skills are available before asking the user to install anything.


Two operating modes

Mode 1: Strategy & Analysis

Use when the user asks to analyze their SEO, find opportunities, audit performance, or plan content.

Workflow:

  1. Read the user's seo/ files to understand current state
  2. Pull fresh data (via SemRush, DataForSEO, or user-provided exports)
  3. Update the relevant files (keywords.md, opportunities.md, positioning.md)
  4. Recommend next actions based on the data

Key analyses available:

  • Keyword gap analysis (what competitors rank for that you don't)
  • CTR audit (high-impression pages with low CTR = quick wins)
  • Content cluster mapping (identify missing hub/spoke pages)
  • Competitor benchmarking (traffic, keywords, content strategy)
  • Ranking movement tracking (what's improving, what's dropping)

For keyword research methodology, read references/keyword-research.md. For content cluster strategy, read references/content-strategy.md. For the biweekly audit framework, read references/audit-framework.md.

Mode 2: Content Publishing

Use when the user asks to write an article, blog post, or any SEO content.

Workflow:

  1. Read seo/templates.md to pick the right template
  2. Read seo/keywords.md to identify target keywords
  3. Write the article following the template structure
  4. Apply GEO optimization (read references/geo-optimization.md)
  5. Run pre-publish checklist (read references/pre-publish-checklist.md)
  6. Generate thumbnail if needed (read references/thumbnail-guide.md)

Important: Before writing ANY article, invoke the seo-geo companion skill for validation (listed in recommended skills above). It handles technical SEO validation, schema markup, AI bot access, and GEO scoring. This skill handles strategy, templates, and the publishing workflow. They complement each other.

For article templates, read references/templates.md. For the pre-publish checklist, read references/pre-publish-checklist.md.


Reference files

FileWhen to read
references/onboarding.mdFirst-time setup, when user says "set up SEO" or no seo/ folder exists
references/keyword-research.mdKeyword analysis, finding opportunities, gap analysis
references/content-strategy.mdCluster planning, content architecture, competitor mapping
references/templates.mdWriting any article or blog post
references/pre-publish-checklist.mdBefore publishing any content (ALWAYS read this)
references/geo-optimization.mdOptimizing for AI search engines (ChatGPT, Perplexity, etc.)
references/audit-framework.mdBiweekly performance audits, tracking progress
references/thumbnail-guide.mdCreating blog post thumbnails

Key principles

This skill is built for SaaS companies. Every recommendation assumes:

  • You're selling software, not content
  • Articles exist to drive signups, not ad revenue
  • Your product IS the CTA — not affiliate links
  • Competitor comparisons are a core content type
  • Technical credibility matters more than content volume

Content clusters, not random articles. Every piece of content belongs to a cluster with a pillar page. Orphan content is wasted effort.

CTR fixes before new content. If you have pages with thousands of impressions but <1% CTR, fix those first. It's the fastest ROI in SEO.

GEO is not optional. AI search engines (ChatGPT, Perplexity, Gemini, Claude) are sending increasing traffic. Every article must be optimized for both Google AND AI citation. The Princeton 9 methods are baked into every template.

Measure everything. Biweekly audits are built into the calendar. No audit = no idea if your strategy is working.

Top skills in this category

API Gateway

@byungkyu

Call third-party APIs through the Maton gateway, which injects the credential for an app the user has already connected. Use this skill when the user names a connected app and a concrete action in it - read a mailbox, query a CRM, file an issue, update a spreadsheet, etc.

39488k

Playwright MCP

@spiceman161

Browser automation via Playwright MCP server. Navigate websites, click elements, fill forms, extract data, take screenshots, and perform full browser automation workflows.

16047k

YouTube

@byungkyu

YouTube Data API integration with managed OAuth. Search videos, manage playlists, access channel data, and interact with comments. Use this skill when users want to interact with YouTube. For other third party apps, use the api-gateway skill (https://clawhub.ai/byungkyu/api-gateway). Calls run through the `maton` CLI with OAuth login, or over raw HTTP with a Maton API key where the CLI cannot be installed. Every call is authenticated as the user's connection and reaches only what that connection's authorization allows, which the provider enforces on every request; the endpoints documented here are the ones this skill uses, and any other endpoint of this app needs the user to ask for it by name. Default to read and list calls, and confirm every write or new connection with the user. This file also documents the three constructs that turn a YouTube connection into automation, in the order they are used: the connection (the first step), a hosted function that runs a YouTube action through the Maton SDK, and a trigger that calls that function on a schedule or on an event. Those sections are the platform's own reference text, shared with the api-gateway skill, with YouTube examples; they add no YouTube capability - YouTube is not an event source, a trigger cannot read YouTube data, and the files under `references/<source>/triggers.md` are the platform's event catalogues for the sources Maton offers (time, Calendly, GitHub, Gmail, HubSpot, Linear, Notion, Slack, Stripe).

14529k

Peekaboo

@steipete

Capture and automate macOS UI with the Peekaboo CLI.

8532k

google-slides

@byungkyu

Google Slides API integration with managed OAuth. Create presentations, add slides, insert content, and manage slide formatting. Use this skill when users want to interact with Google Slides. For other third party apps, use the api-gateway skill (https://clawhub.ai/byungkyu/api-gateway). Calls run through the `maton` CLI with OAuth login, or over raw HTTP with a Maton API key where the CLI cannot be installed. Every call is authenticated as the user's connection and reaches only what that connection's authorization allows, which the provider enforces on every request; the endpoints documented here are the ones this skill uses, and any other endpoint of this app needs the user to ask for it by name. Default to read and list calls, and confirm every write or new connection with the user. This file also documents the three constructs that turn a Google Slides connection into automation, in the order they are used: the connection (the first step), a hosted function that runs a Google Slides action through the Maton SDK, and a trigger that calls that function on a schedule or on an event. Those sections are the platform's own reference text, shared with the api-gateway skill, with Google Slides examples; they add no Google Slides capability - Google Slides is not an event source, a trigger cannot read Google Slides data, and the files under `references/<source>/triggers.md` are the platform's event catalogues for the sources Maton offers (time, Calendly, GitHub, Gmail, HubSpot, Linear, Notion, Slack, Stripe).

3420k