robots.txt、sitemap与canonical:索引控制三件套
建站之后,新手经常会问:怎么告诉谷歌"哪些页面该收录、哪个地址是正式版本"?答案就是这三样东西:robots.txt、XML站点地图(sitemap)和canonical标签。它们合起来构成网站对搜索引擎的"索引控制面板"。先给结论:robots.txt管"能不能爬",站点地图管"帮谷歌找到页面",canonical管"重复内容认哪个版本",三者职责不同,缺一不可。
一、robots.txt:爬取权限的声明
robots.txt是放在网站根目录的一个文本文件,告诉搜索引擎爬虫"哪些路径可以抓取、哪些不要碰"。它的常见用法是禁止爬虫抓取后台目录、购物车页面、搜索结果页这类对用户没价值、只会浪费抓取资源的地址。这里要强调一个新手最容易犯的错误:robots.txt是用来控制"爬取"的,不是用来控制"收录"的。如果你用robots.txt禁止了某个页面,爬虫连看都不看,页面上也没有任何提示告诉谷歌"别收录我",反而可能因为无法访问出现异常状态。想让某个页面不被收录,正确工具是noindex标签,而不是robots.txt。
二、XML站点地图:给谷歌的页面清单
站点地图是一个XML文件,列着你网站里所有希望被收录的重要页面,以及它们的最后修改时间。它的价值是提高收录效率:谷歌爬虫不用满站乱逛,照着清单就能发现你的全部页面。新手建站后第一件事,就是生成站点地图并提交到谷歌搜索控制台。主流的建站系统和CMS大多自动生成站点地图,你只需要确认它存在、包含的页面正确,然后提交。站点地图里只放值得收录的页面,不要塞一堆参数页和低质量页。
三、canonical:重复内容的"正式版本"
canonical标签(规范化标签)解决的是重复内容问题:当同一篇内容可以通过多个网址访问时,你用canonical标签声明"哪个网址是正式版本"。典型场景:带参数和不带参数的同一页面、打印版页面、追踪链接版本。它的工作原理是把分散在多个网址的权重信号归集到正式版本上,避免谷歌困惑"该收录哪个、该把排名给谁"。新手用它的规则只有一条:canonical指向的网址,必须是真实存在、内容一致、能被访问的页面,指向错误会搬起石头砸自己的脚。
四、三件套的配合关系
三个工具不是互相替代,而是分工协作。正确的配合方式是:robots.txt放行核心内容区,让爬虫自由抓取正文页面;站点地图把全部重要页面列成清单,加快发现速度;canonical确保重复内容只留一个正式地址。三者都配好后,在搜索控制台里应该能看到:抓取正常、收录稳步增加、没有重复内容的报错。
五、上线前的检查清单
| 检查项 | 标准 |
|---|---|
| robots.txt | 只禁止无关目录,不误伤正文 |
| 站点地图 | 包含全部重要页面,已提交控制台 |
| canonical | 每页指向正确的正式版本 |
| 检查工具 | 搜索控制台无抓取和收录报错 |
| noindex | 不想收录的页面用noindex而非robots |
最后给新手一个动作建议:这三件套配置完,不要频繁改动。robots.txt改一次,全站抓取节奏要重新适应;canonical改错,权重传递立刻出问题。配好、验证、提交,然后让谷歌自己去跑,把精力留给内容和外链。
参考来源
谷歌官方《SEO Starter Guide》(站点地图与收录相关的基础说明):https://developers.google.com/search/docs/fundamentals/seo-starter-guide/
