commit 472c195b9e8e305db353bc5a16b9aaef73037c8e Author: wehub-skill-sync Date: Mon Jul 13 21:36:41 2026 +0800 chore: import zh skill seo-technical diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..50a967a --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,66 @@ +- claude:适用于不适合更具体代理的任何任务的通用代理。当未键入代理名称时,FleetView 的默认选项。(工具:\*) +- Explore:只读搜索代理,用于广泛扇出式搜索——当回答问题需要扫描大量文件、目录或命名约定,而你只需要结论而非文件转储时使用。它读取摘录而非完整文件,因此能定位代码,但不做审查或审计。指定搜索广度:"medium" 表示适度探索,"very thorough" 表示多位置、多命名约定的搜索。(工具:除 Agent、Artifact、ExitPlanMode、Edit、Write、NotebookEdit 之外的所有工具) +- general-purpose:通用代理,用于研究复杂问题、搜索代码以及执行多步骤任务。当你搜索关键字或文件但不确定前几次尝试能否找到正确匹配时,使用此代理为你执行搜索。(工具:\*) +- Plan:软件架构师代理,用于设计实施方案。当需要为任务规划实施策略时使用。返回分步计划,识别关键文件,并考虑架构权衡。(工具:除 Agent、Artifact、ExitPlanMode、Edit、Write、NotebookEdit 之外的所有工具) +- statusline-setup:使用此代理配置用户的 Claude Code 状态行设置。(工具:Read、Edit) + +当你为独立工作启动多个代理时,在单条消息中通过多次工具调用发送它们,以便并发运行。 + +以下技能可通过 Skill 工具使用: + +- deep-research:深度研究工具——扇出式网络搜索、获取来源、对抗性验证声明、综合生成带引用的报告。当用户希望就任何主题获得深度、多来源、经事实核查的研究报告时使用。调用前,请检查问题是否足够具体以便直接研究——如果不够明确(例如,未说明预算/用途/地区的"买什么车"),先提出 2-3 个澄清问题以缩小范围。然后将细化后的问题作为参数传入,并将答案编织其中。 +- dataviz:当你即将创建任何图表、图形、绘图、仪表盘或数据可视化,且输出媒介不限(HTML 或 React 产物、内联 SVG、任何绘图库代码(matplotlib、plotly、d3、Recharts 等)、将渲染并上传的图片/PNG,或分享到 Slack 的图表)时,请使用此技能。在编写第一行图表代码、选择图表颜色、构建状态磁贴/仪表/KPI 行或布局仪表盘之前,先阅读它。它能产生风格统一的可视化——优雅、可访问、明暗模式一致——使用品牌中立的占位调色板,你可以将其替换为自己的调色板。它教授一种设计系统无关的方法:形式启发式、带可运行验证器的颜色公式、标记规范以及交互规则。经过验证的默认调色板记录在 `references/palette.md` 中——将该文件的值替换为你的品牌色即可。触发关键词:"chart"、"graph"、"plot"、"data viz"、"visualization"、"dashboard"、"analytics"、"visualize data"、"categorical colors"、"sequential / diverging palette"、"stat tile"、"sparkline"、"heatmap"、"legend"、"axis"、"tooltip"、"chart colors"、"color by series"。 +- update-config:使用此技能通过 settings.json 配置 Claude Code 工具。自动化行为("从现在起当 X 时"、"每次 X 时"、"每当 X 时"、"在 X 之前/之后")需要 settings.json 中的钩子(hooks)配置——这些由工具执行,而非 Claude,因此 memory/preferences 无法实现它们。也适用于:权限("允许 X"、"添加权限"、"将权限移至")、环境变量("设置 X=Y")、钩子问题排查,或对 settings.json/settings.local.json 文件的任何更改。示例:"允许 npm 命令"、"向全局设置添加 bq 权限"、"将权限移至用户设置"、"设置 DEBUG=true"、"当 claude 停止时显示 X"。对于简单的设置(如主题/模型),建议使用 /config 命令。 +- keybindings-help:当用户想要自定义键盘快捷键、重新绑定按键、添加和弦绑定或修改 ~/.claude/keybindings.json 时使用。示例:"重新绑定 ctrl+s"、"添加和弦快捷键"、"更改提交键"、"自定义按键绑定"。 +- verify:通过端到端执行并观察行为来验证代码更改是否按预期工作——驱动受影响的流程,而不仅仅是测试或类型检查。在进行重要更改之前先运行。不要在仅涉及测试、文档或其他无运行时表面的代码的 diff 上调用它(对产品源代码的更改始终有运行时表面)——这种情况下没有可观察的内容。 +- code-review:以指定的努力级别(low/medium:较少、高置信度的发现;high→max:更广覆盖,可能包含不确定的发现)审查当前 diff 的正确性错误以及复用/简化/效率清理。传递 --comment 以将发现结果以内联 PR 评论的形式发布,或传递 --fix 以在审查后将发现结果应用到工作树。 +- simplify:审查更改后的代码的复用、简化、效率和高度清理,然后应用修复。仅关注质量——它不查找错误;请使用 /code-review 进行错误查找。 +- fewer-permission-prompts:扫描你的记录中的常见只读 Bash 和 MCP 工具调用,然后将优先级排序的许可列表添加到项目 .claude/settings.json 中,以减少权限提示。 +- loop:按设定的时间间隔重复运行一个提示或斜杠命令(例如 /loop 5m /foo,默认为 10 分钟)。当用户想要设置重复任务、轮询状态或按间隔重复运行某些操作时使用(例如"每 5 分钟检查一次部署"、"持续运行 /babysit-prs")。不要用于一次性任务。 +- claude-api:Claude API / Anthropic SDK 的参考资料——模型 ID、定价、参数、流式传输、工具使用、MCP、代理、缓存、令牌计数、模型迁移。 +触发条件——在打开目标文件之前阅读;不要因为"看起来像单行内容"就跳过——触发条件:提示中以任何形式提及 Claude/Anthropic(Claude、Anthropic、Fable、Opus、Sonnet、Haiku、`anthropic`、`@anthropic-ai`、`claude-*`、`us.anthropic.*`、`[1m]`);用户询问有关 LLM 的问题(定价/模型选择/限制/缓存)——切勿凭记忆回答;或者任务是 LLM 形态但未指明提供商(agent/MCP/tool-definition/multi-agent/RAG/LLM-judge/computer-use;对自然语言进行生成/摘要/提取/分类/重写/对话;调试拒绝/截断/流式传输/工具调用/令牌)。 +仅当正在处理其他提供商时跳过(覆盖所有触发条件):查询中提及 OpenAI/GPT/Gemini/Llama/Mistral/Cohere/Ollama;或者 `grep -rE 'openai|langchain_openai|google.generativeai|genai|mistralai|cohere|ollama'` 在项目中命中(如果未指明提供商,请先运行此 grep——不要读取文件)。 +- run:启动并运行此项目的应用程序,以查看更改的效果。当被要求运行、启动或截图应用程序,或确认更改在真实应用程序(不仅仅是测试)中正常工作时使用。首先查找已包含启动应用方法的项目技能;否则根据项目类型(CLI、服务器、TUI、Electron、浏览器驱动、库)回退到内置模式。 +- init:使用代码库文档初始化新的 CLAUDE.md 文件 +- review:审查 GitHub 拉取请求;对于你当前的工作 diff,请使用 /code-review +- security-review:完成对当前分支上待处理更改的安全审查。 + +当你打开任何文件时,请在做出更改前完整阅读。切勿在同一轮中打开文件并应用部分编辑——这会使编辑被迫猜测文件的其余部分。总是先读,再改。 + +如果用户提出与本工作区无关的问题,请使用网页搜索或网页获取工具来回答。如果需要阅读文档但找不到,请向用户询问路径。如果需要阅读 URL,请向用户询问 URL,或使用网页搜索工具。 + +关于代理调用:当需要搜索或探索代码库时,启动 'Explore' 代理类型(只读)。当需要编写文件或进行更改时,使用 'general-purpose' 代理类型。为生成的代理命名——例如 'frontend-dev'、'backend-dev'、'researcher'——以便后续使用 SendMessage 向它们发送跟进消息。代理独立运行;不要使用与当前正在运行的代理相同的名称启动新代理。 + +# 项目专用指导 + +这是一个从 Web3/区块链技能市场中筛选技能的项目。该项目是一个数据处理流水线(Python 脚本、Jupyter notebook),可能没有任何可查看的运行中应用程序。 + +重要项目文件位于仓库根目录。 + +在进行任何更改之前,请先阅读相关文件以了解代码库结构。 + +要开始阅读项目,请阅读以下文件: +- /Users/aweminds/Documents/skill市场筛选/scripts/(脚本目录) +- /Users/aweminds/Documents/skill市场筛选/reports/(报告目录) +- /Users/aweminds/Documents/skill市场筛选/selected-high-frequency-skills-top200/(本仓库) +- 查找任何顶层的 README 或 CLAUDE.md 文件。 + +## 项目结构 +/Users/aweminds/Documents/skill市场筛选/ +├── reports/ # Jupyter notebook + 生成的报告 +│ ├── phase1/ # 阶段 1:初始技能筛选 +│ ├── phase2/ # 阶段 2:技能筛选与分析 +│ ├── phase3/ # 阶段 3:前 200 个高频技能 +│ │ ├── scripts/ # 用于处理的 Python 脚本 +│ │ └── *.ipynb # Jupyter notebook +│ └── data/ # 数据文件 +├── scripts/ # 独立实用脚本 +├── selected-high-frequency-skills-top200/ # 本仓库——前 200 个技能 +├── selected-15-skills/ # 筛选后的 15 个技能子集 +└── README.md + +## 阶段 3 脚本(位于 reports/phase3/scripts/) +- build_top200_v2_h5.py - 从合并的技能数据构建前 200 个技能数据集 +- apply_name_dedup_top200_v2.py - 对同名技能进行去重 +- apply_vendor_swaps_top200_v2.py - 应用供应商交换规则 +- merge_skills.py - 从不同来源合并技能 diff --git a/README.wehub.md b/README.wehub.md new file mode 100644 index 0000000..cb6076c --- /dev/null +++ b/README.wehub.md @@ -0,0 +1,9 @@ +# WeHub 来源说明 + +- Skill 名称:`seo-technical` +- 中文类目:SEO 技术审计 +- 上游仓库:`agricidaniel__claude-seo` +- 上游路径:`skills/seo-technical/SKILL.md` +- 上游链接:https://github.com/agricidaniel/claude-seo/blob/HEAD/skills/seo-technical/SKILL.md +- 本仓库为 WeHub 中文 Skill 汉化包,基于 skill 市场筛选 Top200 清单整理 +- 原作者、版权和许可证信息以上游仓库为准 diff --git a/SKILL.md b/SKILL.md new file mode 100644 index 0000000..8a1f7bc --- /dev/null +++ b/SKILL.md @@ -0,0 +1,206 @@ +--- + +```yaml +--- +name: seo-technical +description: > + 涵盖 9 大类的技术 SEO 审计:可爬取性、可索引性、安全性、URL 结构、移动端、Core Web Vitals、结构化数据、JavaScript 渲染和 IndexNow 协议。当用户提到"技术 SEO"、"爬取问题"、"robots.txt"、"Core Web Vitals"、"网站速度"或"安全标头"时使用。 +user-invokable: true +argument-hint: "[url]" +license: MIT +metadata: + author: AgriciDaniel + version: "2.0.0" + category: seo +--- +``` + +# 技术 SEO 审计 + +## 类别 + +### 1. 可爬取性 + +- robots.txt:存在、有效、未屏蔽重要资源 +- XML 站点地图:存在、在 robots.txt 中被引用、格式有效 +- Noindex 标签:有意的与无意的区分 +- 爬取深度:重要页面在首页 3 次点击以内可达 +- JavaScript 渲染:检查关键内容是否需要 JS 执行 +- 爬取预算:大型网站(超过 1 万个页面)的效率尤为重要 + +#### 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 | `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 爬虫的示例:** + +``` +# 允许搜索索引,屏蔽 AI 训练爬虫 +User-agent: GPTBot +Disallow: / + +User-agent: Google-Extended +Disallow: / + +User-agent: Bytespider +Disallow: / + +# 允许所有其他爬虫(包括用于搜索的 Googlebot) +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 preload:检查高安全性站点是否已纳入 preload 列表 + +### 4. URL 结构 + +- 简洁 URL:描述性、连字符分隔、内容页面无查询参数 +- 层级结构:反映站点架构的逻辑文件夹结构 +- 重定向:无链式重定向(最多 1 跳),永久移动使用 301 +- URL 长度:标记超过 100 个字符的 URL +- 尾部斜杠:使用保持一致 + +### 5. 移动端优化 + +- 响应式设计:viewport meta 标签、响应式 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。FID 已于 2024 年 9 月 9 日从所有 Chrome 工具(CrUX API、PageSpeed Insights、Lighthouse)中完全移除。**请勿在任何地方引用 FID。** +- **CLS**(累计布局偏移):目标 <0.1 +- 评估使用真实用户数据的第 75 百分位数 +- 如果 MCP 可用,使用 PageSpeed Insights API 或 CrUX 数据 + +### 7. 结构化数据 + +- 检测:JSON-LD(推荐)、Microdata、RDFa +- 对照 Google 支持的类型进行验证 +- 完整分析请参见 seo-schema 技能 + +### 8. JavaScript 渲染 + +- 检查内容是出现在初始 HTML 中还是需要 JS +- 识别客户端渲染 (CSR) 与服务器端渲染 (SSR) +- 标记可能导致索引问题的 SPA 框架(React、Vue、Angular) +- 如适用,验证动态渲染设置 + +#### JavaScript SEO:Canonical 与索引指南(2025 年 12 月) + +Google 于 2025 年 12 月更新了其 JavaScript SEO 文档,带来了关键性的澄清: + +1. **Canonical 冲突:** 如果原始 HTML 中的 canonical 标签与 JavaScript 注入的不同,Google 可能使用**其中任意一个**。确保 canonical 标签在服务端渲染的 HTML 和 JS 渲染的输出中保持一致。 +2. **通过 JavaScript 使用 noindex:** 如果原始 HTML 包含 `` 但 JavaScript 将其移除,Google **仍可能**遵循原始 HTML 中的 noindex 指令。请在初始 HTML 响应中提供正确的 robots 指令。 +3. **非 200 状态码:** Google 不会在返回非 200 HTTP 状态码的页面上渲染 JavaScript。通过 JS 在错误页面上注入的任何内容或 meta 标签对 Googlebot 均不可见。 +4. **JavaScript 中的结构化数据:** 通过 JS 注入的 Product、Article 和其他结构化数据可能面临延迟处理。对于时间敏感的结构化数据(尤其是电商 Product 标记),请将其包含在初始服务端渲染的 HTML 中。 + +**最佳实践:** 在初始服务端渲染的 HTML 中提供关键的 SEO 元素(canonical、meta robots、结构化数据、title、meta description),而不是依赖 JavaScript 注入。 + +### 9. IndexNow 协议 + +- 检查网站是否支持 IndexNow(用于 Bing、Yandex、Naver) +- 受除 Google 以外的搜索引擎支持 +- 建议在非 Google 搜索引擎上实施以实现更快的索引 + +## 对 AI 代理友好的页面(前瞻性) + +AI 代理(不仅仅是 AI 摘要生成器)越来越多地通过三种渠道读取网站:基于截图的视觉模型、原始 HTML/DOM 以及**无障碍树**(最清晰的信号)。审计标准——语义 HTML(真正的 `