如何防止搜索引擎爬虫为 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 上的域编制索引?的主要内容,如果未能解决你的问题,请参考以下文章