canonicalタグとは?正規URLの設定とGoogleが選んだURLを確認する方法

代表として選んだ紙のページと複数のURLを表す紙模型

こんにちは。バナナデスクです。

同じ記事が2つのURLで開く。どちらを検索に出したいか、迷いませんか。URLはページの住所です。canonical(カノニカル)は、同じ内容の代表にしたいURLを指定する仕組みです。

私は、通常URLと計測付きURLの1組から確認することを勧めます。架空の教室案内と当サイトの実例で説明します。自分の公開ページとメモ、対象サイトのSearch Consoleを使う権限を用意してください。

canonicalは、代表にしたいURLを伝える指定

同じ、または非常によく似た内容が複数のURLで開くとき、代表にしたいものを正規URLとして指定します。ページの構造を記すHTMLでは、設定情報を置くhead内に次の形で入り、hrefの引用符内が指定先です。

<link rel="canonical" href="https://example.com/course-guide/">

example.comは説明用のサイト名です。通常ページが自分のURLを指す指定を「自己参照」と呼びます。このタグをWordPressの本文へ貼るのではなく、まず現在の出力を確認しましょう。

Googleの正規URLに関する資料では、canonicalは強い判断材料とされています。ただし、サイトの指定とGoogleの選択は別で、採用や順位の改善を保証するものではありません。

URLの形より、ページの内容を比べる

架空の教室サイトで4種類を比べます。これは設定を考える例で、Googleの判定結果ではありません。

架空のURLと代表指定の考え方
URLの例 内容と判断
/course-guide/ 教室の通常案内。代表にし、自分自身を指定します。
/course-guide/?utm_source=newsletter 同じ案内の流入元を計測。内容が同じなら通常URLを指定します。
/trial-guide/ 通常案内とほぼ同じ旧ページ。残す必要を判断し、廃止・移転なら転送も検討します。
/online-course/ 別サービスのオンライン講座。教室案内へまとめません。

末尾の?utm_source=newsletterは追加情報「パラメータ」で、ニュースレターからの流入を計測する例です。通常URLと計測付きURLを別々のタブで開き、教室名・料金・参加条件・持ち物を見比べてください。アドレスが変わったら、移動後のURLも控えます。

同じ内容なら、代表にしたい完全なURLをhttps://からメモします。別料金や別講座が出るなら、違いを記録して整理し直しましょう。「?付きは全部まとめる」といった一括変更は避けます。旧URLを廃止するときのリダイレクトは、読者を別URLへ転送する仕組みです。canonicalだけでは読者は移動しません。

架空の教室案内で、通常URLと同内容の計測付きURLは通常URLを代表候補にし、旧URLの廃止は転送を検討し、別サービスのオンライン講座はまとめないと分ける図。
架空の4種類を、内容と役割で分けた図です。

設定を変える前に、現在のHTMLを読む

canonicalはWordPress本体や、表示を整えるテーマ、検索向けの機能を加えるSEOプラグインなどが出力します。設定欄が空でも出ることがあるので、公開ページから確かめます。

  1. 公開URLを開く。編集画面やプレビューではなく公開ページを開き、読み込み後のURLを控えます。
  2. Chromeで右クリック→「ページのソースを表示」。HTMLが並ぶ画面で、WindowsはCtrl+F、MacはCommand+Fを押し、canonicalを検索します。
  3. head内のlinkタグの件数とhrefを読む。<head>から</head>の間で、rel="canonical"になっているlinkだけを数え、hrefのURLを記録します。本文の説明やコード見本は数えません。
  4. 計測付きURLでも繰り返す。両方の件数と指定先を並べ、意図した通常URLかを読みます。

1件なら指定先を照合、複数なら出力元を整理して再取得、0件ならHTTPヘッダーも確認します。HTTPヘッダーは、ページを配信するサーバーが一緒に返す付加情報です。

0件の場合は公開ページを右クリックし、「検証」→「ネットワーク」→再読み込み→ページ本体のdocument→「ヘッダー」へ進みます。通信先を示す「リクエストURL」が調べたいURLか確かめ、「レスポンスヘッダー」のLinkにrel="canonical"があれば、山括弧内のURLを控えます。Linkという名前だけで判断せず、HTMLにも指定があれば一致を確認します。両方になければ「指定を確認できない」と残します。

修正が必要なときだけ、使用中のテーマやSEOプラグインなど、出力元の設定を見直します。変更前の値を控えて戻せるようにし、保存後に公開HTMLを取り直してください。古い表示が残る場合は、表示を速めるための保存データ「キャッシュ」を使用中の機能で更新します。

失敗例は、指定を追加して通常URLと旧URLを指すタグが2件になることです。追加した設定を変更前へ戻し、担当する出力元を整理します。ブラウザで見えているHTMLを手で消しても、サイト設定は直りません。出力元が不明なら、URLとタグ、変更内容を管理担当へ渡します。

HTMLのcanonicalを件数と行き先で確認する図。0件なら出力元とHTTPヘッダー、1件で意図したURLなら指定の確認後にURL検査へ、複数や異なるURLなら出力元を調べて再取得する。
件数と指定先から、次に調べる場所を決めます。

2026年10月1日の検証用WordPress Playgroundでは、WordPress 7.1.2/PHP 8.3.33/Twenty Twenty-Five 1.5を使用。記事のURL末尾を表すスラッグをcourse-guide-finalにしたページはHTTP 200(取得成功)で、自己参照canonicalが1件でした。この記録ではGoogleの選択は未確認です。

Googleの記録は、現在のHTMLと分けて読む

Search Consoleは、Googleがサイトをどう把握したかを調べるサービスです。URL検査の登録済み情報は、Googleが以前取得した記録であり、現在の公開HTMLとは別です。

サイト側で指定するcanonicalと、Googleが選んだ正規URLを分けて確認する図
指定と選択の関係を説明する概念図です。

次はURL検査ツールの公式説明に基づく管理画面の手順です。「公開URLをテスト」というライブテストでは、正規URLの選択を予測できません。

  1. 対象サイトのプロパティを選ぶ。プロパティはサイトの登録単位です。対象がなければ管理者へ権限を確認し、「未確認」と記録します。
  2. 上部の検査欄へ完全なURLを入力し、Enter。対象外と表示されたら、ドメイン(サイト名の部分)やhttp・httpsと選んだプロパティを照合します。
  3. 「ページのインデックス登録」を開く。検索用の登録情報から「ユーザーが指定した正規URL」「Googleが選択した正規URL」と「前回のクロール」を写します。クロールはGoogleによるページの取得です。日時も残します。
  4. 計測付きURLも別に検査する。「検査対象のURL」と出たら、今入力した完全URLとともに記録します。欄や値がなければ「表示なし」とし、HTMLから推測して埋めません。

2026年11月9日:実サイトの2つのURLを確認

11月9日11時26分頃(日本時間)、当サイトの通常URL https://bananadesk.biz/archives/9802と、計測付きURL https://bananadesk.biz/archives/9802?utm_source=newsletterを確認しました。

Googleの登録済み情報は、既存の読み取り権限で公式URL Inspection APIから取得しました。APIはサービスからデータを取得する窓口です。管理画面で2欄を読んだ実演ではありません。

記事9802の確認記録(確認日:2026年11月9日)
見るもの 通常URL / 計測付きURLの結果
現在の公開ページ 両方HTTP 200。転送はなく、本文の表示テキストと画像は一致。
現在のcanonical 両方のheadに1件ずつあり、どちらも通常URLを指定。HTTP Linkヘッダーのcanonicalはなし。
Googleの登録状況 通常:「送信して登録されました」。
計測付き:「URL が Google に認識されていません」。
記録された指定/選択 通常:両方とも通常URLで一致。
計測付き:両方の値が返らず、採用は未確認。
前回のクロール 通常:2026年11月4日06:53:41(日本時間)。
計測付き:日時が返らない。
通常URLと計測付きURLはどちらもHTMLで通常URLを指定するが、Googleの記録は通常URLで指定と選択が一致し、計測付きURLは未認識で正規URLの値がないことを対比する図。
2026年11月9日に記事9802の2つのURLを確認した例。計測付きURLの記録がないことを、通常URLが選ばれた証拠にはしません。

計測付きURLの記録がないことは、通常URLが選ばれた証拠ではありません。確認日は11月9日、通常URLのクロールは11月4日です。一致はその記録で確認できましたが、11月6日以後の本文改稿がGoogleに反映された証拠にはなりません。今回はcanonical・転送・robots等の設定変更、インデックス登録リクエスト、公開URLのライブテストは行っていません。

設定の変更日時と最終クロール日時を比べ、クロールが変更前なら新しい設定の採用をまだ判断せず、変更後なら指定と選択の欄を照合する図。実際の検査結果や日時を示したものではない。
変更日時とクロール日時を照合する概念図です。

別のURLが選ばれたら、この順で点検する

希望する通常URLとGoogleの選択が違う場合は、順に確認します。

  1. 代表にしたいページを正常に開けるか。ログアウトした状態で開き、ログイン要求・エラー・意図しない転送があれば先に直します。
  2. 内容は同じか。料金や参加条件を比べ、別のサービスならまとめません。旧ページを廃止するなら転送を検討します。
  3. canonicalの出力元はどこか。各URLのHTMLと、使用していればHTTPヘッダーを再確認。違う指定や重複があれば、出力元で直して取り直します。
  4. サイト内リンクとサイトマップはそろっているか。メニューや記事のリンク先を確認します。Search Consoleの「サイトマップ」で送信済みのURL一覧を開き、対象ページの掲載先を確認。通常URLを代表に決めたなら、案内先をそろえます。自動生成の一覧は生成元で直します。
  5. 変更箇所と日時を残す。公開HTMLへの反映を確認し、後日、次のクロール情報と指定・選択を照合します。クロールが変更前なら、新しい設定への判断は保留します。

取得範囲を制御するrobots.txtではGoogleが指定を読めなくなる場合があり、検索登録を止めるnoindexは代表を選ぶ指定ではありません。どちらもcanonicalの代用にはしません。

自分の通常URLと計測付きURLを1組記録する

自分の1組について、URLごとに調べたURL、代表にしたいURL、現在の出力件数・指定先、Googleの記録にある指定・選択、前回クロール、確認日を残します。変更した場合は変更日時も添えてください。

私なら各URLに「一致を確認」「食い違いを点検中」「採用は未確認」のどれかを一行で添えます。未確認なら、権限・値の表示・変更後のクロールのうち何が足りず、次に何を見るかを残せば、この1組の確認は一区切りです。