先给结论:不要从“服务商说已经清理”入手,而要拿你手上那份能直接访问的页面或模板文件,逐项找出不属于你、却仍在生效的引用。只要页面还能打开、模板还能编辑、站点还能发布,遗留配置就一定留下可观察的痕迹。下面按一个具体对象——你正在维护的一个页面——说明怎么把检查变成可执行动作。
整站扫描容易把正常外链、统计脚本和缓存混在一起。选一个近期改过、且服务商经手过的页面,另存一份当前源码,作为对照基线。这一步的产出不是结论,而是一份可比较的文本。后续任何改动都拿它比对,避免边查边改导致证据消失。
假设这个页面是产品介绍页,服务商曾承诺“只做站内优化”。你打开源码后先看三类位置:页头引用、正文区块、页脚。它们不是全部,但足以暴露大多数外部注入。
外链关注的是陌生域名。正常友情链接通常出现在页脚且有文字锚文本;遗留配置更常见的是空锚点、单像素图片、<a> 包住不可见元素。脚本关注的是来源不明的 <script src>,尤其是加载后不产生任何可见交互的。隐藏区块关注 display:none、height:0 或颜色与背景相同的段落,它们可能是旧的堆词内容。
发现一处不等于全部。先记录它出现的位置、引用的域名、是否带参数。记录完再决定是否删除,因为有些引用可能是你自己的统计或客服组件。
如果你新建一个空白页面,同一段代码自动出现,说明它写在模板或公共组件里,属于站点级遗留,清理要动模板。如果只在旧页面存在,说明是单页注入,清理范围小。这个区分决定你下一步是改一个文件还是排查全站模板。
第一种是先备份再删除,适合页面流量低、你能接受几小时观察期。第二种是先注释掉再观察,适合页面流量高、需要保留回滚能力。两者代价不同:直接删除干净,但一旦删错,恢复依赖备份;注释保留痕迹,但可能被后续发布覆盖。
选择条件很具体:如果这个页面有正在投放的广告或作为主要落地页,先用注释;如果只是普通内容页,直接删除并保留备份即可。动作的结果直接影响下一步——注释后页面若出现功能缺失,说明该引用并非纯遗留,需要进一步确认来源;若无变化,再删除并继续查下一页。
页面干净不代表服务结束。需要确认三件事:发布账号是否还在对方手里、模板是否仍从外部地址拉取资源、站点地图或抓取配置是否指向陌生路径。这些属于机制层面,不是内容层面。
这三项中任何一项仍开放,页面清理都只是表面。先关闭发布权限,再处理模板引用,最后核对配置文件,顺序反过来容易在清理中被重新写入。
检查结束后,你手上应有三类信息:已确认的遗留项、待确认的可疑项、已排除的正常项。处理方案按这三类走,而不是按“全部删掉”走。已确认项直接移除并记录时间;可疑项先隔离观察,不立即删除;正常项保留并标注来源,避免下次重复排查。
如果发现的是批量注入而非单页问题,说明清理范围要扩大到模板和发布流程,这时先冻结发布权限比逐页删除更有效。如果只是个别页面残留,逐页处理成本更低。两种路径的分界,取决于同一段代码是否在多个页面重复出现。
最后提醒一点:请求量或抓取量在某段时间归零,不能单独证明遗留配置已清理干净。缓存、抓取延迟、页面暂时不可访问都会造成类似现象。判断依据应回到源码和发布权限本身,而不是外部数据曲线的短期变化。