搜索引擎优化最令人困惑的方面之一是学习如何写一个机器人.TXT文件,以确保搜索引擎以有效的方式抓取您的网站,并且只索引您希望在搜索结果中找到的内容. 本指南旨在创建一个机器人.TXT文件让您的网站任务更容易理解.
本指南还重点介绍了常见的机器人.WordPress网站的txt优化. WordPress CMS占了将近 20% of all websites,使其成为世界上最常见的CMS. However, 只要考虑到不同的URL结构,大部分建议都可以应用到另一个CMS上.
What is a Robots.txt File? Why is it Important?
The robots.TXT文件只是一个“.txt”文件被上传到你的根文件夹(通常通过FTP),其中包含一个爬行指令列表,当搜索引擎访问你的网站进行爬行时,你提供给它们. View mine here 如果你不熟悉它的样子. 太无聊了.
访问您网站的机器人.TXT文件是搜索机器人爬行过程的第一步,并优化你的机器人.TXT文件作为你的第一道防线,确保搜索引擎机器人在爬行你的网站时明智地花时间. 这对于大型网站尤其重要,因为搜索机器人的爬行预算可能不允许对网站进行完整的爬行.
The Robots.txt User Agent
机器人内部的规则.TXT文件可以指向所有爬虫程序或特定爬虫程序,而 User-agent 协议用于指定规则所属的爬虫. 它应该列在规则的上方(针对每个用户代理).
Using the User-Agent: * 协议将应用规则到所有爬虫, however, 在为机器人中的特定爬虫程序编写规则时,您可能需要使用以下其他常见的用户代理.txt file. 你可以找到一个更完整的列表 here.
- Google (General) —User-agent: Googlebot
- Google (Image) —User-agent: Googlebot-Image
- Google (Mobile) —User-agent: Googlebot-Mobile
- Google (News) —User-agent: Googlebot-News
- Google (Video) —User-agent: Googlebot-Video
- Bing (General) – User-agent: Bingbot
- Bing (General) – User-agent: msnbot
- Bing (Images & Video) —User-agent: msnbot-media
- Yahoo! – User-agent: slurp
The Robots.txt Disallow Rule
主要的规则涉及机器人.TXT文件的优化是“禁止”规则. 它指示搜索引擎不抓取特定的URL, 由查询字符串规则(通常是使用星号的通配符规则)确定的特定文件夹或url集合. 这也会导致url在搜索引擎中没有被索引(或被“抑制”,如果他们已经被索引).
disallow规则应该用于相对路径url, 并且只能控制搜索机器人在你自己网站上的爬行行为. 它的格式如下:
Disallow: rule-goes-here
“规则到此”部分应该替换为您想要放置的任何规则. Again, 它可以是一个特定的URL, 由查询字符串规则确定的特定子文件夹或url的集合. 以下是它们各自的一些例子:
禁止指定URL
下面的规则将指示搜索引擎不要抓取http://www上的URL.domain.com/specific-url-here/.
不允许:/ specific-url-here /
禁用特定子文件夹
下面的规则将指示搜索引擎不抓取位于http://www的子文件夹中的任何url.domain.com/subfolder/.
Disallow: /subfolder/
通过查询字符串禁用url
下面的规则将指示搜索引擎不抓取任何以http://www开头的url.domain.com/confirmation,不管URL的初始部分后面跟着什么字符. 如果您有许多使用类似结构构建的url,这将很有帮助, 但你不希望搜索引擎抓取或索引它们(i.e. -电子邮件获取表单的确认页).
不允许:/ *确认
Note: You must be careful with this rule, 因为你可以无意中禁止抓取你实际上想让搜索引擎抓取和索引的重要页面.
常见的WordPress子文件夹 & 查询要禁止的字符串
WordPress CMS有一组常见的子文件夹,你想限制搜索引擎爬取. 下面是一个可以使用“禁止”规则的文件夹列表:
- WordPress Admin – /wp-admin/
- WordPress Includes – /wp-includes/
- WordPress Content – /wp-content/
- 内部搜索结果 – /?s=*
For WordPress sites, however, “允许”你的/wp-content/uploads/子文件夹被搜索引擎抓取是很重要的,这样你的图片就可以被索引. 因此,你将需要如下规则:
允许:/ wp-content /上传/
The Robots.txt File “Allow” Rule
一旦谷歌 announced 它希望能够抓取CSS和javascript,以便呈现页面,就像用户将看到它. 方法中添加以下规则是一种简单的方法 User-agent: Googlebot section of your robots.txt file.
User-agent: Googlebot Allow: *.js* Allow: *.css*
However, 我发现谷歌并不总是尊重这些“允许”规则,如果你有CSS和javascript文件位于不同的子文件夹.
下面的WordPress子文件夹通常不允许爬行, 但可能有javascript和CSS文件,谷歌不能访问,除非你提供特定的“允许”命令:
- /wp-admin/
- /wp-includes/
- /wp-content/themes/
- /wp-content/plugins/
为了解锁这些子文件夹中的javascript和CSS文件, 此外,任何javascript和CSS文件不包括在这些子文件夹, 需要遵循以下规则:
User-agent: Googlebot Allow: /*.js* Allow: /*.css* Allow: /wp-content/*.js* Allow: /wp-content/*.css* Allow: /wp-includes/*.js* Allow: /wp-includes/*.css* 允许:/ wp-content /插件/ *.css* 允许:/ wp-content /插件/ *.js* 允许:/ wp-content /主题/ *.css* 允许:/ wp-content /主题/ *.js*
机器人的“NoIndex”规则.txt
谷歌声明他们可能会尊重你的机器人中的“Nondex”规则.txt file, per this 谷歌网站管理员Hangout with John Mueller谷歌知名站长趋势分析师.
However, 一个月后,约翰·穆勒在推特上表示,他不建议在机器人中使用“NOINDEX”规则.txt file.
所以,使用这个规则取决于你. 它不能取代用元机器人和X-robots标签控制索引的最佳实践, 但是,如果技术限制将其作为最后的手段,在紧要关头它可能是有用的(仅对谷歌).
这个规则很容易实现. 下面是一些例子:
NOINDEX: /xmlrpc.php* NOINDEX: / wp-includes / NOINDEX: /cgi-bin* NOINDEX: */feed* NOINDEX: /tag* NOINDEX: / public_html *
石庙咨询公司的人做了一个 test “最终,机器人中的NoIndex指令.TXT非常有效.“我在我的机器人中使用NoIndex规则取得了很好的成功.txt文件,以获得一些离散/标签/页面的谷歌的索引以及. 所以,请随意使用这条规则来进一步优化您的机器人.txt file. However, 考虑它只适用于谷歌, 谁可以在任何时候选择不尊重它.
在Robots中链接到XML站点地图.txt File
搜索引擎也会在你的机器人中寻找XML站点地图.txt file. 如果您有多个XML站点地图, 例如一个视频XML站点地图,除了你的主要XML站点地图, 然后你需要在这里链接它们. 应该在机器人中链接XML站点地图.TXT文件如下(通常在你的网站地图的底部):
Sitemap: http://www.domain.com/sitemap_index.xml Sitemap: http://www.domain.com/video-sitemap.xml
Testing Robots.谷歌搜索控制台规则
谷歌提供了两个工具 Google Search Console 这对于测试你的机器人来说非常棒.TXT文件规则,以确保它们得到尊重,并确保你正确地解锁javascript, CSS和谷歌需要抓取的其他重要文件,以便像用户看到的那样呈现页面.
Fetch as Google
The Fetch as Google 谷歌中的工具是一个很好的起点,可以发现谷歌由于机器人而无法抓取和渲染的任何阻塞资源.txt file rules. 通常报告的问题是javascript文件,CSS文件和被阻塞的图像.
在使用此工具时,请注意用于测试机器人更改的任何阻塞资源.txt file rules. 您希望没有被阻塞的资源,或者只有 external 阻塞的资源(您无法控制). 下面的屏幕截图显示了我的机器人中只有两个外部资源.谷歌无法抓取txt文件. That’s good.
Robots.txt Tester
一旦确定了任何阻塞的资源,就可以使用 Robots.txt Tester 测试新规则的执行情况,并确定是否允许Googlebot抓取这些规则. 一旦你的规则最终确定,将它们添加到你的活动机器人.txt file. 下面是这个工具的样子:
Additional Robots.txt Testing Tools
感谢Max Prin, Adam Audette和Merkle的团队创造了这个 超级棒的测试工具 它允许你在没有访问网站的谷歌搜索控制台帐户的情况下测试被封锁的资源. 他们甚至正在处理一个特殊的要求(来自你的真心),允许提供你自己的改装机器人.txt file rules. 这将使我们能够看到Googlebot和其他机器人(关于被阻止的资源)在推送它们之前(或在开发站点上工作)如何对规则的自定义修改做出反应。. 一定要去看看.
Other Robots.txt Considerations
作为一个每天都看谷歌搜索结果的人, 保持在技术搜索引擎优化新闻的顶部, 并帮助客户完成复杂的技术SEO项目, 我还遇到了其他一些与机器人有关的问题.TXT文件,你可能会发现有用的.
指向不允许url的外部链接
如果搜索引擎发现一个外部链接到一个URL是不允许通过你的机器人.TXT文件,他们可能会忽略你的规则和爬行页面无论如何由于外部信号. 这里是谷歌具体说明(source):
However, robots.txt不允许不能保证页面不会出现在结果中:谷歌仍然可以决定, 基于外部信息,如传入链接, that it is relevant. 如果您希望显式地阻止一个页面被索引, 你应该使用noindex robots元标记或X-Robots-Tag HTTP头. 在这种情况下,您不应该禁止robots中的页面.Txt,因为为了让标签被看到和服从,必须爬取页面.
最后一句话提供了额外的信息. 如果你想从谷歌的索引中删除一个页面, it needs to have a “noindex” meta robots tag in the
or an X-Robots-Tag in the HTTP header. 请记住,如果你试图从谷歌的索引中删除一堆低质量的url,并考虑何时通过机器人显示不允许他们.txt file.被屏蔽的页面仍然出现在搜索结果中
你网站上那些在搜索引擎中被索引的页面,在被你的机器人禁止之前.TXT文件仍然可能出现在搜索引擎索引时进行 site:domain.com query, 但在他们下面有一条消息(如谷歌),声明“由于该站点的机器人,此结果的描述不可用.txt”. 把它们弄出来的方法是在你的机器人里解开它们.txt文件(删除“disallow”规则)并应用一个“noindex”元机器人标签(或X-robots标签). 一旦你确认搜索引擎已经从他们的索引中退出, 你可以在你的机器人中再次阻止他们.txt file.
PPC活动跟踪url
当你使用谷歌运行的付费搜索/社交活动跟踪url时,在“禁止”规则中使用通配符时要小心, Bing, Facebook, etc. 这些服务的“广告机器人”需要抓取你的活动跟踪url, 所以你无法阻挡它们.
因此,您需要添加一个 user-agent 每个“广告机器人”包含一个“允许”规则的每个活动跟踪URL模式(i.e. – Allow: /*?utm_medium=*).
下面是谷歌、必应和Facebook的规则示例 ?utm_medium 以跟踪代码为例.
用户代理:Adsbot-Google Allow: /*?utm_medium=*
User-agent: AdIdxBot Allow: /*?utm_medium=*
User-agent: Facebot Allow: /*?utm_medium=*
你可以在以下链接中找到这些爬虫的更多细节:
过滤/分面url & Crawl Traps
如果你有一个大型网站,有扩展功能(比如分类页面上的过滤和分面url), 然后用搜索机器人模拟器爬行你的网站,比如 Screaming Frog 可以帮助搜索引擎揭示一些潜在的抓取陷阱吗.
爬行完成后, 寻找那些显然不是你想让搜索引擎抓取和索引的高质量页面的url模式. 在机器人中为它们编写通配符“Disallow”规则.TXT文件,以防止搜索引擎浪费时间爬它们(而不是完全爬你实际上想要被爬和索引的内容). 我见过的最常见的陷阱之一是过滤/分面url.
使用我优化的WordPress机器人.txt File
I welcome you to use my WordPress robots.txt file as a template. 我已经测试了无数次,以确保我的规则不会阻塞任何重要的内容, 并确保谷歌可以抓取我的javascript或CSS文件. 可以随意使用它作为起点,但一定要使用 Fetch as Google and Robots.txt Tester 谷歌搜索控制台中的工具,为您的特定网站定制它. 您还需要自定义XML站点地图URL(当然!).
Have questions? 请在评论中留言,我很乐意回答.