如何覆盖 html 中现有的元标记?

Man*_*nel 2 html web-crawler meta-tags

我有一个带有这个元标记的 html 文档:

<meta name="robots" content="noindex, nofollow"> 
Run Code Online (Sandbox Code Playgroud)

我想保留这个标签,但用这个新声明覆盖它:

<meta name="robots" content="index, follow">
Run Code Online (Sandbox Code Playgroud)

我应该将覆盖标签放在第一个标签之前还是之后?

iiv*_*nov 5

如果我们只考虑robots元标记:

最好的方法是在页面输出中只包含正确的元标记。


没有 HTML 约定来覆盖元标记,因此使用它们的不同服务(浏览器、搜索引擎等)将对具有多个冲突元标记的效果进行不同的解释。

在您的情况下,无法保证不同的搜索引擎将如何遵循您的机器人指令。其中一些可能使用第一次出现,其他人可能使用最后一次出现,而 Google 可能使用更严格的指令。

此处提到了最后一个官方 Google 博客帖子,但它是从 2007 年开始的,情况可能会有所改变。


尽管有一种方法可以使用 Jquery 动态更改元标记的内容,例如:

$("meta[name='robots']").attr('content', 'index, follow'); 
Run Code Online (Sandbox Code Playgroud)

再次不能保证这会产生预期的效果。Google 在抓取您的网页时会执行 JavaScript(我不确定它会尊重这一点),但其他搜索引擎可能不会。

有关 Google 在抓取页面时执行 JavaScript 的其他信息:

  • 当搜索引擎爬虫不执行 javascript 时,通过 javascript 更改此类数据是毫无意义的。 (2认同)