关于 seo-technical
seo-technical 是用于检查网站技术 SEO 的技能,涵盖抓取、索引、安全、URL、移动端、性能、结构化数据和 JavaScript 渲染。它为 SEO 从业者整理优先级问题,并可选用 DataForSEO 和 Google API 数据。
主要功能
- 01技术 SEO 分类检查
- 02AI 爬虫 robots.txt 指引
- 03可选 DataForSEO 与 Google API 数据
- 04优先级审计报告与共享缓存
适用场景
- 01排查抓取与索引问题
- 02检查 Core Web Vitals 与安全性
- 03评估 AI 爬虫访问规则
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ agricidaniel/ codex-seo --skill seo-technical安装后在 Claude Code 中输入/seo-technical确认已加载。
附带文件LICENSE.txt
详细介绍
Technical SEO Audit
Shared Data Cache
步骤 0 —— 检查共享数据缓存:
开始收集信息前,检查 .seo-cache/ 中是否有可复用的相关 SEO 技能上下文。
参考 ../seo/references/shared-data-cache.md,了解架构和依赖关系图。
如果存在,请检查以下缓存文件:
-
.seo-cache/site-meta.json,查看域名、业务类型、行业和抓取上下文 -
.seo-cache/audit-scores.json,查看此前完整审计的优先级 -
.seo-cache/pages/{url-slug}/page-analysis.json,如果提供了 URL,查看页面级上下文 -
如果找到:解析并使用明显有效的字段(注明“正在使用来自 [date] 的缓存 [X]”)
-
如果文件缺失、损坏或无关:继续收集新证据
-
如果用户说“refresh”或“re-run”:忽略缓存读取,并在写入时覆盖
类别
1. 可抓取性
- robots.txt:文件存在且有效,不会阻止重要资源
- XML 站点地图:文件存在,在 robots.txt 中有引用,格式有效
- Noindex 标签:确认是有意设置还是意外设置
- 抓取深度:重要页面距首页不超过 3 次点击
- JavaScript 渲染:检查关键内容是否需要执行 JS 才能显示
- 抓取预算:对于大型网站(>10k 个页面),效率很重要
AI 爬虫管理
截至 2025-2026 年,AI 公司会主动抓取网络内容,用于训练模型和支持 AI 搜索。通过 robots.txt 管理这些爬虫,是技术 SEO 的关键考量。
已知 AI 爬虫:
| 爬虫 | 公司 | robots.txt 标记 | 用途 |
|---|---|---|---|
| GPTBot | OpenAI | GPTBot | 模型训练 |
| ChatGPT-User | OpenAI | ChatGPT-User | 实时浏览 |
| ClaudeBot | Anthropic | ClaudeBot | 模型训练 |
| PerplexityBot | Perplexity | PerplexityBot | 搜索索引 + 训练 |
| Bytespider | ByteDance | Bytespider | 模型训练 |
| Google-Extended | Google-Extended | Gemini 训练(不用于搜索) | |
| CCBot | Common Crawl | CCBot | 开放数据集 |
重要区别:
- 阻止
Google-Extended可防止内容用于 Gemini 训练,但不会影响 Google 搜索索引或 AI Overviews(它们使用Googlebot) - 阻止
GPTBot可防止内容用于 OpenAI 训练,但不会阻止 ChatGPT 通过浏览功能引用你的内容(使用ChatGPT-User) - 目前约有 3-5% 的网站使用专门针对 AI 的 robots.txt 规则
示例:有选择地阻止 AI 爬虫:
# Allow search indexing, block AI training crawlers
User-agent: GPTBot
Disallow: /
User-agent: Google-Extended
Disallow: /
User-agent: Bytespider
Disallow: /
# Allow all other crawlers (including Googlebot for search)
User-agent: *
Allow: /
**建议:**阻止爬虫前,请先考虑你的 AI 可见度策略。被 AI 系统引用有助于提升品牌知名度并带来引荐流量。请结合 seo-geo 技能,全面优化 AI 可见度。
2. 可索引性
- Canonical 标签:指向自身,且不与 noindex 冲突
- 重复内容:近似重复内容、参数 URL、www 与非 www
- 内容单薄:页面字数低于相应类型的最低要求
- 分页:使用 rel=next/prev 或加载更多模式
- Hreflang:适用于多语言/多地区网站,且设置正确
- 索引膨胀:不必要的页面占用抓取预算
3. 安全性
- HTTPS:强制启用,SSL 证书有效,无混合内容
- 安全标头:
- Content-Security-Policy (CSP)
- Strict-Transport-Security (HSTS)
- X-Frame-Options
- X-Content-Type-Options
- Referrer-Policy
- HSTS 预加载:对于高安全性网站,检查是否已加入预加载列表
4. URL 结构
- 简洁 URL:描述性强,使用连字符,内容 URL 不使用查询参数
- 层级结构:采用符合网站架构的逻辑文件夹结构
- 重定向:无重定向链(最多 1 次跳转),永久迁移使用 301
- URL 长度:标记超过 100 个字符的 URL
- 尾部斜杠:用法保持一致
5. 移动端优化
- 响应式设计:设置 viewport 元标签,使用响应式 CSS
- 触控目标:最小尺寸为 48x48px,间距为 8px
- 字体大小:基础字号至少为 16px
- 无水平滚动
- 移动优先索引:Google 会索引移动版网站。**截至 2024 年 7 月 5 日,移动优先索引已 100% 完成。**Google 现在只使用移动版 Googlebot 用户代理抓取和索引所有网站。
6. Core Web Vitals
- LCP(最大内容绘制):目标 <2.5s
- INP(下一次绘制交互):目标 <200ms
- INP 于 2024 年 3 月 12 日取代 FID。2024 年 9 月 9 日,FID 已从所有 Chrome 工具(CrUX API、PageSpeed Insights、Lighthouse)中完全移除。请勿在任何地方提及 FID。
- CLS(累积布局偏移):目标 <0.1
- 评估使用真实用户数据的第 75 百分位数
- 如果 MCP 可用,请使用 PageSpeed Insights API 或 CrUX 数据
7. 结构化数据
- 检测:JSON-LD(首选)、Microdata、RDFa
- 根据 Google 支持的类型进行验证
- 完整分析请参阅 seo-schema skill
8. JavaScript 渲染
- 检查内容是否在初始 HTML 中可见,还是需要 JavaScript 才能显示
- 识别客户端渲染(CSR)与服务端渲染(SSR)
- 标记可能导致索引问题的 SPA 框架(React、Vue、Angular)
- 如适用,请验证动态渲染设置
JavaScript SEO:规范网址与索引指南(2025 年 12 月)
Google 于 2025 年 12 月更新了 JavaScript SEO 文档,并作出以下重要说明:
- **规范网址冲突:**如果原始 HTML 中的规范网址标签与 JavaScript 注入的标签不同,Google 可能会采用其中任意一个。确保服务端渲染的 HTML 与 JavaScript 渲染的输出中的规范网址标签完全一致。
- **JavaScript 与 noindex:**如果原始 HTML 中包含
<meta name="robots" content="noindex">,但 JavaScript 将其移除,Google 仍可能遵循原始 HTML 中的 noindex 指令。请在初始 HTML 响应中提供正确的 robots 指令。 - **非 200 状态码:**对于返回非 200 HTTP 状态码的页面,Google 不会渲染 JavaScript。错误页面中通过 JS 注入的任何内容或元标签对 Googlebot 都不可见。
- **JavaScript 中的结构化数据:**通过 JS 注入的 Product、Article 和其他结构化数据可能会延迟处理。对于有时效性的结构化数据(尤其是电子商务 Product 标记),请将其包含在初始服务端渲染的 HTML 中。
**最佳实践:**请在初始服务端渲染的 HTML 中提供关键 SEO 元素(规范网址、meta robots、结构化数据、标题、meta description),而不要依赖 JavaScript 注入。
9. IndexNow 协议
- 检查网站是否支持 Bing、Yandex、Naver 的 IndexNow
- Google 以外的搜索引擎支持该协议
- 建议实施该协议,以便在非 Google 搜索引擎中更快地编入索引
输出
技术评分:XX/100
类别细分
| 类别 | 状态 | 评分 |
|---|---|---|
| 可抓取性 | pass/warn/fail | XX/100 |
| 可索引性 | pass/warn/fail | XX/100 |
| 安全性 | pass/warn/fail | XX/100 |
| URL 结构 | pass/warn/fail | XX/100 |
| 移动设备 | pass/warn/fail | XX/100 |
| Core Web Vitals | pass/warn/fail | XX/100 |
| 结构化数据 | pass/warn/fail | XX/100 |
| JS 渲染 | pass/warn/fail | XX/100 |
| IndexNow | pass/warn/fail | XX/100 |
严重问题(立即修复)
高优先级(1 周内修复)
中优先级(1 个月内修复)
低优先级(列入待办)
DataForSEO 集成(可选)
如果 DataForSEO MCP 工具可用,请使用 on_page_instant_pages 进行真实页面分析(状态码、页面耗时、失效链接、页面检查),使用 on_page_lighthouse 进行 Lighthouse 审核(性能、无障碍、SEO 评分),并使用 domain_analytics_technologies_domain_technologies 检测技术栈。
Google API 集成(可选)
如果已配置 Google API 凭据,请使用 python scripts/pagespeed_check.py <url> --json 获取真实 PSI 和 CrUX 实地数据(替代仅基于实验室数据的 CWV 估算),使用 python scripts/crux_history.py <url> --json 获取 25 周的 CWV 趋势,并使用 python scripts/gsc_inspect.py <url> --json 获取每个 URL 的真实索引状态。
错误处理
| 场景 | 操作 |
|---|---|
| URL 无法访问 | 报告连接错误和状态码。建议验证 URL、检查 DNS 解析,并确认该网站可公开访问。 |
| 未找到 robots.txt | 说明在根域名下未检测到 robots.txt。建议创建一个并设置适当的指令。继续审计其余类别。 |
| 未配置 HTTPS | 标记为严重问题。报告 HTTP 是否未重定向、是否存在混合内容,或 SSL 证书是否缺失或已过期。 |
| Core Web Vitals 数据不可用 | 说明 CrUX 数据不可用(低流量网站常见)。建议使用 Lighthouse 实验室数据作为替代,并建议增加流量后重新测试。 |
写入共享数据缓存
完成所有工作后,如果工作流产生了可长期保留的发现,请将简洁的 JSON 摘要写入 .seo-cache/。
使用 ../seo/references/shared-data-cache.md 中的架构和命名规则;至少包含 cache_type、analyzed_at、来源 URL/域名、关键发现、问题、建议和工具限制。如果 .gitignore 中没有 .seo-cache/,请将其添加进去。