排查重复页面,最先要做的不是批量改 canonical,而是把“看起来重复”的 URL 按产生原因分组:参数、大小写、斜杠、分页、筛选、打印页、会话 ID,以及正文高度相似但路径完全不同的页面。时间和人手有限时,优先处理被内部链接、站点地图或导航大量指向的那一组,因为这一组最容易被搜索引擎反复抓取,也最容易分散权重。
URL 不同不等于重复页面。搜索引擎会先做规范化,再判断内容是否高度相似。有些参数只是排序、来源跟踪或展示偏好,页面主体完全相同,这类通常属于技术性重复;有些页面标题不同、正文主体也不同,只是模板结构相似,这类不应按重复页面处理。
另一个误解是“发现重复就立刻删除”。删除可能造成 404、外链失效或用户访问中断。更稳妥的顺序是:先确认哪一个是希望被收录的主版本,再把其他版本通过 canonical、重定向或 robots 规则收敛过去。具体选哪种,取决于重复页面是否还需要服务用户。
?sort=、?page=、?ref=、?sessionid=。把参数按“是否改变正文”分类:不改变正文的,考虑 canonical 指向无参数版本;改变正文的,保留并单独评估。/Page 与 /page、/page 与 /page/、http 与 https 是否都能访问。能访问且返回 200 的,通常需要 301 到统一版本。假设某产品页有三个可访问地址:/product/a、/product/a?color=red、/product/a/。先手动打开三个地址,确认正文是否相同。如果 ?color=red 只改变颜色选项、不改变主体内容,可以把 canonical 指向 /product/a;如果它展示的是不同库存和不同描述,则应保留为独立页面。末尾斜杠版本如果返回 200,用 301 指向无斜杠版本。
判断结果要看两点:一是用户是否需要这个 URL,二是搜索引擎是否已经抓取并收录了它。前者决定保留还是收敛,后者决定处理顺序。已收录且有点击的重复版本,优先用 301;未收录且无外链的,可以先用 canonical 观察。
一次改动前后比较要考虑季节、搜索需求和数据采集差异,不能只看某一天的排名或流量。可以按下面几项核对:
下一步,从站点地图和主导航中导出所有 URL,按参数、斜杠、大小写和正文相似度分成四组,先处理同时被内部链接和站点地图指向的那一组。