うーん…リダイレクトとカノニカル、どっちをいつ使うか。これ、結構みんな悩むよね。🤔
正直、最初の頃は僕もよく分かってなかった。なんか似てるし、どっちも「こっちのURLを見てね」ってGoogleに伝えるやつでしょ?みたいな。でも、これ、似てるようで全然役割が違うんだよね。間違えると、せっかく作ったページの評価が分散しちゃったり、最悪の場合、検索結果から消えちゃったり…。笑えない。😂
今日はその辺の話を、ちょっと整理してみようかなって。まあ、自分用のメモみたいなものだけど。
まず結論。一言でいうと、こう。
すごく大雑把に言うと、こんな感じ。
- 301リダイレクト:「引っ越し」だよ。古い住所にはもう誰も住んでないから、新しい住所に強制的に転送する。ユーザーも検索エンジンも、強制的に新しいページに飛ばされる。
- rel="canonical"(カノニカル):「名刺」みたいなものかな。「似たような人がたくさんいるけど、私が本人です」って宣言する感じ。ユーザーは色々なページを見れるけど、検索エンジンには「評価はこのURLにまとめてね」って伝える。
これだけだと、まだフワッとしてるよね。分かります。
ECサイトでよく見る「やっかいな例」
具体的な話の方が分かりやすいと思う。例えば、ECサイトの商品ページ。これ、重複コンテンツの温床になりがち。
Tシャツのページがあったとして、
- 色(赤、青、黒)
- サイズ(S, M, L)
- 表示順(新着順、価格順)
これらを選ぶたびに、URLにパラメータが付くことってよくあるよね。(例: `?color=red&sort=price_asc` みたいなやつ)
中身はほぼ同じ「Tシャツのページ」なのに、URLだけが大量にできあがっちゃう。これを放置すると、Googleは「全部違うページなの?どれを評価すればいいの?」って混乱して、ページの評価が分散しちゃう。
こういう「ユーザーの利便性のために残しておく必要はあるけど、SEO的には1つにまとめたいページ」こそ、canonicalの出番なんだよね。 パラメータが付いたURL全部に、「本体のURLはこれですよー」ってcanonicalタグで指定してあげるわけだ。
じゃあ、どうやって使い分けるの?
まあ、基本はさっきの「引っ越し」か「名刺」かで考えれば、だいたいOK。もう少しちゃんと表にしてみると、こんな感じかな。
| 301リダイレクト | rel="canonical" | |
|---|---|---|
| 目的 | ページの恒久的な移転。「古いページはもう使わない」という強い意思表示。 | 重複・類似コンテンツの評価統合。「ページは残すけど、評価はこちらに集約して」というお願い。 |
| ユーザーの動き | 強制的に新しいURLに飛ばされる。古いページは見れない。 | それぞれのURLにアクセスできる。見た目は何も変わらない。 |
| Googleへの伝わり方 | 強いシグナル。「はい、移転ですね。承知しました」って感じで、かなり素直に聞いてくれる。 | これも強いシグナルだけど、あくまで「ヒント」や「お願い」。 他の要因(内部リンクとか)によっては、無視されることもある。 |
| よくある使い道 | ・サイト移転 ・ドメイン変更 ・URLの正規化(www有無、https化) ・ページの統合 |
・ECサイトのパラメータ付きURL ・PC/スマホでURLが違う場合 ・ABテスト実施時 ・コンテンツを外部に転載してもらう時 |
実装は、まあ…間違えなければ簡単
実際のコードの話。ちょっとだけね。
301リダイレクトの場合
これはサーバー側の設定。`.htaccess` ファイルに書くのが一般的かな。例えば `old-page.html` を `new-page.html` に移すなら、こんな感じ。
Redirect 301 /old-page.html https://www.example.com/new-page.html
サーバーの設定をいじるから、ちょっと緊張するよね。バックアップは忘れずに。🙏
rel="canonical"の場合
こっちはHTMLに1行追加するだけ。正規化したいページ(評価を統合させたい先のページ)の `
` タグ内に書く。例えば、`?color=red` のページに、パラメータなしのURLを正規URLとして指定する場合、`?color=red` ページのHTMLに↓これを書く。
<link rel="canonical" href="https://www.example.com/product-page/" />
これだけ。簡単そうでしょ?でも、指定先のURLを間違えたりすると、評価が変なページに集まっちゃったりするから、そこは慎重に。 絶対パスで書くのが基本ルールね。
よくある間違いと、その対処法
一番やっちゃいけないのは、シグナルを矛盾させること。 例えば、
- ページAからページBへ301リダイレクトを設定している。
- なのに、ページAのcanonicalタグでページCを指定している。
Google「どっちだよ!?!?」ってなる。こういうのはダメ。 基本的に、リダイレクト元のページにはcanonicalを設定する必要はないかな。どうせすぐ転送されちゃうし。
あと、GoogleのJohn Muellerとか海外のSEO情報を見てると、「canonicalはあくまでヒント」って言葉がよく出てくる。 これは日本でも同じで、canonicalで正規URLを指定していても、外部からのリンクが全部バラバラのURLに向いていたりすると、Googleがそっちを信じてしまうこともあるみたい。 だから、サイト内の内部リンクも、ちゃんと正規化したいURLに統一しておくのが大事。
Googleの公式ドキュメント(Search Central)は、こういう時の一次情報としてすごく頼りになる。 ただ、日本のWebサイト、特に大規模なECサイトの実装を見ると、公式ドキュメントの理想通りとはちょっと違う、独自の工夫が見られることもあるから、両方見ておくのがいいと思う。
まとめみたいなもの
結局のところ、検索エンジンに対して「誠実」であることなのかな、と。
ユーザーにとっても、検索エンジンにとっても、どっちが分かりやすいか。ページの意図を素直に伝えるには、どっちの手段が適切か。それを考えれば、自ずと答えは出る気がするんだよね。
…なんて、ちょっと格好つけてみたけど。まあ、要は「恒久的な移転ならリダイレクト、それ以外で重複してるならカノニカル」っていう基本を押さえておけば、大きな失敗はしないはず。
あなたのサイトで、「これ、どっちなんだ…?」って悩んでるURL、ありますか?よかったらコメントで教えてください。一緒に悩みたい。☕
