我在我的vhost配置中放置了以下Header
:
Header set X-Robots-Tag "noindex, nofollow"
这里的目标是禁止搜索引擎索引我的测试环境。该网站是Wordpress,并安装了一个插件来管理每页元机器人设置。例如:
<meta name="robots" content="index, follow" />
所以我的问题是,哪个指令优先于另一个指令,因为两个指令都设置在每个页面上?
我不确定是否可以给出一个明确的答案,因为行为可能依赖于实现(在机器人方面)。
但是,我认为有合理的证据表明X-Robots-Tag
优先于<meta name="robots" ...
。见:
X-Robots-Tag
和robots
meta指令之间的一个显着差异是:
X-Robots-Tag
是HTTP协议头的一部分。<meta name="robots" ...
是HTML文档标题的一部分。因此,X-Robots-Tag
属于HTTP协议层,而<meta name="robots" ...
属于HTML协议层。
由于它们属于不同的协议层,因此(机器人)客户端获取页面不会同时解析它们:首先解析HTTP层,然后再解析HTML。
(另外,应该注意的是X-Robots-Tag
和<meta name="robots" ...
并不是所有机器人都支持的。谷歌和雅虎/ Bing支持两者,但根据this,一些支持只有<meta name="robots" ...
,其他人都不支持。)
摘要:
X-Robots-Tag
;限制(noindex,nofollow)适用(并且忽略<meta name="robots" ...
)。<meta name="robots" ...
指令适用。根据我最近的经验,当谷歌看到混合消息时,默认情况下它更喜欢积极行动 - 即 - 它有利于索引 - 同时如果您有网站管理员工具控制台,则会将此问题标记为严重错误/警告。
在这里查看您的网站在谷歌的状态:https://www.google.com/webmasters/
看到你的网站在这里的状态:http://www.bing.com/toolbox/webmaster(注意雅虎搜索现在由bing提供支持)
谷歌采取这种积极的默认行动,因为许多网站所有者无意中拥有一个狡猾的cms半封锁机器人,我们知道谷歌喜欢积累尽可能多的数据 - 任何借口!
如果技术设置有误,则可能会被完全忽略,并且我们知道如果没有指定设置,搜索引擎会默认索引并遵循。
只是Dan的经验更新,我也有
Header set X-Robots-Tag "noindex, nofollow"
和
<meta name="robots" content="index, follow" />
在我的一个Wordpress网站上,Google Search Console中的支票确认X-Robots-Tag中的noindex优先,因为页面已被抓取但未编入索引。所以正确答案中的逻辑确实是正确的。