网站收录

canonical、内链和 sitemap 指向了不同 URL:先统一口径再看收录

同一个页面,canonical 写一种写法、内链用另一种、sitemap 里又是第三种,收录迟迟没有进展时,问题往往出在信号不一致上。本文说明这种冲突为什么会拖慢流程,并给出一套从抓取日志到统一 URL 的自查顺序,顺带列出重定向来回指认、canonical 指向首页等常见坑。

网站收录

canonical、内链和 sitemap 指向了不同 URL:先统一口径再看收录

同一个页面,canonical 写的是不带参数的版本,站内链接用的是带参数的版本,sitemap 里又是第三种写法。这时候讨论“为什么还不收录”,其实是在三个互相矛盾的信号里找答案,很难有结论。

为什么口径不一致会拖慢收录

搜索引擎对每个 URL 的处理是分开的。它先要判断这个 URL 代表什么内容,再判断它和其他 URL 是不是同一个东西,最后才决定把哪一个放进索引。这几个判断都依赖网站自己给出的信号。

如果信号互相打架,抓取工具就需要额外的判断时间,或者干脆把几个 URL 都当成独立页面各抓一遍。结果是抓取配额被分散,真正想被收录的那个版本反而排队更久。

需要说明的是,这不会直接导致不收录,只是让流程变得更慢、更不确定。不要把它当成万能原因,先确认是不是真的存在冲突。

先对齐这三处信号

1. canonical 标签

canonical 表达的是“我认为这个才是主版本”。它应当是绝对 URL,指向的页面要能正常访问、返回 200、内容确实和其他版本一致。指向一个 404 或者重定向目标,等于没写。

2. 站内链接

内链是搜索蜘蛛发现 URL 的主要入口之一。如果列表页、面包屑、相关推荐里的链接写法各不相同,蜘蛛会顺着每一种写法各走一遍。

  • 大小写、结尾斜杠、默认端口要统一
  • 跟踪参数、排序参数尽量在内链里去掉
  • 同一个目标页,别在不同入口混用 http 与 https

3. sitemap 与其他提交入口

sitemap 应该只放你希望被索引的那套 URL。如果里面同时躺着带参数、带大小写变体的地址,等于主动告诉搜索引擎“这些也算一份”。

一个可执行的自查顺序

  1. 挑一个内容页,从抓取日志里找出它实际被抓取过的所有 URL 写法。
  2. 对每一种写法,记录它当前的返回状态码和 canonical 目标。
  3. 检查 canonical 指向的那一个 URL,是否在所有入口里都是同一串字符。
  4. 检查内链和 sitemap 里有没有混入旧域名、旧路径或多余的参数。
  5. 把不一致的地方统一到同一个 URL 上,然后等下一轮抓取。
  6. 观察一段时间,看被抓取的 URL 种类是否减少、主版本是否被更频繁地访问。

几个容易被忽略的点

  • 重定向也算一种信号。 如果 A 跳到 B,而 B 的 canonical 又指向 A,会形成来回指认,蜘蛛很难判断谁是主版本。
  • canonical 不是命令。 它只是建议,最终选择权在搜索引擎。其他信号越一致,建议越容易被采纳。
  • 别把全站 canonical 都指向首页。 这会让其他页面失去被索引的机会。
  • 改动后不会立刻生效。 已索引的版本需要重新抓取和重新处理,通常要按周来观察。

什么时候不必强求统一

如果两个 URL 表达的是真正不同的内容——比如不同的筛选结果、不同的语言版本——那它们本来就该是各自的页面,用 canonical 强行合并反而会丢掉有效内容。统一口径针对的是“同一个东西被写成了好几个地址”,不是把所有相似页面都并成一个。

总结下来:收录进展慢,很多时候不是内容不行,而是你对搜索引擎说了几套话。先把 canonical、内链、sitemap 这三处的 URL 写法统一,再看抓取和索引状态的变化,判断会清楚很多。