如何通过 noindex 阻止网页被搜索引擎编入索引?

在一些网站中,通过robots.txt可以控制哪些站点资源或目录能被搜索引擎索引,但是随着站点页面增加,之前允许的索引页面常常不希望被索引,如果直接修改 robots.txt,影响会比较大,所以页面级的控制就很有必要。

前一篇有提到通过在站点根目录 robots.txt 文件中添加 Disallow 指令来阻止整站级别的某些资源被搜索引擎索引或不被索引,一文搞懂SEO优化之站点robots.txt。为了精细化控制被索引的页面,有时也需要通过noindex处理。

为让 noindex 生效,网页或资源需要不被 robots.txt 文件的规则屏蔽,并且必须能被访问。如果被 robots.txt 文件屏蔽或无法访问该网页,那么爬虫就永远看不到 noindex 规则,所以该网页可能仍会显示在搜索结果中,例如有其他网页链接到该网页。

有两种方式配置 noindex :一是作为 <meta> 标记,二是作为 HTTP 响应标头。这两种方法的效果相同,根据网站实际情况选择合适的方法即可。

1 Meta Robots 标签(控制单页索引行为)

在HTML的<head>中添加,精准控制单个页面是否被索引或跟踪链接。

支持的指令

指令

说明

all

无限制,为默认值

noindex

不在搜索结果中显示此网页、媒体或资源

nofollow

不追踪该网页上的链接

none

等同于 noindex, nofollow

nosnippet

不在搜索结果中显示该网页的摘要或视频预览

indexifembedded

如果网页通过 iframes 嵌入到其他网页,该网页内容也会被编入索引

max-snippet: [number]

最多只能使用 [number] 个字符作为搜索结果的文字摘要。为0时,不显示摘要。等同于 nosnippet;为-1时,不限制

max-image-preview: [setting]

设置网页的图片预览在搜索结果中的尺寸上限。为none时,不显示图片预览;为standard时,可能会显示默认图片预览;为large时,可能显示较大图片预览

max-video-preview: [number]

设置网页的视频预览在搜索结果中的最长秒数。为0时最多显示静态图;为-1时无显示;

notranslate

不在搜索结果中提供该网页的译文

noimageindex

不将该网页上的图片编入索引

unavailable_after: [date/time]

在指定日期/时间过后,不在搜索结果中显示该网页

HTML示例

<!-- 禁止所有爬虫 -->
<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">

2 HTTP 头: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";
}

优势:无需修改页面代码,适合批量管理或程序化生成的内容。

根据场景选择方案

需求场景

推荐方案

整站/目录禁止抓取

robots.txt

精准控制单页索引/链接跟踪

Meta Robots 标签

动态文件或服务器级批量控制

X-Robots-Tag HTTP 头

实际业务中,建议同时使用 robots.txt + noindex 组合。


原文地址:如何通过 noindex 阻止网页被搜索引擎编入索引? | AI吧

相关文章

你的网站正在裸奔!多个被99%开发者忽略的Nginx配置漏洞

"您的服务器已被攻陷,数据库正在导出"——当这条告警弹出时,老王正在茶水间泡咖啡。从黑客发起攻击到拿到核心数据,总共耗时4.7秒,比他点的奶茶送到还快。更讽刺的是,这个价值百万的漏洞并...

Spring Boot解决跨域最全指南:从入门到放弃?不,到根治!

"明明接口测试工具能调通,前端调用就报CORS错误!""跨域配置加了一堆注解,为什么生产环境突然失效?""用了Spring Security后跨域配置全崩了?&...