本文约 3,727 字,预计阅读 10 分钟。文中命令与配置均经过实测,可直接参考执行。
引言:用户点进来第一秒就想走
清风算法针对的是一类非常具体的体验伤害:用户在搜索结果里看到的标题(以及描述)与点进去看到的实际内容不一致。最典型的场景是下载站——搜索”XX 软件 官方下载”,结果标题写着”XX 软件官方下载 最新版”,点进去是一个下载导航页,真正的下载按钮藏在三个广告位后面,点了还可能跳到下载器。另一个常见场景是”标题写 A,内容讲 B”:标题承诺”2026 年最新政策解读”,正文是三年前的旧文改了个日期;标题写”完整解决方案”,正文是软文。这类做法在短期内能提高点击率,代价是用户立刻跳出,并在行为数据上留下强烈的负反馈。清风算法多轮迭代后,覆盖的范围从下载页扩展到了所有”标题/摘要与落地页内容严重不符”的页面,也包括页面本身存在误导性设计(虚假按钮、诱导点击)的情况。对 WordPress 站长来说,风险点往往不是主观欺骗,而是维护不当:改了标题忘了改内容、用插件批量生成标题、以及在文章中嵌入了与主题无关的广告板块。本文提供一套可脚本化的自查方法。
原理分析:一致性的三个层级
清风算法判定”欺骗”,看的是三层一致性,任何一层断裂都可能命中。
| 层级 | 应该一致的内容 | 常见断裂场景 |
|---|---|---|
| 标题 ↔ 页面主题 | 标题承诺的主题必须是页面主体 | 标题写下载,页面是导航页 |
| 描述 ↔ 页面内容 | 摘要提到的要点在页面里存在 | 摘要写”含源码”,页面没有 |
| 展示 ↔ 实际功能 | 页面上声称的功能真实可用 | 下载按钮是广告、按钮无效 |
第一层最重要。搜索引擎会抽取页面的主体内容(正文、H1、图片 alt、主要链接)与标题做语义比对,如果标题里的核心实体在页面主体里根本没出现,就会被判定为名实不符。第二层涉及描述:虽然描述由算法自动抽取居多,但页面里刻意堆砌与主题无关的关键词段落来”制造摘要”,同样会被识别。第三层是页面设计层面的误导,包括虚假下载按钮、伪装成内容主体的广告位、以及诱导点击的弹窗。
需要强调的是,这类判定与”标题作弊”算法(针对堆砌与虚假夸大)有交集但侧重不同:那边看的是标题本身的写法,这边看的是标题与落地页的匹配关系。所以整改方向也不同——不是把标题改短,而是让标题如实描述页面。
保姆级实操
步骤 1:批量比对标题关键词与正文的一致性
思路很简单:把标题切成词,检查这些词是否在正文前 1/3 出现。覆盖率过低的页面就是高风险候选。下面这段 PHP 脚本用 WordPress 环境直接跑,不需要额外依赖:
<?php
// title_body_check.php:标题与正文一致性体检(放到站点根目录,用完即删)
require_once __DIR__ . '/wp-load.php';
$query = new WP_Query([
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => -1,
'fields' => 'ids',
]);
$low = [];
foreach ($query->posts as $post_id) {
$title = get_the_title($post_id);
$body = wp_strip_all_tags(get_post_field('post_content', $post_id));
$body = preg_replace('/\s+/', '', $body);
$head = mb_substr($body, 0, (int) (mb_strlen($body) / 3) ?: 1);
// 用 2 元组切分标题,避免依赖分词扩展
$terms = [];
$len = mb_strlen($title);
for ($i = 0; $i + 2 <= $len; $i++) {
$terms[] = mb_substr($title, $i, 2);
}
$terms = array_values(array_unique(array_filter($terms, fn($t) => !preg_match('/[\s_\|\-—·、,。]/u', $t))));
if (!$terms) {
continue;
}
$hit = 0;
foreach ($terms as $t) {
if (mb_strpos($head, $t) !== false) {
$hit++;
}
}
$rate = $hit / count($terms);
if ($rate < 0.6) {
$low[] = ['id' => $post_id, 'rate' => round($rate, 2), 'title' => $title];
}
}
usort($low, fn($a, $b) => $a['rate'] <=> $b['rate']);
echo "低一致性页面数:" . count($low) . PHP_EOL;
foreach (array_slice($low, 0, 30) as $r) {
printf("ID %-6d 覆盖率 %.2f %s\n", $r['id'], $r['rate'], $r['title']);
}
步骤 2:人工复核四类高风险页面
脚本只能找线索,下面四类要人工看:一是下载/资源类页面(标题承诺的资源是否真实存在且可直接获取);二是列表/聚合页(标题说”完整清单”是否真的完整);三是带时效表述的页面(”2026 最新”是否真的更新到今年);四是商业页面(标题是否夸大功效或虚假官方身份)。
步骤 3:改标题还是改内容,按”谁是错误的一方”决定
如果页面本身有价值,只是标题写偏了,改标题;如果标题承诺的是用户真实需求,但页面没兑现,改内容(补齐资源、更新数据、去掉虚假按钮)。不要为了保住标题而硬凑内容,也不要为了省事删掉用户真正需要的功能。
步骤 4:清理页面上的误导性元素
检查是否存在:伪装成下载按钮的广告位、与内容主体混淆的推荐位、自动弹出的诱导弹窗。这些元素即使标题合规,也会在体验层面被判定为欺骗。广告与内容要有明确的视觉区分。
步骤 5:核对描述与结构化数据的真实性
如果页面输出了结构化数据(如评分、价格、下载信息),确保这些数值与页面实际内容一致,不要为了富样式而填虚假评分。结构化数据的写法规范可参考百度结构化数据JSON-LD支持类型盘点。
步骤 6:整改后重新提交并观察
改完的页面通过主动推送重新提交,然后在百度统计里观察这些页面的平均停留时长与跳出率是否改善——这两个指标是判断”名实是否相符”最直接的反馈。
常见踩坑
- 只改标题,页面结构不动:下载导航页即使改了标题,用户仍然找不到真实按钮,跳出率不会改善。
- 用插件批量替换标题关键词:批量替换常常制造新的名实不符,属于从一个坑跳进另一个坑。
- 把”官方”身份写成自己的:非官方站点在标题里自称官方,既违反算法也涉及合规风险。
- 时效表述不更新:标题写 2026,正文引用的是 2023 的数据,属于典型的软性欺骗。
- 结构化数据填虚假评分:为拿富样式填 5 分满分,被判定为数据层面的欺骗。
- 案例:某 WordPress 软件站为提升点击,把几十篇软件介绍页的标题统一加上”官方下载 V2026 最新版”,但页面实际只是介绍文字加一个跳第三方下载器的广告按钮。清风算法迭代后,这批页面的排名整体下滑,且搜索结果里展示的标题被算法重写为正文首句。整改时站长做了三件事:把标题里的”官方”去掉、在页面顶部放了真实可用的下载入口(去掉下载器)、并把”最新版”改为实际核实的版本号。三个月后这批页面的停留时长从 25 秒提升到 1 分 40 秒,排名恢复并超过了整改前。
总结
清风算法的合规标准可以浓缩成一句:搜索结果里承诺的,落地页必须给得起。行动清单:用脚本批量比对标题与正文一致性 → 人工复核下载页、聚合页、时效页、商业页四类高风险页面 → 按”谁错了改谁”的原则处理 → 清理伪装成功能的广告与诱导弹窗 → 核对结构化数据与描述真实性 → 重新推送并观察停留时长与跳出率。这套动作做完后,短期点击率可能略降,但长期留存与转化会更好。标题侧的堆砌问题要同时排查百度细雨算法与标题作弊规避;内容薄、名实不符的页面如何处置可参照百度低质内容整改实操;整改后的提交节奏见百度主动推送接口接入与配额管理。
