標準リダイレクトと301リダイレクトを区別できません。
正規のリンクと301リダイレクトは何年も前から存在していましたが、それらは常に、リダイレクトを管理するのに最適なソリューションであるという混乱と疑問を生み出しています。
それでは、301リダイレクトと標準オプションの一般的な問題を詳しく説明していただけますか?
301リダイレクトを使用すると、現在のページが別のURLに永続的に移動されていることをGoogleに表示します。
キャノニカルは、重複したコンテンツに対するGoogleの罰則を防ぐために使用されます。使用すると、現在のページは存在しますが、別の「マスターページ」の「コピー」であるgoogleに表示されます。たとえば、OpenCart製品のURLを指定できます。次のようになります。
domain.com/product-1
domain.com/category-1/product-1
domain.com/category-1/subcategory-1/product-1
これは、コンテンツが同じ3つのまったく同じページであり、Googleはこのようなコンテンツの重複を嫌います。そのため、この場合、すべての単一ページに「マスター」ページにrel正規タグを配置する必要があります。たとえば、「domain.com/category/subcategory/product:」を選択します。
<link rel="canonical" href="domain.com/category/subcategory/product">
OpenCartはデフォルトでこれを行いますが、例ではそれを使用しています。
正規タグと301リダイレクトは、2つの非常に異なるものです。
<link href="...." rel="canonical" />
タグは、基本的に検索エンジンに「誰かがこのページのコンテンツを探している場合、URLを使用します...」と伝えます。
301リダイレクトは、検索エンジンとブラウザに「ねえ、探しているページは....のURLに永久に移動しました」と伝えます。
example.com/product.php
に製品ページがあり、青、黒、赤の3つの異なる色で利用できるとします。ユーザーが色を選択すると、ページが更新され、選択した色の帽子の画像が表示され、URLがexample.com/product.php?color=blue
に変更され、ページがどの色の画像を認識するのかがわかりますショー。
これで、検索ボットが登場すると、そのページのexample.com/product.php
、example.com/product.php?color=blue
、example.com/product.php?color=black
、example.com/product.php?color=red
の4つのURLが表示されます。 Googleは、これらが同じページの「バリエーション」であることを知りません。それぞれが固有のURLを持っているため、それぞれが別個のページであると想定します。そして、これらの4ページをクロールすると、コンテンツが変更されないことがわかります(画像を除く)。 4ページすべてのコンテンツは基本的に同一であるため、「重複コンテンツ」として分類されています。
この問題を解決するには、product.php
の<head>
にcanonical
URLを指定して、example.com/product.php
がGoogleがユーザーに送信するページであることをGoogleに伝えます。これを正しく実装するには、各「バリエーション」のcanonical
も、バリエーションのURLではなく、同じURLを指している必要があります。
今、厳密にSEO /ボットの観点から、301リダイレクトを使用して同じことを達成できます。 Googlebotがバリエーションページ(example.com/product.php?color=blue
)のいずれかにアクセスすると、サーバーはそのページがexample.com/product.php
に永久に移動したことをGooglebotに通知し、Googleは最終的にバリエーションページのインデックスを削除します。 "main" product.phpページをインデックスに保持します。
ただし、実際のユーザーがページにアクセスするときに問題が発生します。ブラウザは標準的なURLではなく301リダイレクトに従うため、ユーザーがそのページにアクセスしてexample.com/product.php?color=red
にアクセスして赤のニースハットを表示する色を選択しようとするたびに、サーバーは301リダイレクトをexample.com/product.php
、ブラウザはそのURLにアクセスします。ご覧のとおり、問題は、ユーザーが実際にどのバリエーションページも表示できないことです。
別の考え方として、canonical
タグは「提案」であり、301リダイレクトは「注文」に近いものです。ブラウザとボットは両方とも常に301リダイレクトに従います。ボットはcanonical
を使用して、インデックスを作成するURLと無視するURLを決定します。通常、ブラウザはcanonical
をそのジョブとは無関係として無視します。
1リダイレクト-「こんにちは、私は/requested-url
を使用しなくなりました。代わりに/this-new-url
を使用します。それに応じて情報を更新してください。」
Canonical-ボットに言います:「こんにちは。このページでは、/this-url
をURLとして使用します。このページに別のURLをインデックス付けした場合は、それを無視して使用してください。
標準的なラベル付きページと301リダイレクトの違いを生むのは、最初に表示されるHTMLコードです。
次の2つのURLがあるとします。
http://example.com/duplicate
http://example.com/original
...最初のURLから2番目のURLへの301リダイレクトを使用します。
結果を通常のWebブラウザー以外で分析すると、ページが新しいページへのハイパーリンクとして「here」という単語とともに移動したことを示すページが表示されるはずです。
コマンドラインツールCURLを使用していくつかのページをテストします。リダイレクトページでは、次のHTMLが表示されます。
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://example.com/newurl">here</a>.</p>
</body></html>
また、リダイレクトのヘッダーを確認するためにCURL -I
を実行しましたが、出力は次のとおりです。
HTTP/1.1 301 Moved Permanently
Date: Sat, 30 May 2015 17:47:32 GMT
Server: Apache
Location: http://example.com/newurl
Content-Type: text/html; charset=iso-8859-1
正規のラベルが付けられたページについては、上記のような移動済みステータスコードまたは移動済みページメッセージは表示されません。
それぞれの方法には長所と短所があります。
Canonicalを使用する場合、2つのページが重複するため、サーバーへのリクエストが少なくなり、特に検索エンジンに送信されたサイトマップでアドバタイズされない場合、他の重複ページを見る可能性が少ないという利点があります。
欠点は、rel=canonical
が一部の検索エンジンでまだ理解されていない可能性があるため、それらの検索エンジンでランキングが影響を受ける可能性があることです。また、影響を受けるページのコンテンツが2つのページが重複または関連しなくなるポイントに変更された場合、rel=canonical
を使用すると、Googleの認識方法によってはうまくいかない場合があります。
私がそれを好む方法は、301リダイレクト経由です。
301の利点は、ユーザーが正しいページに移動し、クライアントWebブラウザーのURLが更新されて、古いURLではなく新しいURLが表示されることです。また、301リダイレクトはrel = canonicalのような新しいものではないため、世界中のすべての検索エンジンがこの方法に満足しています。
欠点は、リダイレクトを完了するために追加の要求が必要になることです。通常のWebブラウザーでは、ほとんどの人が「ドキュメントがここに移動しました」などのメッセージを見るのを好まないため、要求は多くの場合自動です。
すべてを考慮して、私は個人的に301リダイレクトを続行し、サーバーを最適化して待ち時間を最小限に抑えました。適切に最適化されたサーバーでは、301リダイレクトでページの最初のバイトをローカルに提供するのに、約400ミリ秒かかりません。