关于 browse-seo
browse-seo 是一项技能,指导 AI Agent 使用 browse CLI 执行页面 SEO 审查。它检查元数据、结构化数据、性能、链接和移动端渲染,并汇总为按优先级排列的报告。
主要功能
- 01提取元数据和标题结构
- 02检查结构化数据与性能
- 03分析链接和移动端渲染
- 04通过 JavaScript 执行自定义检查
- 05评估问题并排列修复优先级
适用场景
- 01审查目标 URL 的页面 SEO
- 02查找元数据或 Schema 问题
- 03检查移动端渲染和页面性能
- 04确定技术 SEO 修复顺序
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ ulpi-io/ skills --skill browse-seo安装后在 Claude Code 中输入/browse-seo确认已加载。
详细介绍
browse-seo:面向 AI Agent 的 SEO 审核
目标
使用 browse CLI 对目标 URL 执行完整的页面 SEO 审核。提取技术 SEO 信号并进行分析,然后生成包含发现和建议的报告。
步骤 0:考虑隐身设置(可选)
如果审核目标设有机器人检测(Cloudflare、竞争对手网站),请使用 camoufox:
browse --runtime camoufox --headed goto <url>
对于大多数公开页面,默认的 Chromium 运行时已足够。除非遇到拦截,否则跳过此步骤。
步骤 1:导航至目标 URL
browse goto <url>
browse wait --network-idle
确认页面已加载。记录所有重定向——重定向链会影响 SEO。如果页面返回 403 或出现验证挑战,请切换到 camoufox(步骤 0)。
步骤 2:提取元标签
browse meta
返回标题、描述、规范链接、OG 标签、Twitter Card、robots 和 viewport。检查:
- 标题:存在、不超过 60 个字符,且包含目标关键词
- 描述:存在,长度为 120–160 个字符,内容吸引人且独特
- 规范链接:存在,URL 正确(尾部斜杠、www 与非 www)
- Robots:没有意外的
noindex或nofollow - Viewport:针对移动设备设置为
width=device-width, initial-scale=1 - OG 标签:
og:title、og:description、og:image、og:url均存在 - Twitter Card:
twitter:card、twitter:title、twitter:description均存在
步骤 3:检查标题结构
browse headings
返回 H1-H6 层级及其数量。检查:
- 恰好一个 H1:多个 H1 会削弱主题信号
- H1 与主题匹配:应包含主要关键词
- 层级嵌套合理:H2 位于 H1 下,H3 位于 H2 下——不能跳过层级
- 关键词存在:目标关键词出现在 H1 和 H2 标签中
步骤 4:提取结构化数据
browse schema
从页面提取 JSON-LD、Microdata 和 RDFa。检查:
- 是否存在:至少包含一种 schema 类型(Article、Product、Organization 等)
- 必需属性:根据 Google 文档,每种类型都需要相应的必填字段
- 有效的 JSON-LD:没有语法错误或格式错误的对象
- @type 正确:与页面实际内容相符
- 遗漏的机会:在内容适用时添加 FAQ、HowTo、Breadcrumb、Review
步骤 5:检查性能
browse perf
返回导航计时数据(DNS、TTFB、DOM 加载、完整加载)。检查:
- TTFB:低于 200ms 为良好,超过 600ms 则存在问题
- DOM Content Loaded:低于 1.5s 可接受
- 完整加载:低于 3s 可提供良好的用户体验
- DNS:正确预取时应接近零
使用 browse network 检查阻塞渲染的资源、大型资源和请求数量。
步骤 6:分析链接结构
browse links
返回所有带文本和 href 的锚元素。检查:
- 内部链接:链接数量充足,便于抓取
- 锚文本:描述清晰,不使用“点击这里”或裸 URL
- 外部链接:出站链接恰当,并在需要时使用 nofollow
- 失效链接:指向 404 或错误页面的链接
步骤 7:检查移动端渲染
browse responsive
捕获移动端(375px)、平板(768px)和桌面端(1440px)的屏幕截图。检查:
- 移动端布局:无水平滚动,无需缩放即可阅读
- 点击目标:触控区域至少为 48px
- 内容一致性:移动端包含与桌面端相同的关键内容
- 字体大小:基础字体至少为 16px
如有需要,可使用 browse screenshot 进行单次整页截图。
步骤 8:通过 JavaScript 执行自定义检查
运行内置命令未涵盖的定向检查:
# Image alt tags
browse js "const imgs=[...document.querySelectorAll('img')]; const missing=imgs.filter(i=>!i.alt&&!i.getAttribute('role')); JSON.stringify({total:imgs.length,missingAlt:missing.length,examples:missing.slice(0,5).map(i=>i.src.slice(-60))})"
# Duplicate meta tags
browse js "JSON.stringify({titles:document.querySelectorAll('title').length,descriptions:document.querySelectorAll('meta[name=description]').length,canonicals:document.querySelectorAll('link[rel=canonical]').length})"
# Hreflang tags
browse js "JSON.stringify([...document.querySelectorAll('link[rel=alternate][hreflang]')].map(t=>({lang:t.hreflang,href:t.href})))"
# Lazy images without dimensions
browse js "const lazy=[...document.querySelectorAll('img[loading=lazy]')]; const noDims=lazy.filter(i=>!i.width&&!i.height&&!i.getAttribute('width')); JSON.stringify({lazyImages:lazy.length,missingDimensions:noDims.length})"
检查 robots.txt 和 sitemap:
browse goto <origin>/robots.txt
browse text
browse goto <origin>/sitemap.xml
browse text
第 9 步:生成审计报告
收集第 2 至第 8 步的数据后,生成一份结构化报告:
- 摘要:用一段话概述通过、失败和警告的数量
- Meta 标签:标题、描述、规范链接、robots、OG、Twitter——分别评级
- 标题结构:H1 数量、嵌套问题、关键词是否出现
- 结构化数据:发现的 schema 类型、遗漏机会、验证问题
- 性能:TTFB、加载时间、阻塞资源
- 链接分析:内部与外部链接比例、失效链接、锚文本质量
- 移动端友好性:viewport 标签、响应式截图、点击目标问题
- 图片:alt 标签覆盖率、延迟加载、尺寸属性
- 建议:按优先级排列的修复项(关键、重要、可选)
将每个部分评为 PASS、WARNING 或 FAIL。根据影响对建议排序。
重要规则
- 浏览器会在命令之间保持运行。Cookie、标签页和会话状态都会保留。
- 执行
goto后,始终先运行wait --network-idle,再提取数据。 - Agent 会解读所有结果。浏览操作会提取原始数据;分析由你负责。
- 不要自动安装任何内容。
- 将截图保存在
.browse/目录下。 - 对于会屏蔽机器人的网站,请使用
--runtime camoufox --headed。