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

How to override an existing meta tag in html?

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

<meta name="robots" content="noindex, nofollow"> 

我想将这个标记保留在头部,但用这个新声明覆盖它:

<meta name="robots" content="index, follow">

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

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

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


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

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

这里提到了最后一个 Official Google Blog Post,但它是从 2007 年开始的,情况可能会发生变化。


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

$("meta[name='robots']").attr('content', 'index, follow'); 

同样不能保证这会产生预期的效果。 Google 在抓取您的页面时执行 JavaScript(我不确定它会遵守此规则),但其他搜索引擎可能不会。

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