判断标准不是“手工能不能完成”,而是这项工作出错后是否容易被发现、是否必须逐条比对、以及频率是否高到让复核成本超过自动化成本。缺少完整数据或权限时,仍可以先做一件事:把最近一次出错的页面或链接记下来,标出它从产生到被发现的路径。如果这条路径依赖某个人记得检查,就属于优先考虑交给脚本或规则的工作;如果它一年只发生几次且每次判断都不同,继续手工反而更稳。
第一种条件:你能拿到站内日志、抓取记录或至少一份完整的URL清单,并且有权限在测试环境运行脚本。这时适合把重复比对交给程序,例如站内链接检查、批量标题重复检测、旧URL跳转是否成链、页面是否被误加noindex。程序输出的是候选异常,人只负责判断哪些异常值得处理。
第二种条件:你没有日志权限,也无法改模板,只能看到公开页面。这时不要急着追求全站自动化。可执行的最小动作是选取一个模板类型,比如文章页或商品页,手工抽查二十条,记录它们之间的差异。若差异集中在同一字段,说明问题来自模板输出规则;若差异分散,手工清单只能作为临时补丁,不能当作长期方案。这个结论不能反过来推出“没有日志就无法优化”,它只说明当前不适合把判断权交给脚本。
第一类是逐条核对URL状态。页面数量上升后,内链、外链、跳转和参数组合会成倍增加,手工点击只能覆盖入口附近,深处的失效链接往往要等用户或搜索爬虫先遇到。可执行动作:先用站点地图或导航导出可访问URL,再对同一批URL做一次状态与跳转目标比对。结果会直接影响下一步——如果失效集中在某几个模板,先改模板;如果分散在编辑录入,先改发布前检查项,而不是继续加人点击。
第二类是批量检查标题、描述和正文重复。手工看几十页尚可,上千页后注意力会先崩溃。这里要区分“重复”与“相似”:完全相同的标题通常来自模板或采集,值得优先处理;语义相近但面向不同意图的页面,不应仅凭相似度就合并。假设一个站点有八百个页面,其中一百二十个标题完全相同,这只能说明存在重复候选,不能直接推出这些页面都会被降权,因为抓取、索引和排名是不同环节,重复标题影响的是搜索引擎理解页面的难度,而不是一个必然的惩罚开关。
第三类是定期检查重要页面是否被误改。手工方式是每周打开若干页面看一遍,问题是人眼对“少了一个模块”“多了一段代码”并不敏感。更可靠的做法是把关键页面的标题、主要段落和结构化数据输出做成快照,版本变化时只比对差异。动作的结果是:你能看到变化发生在哪一次发布之后;如果快照显示变化来自站点级模板,下一步应回到模板发布记录,而不是逐页修补。
涉及意图判断、内容取舍和例外处理的工作,不适合为了省事而全部交给规则。例如两个页面是否应该合并、某个旧页面是否值得保留、一段用户评论是否应该展示,这些判断依赖上下文,脚本只能给出候选。另一种适合保留手工的情况是低频且高影响的改动:首页主推内容、核心栏目的结构、重要活动的落地页。它们数量少,出错代价高,逐项确认比自动批处理更可控。
还要注意一种反常现象:自动化报告数量归零,不等于问题已经解决。抓取量下降、告警消失或某张报表为空,可能来自权限变更、规则写错、任务没有运行,也可能来自页面确实被移除。缺少完整数据时,不要用“零异常”证明处理正确。最小动作是抽一条已知会触发规则的样本,确认它仍能被检出;如果样本检不出,先修检查逻辑,再谈页面本身。
不要一次性把所有检查都自动化。选一个具体假设,例如“同一模板下的页面标题重复,主要来自编辑录入时未改默认值”。动作是导出该模板全部标题,按重复次数排序,抽取重复最多的一组,回到发布记录看它们是否在同一批次产生。如果时间集中,说明发布流程缺少必填校验;如果时间分散,说明问题更可能来自模板默认值或导入规则。两种结果对应不同的下一步:前者改发布前检查,后者改模板输出。这个例子是假设性的,数字只用于说明比较方法,不代表任何真实站点的统计结论。
执行后要保留一份可复查记录:检查了哪批URL、用什么条件筛出、哪些被判定为异常、哪些被排除。这样做的价值不在于留下文档,而在于下一次规模继续扩大时,你能判断旧规则是否仍然适用。若规则依赖的字段被模板改掉,记录会先暴露失效,而不是等到用户反馈才发现。若你只有公开页面权限,就缩小范围,只对可访问URL做同样的事,并明确结论只覆盖这一批,不外推到全站。
最终取舍可以归结为:高频、可枚举、判断标准稳定的工作,交给脚本或规则;低频、依赖上下文、出错后影响面大的工作,保留人工确认。规模扩大后真正危险的不是手工本身,而是手工检查已经覆盖不到,却仍然被当作完整覆盖。