Google選択canonicalがズレるときの実務チェックリスト
URL InspectionでGoogle選択canonicalと指定canonicalがズレたときの対処法。URL正規化、自己参照canonical、sitemap整合、JSでcanonicalを変えない原則を整理します。
目次
- 結論(Conclusion)
- 背景(Explanation)
- Practical Guide
- Step 1: URL Inspectionで差分を確認する
- Step 2: URLの唯一形を決める
- Step 3: canonicalはHTMLソースで自己参照にする
- Step 4: sitemapも正規URLだけにする
- Step 5: JSでcanonicalを変えない
- Step 6: Googleの選択が妥当なら受け入れる
- 失敗パターン(Pitfalls)
- チェックリスト(Checklist)
- FAQ
- Q1. Google-selected canonicalが違うなら、必ず直すべき?
- Q2. canonicalをJSで付けても大丈夫?
- Q3. 多言語サイトではどうする?
- 内部リンク(Internal links)
- 参考(References)
- 免責
Google選択canonicalがズレるとき、何を直すべき?
結論(Conclusion)
Google選択canonicalがズレても、まず「Googleが間違っている」と決めつけないほうがいい。
- Googleは重複や近似ページをまとめて、代表URLを選ぶ
- その代表URLが、こちらの想定よりも自然なことがある
- ただし、URL正規化やcanonicalの実装が壊れているなら直すべき
実務の順番はこれ。
- URL Inspectionで
user-declared canonicalとGoogle-selected canonicalを比較する - URLの唯一形を決めて、redirectで寄せる
- canonicalをHTMLソースで自己参照にする
- sitemapのURLもその正規URLに揃える
- JSでcanonicalを後から変えない
- それでもGoogleの選択が合理的なら、無理に逆らわない
背景(Explanation)
canonicalは「このURLを見てほしい」というシグナル。 ただし最終決定はGoogle側が行う。
GoogleはURL群をクラスタ化して、より代表的で有用だと判断したURLを canonical と見なす。 そのため、次のようなズレは珍しくない。
- trailing slash や大小文字の揺れ
- rewrite で複数URLが発見される
utmなどのパラメータ付きURLが混ざる- 多言語ページで言語をまたいだ canonical が入っている
- テンプレ寄りで、Googleが別URLのほうを代表だと判断する
重要なのは、ズレの理由が「実装の不整合」なのか「Googleの妥当な選択」なのかを分けること。
Practical Guide
Step 1: URL Inspectionで差分を確認する
まず見るのはこれ。
user-declared canonicalGoogle-selected canonical- インデックス可否
ズレているなら、次に見るのはURLの形。
- 末尾スラッシュ
- 大文字小文字
- パラメータ
- リダイレクトの有無
- 言語違い
Step 2: URLの唯一形を決める
URLが複数あると、canonical以前にクラスタが散る。
対処はシンプル。
- 正規URLを1つ決める
- 他の形はredirectで寄せる
- rewriteだけで誤魔化さない
URLの形は、canonicalより先に固める。
Step 3: canonicalはHTMLソースで自己参照にする
基本形は自己参照canonical。
/ja/page/は/ja/page/をcanonicalにする/en/page/は/en/page/をcanonicalにする
JSで後から書き換えるより、HTMLソースで明示したほうが安全。
Step 4: sitemapも正規URLだけにする
sitemapは「Googleに見てほしいURLの一覧」でもある。
- canonicalと同じURLだけ入れる
- 旧URLや変種URLを混ぜない
- 多言語なら各言語の正規URLを整理する
Step 5: JSでcanonicalを変えない
Googleの公式ドキュメントでも、canonicalはHTML sourceで明確にするのが基本。 JavaScriptを使う場合でも、最初のHTMLと違うURLに変えないほうがいい。
Step 6: Googleの選択が妥当なら受け入れる
Google-selected canonicalが別URLでも、そちらのほうが自然なケースはある。
たとえば:
- 同じ内容の追跡パラメータ付きURL
- ほぼ同じテンプレページ
- 多言語の片側が薄く、代表として弱い
この場合は、Googleの選択を戻すより、ページの設計を見直したほうが早い。
失敗パターン(Pitfalls)
- canonicalは正しいのに、sitemapが別URLを推している
- rewriteで複数URLが残り続ける
- JSが後からcanonicalを書き換える
- 言語を跨いでcanonicalを向けている
- Google-selected canonicalを見ずに、毎回リクエストだけ送る
チェックリスト(Checklist)
- [ ] URL Inspectionで user-declared canonical と Google-selected canonical を確認した
- [ ] 正規URLの唯一形を決めた
- [ ] 旧URLは redirect で正規URLへ寄せた
- [ ] canonicalはHTMLソースで自己参照になっている
- [ ] sitemapは正規URLだけを載せている
- [ ] JSでcanonicalを別URLに変えていない
- [ ] 多言語ページで言語跨ぎcanonicalをしていない
- [ ] 追跡パラメータ付きURLを正規化した
- [ ] Googleの選択が妥当かどうかを一度は検討した
- [ ] ズレの理由を「実装不整合」と「Googleの代表選択」に分けて考えた
FAQ
Q1. Google-selected canonicalが違うなら、必ず直すべき?
いいえ。まず理由を見る。URLの揺れや実装ミスなら直すべきだが、Googleの選択がより自然ならそのままでよい。
Q2. canonicalをJSで付けても大丈夫?
できればHTMLソースで入れるほうがよい。少なくとも、JSで別URLに書き換えるのは避ける。
Q3. 多言語サイトではどうする?
原則は各言語ページで自己参照canonical。言語をまたいだ canonical は、意図がない限り避ける。
内部リンク(Internal links)
- 親記事(Hub):Googleインデックス + Search Console:まずはここから
- 関連記事:
参考(References)
- Google: canonical URL と重複URLの統合: https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls
- Google: canonicalization の問題を修正する: https://developers.google.com/search/docs/crawling-indexing/canonicalization-troubleshooting
- Google: sitemap の作成と送信: https://developers.google.com/search/docs/crawling-indexing/sitemaps/build-sitemap
- Google: JavaScript SEO basics: https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics
免責
インデックスは確率的です。改善はできても、全URLの登録を強制はできません。