如何用 robots.txt 引导蜘蛛抓取重点页面?
将 robots.txt 放站点根目录,通过 Allow、Disallow 规则配合 Sitemap 和 Crawl-delay,引导百度、Google 蜘蛛优先抓重点页面、减少垃圾页抓取,并在上线前用官方工具验证。
学完这篇,你能自己写出一份让百度、Google 蜘蛛优先抓重点栏目、少浪费配额在垃圾页上的 robots.txt,并且知道上线前该用哪个工具验证。
第一步:把文件放对位置,确认第一行写什么
这一步决定蜘蛛能不能读到你的规则——放到根的域名下,蜘蛛才认。
robots.txt 必须放在站点根目录,即 https://www.example.com/robots.txt,文件名全小写,编码用 UTF-8。如果你的是子目录站(如 example.com/blog/),放在 example.com/blog/robots.txt 只对 /blog/ 生效,无法跨目录约束。
文件第一组规则通常是:
User-agent: *
Disallow:
Disallow: 后面留空,表示"所有蜘蛛都可以抓整站",这是最安全的起点。不要一上来就写 Disallow: /,那等于把整站封死。
注意:robots.txt 返回 404 时,蜘蛛默认按"全站可抓"处理;但如果返回 403,Google 会直接停止抓取该站。所以文件宁可不写,也别配错权限。
第二步:用 Allow 和 Disallow 把蜘蛛引到重点页面
这一步是核心——把不重要的路径挡掉,再用 Allow 把重点目录"抬"出来。
User-agent: *
Disallow: /search/
Disallow: /tag/
Disallow: /tmp/
Disallow: /*?sort=
Disallow: /*?sessionid=
Allow: /search/hot/
Allow: /news/
Allow: /product/
Sitemap: https://www.example.com/sitemap.xml
匹配规则要记牢:Google、Bing 按最长路径匹配优先,路径长度一样时 Allow 优先;百度官方说明是 Allow 优先级高于 Disallow。所以上例中 Disallow: /search/ 挡掉搜索页,但 Allow: /search/hot/ 又把热门榜放行。
通配符方面,* 表示任意字符,$ 表示路径结尾,Google、Bing、Yandex 完整支持;百度对 $ 支持不完整,对 * 的支持也有限,面向百度时尽量写死具体目录,少用通配符。
注意:不要 Disallow 掉 CSS、JS 和图片目录。Google 需要渲染页面才能判断内容,屏蔽
/static/、/assets/会导致页面被判为"内容稀薄"。
第三步:声明 Sitemap 和控制抓取频率
这一步让蜘蛛知道去哪找重点 URL,同时别把你的服务器抓崩。
在文件末尾加一行绝对地址:
Sitemap: https://www.example.com/sitemap.xml
Sitemap 必须是完整 URL、区分大小写。可以写多条,对应不同频道(如 sitemap-news.xml、sitemap-product.xml),这样蜘蛛能从 sitemap 直接拿到你希望被收录的页面清单,和 robots.txt 里的 Allow 形成配合。
如果服务器扛不住,再加:
Crawl-delay: 1
表示两次请求间隔 1 秒。百度、Yandex 认这个字段,Google 早在 2015 年就不再支持 Crawl-delay,对 Google 请改用 Search Console 里的「抓取速度」设置。
第四步:上线前用官方工具验证
这一步避免规则写错把整站封死,几分钟就能验完。
- Google:打开 Google Search Console(search.google.com/search-console)→ 选中资源 → 左侧「设置」→「爬网统计信息」→「robots.txt 报告」,能看到 Google 实际解析出的规则,并在下方输入框填一个 URL 测试能否抓取。
- 百度:打开百度搜索资源平台(ziyuan.baidu.com)→ 左侧「站点管理」→「robots」→ 使用 robots 检测工具,输入具体 URL 查看百度蜘蛛的判断结果。入口名称可能随平台改版微调,找不到时在平台内搜「robots」即可。
验证时重点测三类 URL:你想放行的重点页、你想屏蔽的搜索页、以及首页。
注意:robots.txt 只是"抓取建议",不是"收录禁令"。已经收录的页面即使被 Disallow,仍可能留在索引里。要彻底不让收录,得在页面
<head>里加<meta name="robots" content="noindex">,并且不要用 robots.txt 屏蔽它——否则蜘蛛读不到 noindex 标签。
小结
- robots.txt 放站点根目录,文件名全小写,UTF-8 编码,
Disallow:留空表示全站可抓。 - 用
Disallow挡掉/search/、/tag/、带参数的 URL,用Allow放行重点目录;Google 按最长匹配,百度 Allow 优先。 - 面向前百度时少用
*和$,写具体路径更稳。 - 末尾用
Sitemap:声明站点地图,Crawl-delay只对百度、Yandex 有效。 - 上线前用 Google Search Console 的 robots.txt 报告和百度搜索资源平台的检测工具各跑一遍。
- 别屏蔽 CSS/JS;要禁止收录用 noindex,而不是 Disallow。
原文链接:https://www.gj0.com/thread-1689.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。