SEO Skill — AuditKit

This skill is auto-included in the generated ZIP when the SEO pillar score is below 90.

10 stars

Best use case

SEO Skill — AuditKit is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

This skill is auto-included in the generated ZIP when the SEO pillar score is below 90.

Teams using SEO Skill — AuditKit should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/seo/SKILL.md --create-dirs "https://raw.githubusercontent.com/nirholas/AuditKit/main/.agents/skills/seo/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/seo/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How SEO Skill — AuditKit Compares

Feature / AgentSEO Skill — AuditKitStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

This skill is auto-included in the generated ZIP when the SEO pillar score is below 90.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# SEO Skill — AuditKit

This skill is auto-included in the generated ZIP when the SEO pillar score is below 90.

## Critical Requirements

Every page MUST have:
- `<title>` tag (50–60 characters)
- `<meta name="description">` (120–158 characters)
- `<link rel="canonical">` pointing to the preferred URL
- At least one `<h1>` tag

## Meta Tags Checklist

```html
<head>
  <!-- Required -->
  <title>Page Title — Site Name</title>
  <meta name="description" content="120–158 char description of this specific page.">
  <link rel="canonical" href="https://yourdomain.com/page">

  <!-- Open Graph (required for social sharing) -->
  <meta property="og:title" content="Page Title">
  <meta property="og:description" content="Description">
  <meta property="og:image" content="https://yourdomain.com/og-image.png">
  <meta property="og:url" content="https://yourdomain.com/page">
  <meta property="og:type" content="website">

  <!-- Twitter Card -->
  <meta name="twitter:card" content="summary_large_image">
  <meta name="twitter:title" content="Page Title">
  <meta name="twitter:description" content="Description">
  <meta name="twitter:image" content="https://yourdomain.com/og-image.png">
</head>
```

## Next.js Metadata API

```typescript
// app/page.tsx
import type { Metadata } from 'next'

export const metadata: Metadata = {
  title: 'Page Title — Site Name',
  description: '120–158 char description.',
  alternates: {
    canonical: 'https://yourdomain.com/page',
  },
  openGraph: {
    title: 'Page Title',
    description: 'Description',
    images: [{ url: '/og-image.png', width: 1200, height: 630 }],
  },
  twitter: {
    card: 'summary_large_image',
    title: 'Page Title',
    description: 'Description',
    images: ['/og-image.png'],
  },
}
```

## robots.txt

```
# public/robots.txt
User-agent: *
Allow: /

# Allow AI crawlers
User-agent: GPTBot
Allow: /

User-agent: ClaudeBot
Allow: /

User-agent: Google-Extended
Allow: /

Sitemap: https://yourdomain.com/sitemap.xml
```

## sitemap.xml

```typescript
// app/sitemap.ts (Next.js)
import type { MetadataRoute } from 'next'

export default function sitemap(): MetadataRoute.Sitemap {
  return [
    { url: 'https://yourdomain.com', lastModified: new Date(), changeFrequency: 'weekly', priority: 1 },
    // add all pages
  ]
}
```

## Common Issues

| Issue | Fix |
|-------|-----|
| Missing `<title>` | Add `<title>` to every page's `<head>` |
| Duplicate titles | Each page needs a unique, descriptive title |
| Title too long (>60 chars) | Truncate — search engines will cut it anyway |
| No OG image | Create a 1200×630 image for each key page |
| Missing canonical | Add `<link rel="canonical">` or use Next.js metadata |
| No sitemap | Generate `/sitemap.xml` and submit to Google Search Console |
| Blocked in robots.txt | Ensure `Allow: /` is present |

Related Skills

We are still matching the closest adjacent skills for this page. In the meantime, continue through the full directory.