通过geo ip重定向用户,而不是googlebot

时间:2019-05-31 07:12:47

标签: php redirect geolocation seo googlebot

我们有两个网站,一个面向欧盟用户,另一个仅面向美国用户。

我使用一个简单的系统来检查IP的来源。

  $geo = json_decode(file_get_contents("http://extreme-ip-lookup.com/json/$user_ip"));
  $country = $geo->countryCode;
  $countrycode = $sanitizer->pageName(substr($country, 0, 2));

然后,根据响应,我将用户重定向到正确的站点。

if ($countrycode == 'us'){
    // go to usa website 
}else{
   // do nothing 
}

现在,问题在于Google来自美国,我不需要以能够扫描主要站点的欧盟站点的方式重定向googlebot(和其他bot)。

我在互联网上看了很多,最后我做到了:

if( strstr(strtolower($_SERVER['HTTP_USER_AGENT']), "googlebot") )  {
        $countrycode = 'en'; // force him to have en instead of us
    }

现在,我对此不太满意,Googlebot扫描了我的网站,但是我不确定是否运行得很好。因为Google速度测试只能看到美国网站。 恐怕这不是解决此问题的最佳方法。

您有更好的主意吗?

1 个答案:

答案 0 :(得分:0)

从Google查看此指南

https://support.google.com/webmasters/answer/182192?hl=en

我的建议是实施href-lang并为每种语言版本使用单独的URL

https://support.google.com/webmasters/answer/189077

我只是将主页重定向为302重定向到相应的语言版本

如此

example.com> 302> example.com/us(如果您在美国) example.com> 302> example.com/uk(如果您在英国)

,并且两者都通过href-lang引用了另一个版本。 Google将会列出

example.com/us在美国

example.com/uk在英国

像这样作为主页。对所有子页面执行相同的操作,因此Google只会在英国列出/ uk /页面。使用这种方法,您不必在意Googlebot。从理论上讲,有可能向Googlebot展示一些不同的东西,但是它有风险,因为他们不仅使用了一个Googlebot。