canonicalタグが複数設定されている

1つのページにcanonicalタグが複数あると、Googleはそれらを全て無視することがあります。結果として、正規URLの指定そのものが効かなくなります。設定しているのに効かない、という分かりにくい形で現れる問題です。

公開日: 2026年8月16日 / 最終更新日: 2026年9月6日

カテゴリ: インデックス / 影響度: 高 / 想定工数: 1時間 / ルールID: multiple_canonical

この問題の意味

canonicalは「このページの正規URLはこれです」と伝えるタグです。1ページに1つだけ置くのが前提の仕様です。

複数のcanonicalが存在すると、検索エンジンはどれを信じるべきか判断できません。Googleの説明では、矛盾する指定があった場合はすべて無視されることがあるとされています。つまり「正規化の指定が無い」のと同じ状態になります。

なぜ気づきにくいのか

canonicalを設定した本人からすると「設定済み」なので、正しく動いていると思い込みます。実際には無視されており、意図しないURLがインデックスされたり、重複コンテンツが解消されなかったりします。

ページのソースを開いて上から読んでも、head内が長いと2つ目のcanonicalに気づかないことがあります。

よくある発生原因

Smash SEOの検出条件

ページ内のcanonicalタグの数を数え、2個以上ある場合に検出します。対象は応答が200番台〜300番台のページです。値が同じか異なるかに関わらず、複数存在する時点で報告します。仕様上1つであるべきものが複数ある状態自体がリスクだからです。

直し方

出力元を1つに絞ります。どちらを残すかは、今後の運用のしやすさで決めてください。

正しい状態

<head>
  <!-- canonicalは1ページに1つだけ -->
  <link rel="canonical" href="https://example.com/service/" />
</head>

修正後の確認方法

よくある質問

同じURLのcanonicalが2つあるなら問題ないのでは?

値が同じでも仕様違反であり、実装が二重になっている状態です。片方だけ後から書き換わると矛盾が生じるため、1つに統一すべきです。

HTTPヘッダとHTMLの両方でcanonicalを指定していますか?

HTTPヘッダのLinkヘッダでも指定できます。両方で異なる値を指定すると矛盾するため、どちらか一方に統一してください。

関連記事

この問題が自分のサイトで起きているかは、URLを入力するだけで確認できます。 無料で診断するルール一覧料金プラン