robots.txt文件很多人写错了

有些页面你不想让Google抓取,但robots.txt写法不对,反而把SEO搞砸了。这个文件看起来简单,实际踩坑的人不少。

据Google Search Central官方文档,robots.txt是网站根目录下的一个文本文件,告诉搜索引擎的爬虫哪些页面可以抓取、哪些不能。Google的爬虫在访问你的网站之前,会先下载并解析这个文件。

robots.txt能做什么不能做什么

先搞清楚边界。robots.txt能做的:

  • 阻止爬虫抓取特定目录或页面
  • 控制爬虫访问频率(通过Crawl-delay,但Google已不再支持这个指令)
  • 声明sitemap位置
  • 针对不同爬虫设置不同规则

robots.txt不能做的:

  • 从搜索结果中删除已经索引的页面(用noindex标签或Search Console的移除工具)
  • 阻止页面被发现(如果其他网站链接到你的页面,Google可能仍然索引它)
  • 保证页面不被收录(robots.txt只是建议,不是强制命令)

第三条最容易误解。Google在官方文档里明确说过,如果外部有链接指向被robots.txt屏蔽的页面,Google仍然可能在搜索结果中展示这个URL(只是不会展示页面内容摘要)。想彻底让页面从搜索结果消失,用noindex meta标签。

正确写法

基础语法很简单。User-agent指定爬虫,Disallow指定不允许访问的路径。

User-agent: *
Disallow: /admin/
Disallow: /search?
Disallow: /*.pdf$
Allow: /admin/login

Sitemap: https://example.com/sitemap.xml

几个要点:

  • User-agent: * 表示对所有爬虫生效。可以单独针对Googlebot设置规则
  • Disallow: /admin/ 屏蔽整个admin目录
  • Disallow: /search? 屏蔽搜索结果页URL
  • Disallow: /*.pdf$ 屏蔽所有PDF文件
  • Allow优先级高于Disallow。如果/admin/整个屏蔽了但想让/admin/login可访问,加Allow: /admin/login
  • Sitemap声明放在文件末尾,帮助Google发现你的sitemap

5个常见错误

1. 用robots.txt屏蔽不想被收录的页面

这是最常见的误用。你想让某个页面不被搜索到,于是在robots.txt里Disallow它。结果Google没法抓取这个页面,自然也读不到页面上的noindex标签,反而可能继续在搜索结果里展示它。

正确做法:在页面HTML的head里加<meta name="robots" content="noindex">,然后不要在robots.txt里屏蔽它。让Google能抓取到这个标签,才能真正从索引中移除。

2. 屏蔽了CSS和JS文件

有些人为减少爬虫抓取量,把CSS和JS文件都Disallow了。Google在官方文档里明确说过,渲染页面需要CSS和JS。如果你屏蔽了这些资源,Googlebot无法正常渲染页面,可能影响排名。

确保Allow Googlebot访问必要的样式和脚本文件。参考Google Search Central的建议:不要屏蔽对理解页面内容有帮助的资源。

3. Crawl-delay设太高

Crawl-delay指令用来降低爬虫访问频率。但Google已经不再支持这个指令了。据Google Search Central文档,Googlebot通过自动算法调整抓取频率,忽略robots.txt中的Crawl-delay。设了也没用。

如果你确实需要降低抓取频率,用Search Console的”抓取速率”设置功能。

4. 文件位置不对

robots.txt必须放在网站根目录。据Google官方文档,文件必须位于支持的协议(HTTP、HTTPS、FTP)的顶级目录。URL是大小写敏感的。https://example.com/robots.txt是对的,https://example.com/sub/robots.txt不会生效。

规则只对文件所在的主机、协议和端口有效。如果你的网站有子域名,每个子域需要单独的robots.txt。

5. 忘记更新sitemap URL

网站换了域名或改了sitemap路径,但robots.txt里的Sitemap声明还指向旧地址。Google可能发现不了新的sitemap,导致新页面迟迟不被发现。

每次改sitemap位置后,同步更新robots.txt里的Sitemap声明,同时在Search Console重新提交。

验证方法

写完robots.txt别急着上线,先验证:

  • Search Console的robots.txt测试工具:在Search Console里输入URL,可以检查某个路径是否被正确允许或屏蔽。这是最直接的验证方式
  • 直接访问/robots.txt:在浏览器里打开你的域名/robots.txt,确认文件能正常访问且内容正确
  • Google的robots.txt测试器:搜索”Google robots.txt testing tool”可以找到在线工具,粘贴你的规则即可验证

不同类型站点的配置建议

内容站(博客、资讯):保持简单,只屏蔽后台和搜索结果页。让爬虫尽可能多地抓取内容页面。

电商站:屏蔽搜索结果页、筛选页面、购物车、结账流程。这些页面内容薄、重复高,被抓取浪费crawl budget。

SaaS产品站:屏蔽app后台、用户面板、API文档(如果是付费内容)。营销页面和公开文档保持可抓取。

据Google官方文档,小型站点(500页以下)通常不需要复杂的robots.txt规则。默认允许全站抓取,只屏蔽明显的非内容目录就够了。

小结

robots.txt不是什么高级技巧,但写错了后果不轻。记住核心原则:robots.txt控制抓取,不控制索引。想让页面从搜索结果消失用noindex,想让页面被正常抓取就别在robots.txt里屏蔽它。

花十分钟检查一下你的robots.txt,确认没有意外屏蔽重要资源。这个小文件可能正在影响你的搜索表现,而你完全没意识到。

分类: seo

0 条评论

发表回复

Avatar placeholder

您的邮箱地址不会被公开。 必填项已用 * 标注