dsh-site-audit:上线前给站点做一次体检

前言

站点要上线,最后卡住人的往往不是功能,而是几个很基础的问题:某个内部链接返回 404、图片没有压缩直接丢上去、页面忘了写 title、https 页面里混着 http 的图片、某个跳转要绕三跳才到终点。人工点一遍要半小时,而且漏看是常态;等到用户先踩到才去改,代价比上线前查一次大得多。

dsh-site-audit 就是为这件事做的插件。它挂在 DSH(DeepSeek Harness)的站点插件体系里,核心思路不是再写一套爬虫,而是用只读的方式把站点的常见问题一次性扫出来,按「阻断 / 警告 / 通过」三档给出结论。

这是什么

dsh-site-audit(站点体检)是一个 DSH 插件,仓库地址是 https://github.com/feely0208/dsh-site-audit,维护者是 feely0208,对应的 npm 包名是 @deepwhale-cn/dsh-site-audit。它解决的是「站点生成之后、上线之前」那一轮检查:内部链接是否可达、图片是否过大、基础 SEO 有没有缺件、robots 与 sitemap 是否存在、是否存在混合内容、重定向链是否过长。

插件是只读的,不会对目标站点发 POST,也不提交表单、不登录,不往外部传数据。

安装

用官方给的命令装:

dsh plugin --profile web add @deepwhale-cn/dsh-site-audit

--profile web 说明它是跑在 web 端(客户端)的插件。装完之后侧栏会出现「站点体检」入口,输入网址即可。

CLI 单独跑

插件自带 CLI,不装 DSH 也能单独用,前提是本机 Node ≥ 18。

node bin/cli.mjs --base https://example.com

这条命令从起始页开始抓取,默认上限 50 页,检查内部链接、图片体积、SEO、robots/sitemap、混合内容、重定向链。

要换抓取范围或关掉外链探测:

node bin/cli.mjs --base https://example.com --max-pages 100 --offline

--max-pages 调整内部链接的抓取上限,--offline 把外链探测整体关掉。

如果站点是本地构建产物,直接扫目录,不发任何网络请求:

node bin/cli.mjs --dir ./dist --json --out report.md

--dir 指定目录,--json 输出 JSON,--out report.md 把报告写到指定文件。--dir 模式只读本地文件,断网也能跑。

面板使用

DSH 侧栏的「站点体检」入口,输入网址后会给出三档统计和最严重的 5 条问题。对于只想快速看一眼站点有没有硬伤的场景,队面板就够了;要全量报告或接入脚本,用上面的 CLI。

检查规则

下面这些规则来自 README,是插件实际会报的内容。

  • 内部链接:抓起始页加上同源直接链接,默认上限 50 页,可用 --max-pages 调整;4xx、5xx、超时一次全列出来,带完整 URL。
  • 图片体积:单图超过 300KB 记警告,超过 1MB 阻断;按体积倒序列出文件名,方便先处理最大的几个。
  • 基础 SEO:逐页检查 title 是否缺失或重复、description 是否缺失、h1 数量是否不等于 1。
  • robots.txt / sitemap.xml:在线模式下看 HTTP 是否存在,本地模式下只做文件检查;robots 禁止全站时会单独提示。
  • 混合内容:https 页面里出现 http:// 资源记阻断。本地模式下没有真实 HTTP 响应,会报「上线后会成混合内容」。
  • 重定向链:超过 2 跳给警告,同时写出最终跳到哪一站。
  • 外链:用 HEAD 探测,8 秒超时,失败只警告不阻断;--offline 可整体关掉。

输出与退出码是配套的:文本报告分三档(阻断 / 警告 / 通过),支持 --json 和 --out report.md;退出码 0 表示无阻断、1 表示有阻断、2 表示参数或解析失败。可以直接挂在部署脚本前面做门禁。

边界

插件明确只做几件事,安装前值得知道:

  • 只发 GET 和 HEAD,不发 POST、不提交表单、不登录、不外传数据。
  • 内部链接只在同一站点内递归,跨域链接只做一次 HEAD 探测,不递归进对方的站点。
  • 单个请求默认 8 秒超时,并发默认 4,不会因为一个慢页面就把整个检查挂住;同一个 URL 的结果缓存 60 秒。

适用场景与注意事项

适合在发布流程里用:生成站点之后扫一遍 ./dist,把阻断项在发布前清掉;也可以用 --base 对线上地址做一遍只读体检,前提是目标站点允许这种扫描。

有一点要在用之前想清楚:这个插件是在当前 DSH 进程里跑的,权限跟着 DSH 进程走。安装到 DSH 上等于给这个进程增加了一项能力,建议先看一遍源码,确认它发起的请求符合预期。许可证是 MIT,作者署名是温州深鲸智能科技有限公司(contact@deepwhale.org.cn)。

另外,DSH 生态社区(如 skillhub.cn)是独立站点,与 DeepSeek / 幻方没有官方从属关系,不要当作官方应用商店来理解;这个插件是社区侧提供的工具,之上没有更多官方背书信息。

相关链接

  • GitHub 仓库:https://github.com/feely0208/dsh-site-audit
  • skillhub.cn 目录页:https://www.skillhub.cn/plugins/feely0208/dsh-site-audit
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜