站点被入侵之后,SEO 上的第一步不是改标题、也不是提交站点地图,而是先确认你正在打开的页面还是不是你自己的内容。Google 的垃圾政策把"未经许可放在站点上的内容"单列为被入侵内容,并列出代码注入、页面注入、内容注入、重定向注入四类;同一页也写明,违反政策的站点可能排名更低,也可能干脆不出现在结果里。Google 对被入侵内容的定义与四类注入形式发现陌生页面以后,下一步应按垃圾页面的发现与分来源方法把范围拉全。
先判断这些页面是不是你放的
Google 在预防恶意软件的建议里,把"定期用 site: 看看有没有人偷偷塞进不认识的页面或内容"当成常规动作,并给出判断口径:看到不认识的页面、不是你写的主题,就可能已经被入侵。同一份建议还提到两类信号值得留意:地址里出现陌生的 URL 参数(文中举的例子是 =http: 或 =// 这类形式),以及指向重定向地址的流量出现异常尖峰。Google 关于预防恶意软件入侵的建议 账号线索也别遗漏:对照WordPress 默认用户名与公开用户页的检查核暴露范围。
还有一个容易被忽略的提醒就在同一页:攻击者往往会改动日志文件。所以发现异常后的第一件事是把文件、数据库、访问日志各复制一份留档,不要在原始环境上边查边清,否则证据会被自己的操作覆盖掉。
清理与排查的先后次序
- 留证:把文件、数据库、访问日志的副本存到别处,并写下发现异常的大致时间。
- 断入口:在查清之前不要继续对外发布改动;账号、权限、来源地址一起核对,因为入口常常不止一个。
- 清内容:以留档时间点为界,比对主题、插件、上传目录和数据库,删掉不属于你的文件、页面与设置项。
- 补版本:把核心、主题、插件升到当前能取到的最新版本。官方建议里把"列出网站用到的全部软件与插件、记下版本号"当作长期习惯,这张表在清理阶段正好是你的比对基准。
- 复查输出:确认关键页面的标题、canonical、robots 设置回到预期值,再对外说明情况。
恢复期:让搜索侧重新理解这个站点
先记住一条机制:robots meta 这类设置只有在抓取被允许时才会被读到,所以用 robots.txt 把抓取挡掉、同时又指望 noindex 生效,两者是互相冲突的。规则可以写在页面 head 里,也可以走 HTTP 响应头。robots meta 标签与 X-Robots-Tag 的规范
被注入出来的地址不要一律丢给首页。Google 对重定向的说明是:确定地址永久搬走时用永久重定向(301、308),搜索结果会显示新的目标地址;只是临时导向别处时用临时重定向,搜索结果仍显示原地址。Google 对重定向用途与状态码的说明
需要重新抓取时,量少的用 URL 检查工具逐个提交,量大的提交站点地图。提交只是把请求排进队列,抓取与重新收录的节奏不由你控制,官方没有公布过任何时限口径。
如果被塞进来的还有外链,先分清两件事:Google 把以操纵排名为目的的买卖链接列进链接垃圾,但同一段也写明买卖链接本身不算违规,前提是用 rel 标注。至于"多少条会出事",官方没有公布任何数量阈值,别去套流传的数字;该做的是判断这些链接是否落在官方列举的情形里,核对方法见在 Search Console 里核对外部链接的完整步骤。
哪些情况不适用这套顺序
- 只是被塞了评论或垃圾内容,后台与文件都没被动过:不必走全站清理流程。
- 域名解析或主机账号本身出问题:入口在站点之外,先处理账号与解析,再谈页面。
- 多人协作且说不清入侵路径时:边查边改会把线索冲掉,先留证再分工。
- 想知道"清理完多久能恢复":官方没有公布任何恢复时长口径,也没有公布被入侵与排名之间固定的对应关系,只能用自己前后两段数据对比看变化。
怎么验证清理是否到位
再用 Search Console 的页面索引报告对照一次,重点看三处:多出来的目录层级、上传目录、站点地图里新增的地址;后台里某个设置显示为已打开,和页面真的输出了对应的标记,是两件事,站内搜索页被收录时先查 noindex 有没有真正输出讲的就是这个查法。最后把几个关键页面的响应内容各存一份快照,下次好对照;而判断外链影响时该盯的是目标 URL 是否正确,canonical 和外链指向的 URL 有什么关系给的是这一层的口径。
整件事最省心的顺序,其实就一句话:先让站安全,再让站干净,最后才轮到让它被重新理解。倒着做,每一步都会白费。
