【发布时间】:2012-08-25 05:55:01
【问题描述】:
我希望我的暂存网站不会被搜索引擎索引(首先是 Google)。
我听说 Wordpress 擅长做这件事,但我想成为技术不可知论者。
robots.txt 是否足够?我们希望保持匿名访问,让客户无需登录即可查看其网站。
我必须在每个页面上添加 nofollow 吗?
【问题讨论】:
标签: web search-engine robots.txt nofollow
我希望我的暂存网站不会被搜索引擎索引(首先是 Google)。
我听说 Wordpress 擅长做这件事,但我想成为技术不可知论者。
robots.txt 是否足够?我们希望保持匿名访问,让客户无需登录即可查看其网站。
我必须在每个页面上添加 nofollow 吗?
【问题讨论】:
标签: web search-engine robots.txt nofollow
我通常反对将暂存服务器公开给公共网络,但如果这是您工作流程的最佳解决方案,您可以考虑以下几点:
最小方法
Disallow: /
最低限度的方法是确保您不会因为到处都有重复的内容而自取其辱。通过注册一个单独的域,用户可以清楚地区分什么是阶段,什么不是。当您需要移动环境时,它也会更干净一些,但这更具操作性。 CNAME 也可以使用,但请记住使用 Google 和 Bing 网站管理员工具注册每个 CNAME。这样您就可以在需要时使用域删除工具。
建议的方法
通过添加 robots.txt,它可以防止搜索引擎访问内容并将其编入索引。但是,这并不意味着他们不会将 URL 编入索引。如果搜索引擎知道给定的 URL,它可能会将其添加到搜索结果索引中。您有时会在搜索结果中看到这些。标题往往是没有描述的 URL。为了防止这种情况发生,需要告知搜索引擎不要显示内容或 URL。通过在前面添加 Authentication 并且不响应 200 OK 状态代码,这是向引擎发出的强烈信号,不要将这些 URL 添加到其索引中。根据我的经验,我从未在搜索引擎索引中看到过 401 响应代码页。
首选方法
通过将临时站点置于 IP 过滤器后面,可确保只有您的客户才能访问该站点。如果他们想从其他计算机访问它,这可能会成为一个问题,有时还会导致维护问题,但如果您不想让您的登台环境建立索引,这是最好的方法。请注意,您需要确保所有其他请求(例如搜索引擎和非客户端)不会返回任何内容。他们应该收到一个超时响应,并且永远不会提供 200 OK。通过提供其他信息,它可能会被误认为是您不想要的伪装。
另外,为了更加安全,我还会在 NOINDEX、NOFOLLOW 的每个页面中添加一个 meta robots 或 x-robots-header 命令,以防万一 IP 表因错误配置或身份验证失败...这种情况很少见,但是当有人出于其他原因触摸配置时,就会发生这种情况。就像 robots.txt 文件一样,如果这些页面级机器人命令被投入生产,你真的可以用这些页面级机器人命令来打自己的脚。因此,只需确保您的开发/登台环境处于完全分离的配置中。否则推出 NOINDEX、NOFOLLOW 或 Disallow: / 将对您的生产站点造成灾难性影响。
【讨论】:
您可以通过在 apache conf 中全局添加以下设置来禁用此服务器范围,或者可以在 vhost 中使用相同的参数仅对特定 vhost 禁用它。
标头集 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
【讨论】:
我将此代码添加到我的网站(用 php 编码):
if( $_SERVER['HTTP_HOST'] == 'test.ate.io' ) {
header("X-Robots-Tag: noindex, nofollow", true);
}
这样,即使我的 staging 配置文件意外被推送到我的生产服务器,也不会有任何问题。
【讨论】:
TLDR;在您的 Web 根目录中创建一个 robots.txt 文件。该文件应包含一行:
Disallow: /
这足以防止 Google 和 Bing 机器人将您的网站编入索引并出现在搜索结果中。
【讨论】:
将以下元标记添加到页面部分:
<meta name="robots" content="noindex">
要防止只有 Google 将页面编入索引:
<meta name="googlebot" content="noindex">
【讨论】: