折纸SEO SEO优化 深入领会Robots.txt及如何规范地编写

深入领会Robots.txt及如何规范地编写

关于Robots.txt,信托大部门WordPress站长对其都不会感应生疏,一个规范的Robots.txt对…

深入领会Robots.txt及如何规范地编写

深入领会Robots.txt及如何规范地编写折纸SEO

关于Robots.txt,信托大部门WordPress站长对其都不会感应生疏,一个规范的Robots.txt对于WordPress网站SEO优化来说至关主要。该文件主要用于告诉搜索引擎爬虫,网站哪些页面可以爬取,哪些页面不能以。

我们曾经在“如何编写和优化WordPress网站的Robots.txt”对Robots.txt进行了详细地先容,不外,今天这篇文章将会加倍详细,也易于站长解读及更好地使用Robots.txt文件。

Robots.txt 是网站中最简朴的一个文件,但同时也是最容易失足的。仅仅是一个字符的错误可能会影响你的SEO效果、阻碍搜索引擎抓取你网站中的有用内容。

robots.txt文件的设置错误经常发生,纵然履历厚实的SEO职员也是云云。

在这篇教程中你将会学到:

  • Robots.txt文件是什么
  • Robots.txt长什么样
  • Robots.txt中的用户署理和指令
  • 什么时刻你需要robots.txt文件
  • 如何找到你的robots.txt文件
  • 如何确定一个robots.txt文件
  • Robots.txt的最佳做法
  • Robots.txt文件示例
  • 如何检测robots.txt文件中的问题

Robots.txt文件是什么?

Robots.txt文件是用来告诉搜索引擎,网站上的哪些页面可以抓取,哪些页面不能抓取。

首先,它列出了你想从搜索引擎(如Google)中清扫的所有内容。你还可以告诉某些搜索引擎(非Google)应该如何抓取网站的内容。

主要提醒

大多数搜索引擎都市遵照规则,它们没有打破规则的习惯。换句话说,少部门的搜索引擎则会无视这些规则。

Google不是那些不守礼貌的搜索引擎之一。他们遵守robots.txt文件中的声明。

只是我们知道有些搜索引擎完全忽略它。

Robots.txt长什么样?

以下是Robots.txt文件的基本花样:

Sitemap: [URL location of sitemap]

User-agent: [bot identifier]
[directive 1]
[directive 2]
[directive ...]

User-agent: [another bot identifier]
[directive 1]
[directive 2]
[directive ...]

若是你以前从未看过这些内容,你可能会以为很难。但现实上,它的语法异常简朴。简而言之,你可以通过在文件中指定user-agents(用户署理)和directives(指令)来为搜索引擎蜘蛛分配抓取规则。

让我们详细的讨论则两个组件。

User-agents(用户署理)

每个搜索引擎都有一个特定的用户署理。你可以在robots.txt文件中针对差其余用户署理分配抓取规则。总共约莫有上百种用户署理(现实上,你只要安装Spider Analyser插件,即可轻松掌握都有哪些蜘蛛接见爬取您的网站。),以下是一些对SEO有用的用户署理:

  • Google: Googlebot
  • Google Images: Googlebot-Image
  • Bing: Bingbot
  • Yahoo: Slurp
  • Baidu: Baiduspider
  • DuckDuckGo: DuckDuckBot

 

小提醒. robots.txt中的所有用户署理均严酷区分巨细写。

你也可以使用通配符(*)来一次性为所有的用户署理制订规则。

举个例子,假设你想屏障除了谷歌以外的搜索引擎蜘蛛,下面就是做法:

User-agent: *
Disallow: /

User-agent: Googlebot
Allow: /

你需要知道,在 robots.txt文件中,你可以指定无数个用户署理。虽然这么说,每当你指定一个新的用户署理时,它都是自力的。换句话说,若是你陆续为多一个用户署理制订了规则,那么第一个用户署理的规则并不适用于第二个,或者时第三个。

有一个破例就是,若是你针对统一个用户署理制订了多次规则,那么这些规则则会被放在一起执行。

主要提醒

蜘蛛只会遵照准确解释详细用户署理的指令。以是上方的 robots.txt文件只会清扫除谷歌蜘蛛(以及其它类型的谷歌蜘蛛)以外的搜索引擎爬虫。谷歌蜘蛛会忽略一些不太详细的用户署理声明。

Directives(指令)

指令指的是你希望用户署理遵照的规则。

现在支持的指令

下面是谷歌现在支持的指令,以及它们的用法.

Disallow指令

使用此指令来划定搜索引擎不要接见特定路径的文件和页面。例如,若是你想阻止所有搜索引擎接见你的博客及其所有帖子,则robots.txt文件就像下方这样:

User-agent: *
Disallow: /blog

小提醒. 若是你再disallow指令后面没有给出详细的路径,那么搜索引擎就会忽略它。

Allow指令

使用此指令来划定搜索引擎需要接见特定路径的文件和页面——纵然在一个被disallow指令屏障的路径中也可以使用。若是你屏障特定文章以外的所有文章页面,那么robots.txt应该像下方这样:

User-agent: *
Disallow: /blog
Allow: /blog/allowed-post

在这个例子中,搜索引擎可以接见:

/blog/allowed-post

. 然则它不能接见:

/blog/another-post
/blog/yet-another-post
/blog/download-me.pdf

谷歌和必应都支持这个指令。

小提醒. 和disallow指令一样,若是你在allow指令之后没有声明路径,那么搜索引擎会忽略它。

有关规则冲突的说明

除非你异常的仔细,否则部门情形disallow指令会与allow指令相互冲突。下方的这个例子,我们阻止了接见了这个页面

/blog/

 同时开放了这个页面

/blog

.

User-agent: *
Disallow: /blog/
Allow: /blog

这个例子中,这个URL 

/blog/post-title/

 似乎即被阻止了,又被允许了。那么到底是哪一个呢?

对与谷歌和必应来说,它们会遵照指令字符较长的那一个,在这个例子中就是disallow指令。

Disallow: /blog/

(6 字符)

Allow: /blog

 (5 字符)

若是disallow指令和allow指令长度一样,那么限制局限较小的指令会胜出,这种情形就是allow指令。

小提醒. 这里,

/blog

(没有斜杠为后缀) 是可以被抓取的。

严酷来说,这只适用于谷歌和必应搜索引擎。其它搜索引擎会遵照第一条指令,这种情形就是disallow指令。

Sitemap指令

使用此指令来符号你网站舆图所的位置。若是你对网站舆图不熟悉,它通常会包罗你需要被搜索引擎抓取&索引的所有页面链接。

下面就是一个使用Sitemap指令的robots.txt文件:

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

User-agent: *
Disallow: /blog/
Allow: /blog/post-title/

在robots.txt中注明sitemap指令有何等主要呢?若是你已经向谷歌提交了网站舆图,那么这一步操作就无关紧要。然则,对于其它搜索引擎,好比必应,就可以明确的告诉它你的网站舆图在那里,以是这一步照样很有需要的。

注重,你不需要针对差其余署理重复标注sitemap指令。以是最好的方式是将sitemap指令写在robots.txt的最最先或者最末尾,就像下方这样:

Sitemap: https://www.domain.com/sitemap.xml
User-agent: Googlebot
Disallow: /blog/
Allow: /blog/post-title/
User-agent: Bingbot
Disallow: /services/

谷歌支持sitemap指令、同时Ask、必应、雅虎搜索引擎都支持。

小提醒. 你可以在robots.txt中使用多条sitemap指令。

不再支持的指令

下面是一些谷歌不再支持的指令——部门由于手艺缘故原由一直都没有被支持过。

Crawl-delay指令

之前你可以使用这个指令来指定抓取距离时间(秒)。好比,你希望谷歌蜘蛛再每次抓取之后守候5秒,那么你就需要将Crawl-delay指令设置为5:

User-agent: Googlebot
Crawl-delay: 5

谷歌已经不再支持这个指令,然则必应和Yandex依然支持。

虽然这么说,在设置这个指令的时刻你需要小心,尤其是你有一个大型网站的时刻。若是你将Crawl-delay指令设置为5,那么天天蜘蛛最多只能抓取17,280个URL。若是你有上百万的页面,这个抓取量就异常的小了。反之,若是你是小型网站,则它可以帮你节约带宽。

Noindex指令

这个指令从来没有被谷歌支持过。然则直到最近,人们以为谷歌有一些“处置不受支持和未宣布的规则的代码(例如noindex)”。以是若是你希望阻止谷歌索引你所有的博客页面,那么你可以使用这个指令:

User-agent: Googlebot
Noindex: /blog/

然则同时,在2019年9月1号,谷歌明确示意这个指令不被支持。若是你想从搜索引擎中清扫一个页面的话,使用meta robots标签、或者是x-robots HTTP头部指令。

Nofollow指令

这个指令谷歌也是从来没有从官方支持过的。曾经是用来阻止搜索引擎追随某一个链接,或者是某个特殊的路径。好比,你想屏障谷歌追随所有的博客链接,你可以这么设置指令:

User-agent: Googlebot
Nofollow: /blog/

谷歌在2019年9月1号声明这个指令不会被支持。若是你想阻止搜索引擎追随页面上的所有链接,那么你应该使用meta robots标签、或者是x-robots HTTP头部指令。若是你想指定一个链接不让谷歌追随,那么你可以在特定链接中加入

rel="nofollow"

参数。

你需要一个Robots.txt文件吗?

对于一部门网站来说,有没有robots.txt实在无关痛痒,尤其是小网站。

虽然这么说,然则没有一个好的理由不去拥有它。它可以在搜索引擎接见网站的规则上给你一些分外的控制权,那么这可以辅助你:

  • 防止抓取重复页面;
  • 让网站在某个阶段不公然 (好比:在搭建网站雏形时);
  • 防止抓取内部搜索页面;
  • 防止服务器过载;
  • 防止谷歌虚耗crawl budget(抓取预算);
  • 防止部门图片、视频及其它资源展示在谷歌效果中。

请注重,只管谷歌通常不会索引robots.txt中阻止的网页,但这无法保证使用robots.txt文件可以100%将其清扫在搜索效果之外

谷歌说过,若是内容从另外一个地方获得链接,那么依然有可能被出现在搜索效果当中。

如何找到你的robots.txt文件?

若是你的网站已经有了robots.txt文件,那么你可以通过domain.com/robots.txt 这个链接进行接见。若是你看到有类似下方这样的信息,这就是你的robots.txt文件:

如何做到Google PageSpeed Insights测试满分

深入领会Robots.txt及如何规范地编写折纸SEO

深入领会Robots.txt及如何规范地编写折纸SEO

如何确定一个robots.txt文件?

若是你没有robots.txt文件的话,那么做一个也十分的简朴。你只需要打卡一个空的.txt文件(记事本文件)然后根据要求填写指令。好比,你希望搜索引擎不抓取你的 

/admin/

 目录,你可以像下方这样设置:

User-agent: *
Disallow: /admin/

你可以继续添加指令,只要你知足为止,然后将文件保留为“robots.txt”。

除此之外,你还可以使用robots.txt天生工具来制作,好比Smart SEO Tool插件:

深入领会Robots.txt及如何规范地编写折纸SEO深入领会Robots.txt及如何规范地编写折纸SEO

使用类似这样工具的优势就是,加倍容易编辑管理。固然为了阻止指令语法错误,建议任何工具天生的robots.txt都应该使用搜索引擎站长工具进行磨练,好比百度资源管理平台。

深入领会Robots.txt及如何规范地编写折纸SEO

这个异常主要,由于一个小的语法错误都市导致灾难性的结果,照样小心无大错对照好。

在那里放置robots.txt文件呢?

将robots.txt文件放置在对应域名/子域名的根目录文件夹中。好比,若是你的网站使用的是domain.com,那么robots.txt就可以通过domain.com/robots.txt接见到。

若是你希望你控制二级域名的接见限制,好比blog.domain.com,那么它的robots.txt就需要通过blog.domain.com/robots.txt接见到才可以。

Robots.txt的最佳做法

切记下方提醒,可以阻止不需要的错误:

每一个新指令都需要另起一行

每个指令都需要新起一行。否则会让搜索引擎发生误解:

错误示例:

User-agent: * Disallow: /directory/ Disallow: /another-directory/

尺度示例:

User-agent: * 
Disallow: /directory/ 
Disallow: /another-directory/

使用通配符简化指令

你不仅可以使用通配符(*)将指令应用于所有用户署理,同时可以在声明指令时用来匹配相同的URL。例如,若是你想防止搜索引擎接见网站上的参数化产物种别URL,可以像这样列出它们:

User-agent: * 
Disallow: /products/t-shirts?
Disallow: /products/hoodies?
Disallow: /products/jackets?
…

然则这并不精练,你可以使用通配符,简写成下方这样:

User-agent: * 
Disallow: /products/*?

这个例子就是屏障了所有的搜索引擎用户抓取 /product/ 目录下,所有包罗问号(?)的链接。换句话说就是屏障了所有带有参数的产物链接。

使用美元符号($)来标注以特定字符末尾的URL

在指令最后加入”$”。好比,若是你像屏障所有以 .pdf末尾的链接,那么你的可以这样设置你的 robots.txt:

User-agent: * 
Disallow: /*.pdf$

这个例子中,搜索引擎无法抓取任何以 .pdf 末尾的链接,意味着搜索引擎无法抓取 /file.pdf,然则搜索引擎可以抓取这个 /file.pdf?id=68937586,由于它没有以”.pdf“末尾。

相同的用户署理只声明一次

若是你多次声明相同的用户署理,谷歌虽然并不否决,依然可以连系在一起执行。好比,像下方这样…

User-agent: Googlebot
Disallow: /a/

User-agent: Googlebot 
Disallow: /b/

… 谷歌蜘蛛不会抓取两其中任何一个目录。

虽然这么说,最好只声明一次,由于这不会发生疑心。换句话说,保持简朴明晰,可以让你不会泛起致命的错误。

使用精准的指令阻止以外的错误

若是不使用精准的指令,那么很可能会导致SEO中发生致命的错误。假设你现在有一个多语言的网站,正在操作一个德语版本的 /de/ 子目录。

由于还未完成,以是暂时你想阻止搜索引擎抓取这个目录内的内容。

下方的robots.txt文件可以屏障搜索引擎抓取这个目录以及下方的所有内容:

User-agent: *
Disallow: /de

然则,同时这也阻止了搜索引擎抓取所有以

/de

.开头的内容。

好比:

  • /designer-dresses/
  • /delivery-information.html
  • /depeche-mode/t-shirts/
  • /definitely-not-for-public-viewing.pdf

这种情形,解决方式也很简朴,只需要在后面加个斜杠:

User-agent: *
Disallow: /de/

使用注释给开发者提供说明

使用注释功效,可以向开发者说明你的robots.txt指令的用途——很可能是未来的你自己。若是需要使用注释,只需要以(#)开头即可:

# This instructs Bing not to crawl our site.
User-agent: Bingbot
Disallow: /

蜘蛛会忽略所有以(#)开头的指令。

针对差其余子域名使用差其余robots.txt文件

Robots.txt只在当前所属的子域名中生效。若是你需要控制差其余子域名抓取规则,那么你就需要脱离设置差其余robots.txt文件。

好比,你的主站运行在 domain.com 上,你的博客运行在 blog.domain.com 上。那么你就需要有两个robots.txt文件。一个是放在主站的根目录中,一个是放在博客站的根目录中。

Robots.txt文件示例

下方使一些 robots.txt的文件示例。这些主要是为了给你一些启发。然则若是恰巧相符你需求的,可以请将其复制粘贴到记事本文档中,另存为“ robots.txt”,然后将其上传到对应的根目录中。

允许所有蜘蛛接见

User-agent: * 
Disallow: /

小提醒.在指令后没有声明URL会使该指令变得多余。换句话说,搜索引擎会忽略它。这就是为什么这里的disallow指令是无效的缘故原由。搜索引擎仍然可以抓取所有页面和文件。

不允许任何蜘蛛接见

User-agent: *
Disallow: /

针对所有蜘蛛屏障一个目录

User-agent: *
Disallow: /folder/

针对所有蜘蛛,屏障一个目录(只保留一个页面)

User-agent: *
Disallow: /folder/
Allow: /folder/page.html

针对所有蜘蛛,屏障一个文件

User-agent: *
Disallow: /this-is-a-file.pdf

针对所有蜘蛛,屏障所有的pdf文件

User-agent: *
Disallow: /*.pdf$

针对谷歌蜘蛛,屏障所有带参数URL

User-agent: Googlebot
Disallow: /*?

如何检测robots.txt文件中的问题?

Robots.txt很容易泛起错误,因此检测是十分有需要的。

为了检测robots.txt相关问题,你只需要查看 Search Console(谷歌资源管理器)中的 “Coverage(笼罩率)”讲述。下面就是一些常见的错误,包罗它们的寄义以及解决方式:

是否需要检查与某个页面相关的错误?

将特定URL放入Search Console(谷歌资源管理器)的URL Inspection tool(网站检测)。若是被robots.txt屏障了,那么就会像下方这样显示:

深入领会Robots.txt及如何规范地编写折纸SEO

深入领会Robots.txt及如何规范地编写折纸SEO

小提醒. 海内站长可以使用百度搜索资源平台提供的相关功效检测!

提交的URL被robots.txt屏障了

深入领会Robots.txt及如何规范地编写折纸SEO

这意味着至少在你提交的Sitemap当中,至少有一条URL被robots.txt屏障了。

若是你是准确的确定了你的sitemap,而且不包罗canonicalized(规范标签)、noindexed(指定不索引)、redirected(跳转)等页面,那么你提交的所有的链接都不应该被robots.txt屏障。若是被屏障了,观察受影响的页面,然后响应地调整robots.txt文件,删除阻止该页面的指令。

你可以使用谷歌的robots.txt检测工具或者百度搜索资源平台的robots文件检测来查看哪条指令在阻止接见。在修改的时刻你需要小心,由于很容易就会影响到其它的页面以及文件。

深入领会Robots.txt及如何规范地编写折纸SEO

被robots.txt屏障了

深入领会Robots.txt及如何规范地编写折纸SEO

这代表,当前你有内容被robots.txt屏障了,然则暂时没有被谷歌索引。

若是这个内容很主要,而且需要被索引,删除robots.txt中的阻碍抓取的指令。(同时你得注重这个内容是否被索引符号标注为不索引状态)若是你需要屏障的内容也是不需要谷歌索引的话,那么你可以去掉屏障抓取的指令,然后使用meta robots标签、或者是x-robots HTTP头部指令进行屏障——这样就可以保证内容不被索引。

小提醒.

若是想要将页面从索引中删除,必须先移除抓取阻碍。否则,谷歌无法抓取到页面的noindex(不索引)符号、或是HTTP头部指令——这样只会让搜索引擎保持原有的索引状态。

索引然则被robots.txt屏障

深入领会Robots.txt及如何规范地编写折纸SEO

这意味着虽然一部门内容被robots.txt屏障了,然则依然是被谷歌索引的。

同样原理,若是你希望从搜索引擎中去除该内容,robots.txt并不是最好的选择。移除抓取阻碍,并使用meta robots符号、或者是x-robots HTTP头部指令防止被索引。

若是你是不小心屏障了这个内容,而且希望内容被谷歌索引的话,只需要在robots.txt中移除阻碍索引的指令即可。这样可以辅助你的内容更好的展现在谷歌当中。

FAQs

下面是经常被问到的,然则并没有涵盖在上方内容中的一些问题。你可以在谈论中留下你的问题,我们会凭证情形进行更新。

(1)robots.txt文件巨细最大是若干?

500 千字节 (也许).

(2)WordPress中的robots.txt在那里?

例子: domain.com/robots.txt.

(3)如何在Wordpress当中编辑robots.txt?

你可以手动编辑,或者使用WordPress SEO优化插件其中的一个。好比像Smart SEO Tool,它可以让你直接在后台编辑robots.txt文件。

若是我通过robots.txt屏障了不索引的页面有什么影响?

谷歌则无法看到你noindex的符号,由于它无法抓取这个信息。

最后的想法

Robots.txt是一个简朴、然则很壮大的我呢见。明智地使用它,可以对SEO发生起劲影响。随意使用它,可能会造成灾难性的结果。

(via ahrefs.com 译者,Park Cheng,文章有改动)

26个SEO优化相关的Chrome浏览器扩展插件

本文来自网络,不代表折纸SEO立场,转载请注明出处:https://www.30th-feb.com/2053

作者: DAR_KING

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

联系我们

在线咨询: QQ交谈

邮箱: luckiestmjt@163.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部