我已将以下 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
元指令是:
-
X-Robots-Tag
是 HTTP 协议(protocol) header 的一部分。 -
<meta name="robots" ...
是 HTML 文档 header 的一部分。
因此X-Robots-Tag
属于HTTP协议(protocol)层,而<meta name="robots" ...
属于HTML协议(protocol)层。
由于它们属于不同的协议(protocol)层,因此获取页面的(机器人)客户端不会同时解析它们:将首先解析 HTTP 层,然后再解析 HTML。
(另外,应该注意的是,并非所有机器人都支持 X-Robots-Tag
和 <meta name="robots" ...
。Google 和 Yahoo/Bing 都支持,但根据 this 有些仅支持 <meta name="robots" ...
,其他则两者都不支持。 )
摘要:
- 如果机器人支持,
X-Robots-Tag
将首先被处理;限制(noindex、nofollow)适用(且<meta name="robots" ...
被忽略)。 - 否则,
<meta name="robots" ...
指令适用。
关于header - X-Robots-Tag header 与机器人元标记的优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17930932/