私のウェブサイトの Google インデックス登録に奇妙な問題があります。これはすべての検索エンジンの問題ですが、例として Google を使用します。(ウェブサイトはブルガリア語です)
料理レシピのサイトです。これは CodeIgniter を使用してビルドされ、jQuery ロード関数を使用してレシピのコメントをロードします。jQuery ロードは、URL 要求を介して直接アクセスできないコントローラー関数を呼び出しますが、要求が ajax の場合のみです。
コメントの取得機能に (ajax ではなく) 直接アクセスしようとすると、URI セグメントに対応するレシピ (何も見つからない場合はホームページ) にリダイレクトされます。
問題は、Google が私の ajax リクエストのみをインデックスに登録し、レシピの実際のページをインデックスに登録しないことです。
以下に、コードと問題へのリンクを配置します。
ドメインはhttp://www.gotvachnicata.com/で、たとえば次のレシピを取得できます: http://www.gotvachnicata.com/potrebiteli/gotvachnicata/recepta/domashna-pica-sas-salam-i-lyuti -チュシキ
次の方法で実行されるコメントをロードする ajax リクエストがあります。
$(document).ready(function(){
$('.recipe-comments').load('http://www.gotvachnicata.com/process/get_recipe_comments/24');
});
最後のセグメントはレシピの ID です。このコントローラー関数を ajax 経由でリクエストすると、この ID を持つレシピのコメントが取得されます。直接アクセスしようとすると、この ID を持つレシピにリダイレクトされます。これは、次のコードで行います。
if ($this->input->is_ajax_request()) {
//Load the comments
} else {
//Redirect to the recipe
}
Google にサイトマップを送信しました。ここで確認できます: http://www.gotvachnicata.com/sitemaps/sitemap_recipes.xml
これにより違いが生じる場合は、構造化データ ( http://schema.org/ ) も使用しています。
そして最後に実際の問題 - Google でレシピを検索すると (検索用のリンクhttp://bit.ly/XhNk3K )、検索結果に次のリンクが表示されます。
http://www.gotvachnicata.com/process/get_recipe_comments/24
それ以外の
そして、これはウェブサイト上のすべてのレシピに適用されます. Google は、実際のページではなく ajax リクエストをインデックスに登録しているようです。
なぜこれが行われるのか、それを修正するために何を変更する必要があるのか 本当にわかりません。私としては、SEO はこの Web サイトにとって非常に重要です。Google で SEO に適した URL をインデックスに登録したいと考えています。