谷歌和多语言网站具有相同的URL


Google and multi-language website with same URL

我正在使用geoplugin php类构建一个具有多语言支持的网站来检测国家代码。这是我的地理位置代码:

//GEOLOCATE
$geoplugin = new geoPlugin(); 
$geoplugin->locate();
define('REAL_COUNTRY', strtoupper($geoplugin->countryCode));
//AVAILABLE COUNTRIES
function available_countries(){
    $countries_array = array();
    $sql = mysql_query("SELECT id FROM countries WHERE enabled = '1';") or die(mysql_error());
    while($row = mysql_fetch_array($sql)) array_push($countries_array, $row['id']);
    return $countries_array;
}
//RETURN COUNTRY CODE
function detect_language(){
    if(isset($_COOKIE['country'])) return $_COOKIE['country'];
    else if(isset($_SESSION['country'])) return $_SESSION['country'];
    else if(in_array(REAL_COUNTRY, available_countries())) return REAL_COUNTRY;
    else return 'EN';
}

根据返回的国家代码,我的php脚本然后从数据库加载内容。

我想有这样的格式链接:

英文网址:sitename.com/contact
德文网站:sitename.com/kontakt
斯洛文尼亚网站:sitename.com/kontakt


请注意,德语和斯洛文尼亚站点的url是相同的,但它仍然根据IP和从geoplugin返回的代码加载不同的内容。

网站运行良好,但我担心的是谷歌和其他搜索引擎。谷歌会不会找到其他语言的网页,而不是"EN",或者使用更经典的方法,在url中添加语言id,就像这样:

英文网址:sitename.com/en/contact
德语网站:sitename.com/de/kontakt
斯洛文尼亚网站:sitename.com/si/kontakt


谢谢!

我建议您使用描述性URL。它使得基于URL的搜索与任何搜索引擎100%不同,从而消除了混乱。

确保将每个页面上的META信息更改为正确的语言。这将有助于从一开始就对语言进行分类。

通过使用这种方法,您还可以确保无论网站的哪个部分得到链接,从而在搜索引擎中得到改进,完整的域名都将获得更好的排名,从而使您的SEO工作保持一致。

可读的URL在任何方面都是这个十年最好的主意。

隐藏google工具栏

.goog-te-banner-frame.skiptranslate {
    display: none !important;
}
#google_translate_element{
    display: none !important;   
}
翻译回调函数
function googleTranslateElementInit() {
    new google.translate.TranslateElement({
        pageLanguage: 'de', 
        //includedLanguages: 'ar,en,gu,hi,pa,ur',       
        autoDisplay: false,
    }, 'google_translate_element');
}
<script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>

页面加载时触发事件

function fireEvent(element, event) {
  if (document.createEventObject) {
    var evt = document.createEventObject();
    return element.fireEvent('on' + event, evt)
  } else {
    var evt = document.createEvent("HTMLEvents");
    evt.initEvent(event, true, true);
    return !element.dispatchEvent(evt);
  }
}
var jObj = $('.goog-te-combo');
var db = jObj.get(0);
jObj.val('gu');
fireEvent(db, 'change');