robots.txt详解[通俗易懂]
大家好,又见面了,我是你们的朋友全栈君。
怎样查看robots文件?
浏览器输入 主域名/robots.txt
robots.txt的作用
robots.txt 文件规定了搜索引擎抓取工具可以访问网站上的哪些网址,并不禁止搜索引擎将某个网页纳入索引。如果想禁止索引(收录),可以用noindex,或者给网页设置输入密码才能访问(因为如果其他网页通过使用说明性文字指向某个网页,Google 在不访问这个网页的情况下仍能将其网址编入索引/收录这个网页)。
robots.txt 文件主要用于管理流向网站的抓取工具流量,通常用于阻止 Google 访问某个文件(具体取决于文件类型)。
如果您使用 robots.txt 文件阻止 Google 抓取网页,有时候其网址仍可能会显示在搜索结果中(通过其他链接找到),但搜索结果不会包含对该网页的说明:
如果在加载网页时跳过诸如不重要的图片、脚本或样式文件之类的资源不会对网页造成太大影响,可以使用 robots.txt 文件屏蔽此类资源。不过,如果缺少此类资源会导致 Google 抓取工具更难解读网页,请勿屏蔽此类资源,否则 Google 将无法有效分析有赖于此类资源的网页。
例如:
robots.txt指令的一些限制
并非所有搜索引擎都支持 robots.txt 指令。 robots.txt 文件中的命令并不能强制规范抓取工具对网站采取的行为;是否遵循这些命令由抓取工具自行决定。Googlebot 和其他正规的网页抓取工具都会遵循 robots.txt 文件中的命令,但其他抓取工具未必如此。
不同的抓取工具会以不同的方式解析语法。 虽然正规的网页抓取工具会遵循 robots.txt 文件中的指令,但每种抓取工具可能会以不同的方式解析这些指令。
如果其他网站上有链接指向被 robots.txt 文件屏蔽的网页,则此网页仍可能会被编入索引 尽管 Google 不会抓取被 robots.txt 文件屏蔽的内容或将其编入索引,但如果网络上的其他位置有链接指向被禁止访问的网址,我们仍可能会找到该网址并将其编入索引。
如何创建robots文件?
用任意文本编辑器(就是写代码的软件)创建 robots.txt 文件。
格式和位置规则:
- 文件必须命名为 robots.txt。
- 网站只能有 1 个 robots.txt 文件。
- robots.txt 文件必须位于其要应用到的网站主机的根目录下。例如,若要控制对
https://www.example.com/
下所有网址的抓取,就必须将 robots.txt 文件放在https://www.example.com/robots.txt
下,一定不能将其放在子目录中(例如https://example.com/pages/robots.txt
下)。 - robots.txt 文件可应用到子网域(例如
https://website.example.com/robots.txt
)或非标准端口(例如http://example.com:8181/robots.txt
)。 - robots.txt 文件必须是采用 UTF-8 编码(包括 ASCII)的文本文件。Google 可能会忽略不属于 UTF-8 范围的字符,从而可能会导致 robots.txt 规则无效。
robots文件的书写规则
- robots.txt 文件包含一个或多个组。
- 每个组由多条规则或指令(命令)组成,每条指令各占一行。每个组都以
User-agent
行开头,该行指定了组适用的目标。 - 每个组包含以下信息:
- 组的适用对象(用户代理)
- 代理可以访问的目录或文件。
- 代理无法访问的目录或文件。
- 抓取工具会按从上到下的顺序处理组。一个用户代理只能匹配 1 个规则集(即与相应用户代理匹配的首个最具体组)。
- 系统的默认假设是:用户代理可以抓取所有未被
disallow
规则屏蔽的网页或目录。 - 规则区分大小写。例如,
disallow: /file.asp
适用于https://www.example.com/file.asp
,但不适用于https://www.example.com/FILE.asp
。 #
字符表示注释的开始处。
对着着示例说明:
# Example 1: Block only Googlebot
User-agent: Googlebot
Disallow: /
# Example 2: Block Googlebot and Adsbot
User-agent: Googlebot
User-agent: AdsBot-Google
Disallow: /
# Example 3: Block all but AdsBot crawlers
User-agent: *
Disallow: /
Sitemap: http://www.example.com/sitemap.xml
复制
user-agent:
[必需,每个组需含一个或多个 User-agent 条目] 该指令指定了规则适用的自动客户端(即搜索引擎抓取工具)的名称。这是每个规则组的首行内容。示例里是谷歌蜘蛛的名称,每个搜索引擎的蜘蛛名称不同。disallow:
[每条规则需含至少一个或多个disallow
或allow
条目] 您不希望用户代理抓取的目录或网页(相对于根网域而言)。如果规则引用了某个网页,则必须提供浏览器中显示的完整网页名称。它必须以/
字符开头;如果它引用了某个目录,则必须以/
标记结尾。allow:
[每条规则需含至少一个或多个disallow
或allow
条目] 上文中提到的用户代理可以抓取的目录或网页(相对于根网域而言)。此指令用于替换disallow
指令,从而允许抓取已禁止访问的目录中的子目录或网页。对于单个网页,请指定浏览器中显示的完整网页名称。对于目录,请用/
标记结束规则。sitemap:
[可选,每个文件可含零个或多个 sitemap 条目] 相应网站的站点地图的位置。站点地图网址必须是完全限定的网址;Google 不会假定存在或检查是否存在 http、https、www、非 www 网址变体。
上传robots文件
加到网站的根目录(取决于网站和服务器架构)。
测试 robots.txt 标记
要测试新上传的 robots.txt 文件是否可公开访问,请在浏览器中打开无痕浏览窗口(或等效窗口),然后转到 robots.txt 文件的位置。例如:https://example.com/robots.txt。如果您看到 robots.txt 文件的内容,就可准备测试标记了。
测试工具:https://www.google.com/webmasters/tools/robots-testing-tool
常用的robots规则
# 禁止所有搜索引擎抓取整个网站
User-agent: *
Disallow: /
# 禁止所有搜索引擎抓取某一目录及其内容(禁止抓取的目录字符串可以出现在路径中的任何位置,因此 Disallow: /junk/ 与 https://example.com/junk/ 和 https://example.com/for-sale/other/junk/ 均匹配。)
User-agent: *
Disallow: /calendar/
Disallow: /junk/
Disallow: /books/fiction/contemporary/
# 只有 googlebot-news 可以抓取整个网站。
User-agent: Googlebot-news
Allow: /
User-agent: *
Disallow: /
# Unnecessarybot 不能抓取相应网站,所有其他漫游器都可以。
User-agent: Unnecessarybot
Disallow: /
User-agent: *
Allow: /
# 禁止所有搜索引擎抓取 useless_file.html 网页。
User-agent: *
Disallow: /useless_file.html
# 禁止访问 dogs.jpg 图片。
User-agent: Googlebot-Image
Disallow: /images/dogs.jpg
# 禁止 Google 图片访问您网站上的所有图片(如果无法抓取图片和视频,则 Google 无法将其编入索引。)
User-agent: Googlebot-Image
Disallow: /
# 禁止谷歌抓取所有 .gif 文件。
User-agent: Googlebot
Disallow: /*.gif$
# 禁止抓取整个网站,但允许 Mediapartners-Google 访问内容
User-agent: *
Disallow: /
User-agent: Mediapartners-Google
Allow: /
# 禁止谷歌抓取所有 .xls 文件。
User-agent: Googlebot
Disallow: /*.xls$
复制
如何更新robots文件?
只需要通过https://example.com/robots.txt ,打开后复制到编辑器里,做出更改,再重新上传到根目录,再用GSC测试之后提交即可。(没有删除原先的robots文件这个步骤)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/133123.html原文链接:https://javaforall.cn
robots.txt详解[通俗易懂]的更多相关文章
- 防反编译、混淆文件proguard.cfg与proguard-project.txt详解
在新版本的ADT创建项目时,混码的文件不再是proguard.cfg,而是project.properties和proguard-project.txt. 如果需要对项目进行全局混码,只需要进行一步操 ...
- Reactor And Gev 详解 通俗易懂
reactor 详解 在类似网关这种海量连接, 很高的并发的场景, 比如有 10W+ 连接, go 开始变得吃力. 因为频繁的 goroutine 调度和 gc 导致程序性能很差. 这个时候我们可以考 ...
- 关于android混淆文件project.properties和proguard-project.txt详解
一直不明白Android开发中的有些文件的具体作用,后来用到了,具体研究了一下,借鉴了一下网上的资料,最后总结下,方便以后查看! 老版本中有这么个文件default.properties,既然是老版本 ...
- Robots.txt 协议详解及使用说明
一.Robots.txt协议 Robots协议,也称为爬虫协议.机器人协议等,其全称为“网络爬虫排除标准(Robots Exclusion Protocol)”.网站通过Robots协议告诉搜索引擎哪 ...
- Java--集合框架详解
前言 Java集合框架的知识在Java基础阶段是极其重要的,我平时使用List.Set和Map集合时经常出错,常用方法还记不牢, 于是就编写这篇博客来完整的学习一下Java集合框架的知识,如有遗漏和错 ...
- robots.txt文件配置和使用方法详解
robots.txt文件,提起这个概念,可能不少站长还很陌生:什么是robots.txt文件?robots.txt文件有什么作用?如何配置robots.txt文件?如何正确使用robots.txt文件 ...
- Netsuite Formula > Oracle函数列表速查(PL/SQL单行函数和组函数详解).txt
PL/SQL单行函数和组函数详解 函数是一种有零个或多个参数并且有一个返回值的程序.在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数主要分为两大类: 单行函数 ...
- JUC并发编程详解(通俗易懂)
一.JUC简介 在Java5.0提供了java.util.concurrent包,简称JUC,即Java并发编程工具包.JUC更好的支持高并发任务. 具体的有以下三个包: java.util.conc ...
- EasyPR--开发详解(6)SVM开发详解
在前面的几篇文章中,我们介绍了EasyPR中车牌定位模块的相关内容.本文开始分析车牌定位模块后续步骤的车牌判断模块.车牌判断模块是EasyPR中的基于机器学习模型的一个模块,这个模型就是作者前文中从机 ...
- 好用的wget命令从下载添加环境变量到各参数详解
本文是因为(笔者使用的windows系统)使用过好几次wget后,始终存在各种细节问题,于是下定决定细致的研究一下,并记录下其中细节. 下载与安装 第一步:下载wget,网络地址:http://dow ...
随机推荐
- element table 表格嵌套
/////////////////////////// 代码如下 <template> <div class="report-forms-page"> & ...
- 在k8s中使用harbor仓库
在k8s中使用harbor仓库 修改每个node上的docker认证仓库 将每个node节点上的docker同样需要配置可信任仓库 vi /etc/docker/daemon.json #修改为 {& ...
- WPF 文本逐字一个个出现的动画效果
一.效果图: 二.前台代码: <Grid> <TextBlock Foreground="Transparent" x:Name="text" ...
- 通过 HDU 2048 来初步理解动态规划
HDU 2048 数塔 问题描述: 题目链接-点我查看题目 给出一个数塔,要求从顶层走到底层,每一步只能从高层走到相邻的低层节点,求经过的结点的数字之和最大是多少? 动态规划的定义 dynam ...
- mybatis 数据搜索后参数显示乱码无法搜到
今天写作业的时候遇到的小问题 问题说明:搜索订单名中含有"香皂"的订单,显示订单的一系列属性.在搜索后,调试框中显示的东西很奇怪,也没有查找到答案: 觉得是编码问题,所以调试了编码 ...
- VM虚拟机15安装Kali Linux2020版详细教程
下载kali镜像 kali Linux官网地址https://www.kali.org/downloads/下载相对应的电脑版本 打开Vmware虚拟机 安装虚拟机看物理机配置,尽量不要太折腾电脑(虚 ...
- 2023-03-01 'react-native' 不是内部或外部命令,也不是可运行的程序 这个报错是因为你没有全局安装react-native的脚手架,请执行下面代码全局安装react-native脚手架👇
问题描述:想要初始化一个新的rn项目,执行[react-native init myApp --version 0.68.2],报错:'react-natvie' 不是内部或外部命令,也不是可运行的程 ...
- Python学习笔记(二)变量的使用
一.变量的定义 把程序运算的中间结果临时存到内存里,以备后面的代码继续调用,这几个名字的学名就叫做"变量" 可以把变量看做保存信息的容器,它们的目的是在内存中标注和存储数据,然后可 ...
- Day20:update功能的实现
今日完成的任务: 1.将最初设想的消息界面删除,删去message和chat等无参数跳转界面,并在物品详情中增加[联系方式]一栏供大家线下交易使用. 最终完成界面如下 2.实现本个小程序最后一个功能- ...
- class_schedule
#!/usr/bin/python # -*- coding: UTF-8 -*- class Schedule(object): def __init__(self, name=& ...