web-dev-qa-db-ja.com

Google検索結果のURLにクエリ文字列が表示されるのはなぜですか?

サイトからURLをGoogle検索に入力すると、そのURLが返されますが、結果にクエリ文字列が追加されています。たとえば、https://example.com/blog/blog/2013/02を検索すると、検索結果にはhttps://example.com/blog/blog/2013/02?limit=200というパラメーターが表示されます。

robots.txtファイルのパラメーターをDisallow: /*?として許可していません。これで、Googleの検索結果にメッセージが表示されます

このサイトのrobots.txtのため、この結果の説明は利用できません-詳細をご覧ください。

この追加されたクエリ文字列がURLにないようにするにはどうすればよいですか?

7
alamelu

Robots.txtは、ボットが許可されていないURLをクロールすることのみを防止し、インデックスを作成しないようにします。許可されていないURLが許可されていないページから外部または内部でリンクされている場合、それらはスニペットテキストとともにインデックスに表示されます引用しました。

それらをインデックスから完全に除外したい場合、おそらく最適なオプションは正規リンク要素です。

<head> <link rel="canonical" href="http://www.example.com"> </head>

指定した例では、ページhttps://example.com/blog/blog/2013/02?limit=200には次が含まれます。

<head> <link rel="canonical" href="https://example.com/blog/blog/2013/02"> </head>

HTTPSが優先プロトコルであることを前提としています。そうでない場合は、301リダイレクト経由で正規化する必要があります。

このアプローチの利点は、検索エンジンウェブマスターツールを設定する必要がないことです。

ウェブマスターツールを使用する

別の方法は、GoogleおよびBingウェブマスターツールでURLパラメーターフィルターを使用することです。 Googleでは、クロール> URLパラメーターフィルターの下にあります。

通常、そのページには、クローラーが検出したパラメーターが既に入力されていますが、手動で指定することもできます。

?limit=200がページに表示されるアイテムの数を制御していると仮定して、Google WMTで次のように構成します。

[はい:ページコンテンツの変更、並べ替え、または絞り込み]を選択します

[絞り込み]を選択します

[URLなし]を選択します

6
GDav

はい。最初に、robots.txtファイルのDisallow: /*?を取り除きます。これがGoogleからのメッセージの原因です。 Googleはあなたのサイトにまったくアクセスできないと言っています。

.htaccessファイルで、これを試してください:

RewriteCond %{REQUEST_URI} ^(*.)\?limit=\d+$ [NC]
RewriteRule .* https://example.com/%1 [R=301,L]

これはテストしていませんが、正規表現(正規表現)は正しいと確信しています。少なくとも別のシナリオでここでテストしました。これを試して、リクエストの末尾に追加されたさまざまな?limit=200を使用してサイトにいくつかのリクエストを行い、それなしでURLへのリダイレクトがあるかどうかを確認します。

私はまだ、パラメーターが実際の効果を持たず、害を及ぼさないと言います。そのままにしておいてかまいません。

3
closetnoc

クエリパラメータがどこから来たのかはわかりませんが、Googleアナリティクスでそれを取り除く方法があります。 https://support.google.com/analytics/answer/1010249?hl=en 、トピック「URLクエリパラメータを除外する」を参照してください。

0