如何构建安全的 WordPress 5:禁用搜索结果动态标题,防止 SEO 垃圾攻击
继续「如何构建安全的 WordPress」系列文章,这是 WordPress 搜索安全相关的第二篇,前面我们介绍了「限制搜索频率,防止搜索滥用攻击」,今天讲讲 WordPress 搜索第二个重大的安全隐患, SEO 垃圾攻击(SEO Spam)。
SEO 垃圾攻击
什么是SEO 垃圾攻击(SEO Spam):
SEO 垃圾攻击(SEO Spam),也称为 搜索引擎投毒(Search Engine Poisoning),是指黑客或黑产通过操纵搜索引擎优化(SEO)技术,向目标网站注入垃圾内容或篡改网页元素(如标题、关键词、链接等),使其在搜索引擎结果中显示恶意或无关信息,从而误导用户或提升黑产网站的排名。如下(我做个演示):

它还有一下几个行业通用术语:
- SEO Spam / SEO Poisoning:通过操纵页面元素(如标题、描述)提升黑产网站在搜索引擎中的可见性。
- Title Tag Hijacking:直接劫持标题标签内容,属于 On-Page SEO 攻击 的一种。
- Search Index Pollution:污染搜索引擎索引的恶意行为(Google 官方文档曾用此术语描述类似攻击)。
攻击者通过构造恶意搜索请求(如 ?s=黑产关键词
+域名),利用 WordPress 默认的搜索结果页动态标题机制(例如 wp_title()
函数),将恶意内容注入到 <title>
标签中。这属于 注入攻击(Injection Attack) 的子类,但更贴近 SEO 滥用 场景。
为什么 WordPress 经常被这类攻击呢?因为WordPress 默认将搜索关键词动态插入标题(例如 搜索:{关键词} - 网站名
),而黑产通过自动化工具高频请求含恶意关键词的搜索页(如 ?s=赌博网站
),导致这些关键词被收录到搜索引擎索引中,甚至排名靠前。
这类攻击造成的损害也是很大的,一旦你的网站有这类情况,可能会被搜索引擎误判为关联黑产内容,导致网站降权或标记为恶意。万一用户通过搜索敏感词进入站点,可能触发安全平台(如 Google Safe Browsing)的警告。
静态化搜索结果标题
那么怎么办呢?其实很简单,禁用 WordPress 搜索结果动态标题,静态化搜索结果标题,比如只显示「搜索结果」这四个字:

WPJAM 搜索优化插件 已经集成了该功能,如下图所示,「搜索增强」的第三个选项「搜索结果页面标题不显示关键字,只显示「搜索结果」四个字」勾选上即可:

WPJAM 搜索优化插件 已经集上面所有的功能和相关代码,直接启用即可,点击查看 WPJAM 搜索优化插件 的详细介绍,Modular 主题也集成了,我会在介绍 WordPress 安全这系列文章的时候,将这些安全相关代码也整合到 Modular 主题中,争取打造最安全的 WordPress 主题。
专题:WordPress 安全: