2017-08-11 82 views
0

我尝试根据自己的语言自动检测浏览器语言并将用户重定向到适当的页面。网站是双语,默认语言是波兰语,第二个是英语。默认语言与波兰语不同的人被重定向到英文版。浏览器语言检测和重定向vs Google机器人

我发现其他问题的解决方案在这里,作为一个结果,我建立了我的控制器内的一个行动[Symfony的3]:对作品

public function indexAction(Request $request) 
{ 
    $locale = $request->getPreferredLanguage(array('pl', 'en')); 

    if($locale === "pl"){ 
     return $this->render('default/index.html.twig'); 
    }else{ 
     return $this->redirectToRoute('homepage_english', array(), 301); 
    } 
} 

这似乎符合市场预期。然而,事实证明,谷歌机器人有这个解决方案的问题。他们不能访问和索引我的波兰页会导致他们被重定向到/ EN如图所示例如从谷歌控制台...

我做错了什么,也许我不应该提出一个谷歌控制台,然后等一会儿?

我糊涂了......现在超过一半为英文网页更被收录,而波兰只有一个 - 此外,要早得多,与以前的应用程序

回答

1

可以使用的hreflang链接到“建议”一Google的页面。这应该有助于正确语言的页面索引。

一个例子是:

<link rel="alternate" href="http://example.com/en-ie" hreflang="en-ie" /> 
<link rel="alternate" href="http://example.com/en-ca" hreflang="en-ca" /> 
<link rel="alternate" href="http://example.com/en-au" hreflang="en-au" /> 
<link rel="alternate" href="http://example.com/en" hreflang="en" /> 

更多信息,请访问谷歌:https://support.google.com/webmasters/answer/189077?hl=en

+0

嗯,这将发出信号,告知页面有波兰相当于谷歌的机器人,但恐怕他们仍然将无法访问我的页面。我发送了一个sitemap.xml文件,所以我已经表明链接的存在,但没有效果。无论如何,我会尝试 – Kuba

+0

您可以尝试避免重定向并为字符串等构建翻译文件。如果URL是在语言之间共享的,那么这样的文件会有所帮助,如果url不是共享的,则不应该对其他语言可见。我一直都知道重定向应该在搜索引擎优化中最好避免 –

+1

我认为重定向到用户本地语言对他们来说很方便,但我发现这个解决方案的优点还有更多的缺点。我会暂时删除重定向,直到找到更好的解决方案或简单的解决方法。谢谢。 – Kuba