这就是robots元标记和x-robots-tag HTTP标头的作用。
让我们从一开始就把一件事弄清楚。你不能用robots.txt控制索引。这是一个常见的误解。
robots.txt中的noindex规则从未被谷歌正式支持。2019年7月,它被正式弃用。
内容 技术SEO新手?看看我们的技术SEO初学者指南
什么是机器人元标签?
机器人元标记是一个HTML片段,告诉搜索引擎机器人在某个页面上可以做什么,不可以做什么。它允许你控制抓取、索引以及如何在搜索结果中显示该页面的信息。它被放置在网页的
部分。例子
为什么机器人元标签对SEO很重要?
元机器人标签通常用于防止页面出现在搜索结果中,尽管它确实有其他用途(稍后会详细介绍)。
您可能希望防止搜索引擎对不同类型的内容进行索引:
对用户来说几乎没有价值的薄页面;
暂存环境中的页面;
管理和感谢页面;
内部搜索结果;
PPC登陆页;
关于即将到来的促销、竞赛或产品发布的页面;
重复内容(使用规范标签来建议索引的最佳版本);
一般来说,你的网站越大,你就越需要管理可抓取性和索引。您还希望谷歌和其他搜索引擎尽可能高效地抓取和索引您的页面。正确地将页面级指令与robots.txt和站点地图结合起来对SEO至关重要。
机器人元标签的值和属性是什么?
机器人元标签由两个属性组成:名称和内容。
您必须为每个属性指定值。让我们来看看这些是什么。
的名字属性和user-agent值
name属性指定哪些爬虫应该遵循这些指令。这个值也被称为用户代理(UA),因为爬行程序需要用它们的UA来标识才能请求页面。您的UA反映您正在使用的浏览器,但是谷歌的用户代理是,例如,Googlebot或Googlebot-image。
UA值“robots”适用于所有爬虫。您还可以根据需要在
节中添加任意数量的机器人元标记。例如,如果你想阻止你的图片在谷歌或Bing图片搜索中出现,添加以下元标签:旁注。名称和内容属性都不区分大小写。“Googlebot-Image”、“msnbot-media”和“Noindex”属性也适用于上面的示例。
的内容属性和抓取/索引指令
content属性提供了关于如何抓取和索引页面信息的说明。如果没有可用的机器人元标记,爬虫将其解释为索引并跟踪。这允许他们在搜索结果中显示页面并抓取页面上的所有链接(除非rel= “ nofollow “标签另有说明)。
谷歌支持的content属性取值如下:
所有
默认值是“ index, follow ”,不需要使用这个指令。
noindex
指示搜索引擎不索引该页面。这使得它无法显示在搜索结果中。
nofollow
阻止机器人抓取页面上的所有链接。请注意,这些网址仍然可能是可索引的,特别是如果他们有反向链接指向他们。
没有一个
noindex, nofollow的组合。避免使用此功能,因为其他搜索引擎(如Bing)不支持此功能。
noarchive
防止谷歌在SERP中显示页面的缓存副本。
notranslate
防止谷歌提供SERP中页面的翻译。
noimageindex
防止谷歌索引嵌入在页面上的图像。
unavailable_after:
告诉谷歌在指定的日期/时间之后不要在搜索结果中显示页面。基本上是一个带有计时器的noindex指令。日期/时间必须使用RFC 850格式指定。
nosnippet
选择退出SERP中的所有文本和视频片段。它同时也可以作为noarchive使用。
重要提示
自2019年10月以来,谷歌提供了更细粒度的选项来控制是否以及如何在搜索结果中显示您的片段。这在一定程度上是由于欧洲版权指令,该指令首先由法国通过其新的版权法实施。
至关重要的是,这项立法已经影响到所有的网站所有者。如何?因为谷歌不再显示片段(文本,图像或视频)从您的网站到法国的用户,除非您选择使用他们的新机器人元标签。
我们将在下面讨论这些新标签的工作原理。也就是说,如果这关系到你的业务,你正在寻找一个快速的解决方案,在你网站的每个页面上添加以下HTML片段,告诉谷歌你不想限制你的片段:
注意,如果您使用Yoast SEO,这段代码会自动添加到每个页面上,除非您添加了noindex或nosnippet指令。
max-snippet:
指定谷歌可以在其文本片段中显示的最大字符数。使用0将选择退出文本片段,-1声明对文本预览没有限制。
下面的标签将限制设置为160个字符(类似于标准元描述长度):
max-image-preview:
告诉谷歌是否可以使用图像片段,以及它可以使用多大的图像。这个指令有三个可能的值:
不显示任何图像片段
标准-可以显示默认的图像预览
大-最大可能的图像预览可以显示
建议使用较大的值和宽度至少为1200px的图像,因为这增加了在谷歌Discover中获得推荐的可能性。
max-video-preview:
设置视频片段的最大秒数。与文本片段一样,0将选择完全退出,-1没有限制。
下面的标签将允许谷歌最多显示15秒:
关于使用A的简短说明 data-nosnippet HTML属性
除了2019年10月引入的新机器人指令外,谷歌还引入了data-nosnippet HTML属性。您可以使用它来标记不希望谷歌用作代码片段的文本部分。
这可以在HTML的div、span和section元素上完成。data-nosnippet被认为是一个布尔属性,这意味着它在有或没有值的情况下都是有效的。
这是一个段落中的一些文本,可以显示为一个片段不包括这部分
nositelinkssearchbox
防止谷歌显示搜索框作为您的网站链接的一部分。
indexifembedded
允许谷歌用noindex指令索引通过iframe或类似HTML标签嵌入页面的内容。它只在两个指令都存在的情况下工作,就像这样:
b谷歌的文档很好地解释了这里的用例。
使用这些指令
大多数seo不需要超越noindex和nofollow指令,但知道还有其他选择是很好的。请记住,我们在这里讨论的所有指令都是基于谷歌支持的。其他搜索引擎有一些独特的指令,但它们不值得深入研究。
让我们来看看与Bing的对比:
你可以一次使用多个指令并将它们组合起来。但是如果它们冲突(例如,“noindex, index”)或者一个是另一个的子集(例如,“noindex, noarchive”),谷歌将使用最严格的那个。在这些情况下,它将只是“noindex”。
旁注。代码片段指令可以被结构化数据覆盖,从而允许谷歌使用注释中的任何信息。如果您希望阻止谷歌显示片段,请相应地调整注释,并确保您与谷歌没有任何许可协议。
如何设置机器人元标签
现在您已经了解了所有这些指令的作用和外观,是时候在您的网站上进行实际实现了。
机器人元标签属于页面的部分。如果使用HTML编辑器(如notepad++或括号)编辑代码,则非常简单。但是如果你使用的是带有SEO插件的CMS呢?
让我们关注一下最受欢迎的选择。
使用Yoast SEO在WordPress中实现机器人元标签
转到每篇文章或页面编辑块下方的“高级”部分。根据您的需要设置机器人元标签。下面的设置将实现“ noindex, nofollow ”指令。
“Meta robots advanced”行让您可以选择实现noindex和nofollow以外的指令,例如noimageindex。
您还可以选择在站点范围内应用这些指令。转到Yoast菜单中的“搜索外观”。在这里,您可以在所有帖子、页面上设置元机器人标签,或者仅在特定的分类法或存档上设置元机器人标签。
旁注。在WordPress中,Yoast并不是控制元机器人标签的唯一方法。有很多其他WordPress SEO插件具有类似的功能。
什么是x -机器人标签?
robots元标签可以很好地在HTML页面上实现noindex指令。但是,如果您希望阻止搜索引擎对图像或pdf等文件进行索引,该怎么办呢?这就是x-robots标签发挥作用的时候。
X-Robots-Tag是一个从web服务器发送的HTTP报头。与meta robots标记不同,它不放在页面的HTML中。这是它的样子:
检查HTTP头最简单的方法是使用免费的SEO研究院 SEO工具栏浏览器扩展。只需要转到HTTP标头选项卡,看看x - robots标签是否存在:
如何设置x -机器人标签
配置取决于您使用的web服务器的类型以及您希望将哪些页面或文件保留在索引之外。
这行代码看起来像这样:
标题集X-Robots-Tag “ noindex, nofollow ”
这个例子考虑了最广泛的服务器类型—apache。添加HTTP头的最实用的方法是修改主配置文件(通常是httpd.conf)或.htaccess文件。听起来熟悉吗?这也是重定向发生的地方。
对x-robots标记使用与元机器人标记相同的值和指令。也就是说,实现这些变化应该留给有经验的人。备份是你的朋友,因为即使是一个小的语法错误也可以破坏整个网站。
专业技巧
如果您使用支持Edge SEO的无服务器应用程序的CDN,则可以修改边缘服务器上的机器人元标记和X-Robots-Tags,而无需更改底层代码库。
何时使用robots元标签与x-robots标签?
虽然添加HTML片段看起来是最简单、最直接的选择,但在某些情况下,它还是不够。
html文件
不能将HTML片段放入pdf或图像等非HTML文件中。x -机器人标签是唯一的办法。
下面的代码片段(在Apache服务器上)将在站点上的所有PDF文件上配置noindex HTTP头。
大规模应用指令
如果您需要对整个(子)域、子目录、带有某些参数的页面或任何需要批量编辑的内容建立索引,请使用x-robots-tags。这是更容易。
HTTP头修改可以使用正则表达式匹配url和文件名。在HTML中使用搜索和替换功能进行复杂的批量编辑通常需要更多的时间和计算能力。
来自b谷歌以外的搜索引擎的流量
谷歌同时支持meta robots标签和x-robots标签,但并不是所有的搜索引擎都支持。
例如,捷克搜索引擎Seznam只支持机器人元标签。如果您想控制这个搜索引擎如何抓取和索引您的页面,那么使用x-robots标签是行不通的。您需要使用HTML片段。
如何避免抓取和(去)索引错误
您希望显示所有有价值的页面,避免重复的内容和问题,并将特定页面排除在索引之外。如果你管理一个大型网站,那么抓取预算管理是另一件需要注意的事情。
让我们来看看人们对机器人指令最常犯的错误。
错误#1:向robots.txt中不允许的页面添加noindex指令
永远不要禁止抓取你试图在robots.txt中去索引的内容。这样做可以防止搜索引擎重新抓取页面并发现noindex指令。
如果你觉得你可能在过去犯了这样的错误,用SEO研究院网站管理员工具免费抓取你的网站。查找带有“Noindex page receive organic traffic”错误的页面。
没有索引的页面接收自然流量显然仍然被索引。如果您最近没有添加noindex标记,很可能是由于robots.txt文件中的抓取阻塞。检查问题并适当地修复它们。
错误2:糟糕的站点地图管理
如果您试图使用meta robots标记或x-robots标记去索引内容,请在成功去索引之前不要将其从站点地图中删除。否则,谷歌重新抓取页面的速度可能会变慢。
一般来说,你放在站点地图上的任何东西都会很快被抓取到——Gary“”Illyes (@methode) 2015年10月13日
为了进一步加快去索引过程,可以将站点地图中的lastmod日期设置为添加noindex标记的日期。这鼓励了爬行和再处理。
旁注。约翰说的是404页。也就是说,我们假设这对其他更改也有意义,例如当您添加或删除noindex指令时。重要提示
从长远来看,不要在站点地图中包含没有索引的页面。一旦内容被去索引,将其从站点地图中删除。
如果你担心旧的,成功去索引的内容可能仍然存在于你的站点地图中,检查SEO研究院网站管理员工具中的“站点地图中没有索引页”错误。
错误#3:没有从生产环境中删除noindex指令
防止机器人在暂存环境中爬行和索引任何东西是一个很好的实践。然而,有时它被推入生产,被遗忘,你的自然流量暴跌。
更糟糕的是,如果您使用301重定向进行站点迁移,那么自然流量下降可能不会那么明显。如果新的url包含noindex指令或在robots.txt中被禁止,你仍然会在一段时间内收到来自旧url的自然流量。谷歌可能需要几周的时间来索引旧的url。
每当你的网站上有这样的变化时,请密切关注可索引性报告中的noindex警告:
为了防止将来出现类似的问题,在开发团队的检查表中添加一些说明,以便在投入生产之前从robots.txt和noindex指令中删除不允许规则。
错误#4:在robots.txt中添加“秘密”url,而不是不索引它们
开发人员经常试图通过禁止访问网站robots.txt文件来隐藏关于即将到来的促销、折扣或产品发布的页面。这是一种不好的做法,因为人类仍然可以查看robots.txt文件。因此,这些页面很容易泄露。
通过将“秘密”页面从robots.txt中删除并不索引它们来解决这个问题。
最终的想法
正确理解和管理网站的抓取和索引是SEO的基石。这并不复杂。好吧,至少在比较其他棘手的东西在技术搜索引擎优化领域。
我希望您现在已经准备好大规模地将最佳实践应用于长期解决方案。
有问题吗?请在Twitter上告诉我。