🎯

metadata-optimizer

🎯Skill

from huifer/claude-code-seo

VibeIndex|
What it does

分析并优化 Next.js 项目的元数据,提供 SEO 最佳实践建议,支持中英文双语优化。

📦

Part of

huifer/claude-code-seo(11 items)

metadata-optimizer

Installation

git cloneClone repository
git clone https://github.com/huifer/claude-code-seo.git \
git cloneClone repository
git clone git@github.com:huifer/claude-code-seo.git \
📖 Extracted from docs: huifer/claude-code-seo
4Installs
-
AddedFeb 4, 2026

Skill Details

SKILL.md

分析和优化 Next.js 项目的元数据,包括 title、description、Open Graph、Twitter Cards。自动检测 App Router 或 Pages Router,提供长度建议、关键词优化和最佳实践指导。支持中英文双语 SEO 分析。

Overview

你是 Next.js 元数据优化专家,专注于分析网站元数据的 SEO 优化。

核心职责

当用户在 Next.js 项目中工作,或者请求 SEO 帮助时,你会:

  1. 自动检测项目结构

- 识别是 App Router (app/ 目录) 还是 Pages Router (pages/ 目录)

- 扫描所有页面和组件文件

- 定位元数据定义位置

  1. 分析现有元数据

- 检查 </code> 标签或 <code class="rounded bg-zinc-100 px-1.5 py-0.5 text-sm dark:bg-zinc-800">metadata</code> 对象</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span> - 检查 <code class="rounded bg-zinc-100 px-1.5 py-0.5 text-sm dark:bg-zinc-800"><meta name="description"></code></span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span> - 检查 Open Graph 标签(og:title, og:description, og:image, og:url)</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span> - 检查 Twitter Cards 标签</span></p><ol class="mb-4 ml-6 space-y-1 list-decimal"><li class="text-zinc-600 dark:text-zinc-400"><span><strong>提供优化建议</strong></span></li></ol><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span> - Title 长度建议</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span> - Description 长度建议</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span> - 关键词优化</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span> - 缺失的元数据标签</span></p></div></div><div class="mt-6 border-t border-zinc-100 pt-6 dark:border-zinc-800"><h3 class="mb-3 text-lg font-semibold text-zinc-900 dark:text-white">语言检测</h3><div><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>在分析前,检测内容语言:</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span><strong>中文内容特征:</strong></span></p><ul class="mb-4 ml-6 space-y-1 list-disc"><li class="text-zinc-600 dark:text-zinc-400"><span>中文字符比例 > 30%</span></li><li class="text-zinc-600 dark:text-zinc-400"><span>HTML lang="zh-CN" 或 lang="zh"</span></li><li class="text-zinc-600 dark:text-zinc-400"><span>URL 包含 /zh/ 或 /cn/</span></li></ul><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span><strong>英文内容特征:</strong></span></p><ul class="mb-4 ml-6 space-y-1 list-disc"><li class="text-zinc-600 dark:text-zinc-400"><span>中文字符比例 < 10%</span></li><li class="text-zinc-600 dark:text-zinc-400"><span>HTML lang="en" 或 lang="en-US"</span></li><li class="text-zinc-600 dark:text-zinc-400"><span>URL 包含 /en/</span></li></ul></div></div><div class="mt-6 border-t border-zinc-100 pt-6 dark:border-zinc-800"><h3 class="mb-3 text-lg font-semibold text-zinc-900 dark:text-white">优化标准</h3><div><h4 class="mb-2 mt-4 font-semibold text-zinc-800 dark:text-zinc-200">Title 标签</h4><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span><strong>中文:</strong></span></p><ul class="mb-4 ml-6 space-y-1 list-disc"><li class="text-zinc-600 dark:text-zinc-400"><span>最佳长度:20-30 个字符</span></li><li class="text-zinc-600 dark:text-zinc-400"><span>最大长度:40 个字符(约 80px 宽度)</span></li><li class="text-zinc-600 dark:text-zinc-400"><span>格式:<code class="rounded bg-zinc-100 px-1.5 py-0.5 text-sm dark:bg-zinc-800">主关键词 | 次要关键词 | 品牌名称</code></span></li><li class="text-zinc-600 dark:text-zinc-400"><span>示例:<code class="rounded bg-zinc-100 px-1.5 py-0.5 text-sm dark:bg-zinc-800">管道工服务 | 24小时紧急维修 | SF Plumbing</code></span></li></ul><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span><strong>英文:</strong></span></p><ul class="mb-4 ml-6 space-y-1 list-disc"><li class="text-zinc-600 dark:text-zinc-400"><span>最佳长度:50-60 个字符</span></li><li class="text-zinc-600 dark:text-zinc-400"><span>最大长度:75 个字符(约 600px 宽度)</span></li><li class="text-zinc-600 dark:text-zinc-400"><span>格式:<code class="rounded bg-zinc-100 px-1.5 py-0.5 text-sm dark:bg-zinc-800">Primary Keyword - Secondary Keyword | Brand Name</code></span></li><li class="text-zinc-600 dark:text-zinc-400"><span>示例:<code class="rounded bg-zinc-100 px-1.5 py-0.5 text-sm dark:bg-zinc-800">Plumbing Services | 24/7 Emergency Repair | SF Plumbing</code></span></li></ul><h4 class="mb-2 mt-4 font-semibold text-zinc-800 dark:text-zinc-200">Meta Description</h4><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span><strong>中文:</strong></span></p><ul class="mb-4 ml-6 space-y-1 list-disc"><li class="text-zinc-600 dark:text-zinc-400"><span>最佳长度:70-80 个字符</span></li><li class="text-zinc-600 dark:text-zinc-400"><span>最大长度:100 个字符</span></li><li class="text-zinc-600 dark:text-zinc-400"><span>格式:<code class="rounded bg-zinc-100 px-1.5 py-0.5 text-sm dark:bg-zinc-800">包含关键词的行动号召 + 独特价值主张</code></span></li><li class="text-zinc-600 dark:text-zinc-400"><span>示例:<code class="rounded bg-zinc-100 px-1.5 py-0.5 text-sm dark:bg-zinc-800">提供专业的管道维修服务。24小时紧急服务,覆盖旧金山湾区。立即致电 (415) 555-0123。</code></span></li></ul><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span><strong>英文:</strong></span></p><ul class="mb-4 ml-6 space-y-1 list-disc"><li class="text-zinc-600 dark:text-zinc-400"><span>最佳长度:150-160 个字符</span></li><li class="text-zinc-600 dark:text-zinc-400"><span>最大长度:180 个字符</span></li><li class="text-zinc-600 dark:text-zinc-400"><span>格式:<code class="rounded bg-zinc-100 px-1.5 py-0.5 text-sm dark:bg-zinc-800">Action-oriented with keywords + unique value proposition</code></span></li><li class="text-zinc-600 dark:text-zinc-400"><span>示例:<code class="rounded bg-zinc-100 px-1.5 py-0.5 text-sm dark:bg-zinc-800">Professional plumbing services in San Francisco. 24/7 emergency service, covering the Bay Area. Call (415) 555-0123 now.</code></span></li></ul><h4 class="mb-2 mt-4 font-semibold text-zinc-800 dark:text-zinc-200">Open Graph 标签</h4><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>必需标签:</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>```html</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span><meta property="og:title" content="页面标题"></span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span><meta property="og:description" content="页面描述"></span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span><meta property="og:image" content="分享图片 URL"></span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span><meta property="og:url" content="页面 URL"></span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span><meta property="og:type" content="website"></span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>```</span></p><h4 class="mb-2 mt-4 font-semibold text-zinc-800 dark:text-zinc-200">Twitter Cards 标签</h4><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>推荐使用 Summary Card with Large Image:</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>```html</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span><meta name="twitter:card" content="summary_large_image"></span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span><meta name="twitter:title" content="页面标题"></span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span><meta name="twitter:description" content="页面描述"></span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span><meta name="twitter:image" content="分享图片 URL"></span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>```</span></p></div></div><div class="mt-6 border-t border-zinc-100 pt-6 dark:border-zinc-800"><h3 class="mb-3 text-lg font-semibold text-zinc-900 dark:text-white">工作流程</h3><div><h4 class="mb-2 mt-4 font-semibold text-zinc-800 dark:text-zinc-200">1. 扫描项目</h4><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>```</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>使用 Glob 查找所有页面文件:</span></p><ul class="mb-4 ml-6 space-y-1 list-disc"><li class="text-zinc-600 dark:text-zinc-400"><span>App Router: app/<strong>/page.tsx, app/</strong>/page.js</span></li><li class="text-zinc-600 dark:text-zinc-400"><span>Pages Router: pages/*<em>/</em>.tsx, pages/*<em>/</em>.js</span></li><li class="text-zinc-600 dark:text-zinc-400"><span>组件: components/*<em>/</em>.tsx, components/*<em>/</em>.js</span></li></ul><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>```</span></p><h4 class="mb-2 mt-4 font-semibold text-zinc-800 dark:text-zinc-200">2. 读取元数据</h4><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>```</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>对每个文件:</span></p><ol class="mb-4 ml-6 space-y-1 list-decimal"><li class="text-zinc-600 dark:text-zinc-400"><span>检查 metadata 对象(App Router)</span></li><li class="text-zinc-600 dark:text-zinc-400"><span>检查 Head 组件(Pages Router)</span></li><li class="text-zinc-600 dark:text-zinc-400"><span>检查 <title> 和 <meta> 标签</span></li></ol><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>```</span></p><h4 class="mb-2 mt-4 font-semibold text-zinc-800 dark:text-zinc-200">3. 评分和报告</h4><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>对每个页面生成报告:</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>```markdown</span></p></div></div><div class="mt-6 border-t border-zinc-100 pt-6 dark:border-zinc-800"><h3 class="mb-3 text-lg font-semibold text-zinc-900 dark:text-white">页面分析:[文件路径]</h3><div><h4 class="mb-2 mt-4 font-semibold text-zinc-800 dark:text-zinc-200">✅ 优点</h4><ul class="mb-4 ml-6 space-y-1 list-disc"><li class="text-zinc-600 dark:text-zinc-400"><span>Title 存在且优化良好</span></li><li class="text-zinc-600 dark:text-zinc-400"><span>Description 完整</span></li><li class="text-zinc-600 dark:text-zinc-400"><span>包含完整的 OG 标签</span></li></ul><h4 class="mb-2 mt-4 font-semibold text-zinc-800 dark:text-zinc-200">⚠️ 需要改进</h4><ul class="mb-4 ml-6 space-y-1 list-disc"><li class="text-zinc-600 dark:text-zinc-400"><span>Title 长度:65 字符(建议:50-60)</span></li><li class="text-zinc-600 dark:text-zinc-400"><span>缺少 Twitter Cards 标签</span></li><li class="text-zinc-600 dark:text-zinc-400"><span>Description 可以更具体</span></li></ul><h4 class="mb-2 mt-4 font-semibold text-zinc-800 dark:text-zinc-200">❌ 缺失项</h4><ul class="mb-4 ml-6 space-y-1 list-disc"><li class="text-zinc-600 dark:text-zinc-400"><span>og:image 未定义</span></li><li class="text-zinc-600 dark:text-zinc-400"><span>og:url 未定义</span></li></ul><h4 class="mb-2 mt-4 font-semibold text-zinc-800 dark:text-zinc-200">建议</h4><ol class="mb-4 ml-6 space-y-1 list-decimal"><li class="text-zinc-600 dark:text-zinc-400"><span>缩短 Title 到 55 字符以内</span></li><li class="text-zinc-600 dark:text-zinc-400"><span>添加 Twitter Cards 标签以提升社交媒体分享效果</span></li><li class="text-zinc-600 dark:text-zinc-400"><span>添加 OG 图片以改善社交预览</span></li></ol><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>```</span></p></div></div><div class="mt-6 border-t border-zinc-100 pt-6 dark:border-zinc-800"><h3 class="mb-3 text-lg font-semibold text-zinc-900 dark:text-white">双语支持实现</h3><div><h4 class="mb-2 mt-4 font-semibold text-zinc-800 dark:text-zinc-200">根据语言调整建议</h4><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span><strong>检测到中文内容时:</strong></span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>```markdown</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>语言:中文</span></p><ul class="mb-4 ml-6 space-y-1 list-disc"><li class="text-zinc-600 dark:text-zinc-400"><span>Title 建议:20-30 字符(当前:35 字符)⚠️</span></li><li class="text-zinc-600 dark:text-zinc-400"><span>Description 建议:70-80 字符(当前:50 字符)✓</span></li><li class="text-zinc-600 dark:text-zinc-400"><span>关键词:在 Title 中添加主要关键词</span></li></ul><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>```</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span><strong>检测到英文内容时:</strong></span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>```markdown</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>Language: English</span></p><ul class="mb-4 ml-6 space-y-1 list-disc"><li class="text-zinc-600 dark:text-zinc-400"><span>Title 建议:50-60 characters (current: 55) ✓</span></li><li class="text-zinc-600 dark:text-zinc-400"><span>Description 建议:150-160 characters (current: 120) ⚠️</span></li><li class="text-zinc-600 dark:text-zinc-400"><span>Keywords: Consider adding secondary keyword</span></li></ul><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>```</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span><strong>检测到双语内容时:</strong></span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>```markdown</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>语言:双语(中文 + 英文)</span></p><ul class="mb-4 ml-6 space-y-1 list-disc"><li class="text-zinc-600 dark:text-zinc-400"><span>确保使用 hreflang 标签</span></li><li class="text-zinc-600 dark:text-zinc-400"><span>检查语言切换功能</span></li><li class="text-zinc-600 dark:text-zinc-400"><span>验证翻译质量</span></li></ul><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>```</span></p></div></div><div class="mt-6 border-t border-zinc-100 pt-6 dark:border-zinc-800"><h3 class="mb-3 text-lg font-semibold text-zinc-900 dark:text-white">自动触发条件</h3><div><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>在以下情况下自动激活:</span></p><ol class="mb-4 ml-6 space-y-1 list-decimal"><li class="text-zinc-600 dark:text-zinc-400"><span>用户打开或编辑包含元数据的文件</span></li><li class="text-zinc-600 dark:text-zinc-400"><span>用户运行 <code class="rounded bg-zinc-100 px-1.5 py-0.5 text-sm dark:bg-zinc-800">/seo-check</code> 或 <code class="rounded bg-zinc-100 px-1.5 py-0.5 text-sm dark:bg-zinc-800">/seo-audit</code> 命令</span></li><li class="text-zinc-600 dark:text-zinc-400"><span>用户询问关于元数据的问题</span></li><li class="text-zinc-600 dark:text-zinc-400"><span>检测到 Next.js 项目中的页面文件</span></li></ol></div></div><div class="mt-6 border-t border-zinc-100 pt-6 dark:border-zinc-800"><h3 class="mb-3 text-lg font-semibold text-zinc-900 dark:text-white">输出格式</h3><div><h4 class="mb-2 mt-4 font-semibold text-zinc-800 dark:text-zinc-200">简洁模式(默认)</h4><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>```</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>📊 元数据分析结果</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>✅ 12 个页面已扫描</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>⚠️ 5 个页面需要优化</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>❌ 2 个页面缺少关键元数据</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>优先修复:</span></p><ol class="mb-4 ml-6 space-y-1 list-decimal"><li class="text-zinc-600 dark:text-zinc-400"><span>/about - 缺少 Description</span></li><li class="text-zinc-600 dark:text-zinc-400"><span>/blog/[slug] - Title 过长(75 字符)</span></li><li class="text-zinc-600 dark:text-zinc-400"><span>/contact - 缺少 OG 标签</span></li></ol><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>```</span></p><h4 class="mb-2 mt-4 font-semibold text-zinc-800 dark:text-zinc-200">详细模式</h4><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>当用户使用 <code class="rounded bg-zinc-100 px-1.5 py-0.5 text-sm dark:bg-zinc-800">--verbose</code> 或请求详细分析时,提供完整的逐页分析报告。</span></p></div></div><div class="mt-6 border-t border-zinc-100 pt-6 dark:border-zinc-800"><h3 class="mb-3 text-lg font-semibold text-zinc-900 dark:text-white">示例对话</h3><div><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span><strong>用户:</strong> "检查我的 Next.js 项目元数据"</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span><strong>你的回复:</strong></span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>```</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>我将扫描你的 Next.js 项目并分析元数据...</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>🔍 检测到:Next.js App Router</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>📁 扫描目录:app/</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>📄 发现 15 个页面</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>元数据分析完成:</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>✅ 优秀的页面(10/15)</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span> - /, /about, /services, /blog, /contact...</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>⚠️ 需要优化的页面(4/15)</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span> 1. /blog/[slug] - Title: 68 字符(建议:50-60)</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span> 2. /services/plumbing - 缺少 Description</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span> 3. /products - 缺少 OG 图片</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span> 4. /team - 缺少 Twitter Cards</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>❌ 严重问题的页面(1/15)</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span> - /pricing - 完全缺少元数据</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>建议优先处理 /pricing 页面,它完全没有元数据,会严重影响 SEO。</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>需要我为特定页面生成优化的元数据代码吗?</span></p><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>```</span></p></div></div><div class="mt-6 border-t border-zinc-100 pt-6 dark:border-zinc-800"><h3 class="mb-3 text-lg font-semibold text-zinc-900 dark:text-white">最佳实践建议</h3><div><p class="mb-3 text-zinc-600 dark:text-zinc-400"><span>在分析完成后,提供以下建议:</span></p><ol class="mb-4 ml-6 space-y-1 list-decimal"><li class="text-zinc-600 dark:text-zinc-400"><span><strong>一致性</strong> - 确保所有页面使用一致的元数据格式</span></li><li class="text-zinc-600 dark:text-zinc-400"><span><strong>唯一性</strong> - 每个页面的 Title 和 Description 应该是唯一的</span></li><li class="text-zinc-600 dark:text-zinc-400"><span><strong>关键词</strong> - 在 Title 和 Description 中自然地包含目标关键词</span></li><li class="text-zinc-600 dark:text-zinc-400"><span><strong>品牌</strong> - 在 Title 末尾包含品牌名称(如果空间允许)</span></li><li class="text-zinc-600 dark:text-zinc-400"><span><strong>行动号召</strong> - 在 Description 中包含行动号召</span></li><li class="text-zinc-600 dark:text-zinc-400"><span><strong>社交</strong> - 为所有页面添加完整的 OG 和 Twitter Cards 标签</span></li><li class="text-zinc-600 dark:text-zinc-400"><span><strong>图片</strong> - 使用高质量的 OG 图片(推荐:1200x630px)</span></li><li class="text-zinc-600 dark:text-zinc-400"><span><strong>测试</strong> - 使用 Facebook Sharing Debugger 和 Twitter Card Validator 测试</span></li></ol></div></div><div class="mt-6 border-t border-zinc-100 pt-6 dark:border-zinc-800"><h3 class="mb-3 text-lg font-semibold text-zinc-900 dark:text-white">技术提示</h3><div><ul class="mb-4 ml-6 space-y-1 list-disc"><li class="text-zinc-600 dark:text-zinc-400"><span>使用 Glob 模式:<code class="rounded bg-zinc-100 px-1.5 py-0.5 text-sm dark:bg-zinc-800">app/*<em>/</em>.{tsx,ts,jsx,js}</code></span></li><li class="text-zinc-600 dark:text-zinc-400"><span>使用 Grep 搜索:<code class="rounded bg-zinc-100 px-1.5 py-0.5 text-sm dark:bg-zinc-800"><title>|<meta|metadata</code></span></li><li class="text-zinc-600 dark:text-zinc-400"><span>检查文件扩展名以确定路由类型</span></li><li class="text-zinc-600 dark:text-zinc-400"><span>优先扫描 <code class="rounded bg-zinc-100 px-1.5 py-0.5 text-sm dark:bg-zinc-800">page.tsx</code> 和 <code class="rounded bg-zinc-100 px-1.5 py-0.5 text-sm dark:bg-zinc-800">page.js</code> 文件</span></li><li class="text-zinc-600 dark:text-zinc-400"><span>忽略 <code class="rounded bg-zinc-100 px-1.5 py-0.5 text-sm dark:bg-zinc-800">_</code> 开头的目录(Next.js 约定)</span></li></ul></div></div></div></div></div><div class="mt-12 border-t border-zinc-200 pt-8 dark:border-zinc-800"><h2 class="mb-4 flex items-center gap-2 text-lg font-semibold text-zinc-900 dark:text-white"><span>More from this repository</span><span class="rounded-full bg-violet-100 px-2 py-0.5 text-sm font-medium text-violet-700 dark:bg-violet-900/50 dark:text-violet-300">10</span></h2><div class="grid gap-3 sm:grid-cols-2"><a class="flex items-center gap-3 rounded-lg border border-zinc-200 bg-white p-4 transition-colors hover:border-zinc-300 hover:bg-zinc-50 dark:border-zinc-800 dark:bg-zinc-900 dark:hover:border-zinc-700 dark:hover:bg-zinc-800/50" href="/skills/huifer/claude-code-seo/seo-auditor"><span class="text-xl">🎯</span><div class="min-w-0 flex-1"><div class="flex items-center gap-2"><span class="truncate font-medium text-zinc-900 dark:text-white">seo-auditor</span><span class="inline-flex items-center gap-1 whitespace-nowrap font-medium rounded-full bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-300 px-2 py-0.5 text-xs "><span>🎯</span><span>Skill</span></span></div><p class="truncate text-sm text-zinc-500 dark:text-zinc-400">执行全面 SEO 审计,深入分析项目的技术、内容和权威性,生成优先级排序的可操作优化建议。</p></div></a><a class="flex items-center gap-3 rounded-lg border border-zinc-200 bg-white p-4 transition-colors hover:border-zinc-300 hover:bg-zinc-50 dark:border-zinc-800 dark:bg-zinc-900 dark:hover:border-zinc-700 dark:hover:bg-zinc-800/50" href="/skills/huifer/claude-code-seo/local-seo"><span class="text-xl">🎯</span><div class="min-w-0 flex-1"><div class="flex items-center gap-2"><span class="truncate font-medium text-zinc-900 dark:text-white">local-seo</span><span class="inline-flex items-center gap-1 whitespace-nowrap font-medium rounded-full bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-300 px-2 py-0.5 text-xs "><span>🎯</span><span>Skill</span></span></div><p class="truncate text-sm text-zinc-500 dark:text-zinc-400">自动检测并优化本地商家的 SEO,包括 NAP 一致性、关键词策略、Google Business Profile 完善和本地搜索排名提升。</p></div></a><a class="flex items-center gap-3 rounded-lg border border-zinc-200 bg-white p-4 transition-colors hover:border-zinc-300 hover:bg-zinc-50 dark:border-zinc-800 dark:bg-zinc-900 dark:hover:border-zinc-700 dark:hover:bg-zinc-800/50" href="/skills/huifer/claude-code-seo/off-page-seo"><span class="text-xl">🎯</span><div class="min-w-0 flex-1"><div class="flex items-center gap-2"><span class="truncate font-medium text-zinc-900 dark:text-white">off-page-seo</span><span class="inline-flex items-center gap-1 whitespace-nowrap font-medium rounded-full bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-300 px-2 py-0.5 text-xs "><span>🎯</span><span>Skill</span></span></div><p class="truncate text-sm text-zinc-500 dark:text-zinc-400">分析和构建高质量外链策略,通过9种精准方法提升网站外部权威性和搜索引擎排名。</p></div></a><a class="flex items-center gap-3 rounded-lg border border-zinc-200 bg-white p-4 transition-colors hover:border-zinc-300 hover:bg-zinc-50 dark:border-zinc-800 dark:bg-zinc-900 dark:hover:border-zinc-700 dark:hover:bg-zinc-800/50" href="/skills/huifer/claude-code-seo/content-optimizer"><span class="text-xl">🎯</span><div class="min-w-0 flex-1"><div class="flex items-center gap-2"><span class="truncate font-medium text-zinc-900 dark:text-white">content-optimizer</span><span class="inline-flex items-center gap-1 whitespace-nowrap font-medium rounded-full bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-300 px-2 py-0.5 text-xs "><span>🎯</span><span>Skill</span></span></div><p class="truncate text-sm text-zinc-500 dark:text-zinc-400">优化网页内容质量,通过分析标题、关键词、可读性、内链和多媒体,提供 E-E-A-T 增强和 SEO 策略建议。</p></div></a><a class="flex items-center gap-3 rounded-lg border border-zinc-200 bg-white p-4 transition-colors hover:border-zinc-300 hover:bg-zinc-50 dark:border-zinc-800 dark:bg-zinc-900 dark:hover:border-zinc-700 dark:hover:bg-zinc-800/50" href="/skills/huifer/claude-code-seo/ai-content-creator"><span class="text-xl">🎯</span><div class="min-w-0 flex-1"><div class="flex items-center gap-2"><span class="truncate font-medium text-zinc-900 dark:text-white">ai-content-creator</span><span class="inline-flex items-center gap-1 whitespace-nowrap font-medium rounded-full bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-300 px-2 py-0.5 text-xs "><span>🎯</span><span>Skill</span></span></div><p class="truncate text-sm text-zinc-500 dark:text-zinc-400">Generates high-quality, SEO-optimized content by analyzing target keywords, creating structured articles, and ensuring E-E-A-T quality standards.</p></div></a><a class="flex items-center gap-3 rounded-lg border border-zinc-200 bg-white p-4 transition-colors hover:border-zinc-300 hover:bg-zinc-50 dark:border-zinc-800 dark:bg-zinc-900 dark:hover:border-zinc-700 dark:hover:bg-zinc-800/50" href="/skills/huifer/claude-code-seo/automation-coordinator"><span class="text-xl">🎯</span><div class="min-w-0 flex-1"><div class="flex items-center gap-2"><span class="truncate font-medium text-zinc-900 dark:text-white">automation-coordinator</span><span class="inline-flex items-center gap-1 whitespace-nowrap font-medium rounded-full bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-300 px-2 py-0.5 text-xs "><span>🎯</span><span>Skill</span></span></div><p class="truncate text-sm text-zinc-500 dark:text-zinc-400">Coordinates and orchestrates automated SEO optimization tasks across different modules, ensuring seamless integration and systematic execution of SEO improvement strategies for Next.js projects.</p></div></a><a class="flex items-center gap-3 rounded-lg border border-zinc-200 bg-white p-4 transition-colors hover:border-zinc-300 hover:bg-zinc-50 dark:border-zinc-800 dark:bg-zinc-900 dark:hover:border-zinc-700 dark:hover:bg-zinc-800/50" href="/skills/huifer/claude-code-seo/competitor-intelligence"><span class="text-xl">🎯</span><div class="min-w-0 flex-1"><div class="flex items-center gap-2"><span class="truncate font-medium text-zinc-900 dark:text-white">competitor-intelligence</span><span class="inline-flex items-center gap-1 whitespace-nowrap font-medium rounded-full bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-300 px-2 py-0.5 text-xs "><span>🎯</span><span>Skill</span></span></div><p class="truncate text-sm text-zinc-500 dark:text-zinc-400">Analyzes competitors' SEO strategies, identifies their top-performing keywords, backlink profiles, and content gaps to inform strategic SEO improvements.</p></div></a><a class="flex items-center gap-3 rounded-lg border border-zinc-200 bg-white p-4 transition-colors hover:border-zinc-300 hover:bg-zinc-50 dark:border-zinc-800 dark:bg-zinc-900 dark:hover:border-zinc-700 dark:hover:bg-zinc-800/50" href="/skills/huifer/claude-code-seo/guest-blogger"><span class="text-xl">🎯</span><div class="min-w-0 flex-1"><div class="flex items-center gap-2"><span class="truncate font-medium text-zinc-900 dark:text-white">guest-blogger</span><span class="inline-flex items-center gap-1 whitespace-nowrap font-medium rounded-full bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-300 px-2 py-0.5 text-xs "><span>🎯</span><span>Skill</span></span></div><p class="truncate text-sm text-zinc-500 dark:text-zinc-400">自动分析项目内容,生成精准的客座博客搜索策略,并提供高质量投稿建议和个性化邮件模板。</p></div></a><a class="flex items-center gap-3 rounded-lg border border-zinc-200 bg-white p-4 transition-colors hover:border-zinc-300 hover:bg-zinc-50 dark:border-zinc-800 dark:bg-zinc-900 dark:hover:border-zinc-700 dark:hover:bg-zinc-800/50" href="/skills/huifer/claude-code-seo/structured-data"><span class="text-xl">🎯</span><div class="min-w-0 flex-1"><div class="flex items-center gap-2"><span class="truncate font-medium text-zinc-900 dark:text-white">structured-data</span><span class="inline-flex items-center gap-1 whitespace-nowrap font-medium rounded-full bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-300 px-2 py-0.5 text-xs "><span>🎯</span><span>Skill</span></span></div><p class="truncate text-sm text-zinc-500 dark:text-zinc-400">自动生成和验证 JSON-LD 结构化数据,支持多种 Schema.org 类型,并提供 Google Rich Results 测试和 Next.js 集成。</p></div></a><a class="flex items-center gap-3 rounded-lg border border-zinc-200 bg-white p-4 transition-colors hover:border-zinc-300 hover:bg-zinc-50 dark:border-zinc-800 dark:bg-zinc-900 dark:hover:border-zinc-700 dark:hover:bg-zinc-800/50" href="/skills/huifer/claude-code-seo/geo-optimizer"><span class="text-xl">🎯</span><div class="min-w-0 flex-1"><div class="flex items-center gap-2"><span class="truncate font-medium text-zinc-900 dark:text-white">geo-optimizer</span><span class="inline-flex items-center gap-1 whitespace-nowrap font-medium rounded-full bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-300 px-2 py-0.5 text-xs "><span>🎯</span><span>Skill</span></span></div><p class="truncate text-sm text-zinc-500 dark:text-zinc-400">Optimizes local SEO by analyzing geographic metadata, generating location-specific structured data, and recommending improvements for local business search visibility.</p></div></a></div></div></div><!--$--><!--/$--></main><footer class="border-t border-zinc-200 bg-zinc-50 dark:border-zinc-800 dark:bg-zinc-900"><div class="mx-auto max-w-7xl px-4 py-12 sm:px-6 lg:px-8"><div class="grid grid-cols-1 gap-8 md:grid-cols-4"><div class="md:col-span-1"><a class="flex items-center" href="/"><img alt="Vibe Index" loading="lazy" width="140" height="40" decoding="async" data-nimg="1" class="h-8 w-auto dark:hidden" style="color:transparent" src="/logo.png?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX"/><img alt="Vibe Index" loading="lazy" width="140" height="40" decoding="async" data-nimg="1" class="hidden h-8 w-auto dark:block" style="color:transparent" src="/logo-dark.png?v=3&dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX"/></a><p class="mt-4 text-sm text-zinc-600 dark:text-zinc-400">Everything you need for vibe coding. Real-time updates on skills, plugins, MCP servers, and marketplaces.</p></div><div><h3 class="text-sm font-semibold text-zinc-900 dark:text-white">Resources</h3><ul class="mt-4 space-y-2"><li><a class="text-sm text-zinc-600 transition-colors hover:text-zinc-900 dark:text-zinc-400 dark:hover:text-white" href="/skills">Skills</a></li><li><a class="text-sm text-zinc-600 transition-colors hover:text-zinc-900 dark:text-zinc-400 dark:hover:text-white" href="/mcp">MCP Servers</a></li><li><a class="text-sm text-zinc-600 transition-colors hover:text-zinc-900 dark:text-zinc-400 dark:hover:text-white" href="/marketplaces">Marketplaces</a></li><li><a class="text-sm text-zinc-600 transition-colors hover:text-zinc-900 dark:text-zinc-400 dark:hover:text-white" href="/plugins">Plugins</a></li></ul></div><div><h3 class="text-sm font-semibold text-zinc-900 dark:text-white">Support</h3><ul class="mt-4 space-y-2"><li><a class="text-sm text-zinc-600 transition-colors hover:text-zinc-900 dark:text-zinc-400 dark:hover:text-white" href="/about">About Us</a></li><li><a href="mailto:admin@vibeindex.ai" class="text-sm text-zinc-600 transition-colors hover:text-zinc-900 dark:text-zinc-400 dark:hover:text-white">Contact Us</a></li><li><a class="text-sm text-zinc-600 transition-colors hover:text-zinc-900 dark:text-zinc-400 dark:hover:text-white" href="/feedback">Feedback</a></li><li><a class="text-sm text-zinc-600 transition-colors hover:text-zinc-900 dark:text-zinc-400 dark:hover:text-white" href="/activity">Sync Activity</a></li></ul></div><div><h3 class="text-sm font-semibold text-zinc-900 dark:text-white">Legal</h3><ul class="mt-4 space-y-2"><li><a class="text-sm text-zinc-600 transition-colors hover:text-zinc-900 dark:text-zinc-400 dark:hover:text-white" href="/privacy">Privacy Policy</a></li><li><a class="text-sm text-zinc-600 transition-colors hover:text-zinc-900 dark:text-zinc-400 dark:hover:text-white" href="/terms">Terms of Service</a></li></ul></div></div><div class="mt-8 border-t border-zinc-200 pt-8 dark:border-zinc-800"><p class="text-center text-sm text-zinc-500 dark:text-zinc-500">© <!-- -->2026<!-- --> <!-- -->Vibe Index<!-- -->. <!-- -->All rights reserved.<!-- --> <!-- -->Operated by<!-- --> <a href="https://jolab.ai" target="_blank" rel="noopener noreferrer" class="text-zinc-600 hover:text-zinc-900 dark:text-zinc-400 dark:hover:text-white transition-colors">JoLab</a></p></div></div></footer><script src="/_next/static/chunks/a8c74b565bd8a7a9.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[26817,[\"/_next/static/chunks/f12dc041feb06d3e.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"/_next/static/chunks/6875684dac0d32c7.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"/_next/static/chunks/3bfaf7037bc146f6.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\"],\"default\"]\n3:I[44636,[\"/_next/static/chunks/f12dc041feb06d3e.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"/_next/static/chunks/6875684dac0d32c7.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"/_next/static/chunks/3bfaf7037bc146f6.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\"],\"Providers\"]\n4:I[3374,[\"/_next/static/chunks/f12dc041feb06d3e.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"/_next/static/chunks/6875684dac0d32c7.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"/_next/static/chunks/3bfaf7037bc146f6.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\"],\"default\"]\n5:I[39756,[\"/_next/static/chunks/ff1a16fafef87110.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"/_next/static/chunks/d2be314c3ece3fbe.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\"],\"default\"]\n6:I[37457,[\"/_next/static/chunks/ff1a16fafef87110.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"/_next/static/chunks/d2be314c3ece3fbe.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\"],\"default\"]\n7:I[22016,[\"/_next/static/chunks/f12dc041feb06d3e.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"/_next/static/chunks/6875684dac0d32c7.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"/_next/static/chunks/3bfaf7037bc146f6.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"/_next/static/chunks/9b78c3343a8c2975.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\"],\"\"]\n8:I[58234,[\"/_next/static/chunks/f12dc041feb06d3e.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"/_next/static/chunks/6875684dac0d32c7.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"/_next/static/chunks/3bfaf7037bc146f6.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\"],\"default\"]\na:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"/_next/static/chunks/d2be314c3ece3fbe.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\"],\"OutletBoundary\"]\nb:\"$Sreact.suspense\"\nd:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"/_next/static/chunks/d2be314c3ece3fbe.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\"],\"ViewportBoundary\"]\nf:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"/_next/static/chunks/d2be314c3ece3fbe.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\"],\"MetadataBoundary\"]\n11:I[68027,[\"/_next/static/chunks/ff1a16fafef87110.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"/_next/static/chunks/d2be314c3ece3fbe.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\"],\"default\"]\n:HL[\"/_next/static/chunks/2473c16c0c2f6b5f.css?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"style\"]\n:HL[\"/_next/static/chunks/9a540a4976f8bcb6.css?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"style\"]\n:HL[\"/_next/static/media/797e433ab948586e-s.p.dbea232f.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/caa3a2e1cccd8315-s.p.853070df.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"FHJAPUh4Z15C32l2AiR_3\",\"c\":[\"\",\"skills\",\"huifer\",\"claude-code-seo\",\"metadata-optimizer\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"skills\",{\"children\":[[\"owner\",\"huifer\",\"d\"],{\"children\":[[\"repo\",\"claude-code-seo\",\"d\"],{\"children\":[[\"skill\",\"metadata-optimizer\",\"d\"],{\"children\":[\"__PAGE__\",{}]}]}]}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/2473c16c0c2f6b5f.css?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/9a540a4976f8bcb6.css?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/f12dc041feb06d3e.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/6875684dac0d32c7.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/3bfaf7037bc146f6.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased min-h-screen flex flex-col\",\"children\":[[\"$\",\"$L2\",null,{}],[\"$\",\"$L3\",null,{\"children\":[[\"$\",\"$L4\",null,{}],[\"$\",\"main\",null,{\"className\":\"flex-1\",\"children\":[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"div\",null,{\"className\":\"flex min-h-[60vh] flex-col items-center justify-center px-4\",\"children\":[[\"$\",\"h1\",null,{\"className\":\"text-6xl font-bold text-zinc-900 dark:text-white\",\"children\":\"404\"}],[\"$\",\"h2\",null,{\"className\":\"mt-4 text-xl font-semibold text-zinc-700 dark:text-zinc-300\",\"children\":\"Page Not Found\"}],[\"$\",\"p\",null,{\"className\":\"mt-2 text-zinc-500 dark:text-zinc-400\",\"children\":\"The page you're looking for doesn't exist or has been moved.\"}],[\"$\",\"$L7\",null,{\"href\":\"/\",\"className\":\"mt-8 inline-flex items-center rounded-lg bg-zinc-900 px-6 py-3 text-sm font-medium text-white transition-colors hover:bg-zinc-800 dark:bg-zinc-100 dark:text-zinc-900 dark:hover:bg-zinc-200\",\"children\":\"Go Home\"}]]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}],[\"$\",\"$L8\",null,{}]]}]]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[\"$L9\",[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/9b78c3343a8c2975.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$La\",null,{\"children\":[\"$\",\"$b\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@c\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false]},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Ld\",null,{\"children\":\"$Le\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"$b\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L10\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$11\",[]],\"S\":false}\n"])</script><script>self.__next_f.push([1,"e:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"12:I[27201,[\"/_next/static/chunks/ff1a16fafef87110.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"/_next/static/chunks/d2be314c3ece3fbe.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\"],\"IconMark\"]\nc:null\n"])</script><script>self.__next_f.push([1,"10:[[\"$\",\"title\",\"0\",{\"children\":\"metadata-optimizer | Vibe Index\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"分析并优化 Next.js 项目的元数据,提供 SEO 最佳实践建议,支持中英文双语优化。\"}],[\"$\",\"meta\",\"2\",{\"name\":\"author\",\"content\":\"Vibe Index Team\"}],[\"$\",\"meta\",\"3\",{\"name\":\"keywords\",\"content\":\"vibe coding, vibecoding, AI coding, Claude Code, MCP servers, AI skills, AI plugins, AI development, AI assistants, Claude, cursor, windsurf, aider, cline\"}],[\"$\",\"meta\",\"4\",{\"name\":\"creator\",\"content\":\"Vibe Index\"}],[\"$\",\"meta\",\"5\",{\"name\":\"publisher\",\"content\":\"Vibe Index\"}],[\"$\",\"meta\",\"6\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"meta\",\"7\",{\"name\":\"googlebot\",\"content\":\"index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1\"}],[\"$\",\"link\",\"8\",{\"rel\":\"canonical\",\"href\":\"https://vibeindex.ai\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:title\",\"content\":\"Vibe Index - The Ultimate Vibe Coding Directory\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:description\",\"content\":\"The ultimate directory for vibe coding. Discover AI coding tools - skills, plugins, MCP servers, and marketplaces for Claude Code and other AI assistants.\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:url\",\"content\":\"https://vibeindex.ai\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:site_name\",\"content\":\"Vibe Index\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:locale\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:image\",\"content\":\"https://vibeindex.ai/icon.png\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:image:width\",\"content\":\"512\"}],[\"$\",\"meta\",\"16\",{\"property\":\"og:image:height\",\"content\":\"512\"}],[\"$\",\"meta\",\"17\",{\"property\":\"og:image:alt\",\"content\":\"Vibe Index Logo\"}],[\"$\",\"meta\",\"18\",{\"property\":\"og:locale:alternate\",\"content\":\"ko_KR\"}],[\"$\",\"meta\",\"19\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"20\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"21\",{\"name\":\"twitter:title\",\"content\":\"Vibe Index - Vibe Coding Directory\"}],[\"$\",\"meta\",\"22\",{\"name\":\"twitter:description\",\"content\":\"The ultimate directory for vibe coding. Discover AI coding tools - skills, plugins, MCP servers, and marketplaces for Claude Code and other AI assistants.\"}],[\"$\",\"meta\",\"23\",{\"name\":\"twitter:image\",\"content\":\"https://vibeindex.ai/icon.png\"}],[\"$\",\"link\",\"24\",{\"rel\":\"icon\",\"href\":\"/favicon-16x16.png\",\"sizes\":\"16x16\",\"type\":\"image/png\"}],[\"$\",\"link\",\"25\",{\"rel\":\"icon\",\"href\":\"/favicon-32x32.png\",\"sizes\":\"32x32\",\"type\":\"image/png\"}],[\"$\",\"link\",\"26\",{\"rel\":\"icon\",\"href\":\"/icon.png\",\"sizes\":\"512x512\",\"type\":\"image/png\"}],[\"$\",\"link\",\"27\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-touch-icon.png\"}],[\"$\",\"$L12\",\"28\",{}]]\n"])</script><script>self.__next_f.push([1,"13:I[74533,[\"/_next/static/chunks/f12dc041feb06d3e.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"/_next/static/chunks/6875684dac0d32c7.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"/_next/static/chunks/3bfaf7037bc146f6.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"/_next/static/chunks/9b78c3343a8c2975.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\"],\"FavoriteButton\"]\n14:I[54371,[\"/_next/static/chunks/f12dc041feb06d3e.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"/_next/static/chunks/6875684dac0d32c7.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"/_next/static/chunks/3bfaf7037bc146f6.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"/_next/static/chunks/9b78c3343a8c2975.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\"],\"default\"]\n15:I[38848,[\"/_next/static/chunks/f12dc041feb06d3e.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"/_next/static/chunks/6875684dac0d32c7.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"/_next/static/chunks/3bfaf7037bc146f6.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"/_next/static/chunks/9b78c3343a8c2975.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"9:[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-4xl px-4 py-12 sm:px-6 lg:px-8\",\"children\":[[\"$\",\"nav\",null,{\"className\":\"mb-6\",\"children\":[\"$\",\"ol\",null,{\"className\":\"flex items-center gap-2 text-sm\",\"children\":[[\"$\",\"li\",null,{\"children\":[\"$\",\"$L7\",null,{\"href\":\"/skills\",\"className\":\"text-zinc-500 hover:text-zinc-700 dark:text-zinc-400 dark:hover:text-zinc-300\",\"children\":\"Skills\"}]}],[\"$\",\"li\",null,{\"className\":\"text-zinc-400\",\"children\":\"/\"}],[\"$\",\"li\",null,{\"className\":\"text-zinc-900 dark:text-white\",\"children\":\"metadata-optimizer\"}]]}]}],[\"$\",\"div\",null,{\"className\":\"mb-8\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-start gap-4\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-5xl\",\"children\":\"🎯\"}],[\"$\",\"div\",null,{\"className\":\"flex-1\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2 flex-wrap\",\"children\":[[\"$\",\"h1\",null,{\"className\":\"text-3xl font-bold text-zinc-900 dark:text-white\",\"children\":\"metadata-optimizer\"}],[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 whitespace-nowrap font-medium rounded-full bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-300 px-2.5 py-1 text-sm \",\"children\":[[\"$\",\"span\",null,{\"children\":\"🎯\"}],[\"$\",\"span\",null,{\"children\":\"Skill\"}]]}],[\"$\",\"$L13\",null,{\"resourceId\":\"72d47b8e-5910-4d4c-852e-4c79c4ab4b61\",\"size\":\"sm\"}],false]}],[\"$\",\"p\",null,{\"className\":\"mt-2 text-zinc-600 dark:text-zinc-400\",\"children\":[\"from \",\"huifer\",\"/\",\"claude-code-seo\"]}]]}]]}],[\"$\",\"$L14\",null,{\"description\":\"分析并优化 Next.js 项目的元数据,提供 SEO 最佳实践建议,支持中英文双语优化。\",\"descriptionKo\":\"다음과 같은 한국어 번역을 제안합니다:\\n\\nNext.js 프로젝트의 메타데이터를 분석하고 최적화하며, SEO 모범 사례를 제공하고 한국어와 영어 양방향 최적화를 지원합니다.\",\"resourceId\":\"72d47b8e-5910-4d4c-852e-4c79c4ab4b61\",\"resourceName\":\"metadata-optimizer\",\"resourceType\":\"skill\",\"descriptionType\":\"ai\"}],null,null,[\"$\",\"$L7\",null,{\"href\":\"/collection/huifer/claude-code-seo\",\"className\":\"mt-4 flex items-center gap-3 rounded-lg border border-zinc-200 bg-zinc-50 p-4 transition-all hover:border-zinc-300 hover:bg-zinc-100 dark:border-zinc-700 dark:bg-zinc-800/50 dark:hover:border-zinc-600 dark:hover:bg-zinc-800\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-2xl\",\"children\":\"📦\"}],[\"$\",\"div\",null,{\"className\":\"flex-1\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-sm text-zinc-500 dark:text-zinc-400\",\"children\":\"Part of\"}],[\"$\",\"p\",null,{\"className\":\"font-semibold text-zinc-900 dark:text-white\",\"children\":[\"huifer\",\"/\",\"claude-code-seo\",[\"$\",\"span\",null,{\"className\":\"ml-2 text-sm font-normal text-zinc-500 dark:text-zinc-400\",\"children\":[\"(\",11,\" \",\"items\",\")\"]}]]}]]}],[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"className\":\"h-5 w-5 text-zinc-400\",\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"stroke\":\"currentColor\",\"children\":[\"$\",\"path\",null,{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":2,\"d\":\"M9 5l7 7-7 7\"}]}]]}],[\"$\",\"div\",null,{\"className\":\"mt-4 flex flex-wrap gap-2\",\"children\":[[\"$\",\"span\",\"metadata-optimizer\",{\"onClick\":\"$undefined\",\"className\":\"inline-flex items-center rounded-full bg-zinc-100 px-2 py-0.5 text-xs font-medium text-zinc-600 transition-colors hover:bg-zinc-200 dark:bg-zinc-800 dark:text-zinc-400 dark:hover:bg-zinc-700 \",\"children\":\"metadata-optimizer\"}]]}]]}],[\"$\",\"div\",null,{\"className\":\"mb-8\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"mb-4 text-lg font-semibold text-zinc-900 dark:text-white\",\"children\":\"Installation\"}],[\"$\",\"$L15\",null,{\"installGuide\":{\"found\":true,\"commands\":[{\"label\":\"git clone\",\"command\":\"git clone https://github.com/huifer/claude-code-seo.git \\\\\",\"description\":\"Clone repository\",\"type\":\"git-clone\"},{\"label\":\"git clone\",\"command\":\"git clone git@github.com:huifer/claude-code-seo.git \\\\\",\"description\":\"Clone repository\",\"type\":\"git-clone\"}],\"jsonConfig\":\"$undefined\",\"rawSection\":\"$undefined\"},\"githubUrl\":\"https://github.com/huifer/claude-code-seo\",\"owner\":\"huifer\",\"repo\":\"claude-code-seo\",\"resourceType\":\"skill\",\"resourceName\":\"metadata-optimizer\"}]]}],[\"$\",\"div\",null,{\"className\":\"mb-8 flex gap-6 text-sm text-zinc-500 dark:text-zinc-400\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1.5\",\"title\":\"Installs\",\"children\":[[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"className\":\"h-4 w-4\",\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"stroke\":\"currentColor\",\"children\":\"$L16\"}],\"$L17\",\"$L18\"]}],false,\"$L19\",\"$L1a\"]}],\"$L1b\",\"$L1c\",\"$L1d\"]}]\n"])</script><script>self.__next_f.push([1,"1e:I[74533,[\"/_next/static/chunks/f12dc041feb06d3e.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"/_next/static/chunks/6875684dac0d32c7.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"/_next/static/chunks/3bfaf7037bc146f6.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"/_next/static/chunks/9b78c3343a8c2975.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\"],\"FavoriteCount\"]\n1f:I[13428,[\"/_next/static/chunks/f12dc041feb06d3e.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"/_next/static/chunks/6875684dac0d32c7.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"/_next/static/chunks/3bfaf7037bc146f6.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\",\"/_next/static/chunks/9b78c3343a8c2975.js?dpl=dpl_BGTSJYAAHEkj6TjL2NJn1JERTonX\"],\"default\"]\n16:[\"$\",\"path\",null,{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":2,\"d\":\"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4\"}]\n17:[\"$\",\"span\",null,{\"className\":\"font-medium text-zinc-700 dark:text-zinc-300\",\"children\":\"4\"}]\n18:[\"$\",\"span\",null,{\"className\":\"text-zinc-400 dark:text-zinc-500\",\"children\":\"Installs\"}]\n19:[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1.5\",\"children\":[[\"$\",\"svg\",null,{\"className\":\"h-4 w-4 text-violet-500\",\"fill\":\"currentColor\",\"stroke\":\"currentColor\",\"strokeWidth\":0.5,\"viewBox\":\"0 0 24 24\",\"children\":[\"$\",\"path\",null,{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M5 5a2 2 0 012-2h10a2 2 0 012 2v16l-7-3.5L5 21V5z\"}]}],[\"$\",\"span\",null,{\"className\":\"font-medium text-zinc-700 dark:text-zinc-300\",\"children\":[\"$\",\"$L1e\",null,{\"resourceId\":\"72d47b8e-5910-4d4c-852e-4c79c4ab4b61\"}]}]]}]\n1a:[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1.5\",\"children\":[[\"$\",\"span\",null,{\"children\":\"Added\"}],[\"$\",\"span\",null,{\"className\":\"font-medium text-zinc-700 dark:text-zinc-300\",\"children\":\"Feb 4, 2026\"}]]}]\n"])</script><script>self.__next_f.push([1,"1b:[\"$\",\"div\",null,{\"className\":\"flex flex-wrap gap-4\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://github.com/huifer/claude-code-seo\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"inline-flex items-center gap-2 rounded-lg bg-zinc-900 px-6 py-3 text-sm font-medium text-white transition-colors hover:bg-zinc-800 dark:bg-zinc-100 dark:text-zinc-900 dark:hover:bg-zinc-200\",\"children\":[[\"$\",\"svg\",null,{\"className\":\"h-5 w-5\",\"fill\":\"currentColor\",\"viewBox\":\"0 0 24 24\",\"children\":[\"$\",\"path\",null,{\"fillRule\":\"evenodd\",\"d\":\"M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z\",\"clipRule\":\"evenodd\"}]}],\"View on GitHub\"]}],[\"$\",\"$L7\",null,{\"href\":\"/skills\",\"className\":\"inline-flex items-center gap-2 rounded-lg border border-zinc-300 bg-white px-6 py-3 text-sm font-medium text-zinc-700 transition-colors hover:bg-zinc-50 dark:border-zinc-700 dark:bg-zinc-800 dark:text-zinc-300 dark:hover:bg-zinc-700\",\"children\":[[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"className\":\"h-5 w-5\",\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"stroke\":\"currentColor\",\"children\":[\"$\",\"path\",null,{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":2,\"d\":\"M10 19l-7-7m0 0l7-7m-7 7h18\"}]}],\"Back to Skills\"]}]]}]\n"])</script><script>self.__next_f.push([1,"20:T1b4b,"])</script><script>self.__next_f.push([1,"---\nname: metadata-optimizer\ndescription: 分析和优化 Next.js 项目的元数据,包括 title、description、Open Graph、Twitter Cards。自动检测 App Router 或 Pages Router,提供长度建议、关键词优化和最佳实践指导。支持中英文双语 SEO 分析。\nallowed-tools: [Read, Grep, Glob]\n---\n\n你是 Next.js 元数据优化专家,专注于分析网站元数据的 SEO 优化。\n\n## 核心职责\n\n当用户在 Next.js 项目中工作,或者请求 SEO 帮助时,你会:\n\n1. **自动检测项目结构**\n - 识别是 App Router (`app/` 目录) 还是 Pages Router (`pages/` 目录)\n - 扫描所有页面和组件文件\n - 定位元数据定义位置\n\n2. **分析现有元数据**\n - 检查 `\u003ctitle\u003e` 标签或 `metadata` 对象\n - 检查 `\u003cmeta name=\"description\"\u003e`\n - 检查 Open Graph 标签(og:title, og:description, og:image, og:url)\n - 检查 Twitter Cards 标签\n\n3. **提供优化建议**\n - Title 长度建议\n - Description 长度建议\n - 关键词优化\n - 缺失的元数据标签\n\n## 语言检测\n\n在分析前,检测内容语言:\n\n**中文内容特征:**\n- 中文字符比例 \u003e 30%\n- HTML lang=\"zh-CN\" 或 lang=\"zh\"\n- URL 包含 /zh/ 或 /cn/\n\n**英文内容特征:**\n- 中文字符比例 \u003c 10%\n- HTML lang=\"en\" 或 lang=\"en-US\"\n- URL 包含 /en/\n\n## 优化标准\n\n### Title 标签\n\n**中文:**\n- 最佳长度:20-30 个字符\n- 最大长度:40 个字符(约 80px 宽度)\n- 格式:`主关键词 | 次要关键词 | 品牌名称`\n- 示例:`管道工服务 | 24小时紧急维修 | SF Plumbing`\n\n**英文:**\n- 最佳长度:50-60 个字符\n- 最大长度:75 个字符(约 600px 宽度)\n- 格式:`Primary Keyword - Secondary Keyword | Brand Name`\n- 示例:`Plumbing Services | 24/7 Emergency Repair | SF Plumbing`\n\n### Meta Description\n\n**中文:**\n- 最佳长度:70-80 个字符\n- 最大长度:100 个字符\n- 格式:`包含关键词的行动号召 + 独特价值主张`\n- 示例:`提供专业的管道维修服务。24小时紧急服务,覆盖旧金山湾区。立即致电 (415) 555-0123。`\n\n**英文:**\n- 最佳长度:150-160 个字符\n- 最大长度:180 个字符\n- 格式:`Action-oriented with keywords + unique value proposition`\n- 示例:`Professional plumbing services in San Francisco. 24/7 emergency service, covering the Bay Area. Call (415) 555-0123 now.`\n\n### Open Graph 标签\n\n必需标签:\n```html\n\u003cmeta property=\"og:title\" content=\"页面标题\"\u003e\n\u003cmeta property=\"og:description\" content=\"页面描述\"\u003e\n\u003cmeta property=\"og:image\" content=\"分享图片 URL\"\u003e\n\u003cmeta property=\"og:url\" content=\"页面 URL\"\u003e\n\u003cmeta property=\"og:type\" content=\"website\"\u003e\n```\n\n### Twitter Cards 标签\n\n推荐使用 Summary Card with Large Image:\n```html\n\u003cmeta name=\"twitter:card\" content=\"summary_large_image\"\u003e\n\u003cmeta name=\"twitter:title\" content=\"页面标题\"\u003e\n\u003cmeta name=\"twitter:description\" content=\"页面描述\"\u003e\n\u003cmeta name=\"twitter:image\" content=\"分享图片 URL\"\u003e\n```\n\n## 工作流程\n\n### 1. 扫描项目\n\n```\n使用 Glob 查找所有页面文件:\n- App Router: app/**/page.tsx, app/**/page.js\n- Pages Router: pages/**/*.tsx, pages/**/*.js\n- 组件: components/**/*.tsx, components/**/*.js\n```\n\n### 2. 读取元数据\n\n```\n对每个文件:\n1. 检查 metadata 对象(App Router)\n2. 检查 Head 组件(Pages Router)\n3. 检查 \u003ctitle\u003e 和 \u003cmeta\u003e 标签\n```\n\n### 3. 评分和报告\n\n对每个页面生成报告:\n\n```markdown\n## 页面分析:[文件路径]\n\n### ✅ 优点\n- Title 存在且优化良好\n- Description 完整\n- 包含完整的 OG 标签\n\n### ⚠️ 需要改进\n- Title 长度:65 字符(建议:50-60)\n- 缺少 Twitter Cards 标签\n- Description 可以更具体\n\n### ❌ 缺失项\n- og:image 未定义\n- og:url 未定义\n\n### 建议\n1. 缩短 Title 到 55 字符以内\n2. 添加 Twitter Cards 标签以提升社交媒体分享效果\n3. 添加 OG 图片以改善社交预览\n```\n\n## 双语支持实现\n\n### 根据语言调整建议\n\n**检测到中文内容时:**\n```markdown\n语言:中文\n- Title 建议:20-30 字符(当前:35 字符)⚠️\n- Description 建议:70-80 字符(当前:50 字符)✓\n- 关键词:在 Title 中添加主要关键词\n```\n\n**检测到英文内容时:**\n```markdown\nLanguage: English\n- Title 建议:50-60 characters (current: 55) ✓\n- Description 建议:150-160 characters (current: 120) ⚠️\n- Keywords: Consider adding secondary keyword\n```\n\n**检测到双语内容时:**\n```markdown\n语言:双语(中文 + 英文)\n- 确保使用 hreflang 标签\n- 检查语言切换功能\n- 验证翻译质量\n```\n\n## 自动触发条件\n\n在以下情况下自动激活:\n\n1. 用户打开或编辑包含元数据的文件\n2. 用户运行 `/seo-check` 或 `/seo-audit` 命令\n3. 用户询问关于元数据的问题\n4. 检测到 Next.js 项目中的页面文件\n\n## 输出格式\n\n### 简洁模式(默认)\n\n```\n📊 元数据分析结果\n\n✅ 12 个页面已扫描\n⚠️ 5 个页面需要优化\n❌ 2 个页面缺少关键元数据\n\n优先修复:\n1. /about - 缺少 Description\n2. /blog/[slug] - Title 过长(75 字符)\n3. /contact - 缺少 OG 标签\n```\n\n### 详细模式\n\n当用户使用 `--verbose` 或请求详细分析时,提供完整的逐页分析报告。\n\n## 示例对话\n\n**用户:** \"检查我的 Next.js 项目元数据\"\n\n**你的回复:**\n```\n我将扫描你的 Next.js 项目并分析元数据...\n\n🔍 检测到:Next.js App Router\n📁 扫描目录:app/\n📄 发现 15 个页面\n\n元数据分析完成:\n\n✅ 优秀的页面(10/15)\n - /, /about, /services, /blog, /contact...\n\n⚠️ 需要优化的页面(4/15)\n 1. /blog/[slug] - Title: 68 字符(建议:50-60)\n 2. /services/plumbing - 缺少 Description\n 3. /products - 缺少 OG 图片\n 4. /team - 缺少 Twitter Cards\n\n❌ 严重问题的页面(1/15)\n - /pricing - 完全缺少元数据\n\n建议优先处理 /pricing 页面,它完全没有元数据,会严重影响 SEO。\n\n需要我为特定页面生成优化的元数据代码吗?\n```\n\n## 最佳实践建议\n\n在分析完成后,提供以下建议:\n\n1. **一致性** - 确保所有页面使用一致的元数据格式\n2. **唯一性** - 每个页面的 Title 和 Description 应该是唯一的\n3. **关键词** - 在 Title 和 Description 中自然地包含目标关键词\n4. **品牌** - 在 Title 末尾包含品牌名称(如果空间允许)\n5. **行动号召** - 在 Description 中包含行动号召\n6. **社交** - 为所有页面添加完整的 OG 和 Twitter Cards 标签\n7. **图片** - 使用高质量的 OG 图片(推荐:1200x630px)\n8. **测试** - 使用 Facebook Sharing Debugger 和 Twitter Card Validator 测试\n\n## 技术提示\n\n- 使用 Glob 模式:`app/**/*.{tsx,ts,jsx,js}`\n- 使用 Grep 搜索:`\u003ctitle\u003e|\u003cmeta|metadata`\n- 检查文件扩展名以确定路由类型\n- 优先扫描 `page.tsx` 和 `page.js` 文件\n- 忽略 `_` 开头的目录(Next.js 约定)\n"])</script><script>self.__next_f.push([1,"1c:[\"$\",\"div\",null,{\"className\":\"mt-8\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"mb-4 text-lg font-semibold text-zinc-900 dark:text-white\",\"children\":\"Skill Details\"}],[\"$\",\"$L1f\",null,{\"content\":\"$20\"}]]}]\n"])</script><script>self.__next_f.push([1,"1d:[\"$\",\"div\",null,{\"className\":\"mt-12 border-t border-zinc-200 pt-8 dark:border-zinc-800\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"mb-4 flex items-center gap-2 text-lg font-semibold text-zinc-900 dark:text-white\",\"children\":[[\"$\",\"span\",null,{\"children\":\"More from this repository\"}],[\"$\",\"span\",null,{\"className\":\"rounded-full bg-violet-100 px-2 py-0.5 text-sm font-medium text-violet-700 dark:bg-violet-900/50 dark:text-violet-300\",\"children\":10}]]}],[\"$\",\"div\",null,{\"className\":\"grid gap-3 sm:grid-cols-2\",\"children\":[[\"$\",\"$L7\",\"ee7e2bb7-cb85-431a-a697-13e4f0e836b2\",{\"href\":\"/skills/huifer/claude-code-seo/seo-auditor\",\"className\":\"flex items-center gap-3 rounded-lg border border-zinc-200 bg-white p-4 transition-colors hover:border-zinc-300 hover:bg-zinc-50 dark:border-zinc-800 dark:bg-zinc-900 dark:hover:border-zinc-700 dark:hover:bg-zinc-800/50\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-xl\",\"children\":\"🎯\"}],[\"$\",\"div\",null,{\"className\":\"min-w-0 flex-1\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"span\",null,{\"className\":\"truncate font-medium text-zinc-900 dark:text-white\",\"children\":\"seo-auditor\"}],[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 whitespace-nowrap font-medium rounded-full bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-300 px-2 py-0.5 text-xs \",\"children\":[[\"$\",\"span\",null,{\"children\":\"🎯\"}],[\"$\",\"span\",null,{\"children\":\"Skill\"}]]}]]}],[\"$\",\"p\",null,{\"className\":\"truncate text-sm text-zinc-500 dark:text-zinc-400\",\"children\":\"执行全面 SEO 审计,深入分析项目的技术、内容和权威性,生成优先级排序的可操作优化建议。\"}]]}]]}],[\"$\",\"$L7\",\"eead20d4-b50f-4761-a9c5-ff91f5e6161e\",{\"href\":\"/skills/huifer/claude-code-seo/local-seo\",\"className\":\"flex items-center gap-3 rounded-lg border border-zinc-200 bg-white p-4 transition-colors hover:border-zinc-300 hover:bg-zinc-50 dark:border-zinc-800 dark:bg-zinc-900 dark:hover:border-zinc-700 dark:hover:bg-zinc-800/50\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-xl\",\"children\":\"🎯\"}],[\"$\",\"div\",null,{\"className\":\"min-w-0 flex-1\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"span\",null,{\"className\":\"truncate font-medium text-zinc-900 dark:text-white\",\"children\":\"local-seo\"}],[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 whitespace-nowrap font-medium rounded-full bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-300 px-2 py-0.5 text-xs \",\"children\":[[\"$\",\"span\",null,{\"children\":\"🎯\"}],[\"$\",\"span\",null,{\"children\":\"Skill\"}]]}]]}],[\"$\",\"p\",null,{\"className\":\"truncate text-sm text-zinc-500 dark:text-zinc-400\",\"children\":\"自动检测并优化本地商家的 SEO,包括 NAP 一致性、关键词策略、Google Business Profile 完善和本地搜索排名提升。\"}]]}]]}],[\"$\",\"$L7\",\"d46f523d-e7af-468c-bc64-4cc47cfda1ea\",{\"href\":\"/skills/huifer/claude-code-seo/off-page-seo\",\"className\":\"flex items-center gap-3 rounded-lg border border-zinc-200 bg-white p-4 transition-colors hover:border-zinc-300 hover:bg-zinc-50 dark:border-zinc-800 dark:bg-zinc-900 dark:hover:border-zinc-700 dark:hover:bg-zinc-800/50\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-xl\",\"children\":\"🎯\"}],[\"$\",\"div\",null,{\"className\":\"min-w-0 flex-1\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"span\",null,{\"className\":\"truncate font-medium text-zinc-900 dark:text-white\",\"children\":\"off-page-seo\"}],[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 whitespace-nowrap font-medium rounded-full bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-300 px-2 py-0.5 text-xs \",\"children\":[[\"$\",\"span\",null,{\"children\":\"🎯\"}],[\"$\",\"span\",null,{\"children\":\"Skill\"}]]}]]}],[\"$\",\"p\",null,{\"className\":\"truncate text-sm text-zinc-500 dark:text-zinc-400\",\"children\":\"分析和构建高质量外链策略,通过9种精准方法提升网站外部权威性和搜索引擎排名。\"}]]}]]}],[\"$\",\"$L7\",\"be334ad1-9240-4014-9d75-374b73ab2c84\",{\"href\":\"/skills/huifer/claude-code-seo/content-optimizer\",\"className\":\"flex items-center gap-3 rounded-lg border border-zinc-200 bg-white p-4 transition-colors hover:border-zinc-300 hover:bg-zinc-50 dark:border-zinc-800 dark:bg-zinc-900 dark:hover:border-zinc-700 dark:hover:bg-zinc-800/50\",\"children\":[\"$L21\",\"$L22\"]}],\"$L23\",\"$L24\",\"$L25\",\"$L26\",\"$L27\",\"$L28\"]}]]}]\n"])</script><script>self.__next_f.push([1,"21:[\"$\",\"span\",null,{\"className\":\"text-xl\",\"children\":\"🎯\"}]\n22:[\"$\",\"div\",null,{\"className\":\"min-w-0 flex-1\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"span\",null,{\"className\":\"truncate font-medium text-zinc-900 dark:text-white\",\"children\":\"content-optimizer\"}],[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 whitespace-nowrap font-medium rounded-full bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-300 px-2 py-0.5 text-xs \",\"children\":[[\"$\",\"span\",null,{\"children\":\"🎯\"}],[\"$\",\"span\",null,{\"children\":\"Skill\"}]]}]]}],[\"$\",\"p\",null,{\"className\":\"truncate text-sm text-zinc-500 dark:text-zinc-400\",\"children\":\"优化网页内容质量,通过分析标题、关键词、可读性、内链和多媒体,提供 E-E-A-T 增强和 SEO 策略建议。\"}]]}]\n23:[\"$\",\"$L7\",\"1c90ede4-b4b8-451e-9090-b3d1afc40ab9\",{\"href\":\"/skills/huifer/claude-code-seo/ai-content-creator\",\"className\":\"flex items-center gap-3 rounded-lg border border-zinc-200 bg-white p-4 transition-colors hover:border-zinc-300 hover:bg-zinc-50 dark:border-zinc-800 dark:bg-zinc-900 dark:hover:border-zinc-700 dark:hover:bg-zinc-800/50\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-xl\",\"children\":\"🎯\"}],[\"$\",\"div\",null,{\"className\":\"min-w-0 flex-1\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"span\",null,{\"className\":\"truncate font-medium text-zinc-900 dark:text-white\",\"children\":\"ai-content-creator\"}],[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 whitespace-nowrap font-medium rounded-full bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-300 px-2 py-0.5 text-xs \",\"children\":[[\"$\",\"span\",null,{\"children\":\"🎯\"}],[\"$\",\"span\",null,{\"children\":\"Skill\"}]]}]]}],[\"$\",\"p\",null,{\"className\":\"truncate text-sm text-zinc-500 dark:text-zinc-400\",\"children\":\"Generates high-quality, SEO-optimized content by analyzing target keywords, creating structured articles, and ensuring E-E-A-T quality standards.\"}]]}]]}]\n24:[\"$\",\"$L7\",\"13d8f258-81a3-4d7e-8f1a-c3c362a88f34\",{\"href\":\"/skills/huifer/claude-code-seo/automation-coordinator\",\"className\":\"flex items-center gap-3 rounded-lg border border-zinc-200 bg-white p-4 transition-colors hover:border-zinc-300 hover:bg-zinc-50 dark:border-zinc-800 dark:bg-zinc-900 dark:hover:border-zinc-700 dark:hover:bg-zinc-800/50\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-xl\",\"children\":\"🎯\"}],[\"$\",\"div\",null,{\"className\":\"min-w-0 flex-1\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"span\",null,{\"className\":\"truncate font-medium text-zinc-900 dark:text-white\",\"children\":\"automation-coordinator\"}],[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 whitespace-nowrap font-medium rounded-full bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-300 px-2 py-0.5 text-xs \",\"children\":[[\"$\",\"span\",null,{\"children\":\"🎯\"}],[\"$\",\"span\",null,{\"children\":\"Skill\"}]]}]]}],[\"$\",\"p\",null,{\"className\":\"truncate text-sm text-zinc-500 dark:text-zinc-400\",\"children\":\"Coordinates and orchestrates automated SEO optimization tasks across different modules, ensuring seamless integration and systematic execution of SEO improvement strategies for Next.js projects.\"}]]}]]}]\n25:[\"$\",\"$L7\",\"5020aa41-29d4-4cc6-ad43-0b8f8bada597\",{\"href\":\"/skills/huifer/claude-code-seo/competitor-intelligence\",\"className\":\"flex items-center gap-3 rounded-lg border border-zinc-200 bg-white p-4 transition-colors hover:border-zinc-300 hover:bg-zinc-50 dark:border-zinc-800 dark:bg-zinc-900 dark:hover:border-zinc-700 dark:hover:bg-zinc-800/50\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-xl\",\"children\":\"🎯\"}],[\"$\",\"div\",null,{\"className\":\"min-w-0 flex-1\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"span\",null,{\"className\":\"truncate font-medium text-zinc-900 dark:text-white\",\"children\":\"competitor-intelligence\"}],[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 whitespace-nowrap font-medium rounded-full bg-purple-100 text-purple"])</script><script>self.__next_f.push([1,"-800 dark:bg-purple-900/30 dark:text-purple-300 px-2 py-0.5 text-xs \",\"children\":[[\"$\",\"span\",null,{\"children\":\"🎯\"}],[\"$\",\"span\",null,{\"children\":\"Skill\"}]]}]]}],[\"$\",\"p\",null,{\"className\":\"truncate text-sm text-zinc-500 dark:text-zinc-400\",\"children\":\"Analyzes competitors' SEO strategies, identifies their top-performing keywords, backlink profiles, and content gaps to inform strategic SEO improvements.\"}]]}]]}]\n26:[\"$\",\"$L7\",\"2e657f92-4775-4aad-a99e-deab4d720996\",{\"href\":\"/skills/huifer/claude-code-seo/guest-blogger\",\"className\":\"flex items-center gap-3 rounded-lg border border-zinc-200 bg-white p-4 transition-colors hover:border-zinc-300 hover:bg-zinc-50 dark:border-zinc-800 dark:bg-zinc-900 dark:hover:border-zinc-700 dark:hover:bg-zinc-800/50\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-xl\",\"children\":\"🎯\"}],[\"$\",\"div\",null,{\"className\":\"min-w-0 flex-1\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"span\",null,{\"className\":\"truncate font-medium text-zinc-900 dark:text-white\",\"children\":\"guest-blogger\"}],[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 whitespace-nowrap font-medium rounded-full bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-300 px-2 py-0.5 text-xs \",\"children\":[[\"$\",\"span\",null,{\"children\":\"🎯\"}],[\"$\",\"span\",null,{\"children\":\"Skill\"}]]}]]}],[\"$\",\"p\",null,{\"className\":\"truncate text-sm text-zinc-500 dark:text-zinc-400\",\"children\":\"自动分析项目内容,生成精准的客座博客搜索策略,并提供高质量投稿建议和个性化邮件模板。\"}]]}]]}]\n27:[\"$\",\"$L7\",\"d99e5db3-dcc8-4901-866c-8549593678a8\",{\"href\":\"/skills/huifer/claude-code-seo/structured-data\",\"className\":\"flex items-center gap-3 rounded-lg border border-zinc-200 bg-white p-4 transition-colors hover:border-zinc-300 hover:bg-zinc-50 dark:border-zinc-800 dark:bg-zinc-900 dark:hover:border-zinc-700 dark:hover:bg-zinc-800/50\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-xl\",\"children\":\"🎯\"}],[\"$\",\"div\",null,{\"className\":\"min-w-0 flex-1\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"span\",null,{\"className\":\"truncate font-medium text-zinc-900 dark:text-white\",\"children\":\"structured-data\"}],[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 whitespace-nowrap font-medium rounded-full bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-300 px-2 py-0.5 text-xs \",\"children\":[[\"$\",\"span\",null,{\"children\":\"🎯\"}],[\"$\",\"span\",null,{\"children\":\"Skill\"}]]}]]}],[\"$\",\"p\",null,{\"className\":\"truncate text-sm text-zinc-500 dark:text-zinc-400\",\"children\":\"自动生成和验证 JSON-LD 结构化数据,支持多种 Schema.org 类型,并提供 Google Rich Results 测试和 Next.js 集成。\"}]]}]]}]\n28:[\"$\",\"$L7\",\"5eb3fe20-dea0-417c-aef1-fc0bebfb974c\",{\"href\":\"/skills/huifer/claude-code-seo/geo-optimizer\",\"className\":\"flex items-center gap-3 rounded-lg border border-zinc-200 bg-white p-4 transition-colors hover:border-zinc-300 hover:bg-zinc-50 dark:border-zinc-800 dark:bg-zinc-900 dark:hover:border-zinc-700 dark:hover:bg-zinc-800/50\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-xl\",\"children\":\"🎯\"}],[\"$\",\"div\",null,{\"className\":\"min-w-0 flex-1\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"span\",null,{\"className\":\"truncate font-medium text-zinc-900 dark:text-white\",\"children\":\"geo-optimizer\"}],[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1 whitespace-nowrap font-medium rounded-full bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-300 px-2 py-0.5 text-xs \",\"children\":[[\"$\",\"span\",null,{\"children\":\"🎯\"}],[\"$\",\"span\",null,{\"children\":\"Skill\"}]]}]]}],[\"$\",\"p\",null,{\"className\":\"truncate text-sm text-zinc-500 dark:text-zinc-400\",\"children\":\"Optimizes local SEO by analyzing geographic metadata, generating location-specific structured data, and recommending improvements for local business search visibility.\"}]]}]]}]\n"])</script></body></html>