WordPress 的 <title> 不是数据库里的一格字段,而是主题在渲染每个页面时临时算出来的一段文本。它的生成顺序只有三步:命中哪个模板决定基础文本,钩子和过滤器决定要不要改写,主题最后把结果打进 head 区。所以“后台改了标题、前台没变”这类问题,多数不是没保存,而是改写发生在主题输出之后。标题生成链路理清后,带年份的页面还要看日期写进标题时的维护边界,否则容易把旧年份留在结果里。
输出链路上能下手的位置
官方主题开发手册把主题分成两类:区块主题主要由区块组成、在站点编辑器里编辑;经典主题主要用 PHP、JavaScript 和 CSS,并借助 WordPress 的函数、钩子和过滤器工作。这句话的实际含义是——head 区里那段文本不是写死的字符串,而是运行时算出来的,任何挂在这条链路上的插件都能改它一次。要确认某个主题在哪一段拼标题,去WordPress 主题开发手册的模板与函数部分找对应文件;要确认某个函数最终吐出什么,按函数名去官方代码参考里查返回说明,比在问答站上猜要准。对主题的改动要放在子主题里,这一点任何版本都一样。同一站内最容易被模板混淆的还有首页和文章首页的标题差异,适合放在同一轮抽查里处理。
还有一个常被误当成 bug 的现象:同一个站点,文章页标题正常,分类页却带上了奇怪的前缀或后缀。这通常不是乱码,而是主题在分类模板分支上另接了一段拼接逻辑,属于“不同模板走不同规则”的正常结果。所以排查标题永远要按模板分类看,不能只看首页一次就下结论。

搜索侧的标题另有来源清单
需要分清的是,页面上写的 <title> 和搜索结果里显示的那行标题不是同一个东西。Google 官方说明标题链接是自动生成的,会参考 <title> 元素、页面上的主视觉标题、<h1> 这类标题元素、og:title、靠样式突出的大字、页面其他文字、页面上的锚文本、指向该页的链接文字,以及 WebSite 结构化数据。换句话说,你写对了 <title> 只完成了一半,另一半是让页面本身的主标题唯一且醒目。这些来源与建议写在 Google 关于如何影响搜索结果标题的说明里,那是搜索侧的口径,和 WordPress 的实现不是一回事。
三步定位法
- 先看源码。在浏览器里查看网页源代码,抄下实际输出的
<title>,不要凭记忆,也不要只看后台字段。 - 再看是谁改的。逐个停用主题外的插件,或在子主题里临时去掉可疑的自定义函数,看标题变不变。一次只动一样,才能定位到具体那层。
- 最后才定改法。确认输出层没有问题,再决定是改主题、还是用插件接管,别同时换两处。
插件这一层要特别小心:官方插件开发手册明确说,钩子正是插件与 WordPress 交互的方式,WordPress 插件开发手册把钩子列在入门路径的第一站。这意味着改写标题的代码可能来自任何一个你早就装好、早就忘记的插件,排查时要按安装时间倒着查。
这套判断什么时候不成立
三种情况要另算:一是页面内容由 JavaScript 在浏览器里生成,源码里根本没有这段文本;二是站点用了多语言或页面构建器,标题可能是每条内容单独存的字段,与主题模板无关;三是页面被缓存层接管,源码和你改的配置不在同一次渲染里,这时清缓存再复测。站内搜索页被收录时,也要先把 noindex 有没有真正输出这件事查清楚,WordPress 站内搜索页被收录的排查顺序里那套做法同样适用于 head 区的其他标签。如果排查落到站点级文案,还要单独看副标题是否会进入标题标签,它不是每个模板都会自动采用。
怎么验证改动真的生效
验证分两段。第一段在你自己这边:看源码里的 <title> 是否与预期一致,不同模板各看一遍——文章、分类、站点首页、404 页,每一类抄一行存档。官方文档提醒过标题元素要避免在每页重复大段样板文字,也提醒过过时的标题会被当成问题处理,这两条都写在标题链接的官方说明里。第二段在搜索侧:改动后需要重新抓取才会被注意到,时间从几天到几周不等,可以先了解请求 Google 重新抓取的官方做法,再用 site: 抽查结果,把结果里的标题与你存档的源码逐字对照。两者对不上通常只有三种原因:抓取还没发生、搜索侧改写了标题、页面上有更醒目的主标题。
收尾时留一份判断顺序:先保证每页都有标题,再保证每页标题不同且能说明这一页,最后才谈格式统一。顺序反了,时间就会花在分隔符这类低收益的整理上。站名在结果里的呈现是另一套机制,可对照站内站点名称在搜索结果里是怎么确定的;整站前提条件则见WordPress 为什么便于做 SEO 的使用条件。