【问题标题】:How to make an HTML <a> tag so that search engine crawlers don't access them如何制作 HTML <a> 标签,以便搜索引擎爬虫无法访问它们
【发布时间】:2012-06-14 16:10:06
【问题描述】:

我的问题是关于 HTML 链接(锚标记)和网络搜索引擎。据我所知,网络爬虫在索引页面时会访问页面内的所有或大部分链接,对吗?如果我希望某些链接不被搜索引擎爬虫访问怎么办? 我不希望这样,因为我计算了这些链接被点击的次数——我的 Web 应用程序的一个基本功能——这会影响计数。 我可以以某种方式使用javascript吗?

【问题讨论】:

  • 在网络上搜索 robots.txt。
  • 你能说得具体点吗,我听说过机器人,但是...
  • 我看到 stackoverflow 使用上下投票作为链接

标签: javascript html hyperlink search-engine


【解决方案1】:

可能有也可能没有一种万无一失的技术来做到这一点。但是,为了安全起见,您可以执行以下操作:

在您的 robots.txt 文件中禁止这些链接。这需要创建一个名为 /robots.txt 的文件并添加以下行:

Disallow: /YourPage.html

到文件。

您也可以使用no-follow 链接:

<a href="http://www.example.com/" rel="nofollow">Link text</a>

然而,根据Wikipedia 的说法,大多数(如果不是全部)搜索引擎仍会实际跟踪该链接,只是不会将其编入索引或将其用于排名。

另一个想法是根本不使用 URL,而是使用脚本。比如:

<a href="javascript:void(0)" onclick="GoSomewhere()">Google Can't Find Me!</a>
<script>
   function GoSomewhere()
   {
      window.location = '/YourPage.html';
   }
</script>

您可能还想重新考虑如何计算点击。也许您可以使用 Javascript 来注册一个点击,而不是将点击计为任何 HTTP 请求,因为机器人通常不会在页面上执行任何脚本。这就是Google AnalyticsClicky 之类的工作方式。

您还可以排除来自包含单词 Googlebot 的用户代理的任何命中。

希望这会有所帮助!

【讨论】:

  • 据我了解,nofollow 不会阻​​止搜索引擎加载该链接,而是将您的网站与链接网站相关联。
  • @CostelSocianu - 我认为你是绝对正确的!我已经更新了我的答案。
  • 感谢您的快速回答,我会尝试使用javascript!
  • 好吧 # 将页面滚动到顶部,href 还有其他值吗?
  • 没关系,我发现了这个:stackoverflow.com/questions/134845/…
【解决方案2】:

这个问题有点老了,但 nofollow 确实充当了搜索机器人不要关注链接的“建议”。

Use rel="nofollow" for specific links

本页介绍了 google 如何解释 nofollow。基本上它说“一般”它不关注它们,但如果其他网站链接到它们而不使用“nofollow”,目标可能仍会出现在索引中。

Google 和 Bing 网站管理员工具也有一部分允许您删除其索引中的 URL。

最后一个选项是robots.txt,就像其他人提到的那样。

【讨论】:

    【解决方案3】:

    您可以添加使用nofollow:

     <a rel="nofollow"> Bla Bla </a>
    

    这是对网络爬虫的建议,不要跟踪该链接。

    【讨论】:

    • 不,不是。这是一个(非常糟糕的)建议,网络爬虫不应该将链接视为对目标的认可。它可能仍然会被遵循。
    【解决方案4】:

    nofollow 选项将阻止遵守网络标准的搜索引擎跟踪链接。如果您还想保护链接免受机器人、撇渣器等的侵害,我建议您在 DOM 准备好时使用 Javascript 将链接添加到您的 html 内容。

    这将阻止大多数机器人和所有搜索引擎首先看到链接,并防止人们在扫描您的网站以查找表单/电子邮件地址/电话号码/等时无意中点击链接。

    【讨论】:

    • 不,不会。这是一个(非常糟糕的)建议,网络爬虫不应该将链接视为对目标的认可。它可能仍然会被遵循。
    【解决方案5】:

    如果用户代理属于机器人,您可以使用 PHP 删除链接。

    【讨论】:

      【解决方案6】:

      由于 Google 希望为其爬虫启用 Javascript,因此

      <a href="javascript:void(0)" onclick="openLink()">Link</a>
      

      建议可能已过时。有人可能会说它仍然是链接语义(a),因此爬虫将跟随链接。防止这种情况的一种可能方法是将所有不应遵循的链接转换为跨度

      <span onclick="openLink()">Link</span>
      

      虽然这仍然可能不起作用,因为在 DOM 中仍有信息表明该元素提供了点击处理程序。对于进一步的解决方法,需要向body 添加一个单击事件侦听器,并从坐标中推断出实际单击了哪个按钮。这在计算上可能非常昂贵。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-18
        • 1970-01-01
        • 2021-11-29
        • 2021-01-22
        相关资源
        最近更新 更多