如何防止搜索引擎爬虫为 AWS 上的域编制索引?

Posted

技术标签:

【中文标题】如何防止搜索引擎爬虫为 AWS 上的域编制索引?【英文标题】:How do I prevent search engine crawlers from indexing a domain on AWS? 【发布时间】:2021-11-29 05:09:48 【问题描述】:

我们有一个在 .dev 域上运行的暂存环境,而我们的生产环境在另一个域上运行。

有什么方法可以防止我们的.dev 域被索引?

我不希望在搜索产品时在 Google 上找到我们的暂存网站。

域托管在 AWS 上,使用 Route 53 和 Cloudfront 作为 CDN。

应用程序托管在 ECS 上,前面有一个负载均衡器。

【问题讨论】:

Cloudfront 是否路由到 S3 存储桶? 不!云端源被路由到负载均衡器! 【参考方案1】:

如果您有权将文件添加到域,例如S3桶、EC2实例、ECS容器实例等,在根文件夹下放一个robots.txt文件

设置内容为:

User-agent: *
Disallow: /

确保允许对文件(对象)进行公共读取访问,以便属于 Google、Bing 等的搜索引擎抓取工具可以找到并处理它。

这将阻止机器人索引您的文件,从而索引您的域。


请注意,如果您的生产域指向临时网站,Google 的抓取工具仍然可以索引您的临时网站,因为搜索引擎抓取工具将从您的产品抓取。网站到您的临时站点。

在这种情况下,robots.txt 不会总是阻止网站被编入索引,您需要为 CloudFront 分配返回的文件返回 X-Robots-Tag: noindex HTTP 响应标头。

在这种情况下,如果您没有网络服务器来处理您的请求,您需要一个更复杂的解决方案,例如使用AWS Lambda@Edge 添加标头。

无论页面是否链接,这肯定会阻止 Google 编制索引。

【讨论】:

部署在ECS上,所以我基本上把robots.txt放在我项目的根目录下。我会试一试,谢谢您的评论。 不客气,应该也可以,如果不行,请告诉我。 我想知道的是,如果我把它放在项目的根目录中,它也会影响生产,因为。它们位于两个不同的分支上,最终当我们将 develop 与 main 合并时,robots.txt 文件也将在生产中可用。 robots.txt 保留在 git 之外,或者将其动态添加为管道的一部分,尽可能部署到 ECS?

以上是关于如何防止搜索引擎爬虫为 AWS 上的域编制索引?的主要内容,如果未能解决你的问题,请参考以下文章

如何防止 Laravel 应用程序文件夹被搜索引擎索引

如何在 AWS EC2 和 ELB 上使用 Godaddy 注册的域实现 SSL 证书

网络爬虫小案例_2017/3/10

python爬虫基础教程

域转移后 AWS Route 53 上的域传播错误

速学爬虫