robots.txt 是什么——能放什么、绝对不要放什么

独立站的 robots.txt 实操指南——能跑的两行默认、悄悄毁掉收录的几条规则、以及 robots.txt 和 noindex 的区别。

robots.txt 是网站根目录的一个 500 字节小文件,要么啥也没做、要么一夜之间毁掉你的收录。大多数生成器给的默认版本是 OK 的。从老博客拷贝来的「聪明」版本,才是独立站不小心告诉 Google「忘了我吧」的元凶。

问题背景

robots.txt 是控制爬取的文件,放在域名根目录。它告诉爬虫哪些路径可以抓。关键:Disallow 不是「不要收录」,是「不要爬」。一个被 robots.txt 屏蔽的页面仍然可能被收录(只剩 URL,没内容),只要别处有链接指过去。真正阻止收录的工具是 <meta name="robots" content="noindex">——不是 robots.txt。

判断标准

  • 刚接手或生成了一份 robots.txt,不确定对不对。
  • Search Console Pages 报告里出现「Blocked by robots.txt」。
  • site:你的域名 搜出来的结果描述是「由于该网站的 robots.txt 限制,无法提供描述」。
  • 加了 Disallow 想「藏」掉某些页面,结果它们还是被收录了。

快速结论

一个典型独立内容站的 robots.txt 三行就够了:User-agent: *Allow: /Sitemap: https://你的域名/sitemap.xml。只屏蔽你真的不想被爬的路径(admin、cart、search)。要阻止收录,用页面里的 <meta name="robots" content="noindex">,不是这里的 Disallow。

实操步骤

  1. 浏览器打开 https://你的域名/robots.txt。如果 404,说明没在提供这个文件——多数静态主机只要框架把 robots.txt 放在 public 目录里就会自动暴露。
  2. 确认开头是 User-agent: *,并包含 Sitemap: https://你的域名/sitemap.xml(完整 URL,不要相对路径)。
  3. 决定要不要屏蔽什么。常见可屏蔽:/admin//cart//api/、站内搜索 /?q=。常见不要屏蔽:/static//_next//assets/、sitemap 路径、CSS/JS。屏蔽这些会让 Google 渲染页面失败。
  4. 想让爬但不想收录的页面(thank-you 页、内部重复页),用 HTML 里的 <meta name="robots" content="noindex">,不是 Disallow。Disallow + noindex 会冲突——爬不动就读不到 noindex。
  5. 在 Search Console -> 「robots.txt Tester」(仍在 legacy 工具里)测试。粘几个候选 URL,验证是否按预期允许 / 屏蔽。
  6. 改完 robots.txt 后,对首页申请一次 indexing,提醒 Google 重新抓 robots.txt。这个文件最多缓存 24 小时,不要指望改完瞬间生效。

容易踩的坑

  • Disallow: / 「藏」一个公网可达的 staging 站。只要有人贴了链接,URL 仍会被收录(只是没内容)。staging 应该上 HTTP auth。
  • 屏蔽 CSS、JS、/_next//static//assets/ 目录。Google 需要它们来渲染页面,屏蔽会伤排名。
  • 为了让页面 noindex 而 Disallow 它。Disallow 不去除收录——只是不让爬。URL 仍可能出现在结果里,没有描述。
  • 忘了写 Sitemap: 行。不致命——你在 Search Console 也提交了 sitemap——但加一行没坏处。
  • 把另一个站(特别是 WordPress)的 200 行 robots.txt 整段拷过来。在非 WordPress 站上屏蔽不存在的路径无害,但说明你没在控制自己的文件。

这篇适合谁

从来没打开过自己 robots.txt 的人,或刚在 Search Console 看到「blocked by robots.txt」警告的人。

这篇不适合谁

需要按 user-agent 做精细爬取管理的企业站点。这篇假设你希望大部分内容都被爬。

FAQ

  • robots.txt 和 noindex 区别?: robots.txt 控制爬取——Google 抓不抓页面。noindex 控制收录——抓到之后展不展示。两层不同的东西,Disallow + noindex 还会冲突,因为爬不动就读不到 noindex。
  • 要屏蔽站内搜索结果页吗(/?q=...)?: 内容站一般要。站内搜索内容薄,还会产生无穷 URL 变体。Disallow: /search/ 或者你搜索 URL 实际的模式。
  • robots.txt 能写多个 sitemap 吗?: 能,写多行 Sitemap: 就行。按语言或内容类型拆 sitemap 时很有用。Google 会读所有列出的。
  • robots.txt 改完多久 Google 知道?: Google 最多缓存 24 小时。改完一般 1-24 小时内反映到爬虫行为。可以对首页申请一次 indexing 推一下刷新。

相关阅读

标签: #独立开发 #SEO #Technical SEO #robots.txt