2017-08-11 139 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