跳至正文
WordPress 与 WooCommerce · Google SEO

WordPress 的 feed 地址要不要处理

// / / 光算科技

先说结论:本文要引用的这几份 Google 官方文档里,没有任何一条是专门针对 feed 地址写的。所以"feed 要不要处理"这个问题没有现成答案,只能按两件事判断:这些地址指向的是什么类型的资源,以及你的读者是否真的在用订阅。

WordPress 自身的行为引官方文档,索引相关的判断只引 Google 官方文档。

WordPress 默认会吐出哪些 feed 地址

典型形态里面是什么类型
站点根目录下的 feed 路径最近发布内容的汇总XML,非 HTML
评论 feed 路径最近评论的汇总XML,非 HTML
单篇文章地址后面加 feed 参数这一篇的全文或摘要XML,非 HTML
不同格式的订阅参数同一份内容的多种订阅格式格式变体

这些地址不是主题手写的,是 WordPress 核心的订阅功能生成的。官方API 总览把 Rewrite(重写)单独列为一个 API 面,feed 这类地址就是重写规则的产物,取地址也有对应的核心函数(如 get_feed_link())。具体路径长什么样会随固定链接设置和版本变化,以你自己请求一次的结果为准,不要照抄别的站。

四类 feed 地址按是否非 HTML 资源分成两栏,判断点是响应类型属于页面还是文件
原创示意:图中为四类 feed 地址按是否属于非 HTML 资源分成两栏,不是真实后台截图或数据。

官方文档说了什么、没说什么

说了的部分很具体:Google 在robots meta 标签与 X-Robots-Tag 的说明里写明,要阻止非 HTML 资源被索引,应该用 X-Robots-Tag 响应头,而不是 meta 标签。feed 正是这类非 HTML 资源,所以对 feed 真正能生效的是响应头这一类手段,不是写在页面里的标签。同一份文档还说,这些设置只有在允许抓取该页面的前提下才会被读取执行。

另一份相关的规定在关于如何指定规范 URL 的说明的方法对照表里:rel="canonical" 的 link 元素只对 HTML 页面有效,PDF 这类文件要改用 HTTP 响应头来标注。这条同样适用于 feed。

没说的部分也要讲清楚:Google 在关于链接如何被抓取的说明里只把带 href 的 <a> 元素说成可被抓取的链接形式,并说绝大多数情况下 Google 只能抓取这种链接。feed 的订阅入口通常写在 head 里,是另一种元素形式;这份文档没有说它会不会被当作发现入口,所以不能拿它推出"订阅链接能带来抓取"这类结论。Google 也从未公布过 feed 地址的索引或抓取数量口径。

三种做法与各自的代价

  1. 保持默认:feed 继续对外,页面本身照常被索引,订阅用户不受影响。
  2. 关掉订阅功能:地址不再生成,旧的订阅地址会失效,需要提前通知读者或改成新地址。
  3. 只对抓取设限,订阅功能保留:地址还在,但用响应头让索引侧不处理它,读者仍然能订阅。

三种做法没有官方推荐顺序,需要你自己权衡。有一个常见的错误做法要避开:用 robots.txt 屏蔽 feed。规范 URL 那份文档明确不建议把 robots.txt 用于规范化目的,并指出被 robots.txt 屏蔽的地址仍可能被收录,只是拿不到内容 —— 屏蔽之后你既看不到订阅地址的状态,也拿不到内容提示。

什么情况下别动 feed

三种情况建议保持默认。一是你的读者里确实有人在用订阅(老媒体、资讯类站常见),关掉之后他们看不到更新,而且这种损失不会体现在请求日志里;二是你打算以后接第三方订阅服务,先留着核心地址更省事;三是这些地址本身没有被站内任何页面链到、也没有外部引用,动它几乎没有收益。

反过来,如果你确认没有人在用,而且这些地址正在消耗抓取预算,那就按上面的第 2 或第 3 种处理。是否值得动,看的是你站内的实际引用情况,不是别人站的做法。

怎么核对 feed 地址现在的状态

第一步是列出地址:从 head 里把订阅链接抄下来,再用 site: 加路径查一遍有没有被外部用过,计数口径可以对着一条链接算一条还是多条看。第二步是逐条请求:看响应类型是不是 XML、状态码是多少、有没有带响应头指令、feed 里给出的文章地址是否可被抓取。第三步是判断读者是否在用:订阅类流量通常要靠分析工具里的直接访问与来源分组来看,自然获得的链接和主动建设的链接怎么分开衡量那篇给的是同一套区分思路。

最后提醒一句版本边界:feed 地址的具体形式和是否可关闭属于 WordPress 核心行为,官方文档没有承诺某个设置在哪个版本一定存在,上面三种做法请以你站上后台的实际选项和你自己请求的结果为准。