网站收录

同一页有多个地址写法:收录核对先做一遍 URL 归一

同一个页面在服务器眼里可能有好几种地址写法:大小写、末尾斜杠、默认文档、带不带 www、跟不跟跟踪参数。蜘蛛按地址抓,索引按地址记,写法不统一就等于把一页拆成几页。这篇讲清楚常见差异怎么列、站内链接与跳转与 canonical 各自管什么,以及核对时正向反向各查一遍的做法。

网站收录

同一页有多个地址写法:收录核对先做一遍 URL 归一

同一个页面,在服务器看来可能有好几种地址:带 www 和不带、末尾有斜杠和没有、大小写混着写、多挂一个跟踪参数。蜘蛛是按地址抓取的,索引也是按地址记录的。地址写法不统一,等于把一页拆成几页分别去抓、分别去判断质量,收录核对的时候自然对不上数。

一、先分清:抓取看地址,收录看内容

抓取是蜘蛛拿到一个地址,去把内容取回来;收录是把取回来的内容判断、处理之后放进索引。两者中间隔着筛选,也隔着时间。地址写法不同,抓取池里就会多出几份内容相同的副本:抓取配额被它们占掉一部分,页面质量的判断也可能被摊薄到几个地址上。

所以做收录核对,第一步往往不是看收录了多少,而是先确认「一个内容对应几个地址」。这一层没理清,后面看到的所有数字都会带水分。

二、常见的地址写法差异,先列一遍

下面这些差异不一定都出现在你的站点上,但值得对着站内链接和日志逐条过一遍:

  • 大小写:/Page 与 /page,有的服务器返回不同内容,有的返回同一页。
  • 末尾斜杠:/a 与 /a/,有的会跳转,有的各自返回 200。
  • 默认文档:/ 与 /index.html、/default.html 这类。
  • 协议与主机名:http 与 https、带 www 与不带 www、带端口与不带端口。
  • 跟踪参数:utm_source、from、spm 这类只用于标记来源的参数。
  • 参数顺序:?a=1&b=2 与 ?b=2&a=1,很多服务端会当成两个地址。
  • 锚点:部分内容不影响服务端返回,但站内链接里写法混乱会让日志更难读。
  • 编码形式:中文路径的直接写法与百分号转义写法。

三、归一怎么落地:站内链接、跳转、canonical 各管一段

站内链接是成本最低的一段。导航、面包屑、列表页、上一篇下一篇、站点地图,只要有一处写成另一种写法,蜘蛛就会顺着它多抓一条地址。先把站内出口统一,能省掉后面很多解释成本。

服务器跳转负责把已经存在的旧写法收到一个地址上。注意别绕成链式跳转,一跳到位最好;跳转目标也别指向另一个还会再跳的地址。

canonical是页面内的声明,用来告诉索引哪一个是这一组内容里的代表地址。它不阻止抓取,也不保证合并会立刻生效。三者的关系可以粗略记成:链接少给副本,跳转收掉旧副本,canonical 声明代表。

四、核对时怎么做:正向一遍,反向一遍

  1. 从服务器访问日志或蜘蛛日志里,把同一路径的不同写法挑出来,按路径分组,统计各自被抓了多少次。
  2. 在索引里按同一标题或同一主题搜一遍,确认返回的是哪个写法,有没有同时出现两个以上。
  3. 对每个副本地址单独访问一次,记录状态码、实际落地地址和页面里的 canonical。
  4. 把仍然返回 200、且内容相同的写法整理成清单,按站内链接、跳转、canonical 三类手段逐条处理。
  5. 处理完隔一段时间复查,看在日志里的出现频率有没有降下来。
只写 canonical 而不清理站内链接,副本地址还是会持续被抓,核对时会一直看到它们出现。归一是从入口开始的,不是从声明开始的。

五、别把抓取当成收录

日志里有记录,说明抓到过;返回 200,说明服务端正常。这两件事都不等于进了索引。地址归一之后,索引里可能仍然只有一个代表地址,其余副本被合并或排除,这是正常结果。核对的重点落在:代表这页内容的那个地址,是不是你想留下的那个。

URL 归一不是一次性的活。改版、换域名、加渠道参数、上多语言,都会重新引入新的写法。把它当成收录核对的前置步骤,比在收录数字对不上之后再逐条猜原因,要省力得多。