robots.txt 与 sitemap 设置指南:别让蜘蛛走错路

robots.txt 和 sitemap 是蜘蛛进站后最先接触的两个文件:前者规定哪些路径不要抓,后者列出哪些页面值得抓。本文告诉你两者各自该写什么、最容易犯的几个错误,以及怎样向百度、谷歌和必应提交sitemap,让抓取资源花在真正重要的页面上。

爬虫协议文件能做什么,不能做什么

robots.txt 是放在网站根目录的纯文本文件,用来告诉遵守协议的爬虫哪些路径不应抓取。它的作用是管理抓取,而不是管理收录,这是很多人混淆的地方。

  • 能做的:阻止蜘蛛抓取后台、搜索结果页、无限组合的筛选参数页等低价值路径,节省抓取资源;声明sitemap的位置。
  • 不能做的:保证页面不被收录。如果被屏蔽的URL在别处有链接,搜索引擎仍可能把它收录,只是没有抓取内容,结果里可能只显示网址。
  • 不是安全手段:它是公开文件,任何人都能看到你屏蔽了哪些路径。真正需要保密的内容应该用登录权限保护。

如果目标是“不让某个页面出现在搜索结果里”,正确做法是在页面上添加 noindex 元标签或在 HTTP 响应头里返回 X-Robots-Tag: noindex,并且不要同时在 robots.txt 里屏蔽它,否则蜘蛛进不去,也就看不到 noindex 指令。另外,谷歌已不再支持写在 robots.txt 里的 noindex 指令,这种写法不要再用。

robots文件的标准写法与示例

常用指令只有几条:User-agent 指定爬虫,Disallow 指定不允许抓取的路径,Allow 用于在被屏蔽的目录里放行个别路径,Sitemap 声明网站地图地址。下面是一个适用于常见企业站和 WordPress 站点的示例:

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /?s=
Disallow: /search/
Disallow: /*?orderby=

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

编写时的注意事项

  1. 文件名必须全部小写,放在域名根目录,每个子域名需要单独的文件。
  2. 路径区分大小写,/Admin/ 和 /admin/ 是两条不同的规则。
  3. 不要屏蔽 CSS、JS 和图片目录。搜索引擎需要渲染页面来判断移动适配和页面质量,屏蔽这些资源可能导致页面被误判。
  4. 谨慎使用通配符,写完后逐条验证,避免一条规则误伤整站。
  5. 修改后可以在谷歌 Search Console 的 robots 报告和百度搜索资源平台的 robots 工具中检查是否生效。

最常见的抓取规则事故

实际排查中,下面几种情况反复出现,值得每次上线前检查一遍:

情况 后果 处理方法
测试站的“Disallow: /”被带到正式站 整站停止抓取,收录逐步下降 上线清单中加入robots检查项
WordPress 勾选了“建议搜索引擎不索引本站点” 全站输出noindex 在“设置-阅读”中取消勾选
用Disallow屏蔽想删除的页面 页面仍留在结果中,只是没有摘要 改用noindex或返回404/410
屏蔽了静态资源目录 渲染异常,移动适配判断出错 放行CSS、JS、图片

如果发现收录突然下滑,抓取规则文件是第一个要看的地方,更系统的排查思路可以参考百度不收录怎么办。

sitemap:给蜘蛛一份重点页面清单

sitemap 是一份列出网站URL的文件,最常见的是XML格式。它不能强迫搜索引擎收录,但能帮助蜘蛛更快发现新页面,尤其适合页面多、层级深或外链少的网站。

生成 sitemap 的规则

  • 只放希望被收录的规范URL:返回200状态码、没有noindex、canonical指向自身。
  • 不要放跳转地址、404页面、带参数的重复页面。
  • 单个sitemap文件最多5万个URL,未压缩大小不超过50MB,超出时拆分成多个文件,再用sitemap索引文件汇总。
  • lastmod 只在内容真正更新时修改,不要每天把所有页面的时间都刷新一遍。
  • 使用UTF-8编码,URL中的特殊字符需要转义。
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://www.example.com/products/led-panel-light/</loc>
    <lastmod>2026-10-01</lastmod>
  </url>
</urlset>

WordPress 自5.5版本起自带 /wp-sitemap.xml,主流SEO插件也会生成自己的sitemap,选用一个即可,不要两套并存。

向各搜索引擎提交 sitemap

  1. 谷歌:在 Google Search Console 的“站点地图”中填写地址提交,之后可在同一页面查看读取状态和已发现的URL数。
  2. 百度:在百度搜索资源平台的资源提交功能中提交sitemap,内容更新频繁的网站可以同时使用API主动推送新链接。
  3. 必应:在 Bing Webmaster Tools 提交sitemap,并可配合 IndexNow 推送新增和更新的URL。
  4. 通用:在 robots 文件末尾写上 Sitemap 行,任何遵守协议的爬虫都能发现它。

提交之后要定期回看报告:已提交但未收录的URL数量很大时,往往说明内容质量、重复页面或抓取频率存在问题,需要进一步排查,而不是反复重新提交。

常见问题

网站没有 robots.txt 会怎样?

蜘蛛请求这个文件时如果得到404,会默认整站都可以抓取,这本身不是问题。但建议还是放一个文件,至少声明sitemap地址并屏蔽明显无价值的路径。需要注意的是,如果它返回5xx服务器错误,谷歌可能会暂停抓取,所以要保证这个文件访问稳定。

已经被收录的页面,用Disallow屏蔽后会消失吗?

不一定。屏蔽后蜘蛛无法再抓取页面,已有的收录可能保留较长时间。想让页面从结果中移除,应先保持可抓取,加上noindex或让页面返回404/410,等搜索引擎更新后再考虑是否屏蔽。

sitemap里的priority和changefreq还有用吗?

谷歌已明确表示会忽略这两个字段,其他搜索引擎也只把它们当作参考。与其花心思设置,不如保证URL干净、lastmod真实。

robots.txt 写错一行就可能影响整站收录,如果你不确定现在的配置是否合理,SEO飞侠可以结合资讯内容站收录率提升的思路帮你梳理抓取规则和sitemap。也可以先通过 Telegram @Seofeixia 把网址发过来,做一次免费诊断。

Telegram 咨询@Seofeixia