判断 URL 规范化问题属于哪一层,核心是看“同一内容是否被多个 URL 访问”以及“哪个 URL 被选为规范版本”。先分清三层:URL 生成层(站内链接、站点地图、分页、参数)、HTTP 响应层(状态码、重定向、canonical 标签)、索引选择层(搜索引擎实际收录与展示的 URL)。逐层检查,能避免把“链接写错”误判成“搜索引擎不听话”。
这一层看的是站点自己输出了哪些 URL。要查:站内链接是否混用带 www 与不带 www、带斜杠与不带斜杠、大小写、index.html 与目录根、跟踪参数等变体。怎么查:抓取若干内页,查看页面里指向自身的链接、导航链接、分页链接、站点地图中的 URL 写法是否一致。结果说明:如果同一页面在站内被多个写法链接,问题出在生成层,应先统一输出,而不是急着加 canonical。
适用条件:站点规模较大、模板多、参数多时优先查这一层。若生成层已统一,再往下查响应层。
这一层看服务器对每个变体 URL 返回什么。要查:状态码是 200、301、302 还是 404;是否做了重定向;页面 <head> 中是否写了 rel="canonical",其指向是否与预期一致。怎么查:用命令行或浏览器开发者工具查看响应头与页面源码,逐个访问变体 URL。结果说明:若变体返回 200 且 canonical 指向另一个 URL,属于“声明式规范化”;若变体 301 到主 URL,属于“重定向式规范化”。
需要区分:robots.txt 的抓取限制不等于可靠的索引移除,被禁止抓取的 URL 仍可能被索引;站点地图不保证收录;HTTPS 不保证安全无漏洞或排名。这些都不能替代规范化处理。
这一层看搜索引擎实际选了哪个 URL。要查:用站点查询语法查看已收录 URL;观察搜索结果展示的 URL 与标题;查看搜索引擎是否报告了“重复网页,用户未选定规范网页”或类似状态。怎么查:分别在不同搜索引擎中核对,因为不同搜索引擎支持情况须分别核查。结果说明:如果响应层已正确声明 canonical,但索引层仍展示另一 URL,可能是搜索引擎尚未处理、或存在更强信号(如外链、站点地图、内链)指向另一版本。
重定向式规范化适合变体 URL 没有独立价值、且可以永久替换的场景,例如 http 到 https、带 www 到不带 www。声明式规范化适合变体 URL 仍需可访问、或无法做重定向的场景,例如带跟踪参数的 URL。判断依据:若变体不应再被访问,用重定向;若变体需要保留访问但希望合并信号,用 canonical。两者可以同时使用,但目标 URL 必须一致。
下一步:选定一个典型页面,按上述清单从生成层查到索引层,记录每层结果,再决定是先改链接、加重定向,还是调整 canonical 指向。