主题自定义的 head 模板没有调用 SEO 插件,description 输出成空字符串。搜索结果里的摘要来自页脚版权和导航文字,跟正文关系不大。试过在插件里重写摘要,前台没有变化。

一开始怀疑是「缓存里存的是旧模板渲染的 HTML」,查了一圈,方向不对。

把日志和配置对完,能解释这个现象的基本就这几处。head 模板绕过了 wp_head,插件挂的 meta 标签根本没输出。少数情况下是摘要字段为空时没有回退到正文截取。

另外,部分页面类型没有注册 description 字段。

动手时先看 head 里到底有没有描述

curl -s https://www.example.com/post/1/ | grep -c 'name="description"'

随后确认 wp_head 是否被调用

grep -rn 'wp_head' /var/www/html/wp-content/themes/site/header.php

补一段判空回退逻辑

add_action('wp_head', function(){ if (!is_singular()) return; $d = get_post_meta(get_the_ID(),'_yoast_wpseo_metadesc',true); if (!$d) { $d = wp_trim_words(strip_tags(get_the_content()), 60); } echo '<meta name="description" content="' . esc_attr($d) . '">'; });

末了清缓存后复核十条页面

for i in 1 2 3; do curl -s https://www.example.com/post/$i/ | grep -c 'name="description"'; done

改完先别撤,确认这几项。每条页面都输出非空描述,搜索结果里的摘要改成正文首段,相关词的点击率一周后开始回升。

容易忽略的是,描述为空时搜索引擎会自己找一段,通常挑中的是导航或页脚,等于把摘要的控制权直接让出去。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。

作者 9823189