跳至正文
WordPress 与 WooCommerce · Google SEO

WooCommerce 购物车与结账页为什么必须不索引

// / / 光算科技

购物车与结账页该不该不索引,答案是"该",但理由要说准:Google 的公开文档里没有点名购物车或结账页,也没有把这类页面列为违规。官方给出的可引用理由是更通用的一条——不要链接到、或至少不要索引没有可用内容的页面。把这两层分开,后面对老板、跟客户、跟开发解释时才不会被人抓到话柄。

判断点示意:未登录访问时页面是否只剩空壳,以及 noindex 标记是否真的出现在返回内容里
原创示意:图中为交易流程页的判断顺序示意,不是真实后台截图或数据。

官方到底说了什么,没说什么

先划清界限。Google 文档里确实出现的表述是:避免链接到没有可用内容的页面,至少也不要索引它们,并给了具体做法——分类没有商品时使用 noindex 标记;如果站点检测到某个分类已经空了并且自动把它从站内搜索与浏览中移除,官方建议考虑为该页面返回 404 状态码。这段话在Google 的电商 URL 结构设计指南里,通篇讨论的是分类与商品地址,并没有把购物车、结账、账户页写进任何一份文档的禁止清单。

至于"不索引能省下什么",官方口径是间接的。Google 关于规范 URL 的说明在列举指定 canonical 的理由时提到一点:把抓取时间花在重复页上是浪费,希望 Googlebot 把时间用在新页面或已更新页面上,而不是同一内容的各种重复版本。交易流程页恰恰属于"同一份模板、内容随访问者会话变化"这一类,按这个逻辑排除掉它们是合理的工程判断,而不是官方禁令。

noindex 具体做了什么、没做什么

Google 关于 robots meta 标签与 X-Robots-Tag 的说明把规则列得很细,其中与本文相关的有四条:noindex 的定义是"不在搜索结果里显示这个页面、媒体或资源",反过来说,不写这条规则时页面就可能被索引并展示;这些设置只有在爬虫被允许访问该页面时才能被读到并遵守,所以同时用 robots.txt 挡住会导致标记读不到;当规则冲突时取更严格的那一条;官方还说明 Google Search 并不强制 meta 标签必须放在 <head> 里。

一个高频错误要在这里点破:none 等于 noindex, nofollow,而只写 noindex 并不阻止 Google 继续跟随页面上的链接。用哪个取决于你希望页面上的链接还被读不读。

哪些页面属于"没有可用内容"

判断标准建议按访问者状态来分,而不是按页面名字:

  • 未登录访问时几乎是空壳的页面。购物车为空、结账表单需要会话与地址信息才能继续,这类页面对爬虫呈现的就是模板。
  • 内容随访问者而变、URL 却不变的页面。同一地址对不同人给出不同内容,且没有任何机制声明它们该合并到哪一页。
  • 已经自动从站内导航与搜索中移除的页面。官方在 URL 结构指南里给这种页面推荐的是返回 404,而不是留着让它被索引。

站内搜索页属于同一类问题,处理思路可以对照WordPress 站内搜索页被收录那篇;附件页这类"内容已迁移、地址仍在"的页面则是另一种成因,站内附件页关了图片会消失吗有专门分析。

什么时候不适用这个做法

把交易流程页一律排除并不总是对的,下面几种情况要单独处理:

  1. 结账流程里有真正需要被搜索的独立页面。比如单独的运费说明页、退换货政策页、发货范围页——这些是内容页,索引它们是合理的,官方也建议退货与配送政策作为结构化数据里的独立信息给出。
  2. 你希望搜索引擎跟随这些页面上的链接。此时只写 noindex 而不是 none,或者把关键链接从模板里挪到可索引页面上。
  3. 用 robots.txt 来"挡掉"它们。官方在规范 URL 那一页专门提醒:不要用 robots.txt 做这类处理,被它禁掉的地址仍可能被收录,只是看不到内容,结果是占位而不解决问题。
  4. 拿 noindex 来合并同一站内的重复地址。官方明确不建议这么做,因为这会把页面整个挡在搜索之外,正确的手段是 rel="canonical"。

具体该怎么配

配置上,WooCommerce 商店的购物车与结账是各自独立的地址,返回内容由商店组件在输出时决定;具体该在哪一层加标记,取决于你用的是什么商店方案,官方商店文档当前不可引用,这一步要按所用方案的说明核对。改之前先确认两件事:这些页面是不是真的没有可索引内容(有一个能独立回答问题的说明页就不算),以及你希望 Google 继续跟随页面上的链接还是不要。可验证的成品状态是明确的:

怎么验证标记真的生效了

判断有没有生效,看的是下面这张表:

检查动作通过标准常见原因
以未登录身份打开这些地址,查看源代码返回内容里有 noindex,且不在 robots.txt 里被禁标记放在 robots.txt 后无法被读到
在 robots.txt 里查这些路径没有针对它们的禁止规则两条规则互相抵消
检查主题头部是否已被别的规则覆盖实际输出的是更严格的那一条,与预期一致SEO 类插件的默认值盖过了页面设置
在 Search Console 用网址检查工具查一个旧地址显示已从索引中移除,或不再被展示还没有被重新抓取,状态未更新
在站内搜索商品页,统计指向结账流程的链接数量少且指向稳定的入口模板在每个商品页都硬链了购物车

最后提醒两点收尾:一是 noindex 不是删除,从索引移除需要时间,官方在多份文档里都提醒过新页面被找到和抓取可能要几天;二是这类处理不会自动带来排名变化,官方从未把"排除交易页"与任何排名或收录结果绑定过。评价与评分这类真正影响商品页呈现的标记该怎么落地,见站内如何给 WordPress 产品页面增加评价和评分那篇。