阻止Google索引化

76
有没有办法阻止Google索引一个网站?

添加了关于 robots.txt 的维基百科文章链接。 - tvanfosson
Google仍然可以在搜索结果中列出您的内容,而不受robots.txt文件的限制。 - Mark
@Mark - 问题是如何阻止Google索引网站。Google将遵守robots.txt文件,不会索引您禁止的部分网站。 - tvanfosson
1
@tvanfosson:虽然大多数流程是从索引到列表,但一个网站不一定非得被索引才能被列出来。如果一个链接指向一个页面、域名或其他地方,那么这个链接将会被跟踪。如果该域名上的 robots.txt 阻止搜索引擎索引该页面,但如果它可以从其他变量中收集到可能值得查看的信息,它仍然会在结果中显示该 URL。 - edelans
1
我投票关闭此问题,因为它不是一个编程问题,并且在 Stack Overflow 上是离题的。关于您网站的非编程问题应该在 [webmasters.se] 上提问。在这种情况下,该问题已经在那里得到了回答:Block Google(和其他)从索引域 - Stephen Ostermiller
显示剩余2条评论
9个回答

110

13
实际上,准确地说,这将阻止所有合法的机器人爬取该网站。恶意机器人仍然会尝试进行爬取,如果有必要的话。 - Lawrence Dol
1
这是正确的,但如果“蜘蛛”不检查 robots.txt,则很可能是恶意的。根据我的经验,这意味着它们还会欺骗用户代理,这使得停止它们变得非常困难。 - UnkwnTech
1
人们还可以使用机器人元标签。我在这里写了如何使用:http://ligatures.net/content/expertise/how-to-use-robots-meta-tags.html 这种方法的好处是在必要时可以提供更精细的控制(即每个页面)。 - Jérôme Verstrynge
4
尝试这种方法后,谷歌仍将索引网页。我试过并在谷歌搜索时发现我的网站仍显示,但带有“由于该网站的robots.txt文件,无法提供此结果的描述”。请参见Carlos的回答。 - Justin J Stark
@JustinJStark 我的理解是,只有在页面先前被索引的情况下才是真实的。如果一个网站从第一天开始使用这个功能,那么这些页面将永远不会进入Google(或其他合法的搜索提供商)的索引。 - Joel Coehoorn
7
注意!实际上,robots.txt文件可以防止搜索引擎爬取您的网站,但不能阻止搜索引擎将其索引化... 索引化是指将网站或页面内容下载到搜索引擎服务器的过程,从而将其添加到其“索引”中。@Karol的回答更准确完整。 - edelans

97

请记住,防止Google爬取您的网页并不意味着您可以保护您的内容。

我的回答基于以下几个来源:https://developers.google.com/webmasters/control-crawl-index/docs/getting_started https://sites.google.com/site/webmasterhelpforum/en/faq--crawling--indexing---ranking

robots.txt文件控制爬取,但不控制索引!这两个操作是完全不同的,分别进行。有些页面可能被爬取但没有被索引,而有些页面甚至可能被索引但从未被爬取。非爬取的页面的链接可能存在于其他网站上,这将导致Google索引器遵循它并尝试进行索引。

问题是关于索引,即收集有关页面的数据,以便通过搜索结果可用。可以添加元标记来阻止索引:

<meta name="robots" content="noindex" />

或者在响应中添加HTTP头:

X-Robots-Tag: noindex

如果问题是关于网络爬虫的,那么你当然可以创建robots.txt文件并放入以下行:

User-agent: *
Disallow: /

爬取是一种收集有关特定网站结构信息的操作。例如,您已经通过Google网站管理员工具添加了该网站。网络爬虫会考虑这一点,并访问您的网站,搜索 robots.txt 文件。如果找不到任何文件,则假定可以爬取任何内容(非常重要的是也要有 sitemap.xml 文件来帮助进行此操作,并指定优先级并定义更改频率)。如果它找到该文件,就会按照规则进行。成功爬取后,爬取的页面将在某个时间点上运行索引,但您无法确定何时运行...

重要提示: 这意味着尽管存在robots.txt,您的页面仍可能显示在Google搜索结果中。


如果您允许使用X-Robots-Tag进行索引,但同时又有noindex元标记,那么Google会怎么做?(更新:在这里找到了答案:https://dev59.com/I2Mm5IYBdhLWcg3wB7d5) - Geremia

7

有几种方法可以阻止包括Google在内的爬虫对您的网站进行抓取和索引。

通过标头在服务器级别上停止

Header set X-Robots-Tag "noindex, nofollow"

在根域级别上,通过 robots.txt 文件实现。
User-agent: *
Disallow: /

通过机器人元标记在页面级别上
<meta name="robots" content="nofollow" />

然而,我必须说如果你的网站有过时或不存在的页面/链接,那么你应该等待一段时间,Google会在下一次抓取中自动去除这些链接-阅读https://support.google.com/webmasters/answer/1663419?hl=en


1
您可以在全局Apache配置文件中添加以下设置以在整个服务器范围内禁用此功能,或者可以在虚拟主机中使用相同的参数仅针对特定虚拟主机禁用它。

Header set X-Robots-Tag "noindex, nofollow"

完成后,您可以通过验证返回的Apache标头来测试它。

curl -I staging.mywebsite.com HTTP/1.1 302 Found Date: Sat, 26 Nov 2016 22:36:33 GMT Server: Apache/2.4.18 (Ubuntu) Location: /pages/ X-Robots-Tag: noindex, nofollow Content-Type: text/html; charset=UTF-8


0

你也可以通过以下方式添加meta robots:

<head>
<title>...</title>
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
</head>

另外一个额外的层是修改 .htaccess,但你需要深入检查它。


0

使用nofollow元标签:

<meta name="robots" content="nofollow" />

要在链接级别上指定nofollow,请将属性rel和值nofollow添加到链接中:

<a href="example.html" rel="nofollow" />

0
请注意,微软的Bing爬虫尽管声称遵守robots.txt,但并不总是这样做。
我们的服务器统计数据表明,他们有一些IP运行的爬虫不遵守robots.txt,也有一些遵守。

0
我使用一个简单的aspx页面,通过一个假的“Pref” cookie将谷歌的结果传递到我的浏览器,每次获取100个结果。我不想让谷歌看到这个中转页面,所以我检查IP地址,如果以66.249开头,就直接重定向。
如果您注重隐私并希望获得副本,请点击我的名字。
我使用的另一个技巧是使用一些JavaScript调用一个页面来设置会话标志,因为大多数(但不是全部)网络机器人不执行JavaScript,所以您知道它是关闭了JavaScript的浏览器或者很可能是机器人。

0
有没有办法阻止 Google 索引一个网站?
要阻止 Google 爬取,只需在每个页面的 head 中添加以下 meta 标签:
<meta name="googlebot" content="noindex, nofollow">

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接