机器人.txt和元数据标签是否足以阻止搜索引擎索引依赖于 $_GET 变量的动态页面?


Are Robots.txt and metadata tags enough to stop search engines to index dynamic pages that are dependent of $_GET variables?

我创建了一个 php 页面,只能通过 $_GET 接收的令牌/通行证访问

因此,如果您转到以下网址,您将获得一个通用或空白页面

http://fakepage11.com/secret_page.php

但是,如果您使用带有令牌的链接,它会显示特殊内容

http://fakepage11.com/secret_page.php?token=344ee833bde0d8fa008de206606769e4

当然,这不如登录页面安全,但我唯一关心的是创建一个不可索引且只能通过提供的链接访问的动态页面。

依赖于 $_GET 变量的动态网页是否被 Google 和其他搜索引擎编入索引?

如果是这样,包括以下内容是否足以隐藏它?

  • 机器人.txt User-agent: * Disallow: /

  • 元数据:<META NAME="ROBOTS" CONTENT="NOINDEX">

即使我在谷歌中输入:

网站:假页11.com/

谢谢!

如果搜索引擎机器人以某种方式找到带有令牌的链接¹,它可能会对其进行爬网并为其编制索引。

如果您使用 robots.txt 禁止抓取网页,则符合标准的搜索引擎机器人不会抓取该网页,但它们仍可能将其网址编入索引(然后可能会出现在site:搜索中)。

如果您使用 meta - robots 禁止将网页编入索引,则符合要求的搜索引擎机器人不会将该网页编入索引,但仍可能会抓取该网页。

不能同时拥有两者:如果您不允许抓取,则符合要求的机器人永远不会知道您也不允许编入索引,因为它们不允许访问该页面以查看您的 meta - robots 元素。

¹ 搜索引擎可以通过无数种方式找到链接。例如,访问该页面的用户可能使用浏览器工具栏,该工具栏会自动将所有访问的 URL 发送到搜索引擎。

如果您的网页不可被发现,则不会将其编入索引。

"可发现"是指:

  1. 它是一个标准的网页,即索引。
  2. 它被您的链接或其他站点的另一个链接引用

因此,在您的情况下,通过使用 get 参数进行访问,您可以获得 1 但不一定是 2,因为有人可能会引用该链接,从而引用"隐藏"页面。

您可以使用您提供的robots.txt,在这种情况下,页面不会被尊重该的机器人索引(并非所有人都可以)。当然,不索引您的页面并不意味着"隐藏"的页面URL不会在野外。

此外,根据您的要求,另一个问题是您使用未加密的HTTP,这意味着您的"隐藏"URL和页面内容对您的服务器和用户之间的每个服务器都是可见的。

除了搜索引擎之外,当交换URL时,例如在Skype或Facebook Messenger中,某些服务正在缓存/解析内容。在这种情况下,他们将访问 URL 并尝试提取元数据,并可能在适用的情况下缓存它。当然,这种情况不会将您的URL公开给公众,但它会暴露给这些服务的系统以及您"隐藏"的内容。

更新:另一个需要考虑的问题是通过链接到另一个页面来公开"隐藏"页面。在这种情况下,在托管链接URL的服务器的日志中,您的页面将被视为引荐,因此是可见的,这也扩展到Google Analytics等。因此,如果您想保持隐身,请不要从隐藏页面链接到另一个页面。