关于 audit-website
audit-website 是供 AI Agent 使用的网站审计技能,通过 squirrelscan 的 squirrel 命令行工具爬取页面并检查多类问题。它生成含问题 URL、分类结果和修复建议的报告,也支持比较审计结果以发现回归。
主要功能
- 01按多类规则审计网站
- 02检测失效链接与重定向
- 03检查 SEO、性能和安全问题
- 04生成多种格式的审计报告
- 05比较报告以识别回归
适用场景
- 01排查网站技术 SEO 问题
- 02检查链接、元数据和结构化数据
- 03在网站改动前后比较健康状况
- 04生成网站审计结果供修复使用
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ makerjackie/ jackie-skills-starter --skill audit-website安装后在 Claude Code 中输入/audit-website确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlassets/icon-small.svgreferences/OUTPUT-FORMAT.md详细介绍
(中文)网站审计技能
使用 squirrelscan cli 审计网站中的 SEO、技术、内容、性能和安全问题。
squirrelscan 提供了一个名为 squirrel 的 cli 工具,支持 macos、windows 和 linux。它通过模拟浏览器和搜索爬虫,并根据 230 多条规则分析网站的结构和内容,全面审计网站。
它会列出发现的问题,并提供修复建议。
链接
- squirrelscan 网站:https://squirrelscan.com
- 文档(包括规则参考):docs.squirrelscan.com
你可以使用以下模板查询任意规则的文档:
https://docs.squirrelscan.com/rules/{rule_category}/{rule_id}
示例:
https://docs.squirrelscan.com/rules/links/external-links
此技能的功能
此技能可帮助 AI Agent 按照 21 个类别中的 230 多条规则审计网站,包括:
- SEO 问题:Meta 标签、标题、描述、规范 URL、Open Graph 标签
- 技术问题:失效链接、重定向链、页面速度、移动设备友好性
- 性能:页面加载时间、资源使用、缓存
- 内容质量:标题结构、图片替代文本、内容分析
- 安全性:泄露的机密信息、HTTPS 使用情况、安全标头、混合内容
- 无障碍性:替代文本、颜色对比度、键盘导航
- 易用性:表单验证、错误处理、用户流程
- 链接:检查失效的内部和外部链接
- E-E-A-T:专业性、经验、权威性、可信度
- 用户体验:用户流程、错误处理、表单验证
- 移动设备:检查移动设备友好性、响应式设计、适合触控的元素
- 可抓取性:检查可抓取性、robots.txt、sitemap.xml 等
- Schema:Schema.org 标记、结构化数据、丰富摘要
- 法律合规:是否符合法律要求、隐私政策、服务条款
- 社交:Open Graph、Twitter 卡片,以及对 Schema、摘要等内容的验证
- URL 结构:长度、连字符、关键词
- 关键词:关键词堆砌
- 内容:内容结构、标题
- 图片:替代文本、颜色对比度、图片尺寸、图片格式
- 本地 SEO:NAP 一致性、地理元数据
- 视频:VideoObject Schema、无障碍性
以及更多内容
审计会抓取网站,按照审计规则分析每个页面,并返回一份全面的报告,其中包括:
- 总体健康评分(0-100)
- 类别细分(核心 SEO、技术 SEO、内容、安全性)
- 具体问题及受影响的 URL
- 失效链接检测
- 可执行的建议
- 规则分为错误、警告和提示级别,排名为 1 到 10
适用场景
在以下情况下使用此技能:
- 分析网站的健康状况
- 调试技术 SEO 问题
- 修复上述所有问题
- 检查失效链接
- 验证 Meta 标签和结构化数据
- 生成网站审计报告
- 比较更改前后的网站健康状况
- 改进网站性能、无障碍性、SEO、安全性等。
你应尽可能频繁地重新审计,以确保网站保持健康并运行良好。
前置条件
此技能需要安装 squirrel CLI,并确保其位于 PATH 中。
验证:
squirrel --version
设置
运行 squirrel init,在当前目录中创建 squirrel.toml 配置文件。如果该文件不存在,请创建一个并指定项目名称:
squirrel init -n my-project
# overwrite existing config
squirrel init -n my-project --force
用法
简介
有三个可以运行的流程,它们都会缓存在本地项目数据库中:
- crawl - 用于运行爬取或刷新、继续爬取的子命令
- analyze - 用于分析爬取结果的子命令
- report - 用于按所需格式(llm、text、console、html 等)生成报告的子命令
'audit' 命令是这三个流程的封装,会按顺序运行它们:
squirrel audit https://example.com --format llm
你应该始终优先选择 llm 格式选项——它是专为你打造的,能提供详尽且精简的输出格式。
首次扫描应为表层扫描,即对网站进行快速、浅层的扫描,以收集网站的基本信息,例如结构、内容和技术栈。此扫描可以快速完成,不会影响网站的性能。
第二次扫描应为深度扫描,即对网站进行全面、详细的扫描,以收集更多信息,例如网站的安全性、性能和无障碍性。此扫描可能需要更长时间,并可能影响网站的性能。
如果用户未提供要审计的网站,请询问他们想审计哪个 URL。
你应该优先审计线上网站——只有这样,我们才能真实了解网站的实际情况以及性能或渲染问题。
如果既有本地网站又有线上网站可供审计,请提示用户选择要审计的网站,并建议他们选择线上网站。
你可以根据线上网站的审计结果,对本地代码应用修复。
规划任务范围时,应确保任务可以由多个子 Agent 并发执行,以加快修复速度。
实施修复时,利用子 Agent 加快修复进度。
应用修复后,验证代码仍可构建,并通过项目中已有的检查。
基本工作流
审计流程分为两步:
- 运行审计(保存到数据库,并显示控制台输出)
- 导出报告为所需格式
# Step 1: Run audit (default: console output)
squirrel audit https://example.com
# Step 2: Export as LLM format
squirrel report <audit-id> --format llm
回归差异
需要检测不同审计之间的回归时,请使用 diff 模式:
# Compare current report against a baseline audit ID
squirrel report --diff <audit-id> --format llm
# Compare latest domain report against a baseline domain
squirrel report --regression-since example.com --format llm
diff 模式支持 console、text、json、llm 和 markdown。不支持 html 和 xml。
运行审计
运行审计时:
- 呈现报告——向用户展示审计结果和评分
- 提出修复方案——列出可以修复的问题,并在进行更改前征求用户确认
- 并行处理已批准的修复——对于批量内容编辑(替代文本、标题、描述),使用子 Agent
- 迭代处理——修复一批问题 → 重新审计 → 呈现结果 → 提出下一批修复方案
- 暂停并交由用户判断——标记损坏的链接、结构性变更以及任何模糊不清的问题,供用户审核
- 展示前后对比——每批修复后,呈现评分对比
-
迭代循环:修复一批问题后,重新审计并继续修复,直到:
- 评分达到目标(通常为 85+),或者
- 只剩下需要人工判断的问题(例如,“是否应该删除这个链接?”)
-
平等对待所有修复:代码更改和内容更改同样重要。
-
并行处理内容修复:对于影响多个文件的问题:
- 启动多个子 Agent 并行修复
- 示例:7 个文件需要添加替代文本 → 启动 1-2 个 Agent 完成全部修复
- 示例:30 个文件存在标题问题 → 启动多个 Agent 分批编辑
-
完成标准:
- ✅ 修复所有错误
- ✅ 修复所有警告(或记录需要人工审核的警告)
- ✅ 重新审计确认已有改善
- ✅ 向用户展示前后对比
应用修复后,询问用户是否要查看更改。
评分目标
| 起始评分 | 目标评分 | 预期工作 |
|---|---|---|
| < 50(F 级) | 75+(C 级) | 重大修复 |
| 50-70(D 级) | 85+(B 级) | 中度修复 |
| 70-85(C 级) | 90+(A 级) | 润色 |
| > 85(B+ 级) | 95+ | 微调 |
只有当评分高于 95(A 级)且覆盖范围设为 FULL(--coverage full)时,网站才会被视为已完成并修复。
问题类别
| 类别 | 修复方法 | 可并行处理 |
|---|---|---|
| Meta 标签/标题 | 编辑页面组件或元数据 | 否 |
| 结构化数据 | 向页面模板添加 JSON-LD | 否 |
| 缺少 H1/标题 | 编辑页面组件和内容文件 | 是(内容) |
| 图片 alt 文本 | 编辑内容文件 | 是 |
| 标题层级 | 编辑内容文件 | 是 |
| 描述过短 | 编辑内容 frontmatter | 是 |
| HTTP→HTTPS 链接 | 在内容中查找并替换 | 是 |
| 链接失效 | 手动审查(标记给用户) | 否 |
对于可并行处理的修复:为子代理分配具体文件。
内容文件修复
许多问题需要编辑内容文件。这些修复与代码修复同样重要:
- 图片 alt 文本:为图片添加描述性 alt 文本
- 标题层级:修复跳级的标题
- Meta 描述:在 frontmatter 中扩展过短的描述
- HTTP 链接:将不安全的链接更新为 HTTPS
使用子代理并行修复
当用户批准一批修复后,可以使用子代理并行处理:
- 先询问用户 — 启动子代理前,务必确认要应用哪些修复
- 为每个子代理分配 3-5 个文件,处理同一种修复
- 仅并行处理相互独立的文件(不涉及共享组件或配置)
- 在同一条消息中启动多个子代理,以便并发执行
高级选项
审计更多页面:
squirrel audit https://example.com --max-pages 200
强制重新爬取(忽略缓存):
squirrel audit https://example.com --refresh
恢复中断的爬取:
squirrel audit https://example.com --resume
输出详细信息以便调试:
squirrel audit https://example.com --verbose
常用选项
审计命令选项
| 选项 | 别名 | 说明 | 默认值 |
|---|---|---|---|
--format <fmt> | -f <fmt> | 输出格式:console、text、json、html、markdown、llm | console |
--coverage <mode> | -C <mode> | 覆盖模式:quick、surface、full | surface |
--max-pages <n> | -m <n> | 爬取的最大页面数(最多 5000) | 因覆盖模式而异 |
--output <path> | -o <path> | 输出文件路径 | - |
--refresh | -r | 忽略缓存,重新获取所有页面 | false |
--resume | - | 恢复中断的爬取 | false |
--verbose | -v | 详细输出 | false |
--debug | - | 调试日志 | false |
--trace | - | 启用性能跟踪 | false |
--project-name <name> | -n <name> | 覆盖项目名称 | 来自配置 |
覆盖模式
根据审计需求选择覆盖模式:
| 模式 | 默认页面数 | 行为 | 使用场景 |
|---|---|---|---|
quick | 25 | 仅种子页面和站点地图,不发现链接 | CI 检查、快速健康检查 |
surface | 100 | 每种 URL 模式抽取一个样本 | 常规审计(默认) |
full | 500 | 在限制范围内爬取所有内容 | 深度分析 |
Surface 模式很智能——它会检测 /blog/{slug} 或 /products/{id} 等 URL 模式,并且每种模式只爬取一个样本。这对于拥有许多相似页面(博客、电商)的站点来说效率很高。
# Quick health check (25 pages, no link discovery)
squirrel audit https://example.com -C quick --format llm
# Default surface audit (100 pages, pattern sampling)
squirrel audit https://example.com --format llm
# Full comprehensive audit (500 pages)
squirrel audit https://example.com -C full --format llm
# Override page limit for any mode
squirrel audit https://example.com -C surface -m 200 --format llm
各模式的适用场景:
quick:CI 流水线、每日健康检查、监控surface:大多数审计——高效覆盖不同模板full:发布前、全面分析、深入调查
报告命令选项
| 选项 | 别名 | 说明 |
|---|---|---|
--list | -l | 列出最近的审计 |
--severity <level> | - | 按严重程度筛选:error、warning、all |
--category <cats> | - | 按类别筛选(以逗号分隔) |
--format <fmt> | -f <fmt> | 输出格式:console、text、json、html、markdown、xml、llm |
--output <path> | -o <path> | 输出文件路径 |
--input <path> | -i <path> | 从 JSON 文件加载(回退模式) |
配置子命令
| 命令 | 说明 |
|---|---|
config show | 显示当前配置 |
config set <key> <value> | 设置配置值 |
config path | 显示配置文件路径 |
config validate | 验证配置文件 |
其他命令
| 命令 | 说明 |
|---|---|
squirrel feedback | 向 squirrelscan 团队发送反馈 |
squirrel skills install | 安装 Claude Code 技能 |
squirrel skills update | 更新 Claude Code 技能 |
Self 命令
squirrel self 下的自我管理命令:
| 命令 | 说明 |
|---|---|
self install | 初始化本地安装 |
self update | 检查并应用更新 |
self completion | 生成 Shell 补全脚本 |
self doctor | 执行健康检查 |
self version | 显示版本信息 |
self settings | 管理 CLI 设置 |
self uninstall | 从系统中移除 squirrel |
输出格式
控制台输出(默认)
默认情况下,audit 命令会显示易于阅读的控制台输出,并带有彩色文本和进度指示器。
LLM 格式
如需获取针对 LLM 优化的输出,请使用 report 命令并指定 --format llm:
squirrel report <audit-id> --format llm
LLM 格式是一种紧凑的 XML/文本混合格式,针对令牌效率进行了优化(比冗长的 XML 小 40%):
- 摘要:整体健康评分和关键指标
- 按类别划分的问题:按审计规则类别分组(核心 SEO、技术、内容、安全)
- 失效链接:失效的外部和内部链接列表
- 建议:按优先级排列的操作事项及修复建议
详细的格式规范请参见 OUTPUT-FORMAT.md。
示例
示例 1:使用 LLM 输出快速审计网站
# User asks: "Check squirrelscan.com for SEO issues"
squirrel audit https://squirrelscan.com --format llm
示例 2:对大型网站进行深度审计
# User asks: "Do a thorough audit of my blog with up to 500 pages"
squirrel audit https://myblog.com --max-pages 500 --format llm
示例 3:更改后重新审计
# User asks: "Re-audit the site and ignore cached results"
squirrel audit https://example.com --refresh --format llm
示例 4:两步工作流(重复使用之前的审计结果)
# First run an audit
squirrel audit https://example.com
# Note the audit ID from output (e.g., "a1b2c3d4")
# Later, export in different format
squirrel report a1b2c3d4 --format llm
输出
完成后,向用户总结你所做的所有更改。
故障排除
找不到 squirrel 命令
如果看到此错误,说明 squirrel 尚未安装,或不在 PATH 中。
解决方案:
- 安装 squirrel:squirrelscan.com/download
- 确保
~/.local/bin位于 PATH 中 - 验证:
squirrel --version
权限被拒绝
如果 squirrel 无法执行,请确保二进制文件具有执行权限。从 squirrelscan.com/download 重新安装即可解决此问题。
爬取超时或性能缓慢
对于非常大型的网站,审计可能需要几分钟。使用 --verbose 查看进度:
squirrel audit https://example.com --format llm --verbose
URL 无效
确保 URL 中包含协议(http:// 或 https://):
# ✗ Wrong
squirrel audit example.com
# ✓ Correct
squirrel audit https://example.com
工作原理
- 爬取:从基础 URL 开始发现并获取页面
- 分析:对每个页面运行审计规则
- 外部链接:检查外部链接是否可用
- 报告:生成包含审计结果的 LLM 优化报告
审计结果会存储在本地数据库中,之后可通过 squirrel report 命令检索。
其他资源
- 输出格式参考:OUTPUT-FORMAT.md
- squirrelscan 文档:https://docs.squirrelscan.com
- CLI 帮助:
squirrel audit --help