认识“X-Robots-Tag”HTTP标头 南昌鸿图建站公司

一般情况,我们使用robots.txt文件来告知搜索引擎哪些文件/文件夹允许爬网或禁止爬网,还有X-Robots-Tag HTTP标头之类的东西,你知道吗?使用此功能对搜索引擎和网站服务器都有好处,通过禁止对网站某些不重要区域的爬网访问,可以减少服务器负载。

在继续之前,先了解一下robots.txt文件的作用。简单来讲,它的作用是告诉搜索引擎不要爬网网站上的特定页面,文件或目录等。

不建议通过robots.txt屏蔽整个网站,除非是一个非常私密的网站。

X-Robots-Tag

早在2007年,Google宣布增加了对X-Robots-Tag指令的支持,这意味着不仅可以通过robots.txt文件限制对搜索引擎的访问,还可以通过编程方式在HTTP响应的标头中设置各种与robot.txt相关的指令。

X-Robots-Tag指令

有两种不同类型的指令:搜寻器指令和索引器指令,本文将在下面简要说明差异。

搜寻器指令

robots.txt文件仅包含“搜寻器指令”,该指令会告诉搜索引擎允许或不允许它们进入的位置。通过使用此指令,可以指定允许搜索引擎进行爬网的位置:

Allow

该指令的作用正好相反(禁止爬网):

Disallow

此外,可以使用以下指令来帮助搜索引擎更快地抓取网站(提交网站地图):

Sitemap

请注意,还可以通过结合使用以下指令,来指定不同搜索引擎的指令:

User-agent

不过有时候即使用Disallow禁止了某些资源还是可能出现在搜索引擎结果中,说明仅仅使用robots.txt是不够的。

索引器指令

索引器指令是基于每页和/或每个元素设置的指令。截止到2007年7月,有两个指令:rel =“ nofollow”(表示该链接不应通过授权/ PageRank)与Meta Robots标记。

使用Meta Robots标记,可以真正阻止搜索引擎显示想保留在搜索结果之外的页面。使用X-Robots-Tag HTTP标头可以达到相同的结果。如前所述,X-Robots-Tag还允许控制如何索引特定文件(类型),从而提供了更大的灵活性。

X-Robots-Tag的用法示例

如果要防止搜索引擎显示使用PHP生成的文件,可以在header.php(WordPress)文件的开头添加以下内容:

header("X-Robots-Tag: noindex", true);

如果要组织搜索引擎跟踪这些页面上的链接,可以按以下示例:

header("X-Robots-Tag: noindex, nofollow", true);

现在,尽管在PHP中使用此方法非常方便,如果希望阻止PHP之外的一些特定的文件类型,更好的方法是将X-Robots-Tag添加到Nginx/Apache服务器配置或.htaccess文件中。

假如一个提供.doc文件的网站,但由于特定的原因,不希望搜索引擎为该文件类型建立索引,则可以使用X-Robots-Tag。在Apache服务器上,应将以下行添加到/ .htaccess文件中:

<FilesMatch ".doc$">
Header set X-Robots-Tag "noindex, noarchive, nosnippet"
</FilesMatch>

如果想对.doc和.pdf文件都这样做:

<FilesMatch ".(doc|pdf)$">
Header set X-Robots-Tag "noindex, noarchive, nosnippet"
</FilesMatch>

如果运行的是Nginx而非Apache,则可以通过在服务器配置中添加以下内容来获得一样的效果:

location ~* \.(doc|pdf)$ {
    add_header  X-Robots-Tag "noindex, noarchive, nosnippet";
}

结论

从上面的示例可以看到,X-Robots-Tag HTTP标头是一个非常强大的工具,可以和robots.txt搭配使用,效果更佳。