web-dev-qa-db-ja.com

GETを使用してロードするページフラグメントを指定すると、検索エンジンによってURLとして表示されますか?

常に推奨されるわけではありませんが、http://my.site.com/index.php?page=welcome"または単にhttp://my.site.com?page=welcomeの形式で何かを見るのは非常に一般的です。スクリプト(この場合はindex.php)は、「welcome」に等しい「page」アイテムを取得します。

ページ内のリンクにこれらのいくつかが存在する場合、Googleや他の検索エンジンはそれぞれ個別のページとしてインデックスを作成しますか、またはURLの「クエリ」部分を無視しますか?この簡単な例を考えてみましょう。

<?php // Our index.php - Simple multi-view page ?>
<a href="index.php?page=welcome">Welcome Page</a>
<a href="index.php?page=about">About Page</a>
<a href="index.php?page=contact">Contact Page</a>
<?php
    if(!isset($_GET["page"])) $_GET["page"]="welcome";
    switch( $_GET["page"] ) {
      case "about": echo '<p>This is the About page</p>'; break
      case "about": echo '<p>This is the Contact page</p>'; break
      default: echo '<p>This is the Welcome page</p>'; break

    }
?>

ここでの質問は、Googleがこのページをクロールするとき、リンクする3つの各ページを個別のリンクとして表示するか、単一ページ(index.php)のみをインデックス付けして?の後のすべてを無視するかです。

2
SteJ

クエリ文字列はURLの一部としてカウントされ、バリエーションは一意のURLと見なされます。したがって、Googleはそれらを異なるページとして認識します。これはまた、あなたの場合、重複したコンテンツの問題があり、検索結果に表示されるプライマリURLをGoogleが考慮する必要があるURLを指定するために正規URLを使用する必要があることを意味します。

2
John Conde