搜索全站
百度SEO 7 分钟阅读

百度为什么改写你的站点标题:触发条件与 WordPress 端修正办法

明明写好了标题,百度结果里显示的却是另一句话。本文列出触发百度改写标题的六类常见条件,给出 WordPress 端用 pre_get_document_title 输出规范标题的代码、H1 与 title 一致性的自检方法,以及避免被改写的写作约束。

U
UFO_PF 2017-04-14 · 阅读 7 分钟
百度 百度SEO
阅读提示
本文约 2,437 字,预计阅读 7 分钟。文中命令与配置均经过实测,可直接参考执行。

引言:标题是我写的,展示的不是我写的

在百度搜自己的文章标题,结果页显示的却是正文里的某句话,或者一个被截断重组的短句。这不是 bug,是百度主动改写了你的标题。改写得好的时候点击率反而更高,改写歪的时候用户点进来发现货不对板,跳出率飙升。要处理它,得先知道它什么时候会动手。

原理分析:改写的本质是”按检索词重选展示文案”

百度结果页的目标是让用户快速判断这条结果能不能解决自己的问题。当它认为原标题对当前检索词的信息量不足时,会从页面里另选一句更贴合的文案来展示。常见触发条件如下:

触发条件 典型表现 站长侧原因
标题堆砌多个关键词 展示时被裁掉堆砌部分 一个标题塞四五个词
标题过长且重点在后 移动端被截断后无有效信息 站名或分类名前置
标题与正文主题不符 展示正文中的一句话 改过文章没改标题
模板化标题(大量页面同结构) 被统一重写成带区分度的文案 分类页/标签页套同一模板
标题为空或缺失 直接取正文首句 主题未输出 title
站点权威性弱 更容易被改写 权重积累不足

需要注意,被改写不等于被惩罚。很多时候百度改写后的标题对检索词的匹配度确实更高。真正要修的是”改写后仍然不对”的情况,比如标题说的是 A,页面讲的是 B。

保姆级实操

步骤 1:确认真实输出的 title。 先排除主题或插件输出异常。用 curl 看页面源码里的 <title>,不要看后台填的字段:

curl -s https://mimangfei.com/example-post/ | grep -o -P '(?<=<title>).*(?=</title>)'

步骤 2:用 pre_get_document_title 输出规范标题。 这个过滤器优先级最高,能覆盖其他组件生成的标题,适合作兜底清洗:

// functions.php:清洗标题,避免堆砌与模板化,降低被改写概率
add_filter( 'pre_get_document_title', function ( $title ) {
    if ( ! is_singular( 'post' ) ) {
        return $title;
    }
    $post  = get_queried_object();
    $clean = get_post_meta( $post->ID, '_seo_title', true );
    if ( ! $clean ) {
        $clean = get_the_title( $post );
    }

    // 去掉连续堆叠的分隔符片段,例如「A|B|C|D」只保留前两段
    $parts = preg_split( '/[||\-—–]+/u', $clean );
    $parts = array_filter( array_map( 'trim', $parts ) );
    if ( count( $parts ) > 2 ) {
        $parts = array_slice( $parts, 0, 2 );
    }
    $clean = implode( ':', $parts );

    // 去掉无法验证的夸张表述
    $clean = str_replace( array( '最全', '最强', '第一', '史上最' ), '', $clean );

    // 站名放最后且控制在 4 字内
    return mb_substr( $clean, 0, 28 ) . ' - 迷忙飞';
}, 99 );

步骤 3:保证 H1 与 title 一致。 百度判断标题与内容是否相符,H1 是重要参考。很多主题的 H1 是站点名而不是文章标题,这种情况下主题输出与页面语义是割裂的。检查模板里 single.php 或对应的模板部件,确认 H1 输出的是文章标题。

步骤 4:改文章时同步改标题。 二次编辑最容易埋雷:内容方向变了,标题没动,几周后被改写。建一个约束——只要正文结构调整超过三成,就必须重新审视标题。

步骤 5:分类页与标签页单独处理。 这类页面最容易模板化。要么给每个分类写独立的标题与描述,要么对内容量少的标签页直接 noindex(处理方式见 WordPress 分类页 noindex 处理),把它们从结果页移除。

步骤 6:抽样核验。 每月挑 20 个有展现的页面,用不同检索词搜索,记录”展示标题是否等于自定义标题”。记录被改写的比例与类型,判断是标题问题还是内容匹配问题。

常见踩坑

  1. 主题输出了两个 <title>,百度取了后面那个。
  2. SEO 插件和主题过滤器同时生效,最终标题被拼接两次。
  3. 标题里塞满近义词,被判定堆砌后整段重写。
  4. 只改 title 不改 H1,页面内部信号仍不一致。
  5. 用分类名当标题前缀,几十个页面标题结构完全一样。
  6. 案例: 某站所有文章标题统一为「分类名 | 文章标题 | 站名」,共 1200 余篇。百度对其中大量页面做了改写,展示的是正文首句。站长改为「核心词:具体问题」的结构并去掉分类前缀后,被改写比例从约七成降到两成以内,同期点击率提升约 1.5 个百分点。
  7. 把被改写一律当负面,强行用更长的标题对抗,结果截断更严重。
  8. 标题用了特殊符号或全角空格,抓取时解析异常。

总结

判断是否要修,看改写后的标题有没有准确反映页面内容:准确就不用管,不准确才需要改。修的顺序是:确认 title 真实输出 → 清洗堆砌与模板化 → 对齐 H1 → 改内容时同步改标题 → 分类标签页单独处理。标题的长度与写法规则可参考 百度搜索结果点击率优化,两者是同一件事的两面。

U
UFO_PF作者

专注 WordPress 生态的实战作者,内容以「可复制、可验证」为第一原则。

留下你的想法

邮箱地址不会被公开。带 * 的为必填项。