【问题标题】:How to prevent bot/googlebot indexing promotional home page?如何防止 bot/googlebot 索引促销主页?
【发布时间】:2014-04-11 21:59:13
【问题描述】:

我们有一个电子商务网站。由于一些营销和促销活动,如果用户第一次访问基于 cookie 的网站,我们会在主页上显示应用下载页面/横幅/促销/大图(仅此而已)。

但我不希望机器人/爬虫看到这个内容(大图),而是他们应该看到设置 cookie 后的真实内容。两个内容的 URL 相同。

我可以进一步澄清这一点。如何避免机器人看到促销内容?

【问题讨论】:

    标签: googlebot google-crawlers


    【解决方案1】:

    您需要一个robots.txt 文件。

    来自Wikipedia

    机器人排除标准(也称为机器人排除协议或 robots.txt 协议)是一种约定,它建议合作的网络爬虫和其他网络机器人访问网站的全部或部分内容,而这些网站原本可以公开查看。搜索引擎经常使用机器人对网站进行分类和存档,或者网站管理员使用机器人来校对源代码。该标准不同于站点地图,但可以与站点地图结合使用,站点地图是网站的机器人收录标准。

    请记住,如果机器人是“邪恶的”,它们可以简单地忽略这些指令;但是,只要您正确设置,Google 和其他搜索引擎都应该遵守它。

    【讨论】:

    • 我不想从机器人中排除我的主页 url。相反,我希望机器人看到用户在设置 cookie 时看到的页面。因此,当用户第一次访问时,用户会看到促销内容。我想让机器人看到正常的内容(不是促销),记住网址是完全一样的。类似 if else 条件的相同 url。
    • 你不能指望网络爬虫来设置cookies,所以你必须找到另一种方法。这仍然回答了如何阻止他们对促销内容编制索引,但是将他们重定向到他们特别要求的页面之外的其他页面是很棘手的。至少,谷歌认为cloaking 是一种“作弊”。
    【解决方案2】:

    现在我正在使用这个函数来检测 php 控制器代码中的机器人/爬虫,并根据需要进行重定向。

    function bot_detected()
    {
      if 
      (
        !isset($_SERVER['HTTP_USER_AGENT'])
        ||
        empty($_SERVER['HTTP_USER_AGENT'])
        ||
        preg_match('/bot|crawl|slurp|spider/i', $_SERVER['HTTP_USER_AGENT'])
        ||    
        preg_match('/scrappy/python/httpclient/Googlebot|DoCoMo|YandexBot|bingbot|ia_archiver|AhrefsBot|Ezooms|GSLFbot|WBSearchBot|Twitterbot|TweetmemeBot|Twikle|PaperLiBot|Wotbox|UnwindFetchor|facebookexternalhit/i', $_SERVER['HTTP_USER_AGENT'])
       ) 
      {
        return TRUE;
      }
      return FALSE;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-08
      • 2017-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-29
      • 2014-07-15
      相关资源
      最近更新 更多