技术SEO

Robots Meta Tag 和 X-Robots-Tag 解释

  作者:Li Bai    

您网站上的某些内容不是搜索引擎索引所必需的。为防止索引必要的页面,您可以使用 robots 元标记或 x-robots-tag。

但是,robots.txt 和 robots 元标记被错误使用的情况并不少见。这会导致混乱和冲突的指令无法达到想要的结果:防止页面被索引。

在本指南中,我们希望帮助您了解如何使用机器人元标记和 x-robots-tag 来控制您网站内容的索引并帮助您发现常见错误。

具体来说,我们将看看:

什么是机器人元标签?

Robots 元标记,也称为robots 标记,是一段 HTML 代码,位于网页的 <head></head> 部分,用于控制搜索引擎如何抓取和索引 URL。

这是页面源代码中的机器人元标记的样子:

<meta name="robots" content="noindex" />

这些标签是特定于页面的,允许您指示搜索引擎如何处理页面以及是否将其包含在索引中。 

机器人元标签有什么用?

机器人元标记用于控制 Google 如何为您的网页内容编制索引。这包括:

  • 是否在搜索结果中包含页面
  • 是否遵循页面上的链接(即使它被阻止被索引)
  • 请求不索引页面上的图像
  • 请求不在 SERP 上显示网页的缓存结果
  • 请求不在 SERP 上显示页面的片段(元描述)

为了了解如何使用 robots 元标记,我们需要查看不同的属性和指令。我们还将分享代码示例,您可以将这些示例放入页面标题中,以请求搜索引擎以某种方式为您的页面编制索引。

了解机器人元标记属性和指令

一旦您了解了如何设置两个属性:namecontent ,使用 robots 元标记就非常简单 。这两个属性都是必需的,因此您必须为每个属性设置一个值。

让我们更详细地看一下这些属性。

姓名

姓名的名称属性控件抓取工具和机器人(用户代理,也称为UA)应遵循包含在机器人元标记中的指令。 

要指示所有爬网程序按照说明进行操作,请使用:name=“robot”

在大多数情况下,您会希望使用它作为默认值,但您可以根据需要使用尽可能多的不同元机器人标签来为不同的爬虫指定指令。 

在指示不同的爬虫时,简单来说就是使用多个标签的情况:

<meta name="googlebot" content="noindex">
<meta name="googlebot-news" content="nosnippet">

有数百个不同的用户代理。最常见的是:

  • Google:Googlebot(您可以在此处查看Google 抓取工具的完整列表)
  • Bing:Bingbot(您可以在此处查看Bing 爬虫的完整列表)
  • DuckDuckGo : DuckDuckBot
  • 百度百度蜘蛛
  • Yandex : YandexBot

内容

内容的内容属性是你用什么来给指定的用户代理的说明。

重要的是要知道,如果您没有在网页上指定元机器人标签,默认情况下会为页面编制索引并跟踪所有链接(除非它们内联指定了 rel=”nofollow” 属性)。 

您可以使用的不同指令包括:

  • index(在索引中包含页面)[注意:如果没有指定noindex,则不需要包含此项,默认为索引)
  • noindex(不包含在索引中的页面或显示在 SERP 上)
  • follow(点击页面上的链接以发现其他页面)
  • nofollow(不要点击页面上的链接)
  • none(指定 noindex、nofollow 的快捷方式)
  • all(指定索引的快捷方式,跟随)
  • noimageindex(不索引页面上的图像)
  • noarchive  (不在 SERP 上显示页面的缓存版本)
  • nocache(这与 noarchive 相同,但仅适用于 MSN)
  • nositelinkssearchbox(不在 SERP 上显示您网站的搜索框)
  • nopagereadaloud(不允许语音服务大声朗读您的页面)
  • notranslate(不在 SERP 上显示页面的翻译)
  • unavailable_after(指定不应为页面编制索引的时间)

你可以看到指令的完整列表,谷歌支持 这里 和必应支持的人在这里。 

元机器人标签代码示例

如果您正在寻找可用于控制搜索引擎如何抓取和索引您的网页的元机器人标记示例,您可以使用以下查看最常见使用场景的示例:

不要索引页面,而是按照链接到其他页面:

<meta name="robots" content="noindex, follow" />

不要索引页面,也不要点击其他页面的链接:

<meta name="robots" content="none" />

将页面编入索引,但不要点击其他页面的链接:

<meta name="robots" content="nofollow" />

不要在 SERP 上显示页面缓存的副本:

<meta name="robots" content="noarchive" />

不要索引页面上的图像:

<meta name="robots" content="noimageindex" /

在指定日期/时间之后不在 SERP 上显示页面:

<meta name="robots" content="unavailable_after: Friday, 01-Jan-21 12:59:59 ET" />

如果需要,您可以将指令组合到一个标签中,用逗号分隔它们。 

例如,假设您不希望跟踪页面上的任何链接,并且还希望防止图像被编入索引。用:

<meta name="robots" content="nofollow, noimageindex" /

使用 Meta Robots 标签来控制代码片段

虽然元机器人标签最常用于控制页面是否被编入索引以及该页面上的链接是否被搜索引擎抓取,但它们也可用于控制 SERP 上的片段。

谷歌于 2019 年 9 月推出,写道网站管理员能够使用“一组方法,允许对为您的页面显示的预览内容进行更细粒度的配置。”

这些以以下元机器人标签的形式出现:

  • nosnippet(不在 SERP 上显示页面的片段/元描述)
  • max-snippet:[number](以字符为单位指定片段的最大文本长度)
  • max-video-preview:[number](以秒为单位指定视频预览的最大持续时间)
  • max-image-preview:[setting](将图像预览的最大尺寸指定为“无”、“标准”或“大”)

使用以下代码来控制网页片段的显示方式:

不要在 SERP 上显示页面的片段:

<meta name="robots" content="nosnippet" />

将文本片段的最大长度设置为 150 个字符:

<meta name="robots" content="max-snippet:150" />

将视频预览的最长持续时间设置为 20 秒:

<meta name="robots" content="max-video-preview:30" />

将图像预览的最大尺寸设置为大:

<meta name="robots" content="max-image-preview:large" />

这些也可以结合起来以更好地控制页面的代码段。假设您想将代码片段的最大长度设置为 150 个字符并允许大图像预览,请使用:

<meta name="robots" content="max-snippet:150, max-image-preview:large" />

如果您在法国有观众,则需要密切注意这些标签,因为法国版权法禁止 Google 为您的网站显示任何片段,除非您选择使用这些标签。

如果您不想对您的代码段设置任何限制,您可以在您的页面标题中添加以下站点范围:

<meta name="robots" content="max-snippet:-1, max-image-preview:large, max-video-preview:-1" />

什么是 X‑Robots-Tag?

控制搜索引擎如何抓取和索引您的网页的另一种方法是使用 x-robots-tag 而不是元机器人标签。

虽然在 HTML 页面中实现元机器人标签相对简单,但 x-robots-tag 更为复杂。如果要控制非 HTML 内容的处理方式,例如 PDF,则需要使用 x-robots-tag。

这是一个 HTTP 标头响应,而不是一个 HTML 标签,任何可以用作元机器人标签的指令也可以用作 x-robots-tag。

以下是 x-robots-tag 标头响应的示例:

x-robots-tag: noindex, nofollow

为了使用 x-robots-tag,您需要能够访问您站点的网站标题 .php、.htaccess 或服务器配置文件。如果您无权访问它,则需要使用元机器人标签来指示爬虫。

何时使用 X‑Robots-Tag?

使用 x-robots-tag 不像使用元机器人标签那么简单,但允许您指导搜索引擎如何索引和抓取其他文件类型。

在以下情况下使用 x-robots-tag:

  • 您需要控制搜索引擎如何抓取和索引非 HTML 文件类型
  • 您需要在全局级别(站点范围)而不是页面级别提供指令

如何设置机器人元标签和 X‑Robots-Tag

设置漫游器元标记通常比 x-robots-tag 更容易,但是这两种控制搜索引擎如何抓取和索引您的网站的方法的实现可能会因您的 CMS 和/或服务器类型而异。

以下是在常见设置中使用元机器人标签和 x-robots-tag 的方法:

在 HTML 代码中使用机器人元标记

如果您可以编辑页面的 HTML 代码,只需将您的机器人元标记直接添加到页面的 <head> 部分即可。 

如果您希望搜索引擎不为页面编制索引,但希望跟踪链接,例如,请使用:

<meta name="robots" content="noindex, follow" />

在 WordPress 上使用机器人元标签

如果您使用的是 Yoast SEO,请打开页面编辑器下方块中的“高级”选项卡。

您可以通过设置“允许搜索引擎在搜索结果中显示此页面?”来设置“noindex”指令。下拉菜单,没有或阻止链接被后面设置“应搜索引擎跟踪链接到此网页上?” 到无。

对于任何其他指令,您需要在“Meta robots advanced”字段中实现这些指令。

如果您使用 RankMath,您可以直接从元框的高级标签中选择您希望应用的机器人指令:

 

在 Shopify 上使用机器人元标签

如果您需要在 Shopify 上实施机器人元标记,则需要通过编辑 theme.liquid 布局文件的 <head> 部分来实现。

要为特定页面设置指令,请将以下代码添加到此文件:

{% if handle contains 'page-name' %}
<meta name="robots" content="noindex, follow">
{% endif %}

此代码将指示搜索引擎,而不是索引 /page-name/,而是跟踪页面上的所有链接。

您需要创建单独的条目以跨不同页面设置指令。 

在 Apache 服务器上使用 X-Robots-Tag

要在 Apache Web 服务器上使用 x-robots-tag,请将以下内容添加到您站点的 .htaccess 文件或 httpd.config 文件中。

<Files ~ "\.pdf$">
Header set X-Robots-Tag "noindex, follow"
</Files>

上面的示例将文件类型设置为 .pdf 并指示搜索引擎不要索引文件,而是遵循文件上的任何链接。 

在 Nginx 服务器上使用 X-Robots-Tag

如果您正在运行 Nginx 服务器,请将以下内容添加到您站点的 .conf 文件中:

location ~* \.pdf$ {
add_header X-Robots-Tag "noindex, follow";
}

这将应用 noindex 属性并遵循 .pdf 文件上的任何链接。

常见的元机器人错误

在指导搜索引擎如何抓取和索引网页时犯错误的情况并不少见,最常见的是:

被 Robots.txt 阻止的页面上的 Meta Robots 指令

如果您的 robots.txt 文件中不允许某个页面,搜索引擎机器人将无法抓取该页面并记录放置在元机器人标签或 x-robots-tag 中的任何指令。

确保任何以这种方式指示用户代理的页面都可以被抓取。 

如果页面从未被编入索引,robots.txt 禁止规则应该足以防止它显示在搜索结果中,但仍建议添加元机器人标记。 

将机器人指令添加到 Robots.txt 文件

虽然谷歌从未正式支持,但过去可以在您网站的 robots.txt 文件中添加 noindex 指令并使其生效。

情况不再如此,并且在2019 年被 Google 确认不再有效。

从站点地图中删除带有 Noindex 指令的页面

如果您尝试使用 noindex 指令从索引中删除页面,请将该页面保留在站点的站点地图中,直到发生这种情况。 

在取消索引之前删除页面可能会导致这种情况发生延迟。

意外阻止搜索引擎抓取整个网站

可悲的是,当站点移动到实时服务器时,在临时环境中使用的机器人指令意外留在原地的情况并不少见,结果可能是灾难性的。 

在将任何站点从临时平台移动到实时环境之前,请仔细检查所有已到位的机器人指令是否正确。 

总结

通过花时间了解不同的指令以及如何使用它们,您可以防止技术 SEO 错误。对页面的抓取和索引方式进行充分控制有助于将不需要的页面排除在 SERP 之外,防止搜索引擎跟踪不必要的链接,并让您控制网站摘要的显示方式等。开始设置您的机器人元标记和 x-robots-tags,以确保您的网站顺利运行!