我希望我的登台网站不会被搜索引擎索引(首先是谷歌)。
我听说 Wordpress 擅长这样做,但我想成为技术不可知论者。
robots.txt 是否足够?我们希望保持匿名访问,让客户无需登录即可查看其网站。
我必须在每个页面上添加 nofollow 吗?
我希望我的登台网站不会被搜索引擎索引(首先是谷歌)。
我听说 Wordpress 擅长这样做,但我想成为技术不可知论者。
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 或 aDisallow: /
将对您的生产站点造成灾难性的影响。
您可以通过在 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">