READMESource: main@98696a71
dsh-site-audit · 站点体检
不装会怎样
上线前总有人说「我点过了,没问题」——然后用户第一个点到的是 404。图片没压缩、title 忘了写、https 里还混着 http 的图、链接绕三跳才到。手动查一遍要半小时,还容易漏;上线后再改,代价大得多。
它做什么
- 内部链接:抓起始页 + 同源直接链接(默认上限 50 页,可
--max-pages),报 4xx / 5xx / 超时,给完整 URL。 - 图片体积:单图 >300KB 警告、>1MB 阻断,按体积倒序列出文件名。
- 基础 SEO:每页 title 缺失/重复、description 缺失、h1 数量 ≠ 1。
- robots.txt / sitemap.xml:在线看 HTTP 是否存在;本地只看文件。robots 禁全站会单独提示。
- 混合内容:https 页面里出现
http://资源 → 阻断(本地模式报「上线后会成混合内容」)。 - 重定向链:超过 2 跳给警告,并写出终点。
- 外链:HEAD 探测、8 秒超时、失败只警告不阻断;
--offline可整体关掉。 - 本地模式:
--dir ./dist只读文件、不发任何请求,断网也能体检。
输出:文本三档(阻断/警告/通过)+ --json + --out report.md;退出码 0 无阻断 / 1 有阻断 / 2 参数或解析失败。
面板:侧栏「站点体检」→ 输网址 → 三档统计 + 最严重的 5 条。
安装
dsh plugin --profile web add @deepwhale-cn/dsh-site-audit
CLI 也可以单独跑(Node ≥ 18):
node bin/cli.mjs --base https://example.com
node bin/cli.mjs --base https://example.com --max-pages 100 --offline
node bin/cli.mjs --dir ./dist --json --out report.md
边界
- 只读:只发
GET/HEAD,不发 POST、不提交表单、不登录、不外传任何数据。 - 只抓同源链接;跨域只做外链探测(HEAD),不递归。
- 单请求默认 8 秒超时、并发默认 4,绝不挂死;结果按 URL 缓存 60 秒。
测试
bash tests/run.sh
全程离线:本地起一个临时 HTTP 服务提供「有问题的站点」,再跑一遍「干净站点」验 0 误报;另测本地目录模式。不请求真实外网。
No comments yet. Be the first to write one.