百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

一文搞懂SEO优化之站点robots.txt

itomcoil 2025-07-10 15:59 3 浏览

建站后千万别忘记配置 robots.txt 爬虫规则,对于搜索引擎发现你的站点非常重要,除了主动到搜索引擎平台提交网站之外,也要主动告诉搜索引擎网站里都有哪些网页?哪些希望被抓取?哪些不希望被抓取?

1 robots.txt 是什么?

robots.txt 是一个纯文本协议文件,放置在网站根目录(如
https://example.com/robots.txt),用于指导搜索引擎爬虫(如 Googlebot、Baiduspider)的抓取行为,是
站点级别规定哪些页面可被引擎爬虫抓取,哪些禁止抓取(当然还有页面级别的,这个有机会介绍)。用于声明网站中禁止或允许被爬虫访问的目录/文件,控制内容收录范围。此规范非强制命令,而是行业通行的约定。

核心价值

  • 隐私保护:屏蔽敏感目录(如 /admin/、用户后台);
  • 优化性能:减少爬虫对无效页面(如死链、图片库)的请求,节省带宽;
  • SEO 辅助:引导爬虫优先抓取重要页面,提升索引效率。

2 核心语法与指令解析

2.1 基础结构

User-agent: [爬虫名称]  # 指定目标爬虫(* 代表所有)
Disallow: [禁止路径]    # 定义禁止访问的URL
Allow: [允许路径]       # 定义例外规则(需在 Disallow 后使用)
Sitemap: [网站地图URL]  # 提交 XML 站点地图(可选)

值得注意

  • 指令区分大小写,路径以 / 开头,# 后为注释。比如:Allow: /blog 与 Allow: /Blog 是不同的。
  • Sitemap指令是需要写全包含域名的全路径。
  • 指令 Crawl-delay 表示抓取请求的频率,不过谷歌暂不支持。写法如:Crawl-delay: 15 表示爬虫抓取间隔不能小于15秒。比如 github 就有针对百度爬虫这样约束(https://github.com/robots.txt)
User-agent: baidu
crawl-delay: 1
  • 可以针对不同爬虫单独指定爬取内容,通过换行进行分组,比如知乎就针对不同爬虫单独定义(部分截取)
User-agent: Googlebot
Disallow: /login
Disallow: /*?guide*

User-agent: Baiduspider-render
Disallow: /login
Disallow: /*?guide*

User-agent: Baiduspider-image
Disallow: /login
Disallow: /*?guide*

User-agent: Sogou web spider
Allow: /tardis/sogou/
Disallow: /

User-Agent: *
Disallow: /

当然相同的爬取内容,可以同时指定多个爬虫,如上面可简写成:

User-agent: Googlebot
User-agent: Baiduspider-render
User-agent: Baiduspider-image
Disallow: /login
Disallow: /*?guide*

User-agent: Sogou web spider
Allow: /tardis/sogou/
Disallow: /

User-Agent: *
Disallow: /

2.2 指令详解

指令

作用

示例

说明

User-agent

指定规则适用的爬虫(如 Googlebot、* 表示通用规则)

User-agent: Baiduspider

针对百度爬虫生效

Disallow

禁止爬虫访问的路径(支持目录或文件)

Disallow: /private/

禁止访问 /private/ 下所有内容

Allow

在禁止范围内设置例外(优先级高于 Disallow)

Allow: /public/image.jpg

允许抓取被禁目录中的特定文件

Sitemap

声明 XML 站点地图位置(便于爬虫发现新页面)

Sitemap: https://xxx/sitemap.xml

需填写完整 URL

2.3 路径匹配规则

  • 目录屏蔽:Disallow: /data/ → 禁止访问 /data/ 及其子目录(如 /data/file.html);:
  • 文件屏蔽:Disallow: /tmp/file.txt → 仅禁止特定文件;
  • 通配符扩展
  • Disallow: /*.jpg$ → 禁止抓取所有 JPG 文件;
  • Disallow: /*?* → 屏蔽带问号参数的动态 URL(如 search?q=foo)。

3 文件放置与生效条件

位置强制要求

必须位于网站根目录(如
https://domain.com/robots.txt),子目录无效。比如:

  • 文件位置:https://example.com/robots.txt
# 生效:
https://example.com/

# 不生效:
https://other.example.com/
http://example.com/
  • 文件位置:https://www.example.com/robots.txt
# 生效:
https://www.example.com/

# 不生效:
https://example.com/
  • 文件位置:https://example.com:443/robots.txt。标准端口号(HTTP 为 80,HTTPS 为 443,FTP 为 21)等同于其默认的主机名。所以以下都生效,
# 生效:
https://example.com:443/
https://example.com/

文件名规范

仅接受全小写 robots.txt,其他格式(如 Robots.TXT)无效。所以先看某网站的爬虫配置可在域名后直接添加 robots.txt 访问。

空文件处理

若文件为空或不存在,默认允许爬虫抓取全站。

4 实用配置示例

场景 1:全站开放抓取

User-agent: *
Disallow:          # 留空表示允许所有

场景 2:禁止所有爬虫抓取

User-agent: *
Disallow: /        # 屏蔽根目录下所有内容

场景 3:部分目录限制

User-agent: *
Disallow: /admin/   # 屏蔽后台
Disallow: /tmp/     # 屏蔽缓存目录
Allow: /blog/       # 允许抓取被禁目录中的博客
Sitemap: https://example.com/sitemap.xml

场景 4:针对特定爬虫设置

User-agent: Googlebot   # 仅对谷歌生效
Disallow: /ads/

User-agent: *           # 其他爬虫规则
Disallow: /private/

5 关键注意事项

  1. 非强制约束:恶意爬虫可能无视 robots.txt,敏感内容需额外加密(如登录验证)。
  2. 语法严谨性:路径错误(如漏写 /)会导致规则失效。
  3. 搜索引擎差异:部分指令(如 Crawl-delay 设置抓取延迟)仅特定引擎支持。
  4. 与 Meta Robots 互补:页面级控制(如 noindex)需在 HTML 中添加 <meta name="robots" content="noindex">。

最后

robots.txt 是网站与搜索引擎沟通的基础协议,合理配置可平衡收录需求与隐私保护。重点遵循:

根目录放置 + 精准路径语法 + 定期规则校验

原文地址:
https://ai-bar.cn/blog/2025_06_06_seo_robots

相关推荐

Java 如何从一个 List 中随机获得元素

概述从一个List中随机获得一个元素是有关List的一个基本操作,但是这个操作又没有非常明显的实现。本页面主要向你展示如何有效的从List中获得一个随机的元素和可以使用的一些方法。选择一个...

想月薪过万吗?计算机安卓开发之&quot;集合&quot;

集合的总结:/***Collection*List(存取有序,有索引,可以重复)*ArrayList*底层是数组实现的,线程不安全,查找和修改快,增和删比较慢*LinkedList*底层是...

China Narrows AI Talent Gap With U.S. as Research Enters Engineering Phase: Report

ImagegeneratedbyAITMTPOST--ChinaisclosinginontheU.S.intheAIindustry-academia-research...

大促系统优化之应用启动速度优化实践

作者:京东零售宋维飞一、前言本文记录了在大促前针对SpringBoot应用启动速度过慢而采取的优化方案,主要介绍了如何定位启动速度慢的阻塞点,以及如何解决这些问题。希望可以帮助大家了解如何定位该类问...

MyEMS开源能源管理系统核心代码解读004

本期解读:计量表能耗数据规范化算法:myems/myems-normalization/meter.py代码见底部这段代码是一个用于计算和存储能源计量数据(如电表读数)的小时值的Python脚本。它主...

Java接口与抽象类:核心区别、使用场景与最佳实践

Java接口与抽象类:核心区别、使用场景与最佳实践一、核心特性对比1.语法定义接口:interface关键字定义,支持extends多继承接口javapublicinterfaceDrawabl...

超好看 vue2.x 音频播放器组件Vue-APlayer

上篇文章给大家分享了视频播放器组件vue-aliplayer,这次给大家推荐一款音频插件VueAplayer。vue-aplayer一个好看又好用的轻量级vue.js音乐播放器组件。清爽漂亮的U...

Linq 下的扩展方法太少了,MoreLinq 来啦

一:背景1.讲故事前几天看同事在用linq给内存中的两个model做左连接,用过的朋友都知道,你一定少不了一个叫做DefaultIfEmpty函数,这玩意吧,本来很流畅的from......

MapReduce过程详解及其性能优化(详细)

从JVM的角度看Map和ReduceMap阶段包括:第一读数据:从HDFS读取数据1、问题:读取数据产生多少个Mapper??Mapper数据过大的话,会产生大量的小文件,由于Mapper是基于虚拟...

手把手教你使用scrapy框架来爬取北京新发地价格行情(实战篇)

来源:Python爬虫与数据挖掘作者:霖hero前言关于Scrapy理论的知识,可以参考我的上一篇文章,这里不再赘述,直接上干货。实战演练爬取分析首先我们进入北京新发地价格行情网页并打开开发者工具,如...

屏蔽疯狂蜘蛛,防止CPU占用100%(mumu模拟器和雷电模拟器哪个更占用cpu)

站点总是某个时间段莫名的cpu100%,资源占用也不高,这就有必要怀疑爬虫问题。1.使用"robots.txt"规范在网站根目录新建空白文件,命名为"robots.txt&#...

Web黑客近年神作Gospider:一款基于Go语言开发的Web爬虫,要收藏

小白看黑客技术文章,一定要点首小歌放松心情哈,我最爱盆栽!开始装逼!Gospider是一款运行速度非常快的Web爬虫程序,对于爱好白帽黑客的小白来说,可谓是佳作!Gospider采用厉害的Go语言开发...

用宝塔面板免费防火墙屏蔽织梦扫描网站

今天教大家在免费的基础上屏蔽织梦扫描,首先您要安装宝塔面板,然后再安装免费的防火墙插件,我用的是Nginx免费防火墙,然后打开这个插件。设置GET-URL过滤设置一条简单的宝塔面板的正则规则就可以屏蔽...

蜘蛛人再捞4千万美元 连续三周蝉联北美票房冠军

7月15日讯老马追踪票房数据的北美院线联盟今天表示,“蜘蛛人:离家日”(Spider-Man:FarFromHome)击退两部新片的挑战,连续第2周勇夺北美票房冠军,海捞4530万美元。法新...

夏天到了,需要提防扁虱,真是又小又恐怖的动物

夏天马上要到了,你知道吗,扁虱是这个夏天最危险的动物之一,很少有动物能比它还凶猛。Whenitcomestosummer'slittledangers,fewarenastiert...