seo-optimizer
Use when the user needs technical SEO audits, meta tag optimization, structured data markup, Core Web Vitals improvement, or search engine visibility enhancement. Trigger conditions: site audit request, meta tag review, Schema.org implementation, page speed optimization, indexability issues, sitemap or robots.txt configuration, hreflang setup, Open Graph or Twitter Card tags, rich snippet eligibility.
- Installs
- 80
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/pixel-process-ug/superkit-agents --skill seo-optimizer- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads seo-optimizer automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
SEO Optimizer
Overview
Optimize websites for search engine visibility through technical SEO, on-page optimization, structured data implementation, and Core Web Vitals performance tuning. This skill covers crawlability, indexability, meta tag strategy, Schema.org markup, sitemap generation, canonical URL management, internationalization (hreflang), and performance optimization for Google's ranking signals.
Apply this skill whenever a site needs better organic search performance, whether for a single page audit or a full-site overhaul.
Multi-Phase Process
Phase 1: Technical Audit
- Crawl the site (Screaming Frog, Sitebulb, or custom script)
- Check robots.txt and XML sitemap validity
- Identify crawl errors, redirect chains, and broken links
- Verify canonical URLs and duplicate content handling
- Assess mobile-friendliness and responsive design
- Check HTTPS implementation and mixed content
- Evaluate page load performance (Core Web Vitals)
STOP — Do NOT proceed to Phase 2 until audit findings are documented and prioritized.
Phase 2: On-Page Optimization
- Audit title tags (unique, 50-60 chars, keyword placement)
- Review meta descriptions (unique, 150-160 chars, compelling CTAs)
- Analyze heading hierarchy (single H1, logical H2-H6 structure)
- Optimize image alt text and file names
- Review internal linking structure and anchor text
- Check URL structure (short, descriptive, hyphenated)
- Validate Open Graph and Twitter Card tags
STOP — Do NOT proceed to Phase 3 until on-page changes are implemented and verified.
Phase 3: Structured Data Implementation
- Identify applicable Schema.org types for content
- Implement JSON-LD structured data
- Validate with Google Rich Results Test
- Test for rich snippet eligibility
- Monitor Search Console for structured data errors
STOP — Do NOT proceed to Phase 4 until structured data passes validation.
Phase 4: Monitoring and Iteration
- Set up Google Search Console monitoring
- Track Core Web Vitals over time
- Monitor indexation status and coverage
- Review search performance (clicks, impressions, CTR, position)
- Set up alerts for crawl errors and ranking drops
Audit Priority Decision Table
| Finding | Severity | Fix Priority | Impact |
|---|---|---|---|
| No HTTPS / mixed content | Critical | Immediate | Ranking penalty, trust signals |
| Missing canonical URLs | Critical | Immediate | Duplicate content dilution |
| Broken redirect chains (3+ hops) | High | This sprint | Crawl budget waste, link equity loss |
| Missing or duplicate title tags | High | This sprint | CTR drop, ranking confusion |
| No structured data | Medium | Next sprint | Missing rich snippets |
| Missing alt text on images | Medium | Next sprint | Accessibility and image search loss |
| Suboptimal Core Web Vitals | Medium | Next sprint | Ranking signal, user experience |
| Missing hreflang tags (multi-language) | Low | Backlog | Geo-targeting issues |
| Non-descriptive URL slugs | Low | Backlog | Minor ranking and CTR effect |
Meta Tag Reference
Essential Meta Tags
<head>
<!-- Primary -->
<title>Primary Keyword - Secondary Keyword | Brand Name</title>
<meta name="description" content="Compelling 150-160 char description with target keyword and clear value proposition.">
<link rel="canonical" href="https://example.com/page">
<!-- Robots -->
<meta name="robots" content="index, follow">
<!-- or noindex, nofollow for pages that shouldn't be indexed -->
<!-- Viewport (mobile) -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Open Graph -->
<meta property="og:type" content="website">
<meta property="og:title" content="Page Title for Social Sharing">
<meta property="og:description" content="Description optimized for social sharing.">
<meta property="og:image" content="https://example.com/og-image.jpg">
<meta property="og:url" content="https://example.com/page">
<meta property="og:site_name" content="Brand Name">
<!-- Twitter Card -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Page Title">
<meta name="twitter:description" content="Twitter-optimized description.">
<meta name="twitter:image" content="https://example.com/twitter-image.jpg">
<!-- Internationalization -->
<link rel="alternate" hreflang="en" href="https://example.com/en/page">
<link rel="alternate" hreflang="de" href="https://example.com/de/page">
<link rel="alternate" hreflang="x-default" href="https://example.com/page">
</head>
Meta Tag Optimization Matrix
| Element | Max Length | Priority Keywords | Common Mistakes |
|---|---|---|---|
| Title tag | 50-60 chars | Front-load primary keyword | Too long, keyword stuffing, duplicate |
| Meta description | 150-160 chars | Include CTA and keyword | Missing, duplicate, no CTA |
| H1 | N/A (single per page) | Primary keyword variation | Multiple H1s, missing H1 |
| URL slug | 3-5 words | Target keyword | Too long, parameters, underscores |
| Image alt | 125 chars | Descriptive, keyword if natural | Empty, "image of...", keyword stuffing |
| OG title | 60-90 chars | Engaging, shareable | Same as title tag (missed opportunity) |
Structured Data (JSON-LD)
Article
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "How to Optimize Core Web Vitals",
"author": {
"@type": "Person",
"name": "Jane Smith",
"url": "https://example.com/authors/jane-smith"
},
"datePublished": "2026-03-01",
"dateModified": "2026-03-15",
"image": "https://example.com/images/article-hero.jpg",
"publisher": {
"@type": "Organization",
"name": "Example Blog",
"logo": {
"@type": "ImageObject",
"url": "https://example.com/logo.png"
}
},
"description": "A comprehensive guide to improving LCP, FID, and CLS scores."
}
</script>
Product
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Widget Pro",
"description": "Professional-grade widget for enterprise use.",
"image": "https://example.com/widget-pro.jpg",
"brand": { "@type": "Brand", "name": "WidgetCo" },
"offers": {
"@type": "Offer",
"price": "49.99",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"url": "https://example.com/widget-pro"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.7",
"reviewCount": "312"
}
}
</script>
FAQ Page
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What is Core Web Vitals?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Core Web Vitals are a set of metrics that measure real-world user experience for loading, interactivity, and visual stability."
}
}
]
}
</script>
Schema Type Decision Guide
| Content Type | Schema Type | Rich Result |
|---|---|---|
| Blog post | Article | Article snippet |
| Product page | Product | Price, rating, availability |
| FAQ section | FAQPage | Expandable Q&A |
| How-to guide | HowTo | Step-by-step snippet |
| Recipe | Recipe | Image, time, rating |
| Event | Event | Date, location, price |
| Local business | LocalBusiness | Map pack, hours |
| Software | SoftwareApplication | Rating, price |
| Breadcrumbs | BreadcrumbList | Breadcrumb trail |
| Video | VideoObject | Thumbnail, duration |
Core Web Vitals
Metrics and Thresholds
| Metric | Good | Needs Improvement | Poor | Measures |
|---|---|---|---|---|
| LCP (Largest Contentful Paint) | <= 2.5s | <= 4.0s | > 4.0s | Loading performance |
| INP (Interaction to Next Paint) | <= 200ms | <= 500ms | > 500ms | Interactivity |
| CLS (Cumulative Layout Shift) | <= 0.1 | <= 0.25 | > 0.25 | Visual stability |
LCP Optimization
<!-- Preload hero image -->
<link rel="preload" as="image" href="/hero.webp" fetchpriority="high">
<!-- Use modern image formats -->
<picture>
<source srcset="/hero.avif" type="image/avif">
<source srcset="/hero.webp" type="image/webp">
<img src="/hero.jpg" alt="Hero description" width="1200" height="600"
fetchpriority="high" decoding="async">
</picture>
CLS Prevention
/* Always set dimensions on images and video */
img, video {
width: 100%;
height: auto;
aspect-ratio: 16 / 9;
}
/* Reserve space for dynamic content */
.ad-slot {
min-height: 250px;
}
/* Avoid inserting content above existing content */
.notification-bar {
position: fixed; /* doesn't shift layout */
}
INP Optimization
// Break long tasks with yield
async function processLargeDataset(data) {
for (let i = 0; i < data.length; i++) {
processItem(data[i]);
if (i % 100 === 0) {
await new Promise(resolve => setTimeout(resolve, 0)); // yield to main thread
}
}
}
// Use requestIdleCallback for non-critical work
requestIdleCallback(() => {
loadAnalytics();
initNonCriticalFeatures();
});
XML Sitemap
Generation Pattern
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://example.com/</loc>
<lastmod>2026-03-15</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://example.com/products</loc>
<lastmod>2026-03-14</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
</urlset>
Sitemap Best Practices
- Maximum 50,000 URLs per sitemap file
- Use sitemap index for larger sites
- Include only canonical, indexable URLs
- Update
lastmodonly when content genuinely changes - Submit via Google Search Console and robots.txt
robots.txt Template
User-agent: *
Allow: /
Disallow: /admin/
Disallow: /api/
Disallow: /search?
Disallow: /*?sort=
Disallow: /*?filter=
Sitemap: https://example.com/sitemap.xml
Next.js / React SEO Patterns
Next.js Metadata API (App Router)
import type { Metadata } from 'next';
export const metadata: Metadata = {
title: {
template: '%s | Brand Name',
default: 'Brand Name - Tagline',
},
description: 'Site-wide default description.',
openGraph: {
type: 'website',
locale: 'en_US',
url: 'https://example.com',
siteName: 'Brand Name',
},
twitter: {
card: 'summary_large_image',
},
robots: {
index: true,
follow: true,
},
alternates: {
canonical: 'https://example.com',
},
};
Dynamic Metadata per Page
export async function generateMetadata({ params }): Promise<Metadata> {
const product = await getProduct(params.slug);
return {
title: product.name,
description: product.description.slice(0, 160),
openGraph: {
title: product.name,
description: product.description.slice(0, 200),
images: [{ url: product.image, width: 1200, height: 630 }],
},
};
}
Anti-Patterns / Common Mistakes
| Anti-Pattern | Why It Fails | What To Do Instead |
|---|---|---|
| Keyword stuffing in titles/content | Triggers spam filters, reduces CTR | Use primary keyword once naturally, add variations |
| Same title/description across pages | Duplicate content signals, wasted opportunity | Unique, page-specific meta for every indexable URL |
| Blocking CSS/JS in robots.txt | Googlebot cannot render pages | Allow all rendering resources |
| Structured data mismatching page content | Google penalties, rich snippet removal | Schema must reflect visible content exactly |
| Redirect chains > 2 hops | Crawl budget waste, link equity loss | Redirect directly to final destination |
| JS-only navigation without SSR links | Crawler cannot discover pages | Server-render navigation links |
| Ignoring Core Web Vitals | Ranking signal degradation | Profile and optimize LCP, INP, CLS |
| Missing canonical URLs | Duplicate content penalties | Set canonical on every indexable page |
| Over-optimized anchor text | Unnatural link patterns trigger penalties | Use descriptive, varied anchor text |
| Hiding content with CSS for SEO | Cloaking violation | All SEO content must be visible to users |
Anti-Rationalization Guards
- Do NOT skip the technical audit because "the site looks fine" -- crawl it.
- Do NOT add structured data without validating it passes the Rich Results Test.
- Do NOT assume meta tags are correct without checking every page type.
- Do NOT deploy SEO changes without before/after measurement.
- Do NOT optimize for search engines at the expense of user experience.
Integration Points
| Skill | How It Connects |
|---|---|
content-creator | SEO informs keyword targeting and headline strategy for marketing content |
content-research-writer | Research-backed content needs SEO-optimized structure and meta tags |
senior-frontend | Core Web Vitals optimization requires frontend performance tuning |
performance-optimization | Page speed directly affects LCP and INP scores |
deployment | SEO changes need proper cache invalidation and redirect configuration |
tech-docs-generator | Documentation sites need sitemap, canonical, and structured data setup |
Skill Type
FLEXIBLE — Adapt the optimization strategy to the site's technology stack, content type, and competitive landscape. Technical SEO fundamentals and structured data best practices are strongly recommended; specific implementation patterns vary by framework.
FAQ
What does the seo-optimizer skill do?
Use when the user needs technical SEO audits, meta tag optimization, structured data markup, Core Web Vitals improvement, or search engine visibility enhancement. Trigger conditions: site audit request, meta tag review, Schema.org implementation, page speed optimization, indexability issues, sitemap or robots.txt configuration, hreflang setup, Open Graph or Twitter Card tags, rich snippet eligibility.
How do I install seo-optimizer?
Run npx skills add https://github.com/pixel-process-ug/superkit-agents --skill seo-optimizer in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/seo-optimizer/ (personal) or .claude/skills/seo-optimizer/ (project).
Which AI agents can use seo-optimizer?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is seo-optimizer safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains seo-optimizer?
It is published by pixel-process-ug in pixel-process-ug/superkit-agents. It has 80 recorded installs.
More from pixel-process-ug/superkit-agents
ui-ux-pro-max
pixel-process-ug/superkit-agents
Use when the user needs full UI/UX design intelligence — styles, palettes, fonts, UX guidelines, chart selection, and accessible, performant implementation across any supported stack. Triggers: user says "design", "UI", "UX", "color palette", "typography", "accessibility", "responsive design", "chart type", "style guide", building any user-facing interface.
frontend-ui-design
pixel-process-ug/superkit-agents
Open the skill to read its SKILL.md instructions.
reverse-engineering-specs
pixel-process-ug/superkit-agents
Open the skill to read its SKILL.md instructions.
canvas-design
pixel-process-ug/superkit-agents
Open the skill to read its SKILL.md instructions.
autonomous-loop
pixel-process-ug/superkit-agents
Open the skill to read its SKILL.md instructions.
mobile-design
pixel-process-ug/superkit-agents
Open the skill to read its SKILL.md instructions.
Popular marketing & seo skills
reddit-automation
flowkit-labs/skills
Find Reddit threads where people are genuinely asking for what you offer, then draft short, genuinely helpful replies — disclosing your affiliation honestly and naming your product only when it truly answers the question. Two moves: discovery — scan the right subreddits for real needs (recommendation asks, expressed pain, competitor mentions) and rank the few threads where you can actually help; drafting — write from real experience, respect each community's self-promo rules, and keep a human in the loop to review and post. This markets on Reddit the honest way: contribute value, disclose who you are, never astroturf. Distilled from the playbook behind doany.ai's Reddit agent. Triggers on "find reddit opportunities", "reddit marketing", "reddit automation", "reply on reddit for my product", "reddit community engagement", "reddit lead gen", or any ask to turn Reddit threads into genuine, disclosed marketing replies.
twitter-automation
101-skills/superpowers
Automate Twitter/X with posting, engagement, and user management via inference.sh CLI. Apps: x/post-tweet, x/post-create (with media), x/post-like, x/post-retweet, x/dm-send, x/user-follow. Capabilities: post tweets, schedule content, like posts, retweet, send DMs, follow users, get profiles. Use for: social media automation, content scheduling, engagement bots, audience growth, X API. Triggers: twitter api, x api, tweet automation, post to twitter, twitter bot, social media automation, x automation, tweet scheduler, twitter integration, post tweet, twitter post, x post, send tweet
twitter-automation
magentosh/superpowers
Automate Twitter/X with posting, engagement, and user management via inference.sh CLI. Apps: x/post-tweet, x/post-create (with media), x/post-like, x/post-retweet, x/dm-send, x/user-follow. Capabilities: post tweets, schedule content, like posts, retweet, send DMs, follow users, get profiles. Use for: social media automation, content scheduling, engagement bots, audience growth, X API. Triggers: twitter api, x api, tweet automation, post to twitter, twitter bot, social media automation, x automation, tweet scheduler, twitter integration, post tweet, twitter post, x post, send tweet
twitter-automation
qu-skills/superpowers
Automate Twitter/X with posting, engagement, and user management via inference.sh CLI. Apps: x/post-tweet, x/post-create (with media), x/post-like, x/post-retweet, x/dm-send, x/user-follow. Capabilities: post tweets, schedule content, like posts, retweet, send DMs, follow users, get profiles. Use for: social media automation, content scheduling, engagement bots, audience growth, X API. Triggers: twitter api, x api, tweet automation, post to twitter, twitter bot, social media automation, x automation, tweet scheduler, twitter integration, post tweet, twitter post, x post, send tweet
product-launch-video
heygen-com/hyperframes
Turn a product or marketing URL, pasted script, or brief into a product launch / promo video — SaaS promos, feature reveals, product demos, app and company launches. Use when the user wants to market, launch, promote, or reveal a product; the default for any commercial URL. Site tours / showcases of a website route here too — the brief carries the show-it-as-is intent. Unclear → /hyperframes.
twitter-automation
skills-shell/superpowers
Automate Twitter/X with posting, engagement, and user management via inference.sh CLI. Apps: x/post-tweet, x/post-create (with media), x/post-like, x/post-retweet, x/dm-send, x/user-follow. Capabilities: post tweets, schedule content, like posts, retweet, send DMs, follow users, get profiles. Use for: social media automation, content scheduling, engagement bots, audience growth, X API. Triggers: twitter api, x api, tweet automation, post to twitter, twitter bot, social media automation, x automation, tweet scheduler, twitter integration, post tweet, twitter post, x post, send tweet