全ページ同じcanonicalになっている時は、共通headの固定URLを疑う
自作PHPサイトやテンプレートサイトでは、includes/head-tags.php や includes/meta.php のような共通ファイルでhead内のタグを出すことがあります。
この時、共通ファイルへ固定のcanonical URLを書いてしまうと、全ページが同じURLを正規ページとして伝えてしまいます。Search Consoleで代替ページや重複、Google選択canonicalのズレが増えた時は、まず複数ページのHTMLソースを見比べます。
先に結論
- トップページ、記事ページ、下層ページのHTMLソースを開く
rel="canonical"が各ページで違うURLになっているか確認する- 全ページ同じURLなら、共通headやmeta出力を確認する
- 共通ファイルに固定URLを書かず、ページごとのURLから出す
- canonicalは1ページに1つだけ出す
- サイトマップと内部リンクも正規URLへそろえる
- 修正後、Search Consoleで代表的なURLを再検査する
まず3ページを見比べる
全ページ同じcanonicalかどうかは、1ページだけでは分かりません。種類の違うページを3つ選んで、HTMLソースを確認します。
| 見るページ | 確認すること | よい状態 |
|---|---|---|
| トップページ | canonicalがトップURLか | https://example.com/ |
| 通常の記事ページ | canonicalがその記事URLか | 記事自身のURL |
| 階層の深いページ | 下層でも正しいURLか | 下層ページ自身のURL |
記事ページを開いているのに、canonicalが全部トップページや同じ記事URLになっているなら修正対象です。
原因になりやすい場所
共通化されたサイトでは、canonicalの出力元が1か所にまとまっていることがあります。便利ですが、そこに固定URLを書くと全ページへ広がります。
| 場所 | 起きやすいミス | 見ること |
|---|---|---|
includes/head-tags.php | 固定canonicalを直接書いた | 全ページ共通で出るタグがないか |
includes/meta.php | 1つのURLを使い回している | ページ別変数を読んでいるか |
| 各ページのテンプレート | コピー元の記事URLが残っている | 新規記事ごとのURLに変えているか |
| CMSやSEO設定 | サイト全体canonicalを固定した | 記事単位のcanonical設定 |
| テーマファイル | カテゴリや記事で同じheadを使う | ページ種別ごとの出し分け |
固定URLではなくページごとに出す
共通ファイルの中へ、特定の記事URLを直接書くのは避けます。ページごとの変数や現在のURLからcanonicalを出す形にします。
<!-- 悪い例: 共通headに固定URLを書く -->
<link rel="canonical" href="https://example.com/sample-article.php">
<!-- 考え方: ページごとのURLをcanonicalに使う -->
<link rel="canonical" href="https://example.com/current-page.php">
PHPサイトでは実装方法がサイトごとに違います。大事なのは、共通ファイルが「固定URL」ではなく「そのページの正規URL」を受け取って出すことです。
Search Consoleで出やすいサイン
全ページ同じcanonicalになっていると、Search Consoleでは次のような状態とつながることがあります。
| Search Consoleの表示 | 見ること | 進む記事 |
|---|---|---|
| 代替ページ(適切なcanonicalタグあり) | 出したい記事が別URLの代替扱いになっていないか | 代替ページcanonical |
| Googleが選択した正規URLが想定と違う | Googleが別URLを代表にしていないか | Google選択canonical |
| 重複していますが、ユーザーが正規ページとして選択していません | サイト側の正規指定が不足または不自然でないか | 重複・正規未指定 |
| クロール済み - インデックス未登録 | 内容だけでなくcanonicalの向き先も確認する | クロール済み未登録 |
直した後の確認表
- トップページのcanonicalがトップページを指している
- 記事ページのcanonicalが記事自身を指している
- 下層ページのcanonicalが下層ページ自身を指している
- canonicalタグが1ページに1つだけ出ている
- canonical先が200で表示できる
- canonical先がnoindexではない
- サイトマップに入っているURLとcanonicalが矛盾していない
- 主要な内部リンクが正規URLへ向いている
AIに渡す調査メモ
全ページ同じcanonicalの相談では、複数ページのcanonicalを並べて渡します。1ページだけだと判断しづらいです。
全ページ同じcanonicalになっている可能性を確認したいです。
トップページURL:
トップページのcanonical:
記事ページURL:
記事ページのcanonical:
下層ページURL:
下層ページのcanonical:
canonicalを出していそうなファイル:
includes/head-tags.php / includes/meta.php / 各ページ / CMS設定 / 不明
Search Consoleで出ている表示:
代替ページ / Google選択canonicalが違う / 重複 / クロール済み未登録 / その他
サイトマップに入っているURL:
内部リンクが向いているURL:
確認してほしいこと:
1. 全ページ同じcanonicalになっているか
2. 原因が共通head、meta出力、テンプレート、ページコピーのどれに近いか
3. どのURLをcanonicalにすべきか
4. 修正後に確認するページとSearch Console項目