2017-08-11 18 views
0

ブラウザの言語を自動的に検出し、ユーザーの言語に応じて適切なページにリダイレクトしようとしています。サイトはバイリンガル、デフォルト言語はポーランド語、2番目は英語です。ポーランド語と異なるデフォルト言語の人は英語版にリダイレクトされます。ブラウザ言語の検出とリダイレクト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); 
    } 
} 

予想通りそれが作品に思えます。しかし、Googleのロボットはこの解決策に問題があることが判明しました。 Googleのコンソールからの例に示すように、彼らは/ ENにリダイレクトされる原因彼らは私が何か間違ったことをした、または多分私はグーグルを示唆してはならない

...私のポーランド語のページにアクセスし、インデックスすることはできませんコンソールと少し待つ?

ポーランドはちょうど1間、私は、インデックス付けされた半分の英語のページよりも今以上の場合...混乱している - だけでなく、はるかに早く、以前のアプリケーションとの

答えて

1

あなたが「提案」をするためのリンクをHREFLANG使用することができますGoogleのページ。これは、正しい言語のページの索引付けに役立ちます。

例は次のようになります。https://support.google.com/webmasters/answer/189077?hl=en

+0

うーん、このページはポーランド相当するものは、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" /> 

詳しい情報をGoogleに提供されています私のページにアクセスすることはできません。私はsitemap.xmlを送りましたので、リンクの存在をすでに伝えていましたが、影響はありませんでした。とにかく私は試してみる – Kuba

+0

あなたはリダイレクトを避け、文字列等の翻訳ファイルを作ることができます。そのようなファイルが言語間で共有されている場合、そのURLが共有されていない場合は、他の言語では表示されません。私はいつもリダイレクトが理想的にSEO目的のために回避されるべきであることを学びました –

+1

私はユーザーの母国語にリダイレクトするのが便利だと思っていましたが、この解決法の利点よりも面倒です。私は、より良い解決法が見つかるまで、またはほんの一種の回避策を見つけるまで、一時的にリダイレクトを削除します。ありがとう。 – Kuba

関連する問題