meta 标签的 noarchive 指令如何禁止缓存
meta 标签的 noarchive 指令仅对遵守规则的爬虫有效,它请求搜索引擎不缓存页面内容。
noarchive 指令的作用范围与生效条件
meta 标签的 noarchive 指令用于请求搜索引擎不缓存页面内容。该指令仅对遵守规则的爬虫有效,恶意抓取工具可能忽略这些规则。浏览器兼容性说明指出,该功能本意是供爬虫观察,因此浏览器兼容性不适用。这意味着指令的生效依赖于搜索引擎是否遵循该协议。
设置该指令时,爬虫仍需访问资源以读取头部和 meta 元素。如果希望完全阻止带宽消耗,使用限制性的 robots.txt 文件比索引规则更有效,因为它能完全阻止资源被爬取。noarchive 指令与 robots.txt 的作用不同,前者影响索引和其他行为,后者控制爬取。被 robots.txt 阻止的页面如果从其他来源被链接,仍可能被索引。
指令的语法与关键词定义
noarchive 指令通过 meta 标签的 content 属性定义,作为逗号分隔的关键词列表之一。该属性必须定义,其值设置索引和爬取行为。noarchive 关键词请求搜索引擎不缓存页面内容。该指令被 Google、Yahoo 和 Bing 使用。nocache 是 noarchive 的同义词,被 Bing 使用。
content 属性接受多个关键词作为逗号分隔的列表。例如,使用 noarchive 指令的示例为:html<meta name='robots' content='noarchive' />。某些值如 index 与 noindex 或 follow 与 nofollow 是互斥的,使用冲突值时行为未定义。搜索引擎如 Google、Yahoo 和 Bing 也支持在 HTTP 头部的 X-Robots-Tag 中使用这些指令,这对非 HTML 内容如 PDF 或图片有用。
检查指令是否生效的复现步骤
在网页源代码中查找 meta 标签,确认是否存在 name='robots' 属性,并在 content 属性中包含 'noarchive' 关键词。例如,检查代码中是否包含 <meta name='robots' content='noarchive' />。使用浏览器开发者工具查看网络请求,确认 HTTP 响应头中是否包含 X-Robots-Tag: noarchive。如果源代码和响应头中均包含该指令,则指令已设置。
在搜索引擎结果页(SERP)中搜索该页面,查看搜索结果摘要下方是否有“缓存”链接。如果存在缓存链接,说明指令未生效。如果摘要下方没有“缓存”链接,则指令可能已生效。注意,指令生效需要爬虫重新访问页面,因此可能存在延迟。检查结果时需区分指令是否被遵守,因为非合作爬虫可能忽略该指令。
判断结果与注意事项
如果源代码和响应头中包含 noarchive 指令,且搜索结果摘要下方没有“缓存”链接,则可判断指令已生效。如果存在“缓存”链接,则说明指令未生效或被忽略。注意,该指令仅影响缓存行为,不影响页面是否被索引。如果页面被索引但无缓存,说明 noarchive 指令生效。如果页面被索引且有缓存,则指令未生效。
设置该指令时需注意,它仅对遵守规则的爬虫有效,无法阻止恶意抓取工具。如果希望完全阻止带宽消耗,应使用 robots.txt 文件。此外,noarchive 指令与 robots.txt 的作用不同,前者影响索引和其他行为,后者控制爬取。被 robots.txt 阻止的页面如果从其他来源被链接,仍可能被索引。
资料与延伸阅读
你可以通过以下原始资料核对文中概念,并继续深入阅读。