如何防止搜索引擎将PDF文件编入索引?


27

我在公共网页上有一个PDF文档的链接。如何防止搜索引擎将该链接和PDF文档编入索引?

我想到的唯一想法是使用CAPTCHA。但是,我想知道是否有魔术词告诉搜索引擎不要为链接和PDF文档编制索引?使用PHP或JavaScript的选项也可以。

为了清楚起见。我不想加密PDF并用密码保护它。我只想使它对搜索引擎不可见,但对用户不可见。

Answers:


32

为了防止您的PDF文件(或任何非HTML文件)在搜索结果中列出,唯一的方法是使用HTTP X-Robots-Tag响应标头,例如:

X-Robots-Tag: noindex

您可以通过将以下代码段添加到站点的根.htaccess文件或httpd.conf文件中来实现此目的:

<Files ~ "\.pdf$">
  Header set X-Robots-Tag "noindex, nofollow"
</Files>

请注意,要使以上功能起作用,您必须能够修改所涉及文件的HTTP标头。因此,例如在GitHub Pages上,您可能无法执行此操作。

还要注意的是robots.txt的没有阻止你的页面在搜索结果中被列。

它的作用是阻止bot爬网您的页面,但是如果第三方从其网站链接到您的PDF文件,您的页面仍将列出。

如果您阻止漫游器使用robots.txt抓取页面,则它将没有机会看到X-Robots-Tag: noindex响应标签。因此,如果您使用标头,则永远不要禁止robots.txt中的页面X-Robots-Tag。可以在Google Developers:Robots Meta Tag上找到更多信息。


如果以后再请求带有X-Robots-Tag的页面,我不会遵循带有该页面条目的robots.txt如何防止X-Robots-Tag受到尊重/服从的情况。
Don Cheadle

1
我认为当请求页面时,它(“ Google”)会看到X-Robots-Tag标头,然后知道不对其进行索引...但是,看起来X-Robots-Tag仅对爬虫有用然后不知道索引它developers.google.com/webmasters/control-crawl-index/docs/...
唐·钱德尔

由于您正在使用启用了regex的Files指令,因此应考虑改为使用regex FilesMatch,如此处建议stackoverflow.com/q/14792381/1262357
Gruber

14

有多种方法可以做到这一点(将它们组合起来显然是实现此目的的肯定方法):

1)使用robots.txt阻止来自搜索引擎搜寻器的文件:

User-agent: *
Disallow: /pdfs/ # Block the /pdfs/directory.
Disallow: *.pdf  # Block pdf files. Non-standard but works for major search engines.

2)rel="nofollow"在指向这些PDF的链接上使用

<a href="something.pdf" rel="nofollow">Download PDF</a>

3)使用x-robots-tag: noindexHTTP标头来防止搜寻器将它们编入索引。将此代码放在您的.htaccess文件中:

<FilesMatch "\.pdf$">
  header set x-robots-tag: noindex
</FilesMatch>

2
违反直觉,同时使用x-robots-tagrobots.txt同时使用不是一个好主意,并且可能仍然导致对内容建立索引。如果同时使用robots.txtx-robots-tag: noindex,则搜寻器将永远不会搜寻或看到,x-robots-tag因为它会优先使用robots.txtrobots.txt不会阻止对资源进行索引,而只能对爬网进行索引,因此最好的解决方案是使用x-robots-tag标头,但允许搜索引擎通过不打扰自己robots.txt来查找并找到该标头。
Maximillian Laumeister

1

您可以使用robots.txt文件。您可以在这里阅读更多内容。


3
使用robots.txt不会阻止编制索引。它仅防止爬行。请参阅Pacerier的答案以获取正确的解决方案。
toxalot 2013年

1

不确定此基石是否可以为任何人带来价值,但是最近我们遇到了一个问题,即我们的本地GSA框不愿意为PDF文件编制索引。

Google支持解决了该问题,他们的答复是该PDF文档具有自定义属性集(文件->文档属性->自定义(标签))与该事实有关

name: robots
value: noindex

从而阻止其被GSA正确索引。

如果您有权访问该文档并可以修改其属性,则这可能对GSA有效。


1

如果您使用nginx驱动的开发实例出现在Google搜索结果中,则有一种快速简便的方法来阻止搜索引擎抓取您的网站。将以下行添加到您要阻止爬网的虚拟主机配置文件的位置块中。

add_header  X-Robots-Tag "noindex, nofollow, nosnippet, noarchive";

-2

您可以使用robots.txt文件。支持该文件的搜索引擎不会为PDF编制索引。只需使用命令禁止对文件建立索引,并指定您不希望搜索引擎建立索引的文件夹或PDF文件。


4
使用robots.txt不会阻止编制索引。它仅防止爬行。请参阅Pacerier的答案以获取正确的解决方案。我最近确实读过有关在robots.txt文件中使用noindex指令(而不是禁止使用)的信息,但这是未记录且非标准的。现在我找不到我在哪里读它了。
toxalot 2013年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.