agentsclimarketplace

Seo

Skill roedyrustam/claudevibeskills/src/seo

Generative search engine optimization and visibility architectures — covering traditional SEO, GEO (Generative Engine Optimization), and AEO (Answer Engine Optimization) for landing pages. Use whenever the user wants to optimize content for search engines, AI answer engines (ChatGPT, Perplexity, Claude, Google AI Overviews), or write SEO/AEO-optimized landing pages. Trigger on mentions of SEO, GEO, AEO, meta tags, structured data, schema markup, search rankings, or "optimize this page for search/AI".From its SKILL.md

Install
npx -y skills add roedyrustam/claudevibeskills --skill seo

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

9.6 KB, ~2.3k tokens by cl100k_base, as published. Nobody here has run it

SEO / GEO / AEO — Search & AI Visibility

Traditional search optimization plus optimization for AI answer engines (2026 landscape).


The Three Layers of Visibility

LayerTargetOptimizes For
SEOGoogle, BingCrawlers, backlinks, keyword relevance
AEOFeatured snippets, voice searchDirect question-answer matching
GEOChatGPT, Perplexity, Claude, AI OverviewsBeing cited/quoted by LLMs

Traditional SEO Fundamentals

Technical SEO Checklist

✓ robots.txt allows crawling of important pages
✓ sitemap.xml submitted to Search Console
✓ Canonical URLs set on every page
✓ No duplicate content (or rel=canonical pointing to original)
✓ Mobile-responsive (Google is mobile-first indexing)
✓ Core Web Vitals pass (LCP < 2.5s, INP < 200ms, CLS < 0.1)
✓ HTTPS everywhere
✓ Structured data (JSON-LD) on key page types

Metadata Template (Next.js)

// app/blog/[slug]/page.tsx
import type { Metadata } from "next"

export async function generateMetadata({ params }: Props): Promise<Metadata> {
  const post = await getPost(params.slug)

  return {
    title: `${post.title} | YourBrand`,
    description: post.excerpt.slice(0, 160),
    keywords: post.tags,
    alternates: {
      canonical: `https://example.com/blog/${post.slug}`,
    },
    openGraph: {
      title: post.title,
      description: post.excerpt,
      type: "article",
      publishedTime: post.publishedAt,
      authors: [post.author.name],
      images: [{ url: post.ogImage, width: 1200, height: 630 }],
    },
    twitter: {
      card: "summary_large_image",
      title: post.title,
      description: post.excerpt,
      images: [post.ogImage],
    },
  }
}

Structured Data (JSON-LD)

// Article schema
function ArticleSchema({ post }: { post: Post }) {
  const schema = {
    "@context": "https://schema.org",
    "@type": "Article",
    headline: post.title,
    description: post.excerpt,
    image: post.ogImage,
    datePublished: post.publishedAt,
    dateModified: post.updatedAt,
    author: { "@type": "Person", name: post.author.name },
    publisher: {
      "@type": "Organization",
      name: "YourBrand",
      logo: { "@type": "ImageObject", url: "https://example.com/logo.png" },
    },
  }

  return (
    <script
      type="application/ld+json"
      dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}
    />
  )
}

// FAQ schema (also boosts AEO — see below)
const faqSchema = {
  "@context": "https://schema.org",
  "@type": "FAQPage",
  mainEntity: faqs.map(faq => ({
    "@type": "Question",
    name: faq.question,
    acceptedAnswer: { "@type": "Answer", text: faq.answer },
  })),
}

AEO — Answer Engine Optimization

Goal: get your content selected as a featured snippet or voice search answer.

Question-Answer Format

## How long does it take to set up a SaaS MVP?

A typical SaaS MVP takes 4-8 weeks to launch, depending on feature scope.
The breakdown: 2-3 days for project setup, 1 week for auth and billing
integration, and 2-4 weeks for core feature development.

<!-- Direct, complete answer in the FIRST sentence — this is what gets
extracted into featured snippets and voice answers -->

AEO Content Structure

1. Question as H2/H3 heading (matches actual search queries)
2. Direct answer in first sentence (40-60 words ideal for snippets)
3. Supporting detail/context after
4. Bullet points or numbered lists for scannable answers
## What is Row-Level Security in PostgreSQL?

Row-Level Security (RLS) is a PostgreSQL feature that restricts which rows
a user can access in a table, based on policies you define. Unlike
application-level checks, RLS enforces access control at the database
layer itself.

Key benefits:
- Enforced even if application code has bugs
- Works across all database clients (not just your app)
- Reduces duplicate authorization logic

Voice Search Optimization

  • Target natural language questions ("how do I...", "what is...", "why does...")
  • Write answers in conversational tone — voice assistants read these aloud
  • Keep primary answer under 30 words when possible (voice answers are brief)

GEO — Generative Engine Optimization (2026)

Goal: get cited, quoted, or referenced by AI systems (ChatGPT, Perplexity, Claude, Google AI Overviews).

What LLMs Look For When Citing Sources

  1. Clear, extractable claims — specific facts, numbers, definitions stated plainly
  2. Authoritative structure — proper headings, not walls of text
  3. Recency signals — dates, "last updated," version numbers
  4. Original data/research — content that can't be found elsewhere is more citable
  5. Clean semantic HTML — <article>, <section>, proper heading hierarchy

GEO Content Patterns

<!-- ✅ Citable: specific, attributable claim -->
According to our 2026 survey of 500 SaaS companies, 73% use PostgreSQL
as their primary database, up from 61% in 2024.

<!-- ❌ Not citable: vague, no source -->
Most companies use SQL databases these days.
<!-- ✅ Definition format LLMs extract easily -->
**Row-Level Security (RLS)** is a PostgreSQL access-control mechanism
that filters query results based on the requesting user's identity,
enforced at the database engine level rather than in application code.

<!-- Structured for extraction: term in bold, clear definition follows -->

Author & Source Authority Signals

// E-E-A-T signals (Experience, Expertise, Authoritativeness, Trust)
// LLMs and search engines both weight these

const authorSchema = {
  "@context": "https://schema.org",
  "@type": "Person",
  name: "Author Name",
  jobTitle: "Senior Backend Engineer",
  worksFor: { "@type": "Organization", name: "Company" },
  sameAs: [
    "https://linkedin.com/in/author",
    "https://github.com/author",
  ],
}

Llms.txt (Emerging Standard, 2025-2026)

# llms.txt — at your domain root, similar to robots.txt
# Signals to AI crawlers what content is most important/citable

# YourBrand

> One-line description of what your site/product does.

## Documentation
- [API Reference](https://example.com/docs/api): Full API documentation
- [Getting Started](https://example.com/docs/start): Quickstart guide

## Key Pages
- [Pricing](https://example.com/pricing): Current pricing tiers
- [Changelog](https://example.com/changelog): Recent product updates

Landing Page SEO/AEO Writer Template

# [Primary Keyword] — [Value Proposition]

<!-- H1: include primary keyword naturally, keep under 60 chars -->

[Hook paragraph: 2-3 sentences, state the problem and your solution.
Include primary keyword in first 100 words.]

## What is [Primary Keyword]?
<!-- AEO: direct definition, extractable -->
[40-60 word direct answer]

## Why [Primary Keyword] Matters
<!-- Supporting context, secondary keywords naturally woven in -->

## How [Product] Solves [Problem]
<!-- Feature breakdown with H3s for each feature -->

### [Feature 1]
[Benefit-focused description]

### [Feature 2]
[Benefit-focused description]

## Frequently Asked Questions
<!-- AEO + FAQ schema — high snippet/voice-answer potential -->

### [Question matching real search query]
[Direct answer, 40-60 words]

### [Question matching real search query]
[Direct answer, 40-60 words]

## [CTA Section]
[Clear single call-to-action]

On-Page Checklist for Landing Pages

  • H1 contains primary keyword, appears once
  • Primary keyword in first 100 words
  • H2/H3 use question format where relevant (AEO)
  • Meta description: 150-160 chars, includes keyword + CTA
  • Internal links to 2-3 related pages
  • Image alt text descriptive (not keyword-stuffed)
  • FAQ section with schema markup
  • Page load < 2.5s LCP
  • At least one specific, citable fact/statistic (for GEO)

Measuring Success

MetricToolTracks
Organic trafficGoogle Search ConsoleTraditional SEO
Featured snippetsSearch Console + manual checksAEO
AI citationsManual prompting of ChatGPT/Perplexity/ClaudeGEO
Core Web VitalsPageSpeed Insights, Vercel AnalyticsTechnical SEO
Keyword rankingsAhrefs, SEMrushSEO

Key Rules

  1. Direct answers in the first sentence — this is what gets extracted for both AEO snippets and GEO citations
  2. Specific, attributable facts beat vague claims — numbers, dates, named sources are more citable by LLMs
  3. Question-format headings — match real search queries and voice search patterns
  4. FAQ schema everywhere relevant — cheap to add, high AEO value
  5. Structured data (JSON-LD) on all key page types — Article, FAQPage, Product, Organization
  6. llms.txt at domain root — emerging signal for AI crawler prioritization
  7. Core Web Vitals are non-negotiable — slow pages rank worse and convert worse
  8. One H1 per page, logical heading hierarchy beneath it
  9. Original data/research is the highest-value content for GEO — AI systems prefer unique sources
  10. Update dates visibly — "Last updated" signals recency to both crawlers and LLMs

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.