在一些网站中,通过
robots.txt
可以控制哪些站点资源或目录能被搜索引擎索引,但是随着站点页面增加,之前允许的索引页面常常不希望被索引,如果直接修改robots.txt
,影响会比较大,所以页面级的控制就很有必要。
前一篇有提到通过在站点根目录 robots.txt
文件中添加 Disallow
指令来阻止整站级别的某些资源被搜索引擎索引或不被索引,一文搞懂SEO优化之站点robots.txt。为了精细化控制被索引的页面,有时也需要通过noindex
处理。
为让 noindex
生效,网页或资源需要不被 robots.txt
文件的规则屏蔽,并且必须能被访问。如果被 robots.txt
文件屏蔽或无法访问该网页,那么爬虫就永远看不到 noindex
规则,所以该网页可能仍会显示在搜索结果中,例如有其他网页链接到该网页。
有两种方式配置 noindex
:一是作为 <meta>
标记,二是作为 HTTP
响应标头。这两种方法的效果相同,根据网站实际情况选择合适的方法即可。
在HTML的<head>
中添加,精准控制单个页面是否被索引或跟踪链接。
指令 | 说明 |
---|---|
| 无限制,为默认值 |
| 不在搜索结果中显示此网页、媒体或资源 |
| 不追踪该网页上的链接 |
| 等同于 |
| 不在搜索结果中显示该网页的摘要或视频预览 |
| 如果网页通过 |
| 最多只能使用 |
| 设置网页的图片预览在搜索结果中的尺寸上限。为 |
| 设置网页的视频预览在搜索结果中的最长秒数。为 |
| 不在搜索结果中提供该网页的译文 |
| 不将该网页上的图片编入索引 |
| 在指定日期/时间过后,不在搜索结果中显示该网页 |
<!-- 禁止所有爬虫 -->
<meta name="robots" content="noindex, nofollow">
<!-- 仅禁止Google -->
<meta name="googlebot" content="noindex">
<!-- 阻止在搜索结果中显示摘要 -->
<meta name="robots" content="max-snippet:0">
<!-- 摘要最多显示20个字符 -->
<meta name="robots" content="max-snippet:20">
<!-- 不限制 -->
<meta name="robots" content="max-snippet:-1">
<!-- 不显示预览图 -->
<meta name="robots" content="max-image-preview:standard">
<!-- 2025-08-01之后不在结果中显示该网页 -->
<meta name="robots" content="unavailable_after: 2025-08-01">
X-Robots-Tag
(服务器级控制)通过服务器配置HTTP响应头X-Robots-Tag
,其值为 noindex
或 none
,动态控制索引行为 可用于非HTML文件(如PDF、视频文件或图片等)。
HTTP/1.1 200 OK
(...)
X-Robots-Tag: noindex, nofollow
(...)
或指定爬虫引擎
HTTP/1.1 200 OK
(...)
X-Robots-Tag: googlebot: nofollow
X-Robots-Tag: otherbot: noindex, nofollow
(...)
以nginx配置为例,比如希望所有pdf文件禁止被索引:
location ~* \.pdf$ {
add_header X-Robots-Tag "noindex, nofollow";
}
✅ 优势:无需修改页面代码,适合批量管理或程序化生成的内容。
需求场景 | 推荐方案 |
---|---|
整站/目录禁止抓取 |
|
精准控制单页索引/链接跟踪 | Meta Robots 标签 |
动态文件或服务器级批量控制 | X-Robots-Tag HTTP 头 |
实际业务中,建议同时使用 robots.txt
+ noindex
组合。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。