WordPressでサイトのアドレスを変更したときに、サイトトップのURLへのリンクが旧アドレスのままになってしまったときの対処法

English

以下は、Wordpress ver.5.5.1で生じた不具合と解決方法です。

初めに

サイトを運営していると、サイトアドレスを変更したくなることがあります。例えば、レンタルサーバーでデフォルトのアドレスを使用していたが、後に独自ドメインを取得したときなどです。Wordpressは、そんなときでも比較的容易に対処することができるようにできています。

WordPressのアドレス変更方法については、以下の他サイトに詳しいので、そちらをご覧ください。

最も簡単な方法は、設定>一般の「WordPress アドレス (URL)」と「サイトアドレス (URL)」の2カ所を新しいアドレスに変更するだけです。これで、Wordpressが自動生成するリンクは新しいアドレスで生成されるようになります。記事内に挿入したリンクは手動で修正しなければいけませんが、その効率的な方法は、おまけで説明します。

Address

問題の発生と解決方法

ところが、上記処置にもかかわらず、トップページへのリンクが旧アドレスのままになってしまう現象が起こることがあります。さらに、トップページへのリンクをクリックすると、リダイレクトのループに陥ってブラウザエラーになることがあります。対処法に気づかないとハマってしまうところなので、同じような問題に直面した方のために、対処法を共有したいと思います。

外観>カスタマイズ>ホームページ設定(または、設定>表示設定)から、ホームページが固定ページであれば最新の投稿に変更して保存、再び固定ページに戻して保存、とするだけです。

不具合が生じる理由

なぜここで取り上げているような不具合が起き、上記のような方法で解決できるのでしょうか? 以下は、推測ですが、状況から考えられる理由です。

WordPressは、ページのリクエストがあったときに、プログラムで随時ページを生成して表示するタイプのCMSです。ただ、ページのコンテンツの全てを毎回1から生成していては、必然的にサーバーの負荷が高くなってしまいます。また、ほとんど同じ内容を毎回計算して出力するのは非効率的です。

そのため、Wordpressはいくつかの情報は再計算せずにすむようにキャッシュしているのではないかと推測されます。その情報の1つが、トップページへのリンクなのではないかと思うのです。そうすると、設定のアドレス変更ではそのキャッシュが更新されないため、旧アドレスへのリンクが残ってしまうのです。

トップページの設定を最新の投稿か固定ページに切り替えることがトリガーとなって、キャッシュが更新されるのではないかと思われます。

おまけ

サイトアドレスを変更すると、記事内のリンクは手動で修正しないといけません。しかし、記事内から1つずつリンクを探し出して修正するのは、あまりに時間がかかり過ぎます。そんなときには便利なプラグインの力を借りるのが正解です。

プラグインSearch Regexは、全記事内の任意の文字列を検索して、一括で特定の文字列に置換することができるプラグインです。全記事から旧アドレスを検索し、新アドレスに置換することが一瞬でできます。

Search Regexプラグインの使い方