記事がリダイレクトできない問題【解決】

301 redirect

いくつか記事がまとまった数になってきたので、サブディレクトリに分けてみた。

そうしたら、いろいろ面倒くさかった。

まぁ、とりあえず、なんとか記事を移して、体裁を整えた。

その後もいろいろやることはある。

まず、リダイレクトから始めよう。

リダイレクトとは元URLへのアクセスを、新URLへリダイレクト(転送)すること。

リダイレクトも、すんなりとは行かなかった。

スポンサーリンク

リダイレクトする方法

リダイレクトには、301(恒久的)と、302(一時的)がある。

ブログ記事の移転なので、もう元のURLには戻ってこない。

ということで今回の自分の場合、301(恒久的)リダイレクトを使うことになる。

リダイレクトってどうするの?

さて、そもそも、リダイレクトってどうするのだろうか。

リダイレクトは、通常.htaccessを使うらしい。

.htaccessってなんでっか?

.htaccessはサイトをリダイレクトするときに使うらしい。サイト全体、URLの個別指定もできる。

自分は、記事をいくつかリダイレクトしたいだけなんだけれども……。

自分が愛用しているテーマCocoonには、記事編集画面にリダイレクト機能も完備されている。

すばらしい!

通常なら編集画面にあるリダイレクト用のボックスに、新しいURLを入れるだけで、カンタンにリダイレクトされるはず。

なのに、うまくいかなかった。

できるのもあるけど、できないのもあった。

なんでだ~~~~!

原因が分からない……

こういうときは、プラグインでもやってみよう。

リダイレクトで使ったプラグイン

今回、使ってみたプラグインは以下の二つ。

Safe Redirect Manager
Redirection

このふたつは、リダイレクト元と、先のURLを入れるだけ。

そして301(恒久的)リダイレクトを指定する。デフォルトで、あらかじめ入力されているプラグインもある。

自分のようなプログラムとか全然分からない者には、こういうプラグインは助かる。

Redirectionは、404エラーを表示してくれるので個別対応ができるのが便利。

Safe Redirect ManagerからRedirectionにインポートできる。

リダイレクトに関する問題と対処

プラグインを複数使ったのは、一つでやってみて、うまくいかなかったことがあったから。

別のプラグインでやってみても、同じ事象が出るか試してみた。

リダイレクトに関する2つの問題

結局、テーマ備え付けのリダイレクト機能、プラグイン2つで、リダイレクトできないURLが発生した。

1. 301リダイレクト後、すぐに元URLを非公開にしたら、404NOT FOUNDになった。
元URLは、しばらく残しておいて大丈夫なのだろうか。

2. 別のURLで、リダイレクトの設定をしたにも関わらず、リダイレクトせずに、つまり、元のURLのまま表示される事象が発生した。
もちろん、移転後のURLは公開になっている。リダイレクトできるURLもある。

規則性が全く分からない。

対処1

1. Chromeのキャッシュをクリア→ダメ

2. 別のブラウザを使う→ダメ。

リダイレクトできない問題を解決した方法と結果1

ということは、リダイレクトとは関係がない、他のプラグインが影響を及ぼしているのかもしれない!

【対処】W3 Total Cacheを外し、WP Fastest Cacheにした。

これで、問題2のリダイレクトができずに元のサイトが表示される問題は解決した。

AMPのリダイレクトはどうする?

しかし、それでも、404NOT FOUNDが発生するページがある……。

はて……?

そういえば、AMPページのリダイレクトが404NOT FOUNDになっているような気がする。

通常ページにリダイレクトをかけると、AMPページも連動するのかと思ったら、そうでもなさそう。

その結果、404NOT FOUNDになっているのかもしれない。

AMPリダイレクトへの対処

【対処】AMPページを個々にリダイレクトを設定した。

自分の場合、AMPページのURLは以下のような構造になっている。

旧:https://randommemorandum.rouge22.com/example/?amp=1/
新:https://randommemorandum.rouge22.com/newsite/example/?amp=1/

最後のamp要素は、テーマによって違うかもしれない。

サブドメイン以下にnewsiteを追加するだけ。

いよいよ.htaccessか……!?

と、一瞬覚悟したものの、記事数がさほど多くないので、.htaccessの書き方を調べるより、プラグインの方が早いと思って、Redirectionに頼ることにした。

【結果】すべてリダイレクトされるようになった。

リダイレクト成功!

301リダイレクト後の元記事はどうするの?

リダイレクトしているのに、元記事を残すと、Google上にまったく同じ記事が載ることになる。

これは「重複コンテンツ」として、マズイ。

サーチコンソールのヘルプに、元記事に関する質問があった。

Q:.htaccessにて301リダイレクトが正常に動いていれば元記事は削除してもいいですか?

(中略)

.htaccessにてリダイレクトがしっかり設定されていてそれを保持しているのであれば
ご認識どおりhtmlファイルなど残しておく必要はありません。

今回、自分は、.htaccessではなく、プラグインを使ったけれど、リダイレクト後の元記事をどうするか、というポイントは同じ。

なので、「残しておく必要はありません。」という回答なので、元記事は「非公開」とした。

元記事はno follow にするの?

上の記事には、リダイレクト後にno indexを設定した事例の相談がある。

リダイレクト後にno indexがあったとしても、特に問題はなさそう。

まとめ

リダイレクトができない場合、プラグインが影響している場合がある。

プラグイン一覧で、いったん全部無効化してから、少しずつ有効化しながら、相性が良くないプラグインを特定していく。

今回は、キャッシュに関するプラグインを入れ替えて、うまくいって良かった。

AMPページのリダイレクトも意外だった。

今回は、プラグインの入れ替えと、AMPページのリダイレクトで、うまくいった。

しかし、原因はどこに潜んでいるか、分からない。

WordPressのバージョン、サーバー契約状況、テーマなど、様々な理由がありえる。

WordPressはメンドウクサ……奥深い……。

 

 

 

 

error: