站点运营

站点运营:URL 规范化自查,别让同一页面顶着好几个地址

同一份内容常常同时存在 http 与 https、带与不带 www、带与不带结尾斜杠、大小写等十几个可访问地址,抓取预算被摊薄,权重信号被拆散。本文梳理如何找出站内的重复入口,用 301 与 canonical 收敛到唯一主地址,并让内链、站点地图、结构化数据的口径保持一致。

站点运营

站点运营:URL 规范化自查,别让同一页面顶着好几个地址

同一篇文章,可能同时存在 http 和 https 两个入口,带 www 和不带 www 两种写法,结尾带斜杠和不带斜杠两种形式,再加上大小写差异、index.html、跟踪参数,最终变成十几个可访问地址。对用户来说差别不大,对搜索引擎蜘蛛来说,这就是十几个各自独立的页面。抓取预算被摊薄,权重信号被拆散,页面之间还会互相竞争。

URL 规范化要解决的就是这件事:让同一份内容对外只保留一个主地址,其余地址明确地指向它。

一、先找出站里到底有几个入口

不要凭记忆判断。用蜘蛛抓取日志和站点地图交叉比对,通常能看出问题。

  • 协议层:http 与 https 是否都能打开同一页面。
  • 主机名层:带 www 与不带 www 是否都能访问。
  • 路径层:/about 与 /about/ 是否返回相同内容。
  • 文件层:/index.html、/default.html 这类默认文件能否直接打开。
  • 大小写层:/News/ 与 /news/ 是否被当成两个地址。
  • 参数层:?ref=xxx、?utm_source=xxx 之类是否返回与主地址完全相同的页面。

测试方法很简单:逐个访问,看返回状态码和页面内容。返回 200 且内容相同,就是重复入口;返回 301 指向主地址,说明已经处理过。

二、选定唯一主地址,其余用 301 收敛

主地址怎么选没有绝对标准,但要遵守几条:

  1. 协议统一到 HTTPS(在维护成本允许的前提下)。
  2. 主机名统一带 www 或不带 www,选定后长期不要改。
  3. 目录型页面统一带结尾斜杠,文件型页面不带。
  4. 路径全部小写,不要混用大小写。
  5. 能写成静态路径的,尽量不要用参数表达。

其余地址用 301 永久重定向指向主地址,不要用 302。302 是临时跳转,蜘蛛有可能仍把原地址留在索引里。

重定向要一步到位。A 跳 B、B 再跳 C 的链条,每一跳都会损耗一点抓取效率,链条长了蜘蛛可能中途放弃。

三、canonical 标签怎么用才不出错

canonical 是写在页面 head 里的声明,用来告诉蜘蛛这个页面属于哪个主地址。它适合处理那些无法用 301 收敛的情况,比如带参数的页面、跨域转载、分页的第一页。

常见误区

  • canonical 指向的地址本身就重定向到别处,等于绕了一圈。
  • 列表页上所有条目的 canonical 都写成列表页自己,这是明确的错误用法。
  • 分页的第二页 canonical 回第一页,等于告诉蜘蛛不必收录第二页的内容。
  • 一个页面出现多个 canonical 标签,蜘蛛通常只认第一个。
  • canonical 与 301 指向不同地址,两个信号互相矛盾,蜘蛛只能自己猜。

一个实用原则:canonical 指向的地址,必须能直接返回 200,而且最好与内链、站点地图使用的地址完全一致。

四、内链、站点地图、结构化数据要统一口径

地址收敛之后,站内所有引用也要跟着改。否则蜘蛛从首页爬到的一直是旧地址,每一层都触发一次 301,抓取效率会明显下降。

  • 导航和正文内链统一使用主地址,斜杠写法保持一致。
  • 站点地图里只列主地址,不要列出会被重定向的旧地址。
  • 结构化数据里的 url、@id、breadcrumb 也使用主地址。
  • 分享按钮、二维码、外链投放的素材同样使用主地址,避免从站外又带回一堆变体。

五、改完之后怎么验证

  1. 随机挑 20 到 30 个旧地址逐个访问,确认返回 301 且落点正确。
  2. 用浏览器开发者工具查看响应头,确认 Location 指向主地址。
  3. 在站内搜一遍旧写法,把残留的内链改掉。
  4. 观察一段时间的抓取日志,看旧地址访问量是否逐步下降、主地址是否上升。
  5. 如果旧地址是外链很多的历史页面,重定向要长期保留,不要直接删掉。

整个过程不必一次做完。先处理流量最大、外链最多的那批页面,收益最明显;剩下的可以按栏目排期慢慢收敛。

需要提醒的是,地址收敛只是把分散的信号集中起来,它不会让一个本来没有内容的页面变得有价值。结构干净、地址统一,本质上是让蜘蛛把抓取预算花在真正值得看的内容上,而不是在十几个副本之间来回确认。