ステージングサイトを本番環境にプッシュした後、Yoast SEO がステージングのドメインをカノニカル URL として保持し続けたり、カノニカルを完全に削除してしまったりすることがあります。解決策は、Yoast のインデックス(indexables)を再構築してすべてのカノニカルをライブドメインに対して再生成し、まだ誤っている個々のページについてはカノニカルを手動で設定することです。
サイト移行後に Yoast のカノニカル URL が誤っているのはなぜですか?
Yoast SEO はページの読み込みごとにカノニカル URL を計算するわけではありません。それらを**インデックス(indexables)**に保存します。これはデータベーステーブル wp_yoast_indexable に保持される SEO データのキャッシュで、加えて投稿ごとの値が wp_postmeta に保存されます。ステージングサイトを本番サイトにプッシュすると、これらの行はデータベースとともに移動します。
サイトがまだステージングのドメインを使用していたときにインデックスが構築されていた場合、それらはステージングの URL を保持しています。プッシュ後、次の 2 つの症状のいずれかが現れます。
rel="canonical"タグがステージングの URL を指している(たとえばhttps://example.com/page/ではなくhttps://staging.example.com/page/)。- 一部のページでカノニカルタグが欠落している。保存されたインデックスの行が古い、または不完全であるため。
原因は、Yoast のインストールが壊れているのではなく、キャッシュされたインデックスデータにあります。Yoast はすべての公開投稿とページに対して自己参照型のカノニカルを自動的に出力します。切り替えるグローバルなオン/オフスイッチはありません。したがって目標は、Yoast にそのキャッシュを正しいドメインに対して再構築させることです。
Yoast SEO で単一ページのカノニカル URL を修正するにはどうすればよいですか?
影響を受けるのが 1 ページまたは数ページだけの場合は、エディター内で直接カノニカルを上書きします。
- 影響を受けるページまたは投稿を WordPress エディターで開きます。
- Yoast SEO のサイドバー(またはコンテンツ下の Yoast メタボックス)で、詳細設定タブを開きます。
- カノニカル URL フィールドを見つけます。
- 正しいライブ URL を入力します。または、フィールドを空にして、Yoast がライブドメインに対するデフォルトの自己参照型カノニカルにフォールバックするようにします。
- ページを更新します。
フィールドを空のままにするのが通常は正しい選択です。ほとんどのページが持つべきなのは自己参照型のカノニカルだからです。ページが別のカノニカルを指すべき場合(たとえば配信または複製されたページ)にのみ、明示的な URL を入力してください。
サイト全体の移行後にカノニカル URL を一括修正するにはどうすればよいですか?
多くのページがステージングのドメインを保持している場合、1 つずつ修正するのは現実的ではありません。代わりに、すべてのインデックスを一度に再構築してください。
オプション 1:Yoast の SEO データをリセットして再最適化する
- Yoast Test Helper プラグインをインストールして有効化します。
- ツール → Yoast Test に移動します。
- Reset Indexables & Migrations をクリックします。これによりキャッシュされたインデックスがクリアされ、Yoast はそれらを一から再構築します。
- SEO → ツール に移動し、Start SEO data optimization をクリックします。Yoast はカノニカル URL を含むすべてのインデックスを、現在の(ライブ)ドメインに対して再生成します。
- 最適化が完了したら Yoast Test Helper プラグインを無効化します。これは開発者向けツールであり、有効なままにしておくものではありません。
オプション 2:WP-CLI でインデックスを再構築する
シェルアクセスがある場合、同じ再構築をコマンドラインから実行できます。
wp yoast index
これは現在のサイトの Yoast のすべてのインデックスを再インデックスします。大規模なサイトではブラウザベースのオプティマイザーよりも高速で、再実行しても安全です。
どちらのオプションの後でも、すべてのキャッシュをクリアしてください(キャッシュプラグイン、サーバーキャッシュ、CDN)。これにより、訪問者とクローラーは古いものをキャッシュしたコピーではなく、修正されたカノニカルタグを受け取ります。
もう 1 つ確認すべきこと:プッシュ中にデータベースで検索置換が実行され、ステージングのドメインがライブのドメインに置き換えられたことを確認してください。WP STAGING はプッシュ時にこれを自動的に行いますが、別の方法でデータベースをインポートした場合は、データ内に残ったステージングのドメインが根本原因であり、インデックスの再構築だけでは修正できません。
次回のプッシュでカノニカル URL の問題を防ぐにはどうすればよいですか?
- ドメインの書き換えは WP STAGING に任せる。 WP STAGING でプッシュすると、Yoast のデータを含めデータベース全体で検索置換が実行されます。この手順を省く手動のデータベースインポートは避けてください。
- プッシュのたびにインデックスを再構築する。「Reset Indexables & Migrations + SEO data optimization」(または
wp yoast index)をプッシュ後のチェックリストの一部にしましょう。 - ページごとのカノニカルをステージングのドメインにハードコードしない。 ステージングでのテスト中に明示的なカノニカルを設定した場合は、プッシュ前にそれをクリアして、ライブページが自己参照型のカノニカルにフォールバックするようにします。
カノニカルタグが重要な理由については、重複した URL の統合に関する Google のガイダンスと、rel="canonical" に関する Yoast の説明を参照してください。
よくある質問
Yoast のインデックスをリセットすると SEO 設定は削除されますか?
いいえ。インデックスのリセットはキャッシュされた SEO データのみをクリアします。Yoast は既存の投稿と設定からそれを再構築するため、タイトル、メタディスクリプション、フォーカスキーワード、構成はそのまま維持されます。
移行後にカノニカル URL が空になっているのはなぜですか?
カノニカルが欠落している場合、ほとんどの場合はそのページのインデックスの行が古い、または新しいドメインに対して再生成されていないことを意味します。インデックスを再構築する(上記のオプション 1 または 2)と、自己参照型のカノニカルが復元されます。
これを修正するために Yoast Test Helper プラグインは必要ですか?
WordPress 管理画面からインデックスとマイグレーションをリセットする最も簡単な方法です。コマンドラインを好む場合は、wp yoast index が追加のプラグインなしで再構築を行います。いずれにせよ目標は同じで、Yoast にキャッシュされた SEO データを再生成させることです。
これは Yoast SEO の無料版と Premium 版の両方に当てはまりますか?
はい。インデックスは Yoast SEO の無料版と Premium 版の両方に存在するため、同じリセットと再構築のプロセスでどちらのカノニカル URL も修正できます。