コロナウィルスの感染拡大の影響で自粛中のゴールデンウィークに大きな問題が発生しました。
朝方にメールでWordPressから自動アップデートのようなお知らせがあったんですが、とくに気にもしてなく休日をのんびり過ごしていたんです。
夕方になってなんとなく自分のブログを見ると「記事が開かない!」現象が発生していました。
おまけに404エラーが表示されます。
このクリックしてもブログの記事が開かない問題点をまとめるとこうなります。
1.Googleの検索には記事が表示されているがクリックしても記事が開かない
2.内部リンクの記事が開かない
3.トップページから記事が開かない
結論としてはパーマリンクに問題があったのですが、僕と同じような現象が起きて困っている方の参考になれば思い、WordPressでブログ記事をクリックしても表示されなくなった現象の原因と対処についてまとめます。
クリックしてもブログ本文が表示されない現象とは?
今までは何も問題なくトップページからブログタイトルをクリックすれば記事が表示されていました。
Googleにインデックスされてある自分のコンテンツをクリックしても表示されていたのに、ある日をきっかけにいきなり表示されなくなりました。
この日に原因として考えられるのは「WordPressのアップグレード」です。
WordPressのアップグレードのせいで、このような表示されない症状になったのはなんとなくわかるのですが、なぜそうなったのか?どのように直せばいいのか?この理由がまったく分からずお手上げ状態です。
ブログ記事が表示されない状況整理をしてみた結果
とりあえずできることをしながら状況の整理をしてみました。
修正しようにも原因が分からなければ直しようがありません。
1.プラグインを全停止した
2.ブログのテーマを変えてみた
3.プラグインなどすべてアップグレードした
4.他の管理サイトを比較した
プラグインを全停止した
まずはネットでもよく紹介されているプラグインの問題を疑いました。
WordPressのアップグレードがあったので、プラグインがなんらかの障害になって記事が表示されない問題です。
結果としては全停止しても直りませんでした。
ブログのテーマを変えた
もしかしたらWordPressではなくブログのテーマに問題があるのか?
今はcocoonを使っているのですが、他の無料テーマに換えてみました。
それでも直りませんでした(疑ってしまいcocoonに申し訳ない)
プラグインなどすべてアップグレードした
これもよくある対処法です。
全停止ではなくアップグレードすれば直るという話もあったので、プラグインをすべてアップグレードしました。
まったく効果ありませんでした。
他のサイトと比較した結果が疑わしかった
僕の場合は複数サイトを運営しているのでそれと比較してみました。
そこで思わぬ発見がありました。
はてなブログ時代から運営していてWordPressへ移転したブログは記事が表示されないのですが、ブログの開始当初からWordPressでスタートしたブログは問題なく正常です。
ここでトラブルの原因となるヒントを発見したわけです。
はてなブログから移転したサイトは記事が表示されないトラブルが発生する。
最初からWordPressで更新しているサイトは正常。
はてな→WordPress(エラー)
純粋WordPress(問題なし)
この違いはなにか?
トラブルの原因はパーマリンクだった
LINEチャットでも質問したりして親切に指導もしてもらいながら、だんだんとブログ記事が表示されないトラブルの原因が分かりました。
それはパーマリンクです。
パーマリンクとは?
パーマリンクとはウェブサイトの各ページに対して個別に与えられているURLのことです。
つまりURL自身のことになります。
はてなブログとWordPressのパーマリンクの違いが問題
はてなブログの場合のパーマリンクは、例えば僕のサイトの場合は、作成日がURLになるわけです。
https://okane.online/2019/08/22/133000(はてなブログの場合)、このようにドメインの後ろに「年/月/日/時間」の数字がついてURLになります。
ところがWordPressへ移転するとWordPressの標準仕様は、https://okane.online/2019-08-22-133000/ このように「/」で区切らずに「-」で区切るようになります。
でもパーマリンクを少しでも変えるとURLがまったくの別物になり、せっかくGoogleにインデックスされたコンテンツが404エラーになり「記事がありません」状態になるので、ブログの移転時には困るわけです。
その解決策としてWordPressにはパーマリンクをカスタムできる機能があるわけです。
分かりやすくいうと、はてなブログと同じように「https://okane.online/2019/08/22/133000のようにURLを付与しなさい!」って機能です。
今回の問題は、このWordPressのパーマリンクのカスタム機能がアップデートでエラーが起きたとしか考えられません。
1.はてなブログからWordPressへ移転した
2.パーマリンクをカスタムで「年/月/日/時間」にしていた
パーマリンクを変更して検索上位になった記事を切り捨てるのか?
ここからの選択は二つしかありません。
パーマリンクの設定を全変更してせっかく検索上位にある記事も、既に登録されている記事も諦めてパーマリンクを変更するのか?
それとも他の解決策を探すのか?
1.パーマリンクを変更しブログとしては一からやりなおす
2.他の解決策が出るまでは放置する
このサイトの場合は、例えば人気のコンテンツはそれ一つで一日に200PV はあります。
修正するとまったくの別のURLになるので、200PVが0PVになります。
そんな理由もあり2の解決策が出るまで放置しようと考えましたが、そうなると修正までの期間にせっかく検索してクリックしてくれる人にとっても失礼にもなります。
考えた結果一からやり直すつもりで、泣く泣く1のパーマリンクの変更を選びました。
パーマリンクの変更をするとどうなるのか?
パーマリンクの変更は簡単です。
WordPressの設定画面からパーマリンクを選び、パーマリンクの設定画面で変更するパーマリンク形式を選びクリックするだけです。
パーマリンクの変更をクリックすると、エラーの起きていた問題である「トップページから記事をクリック」しても正常に記事が表示されるようになります。
これで問題だった「記事が表示されない現象」は直るわけです。
それと同時に、Googleにインデックスされたコンテンツは、クリックしても「404エラー」の状態、記事が存在しない状態になります。
それはそうです、パーマリンクの変更でURLが変わったわけです。
おまけにコンテンツ内の内部リンクもURLが変わったのでエラーになります。
もう大惨事です!でも仕方がない・・・
1.ブログ記事は表示されるようになる(直る)
2.GoogleなどにインデックスされたURLはエラーになり表示されなくなる
3.ブログ内の内部リンクもエラーになる
パーマリンク変更での影響を減らす方法
パーマリンクの変更を行うと検索順位的には、始めたばかりのブログのような状態になるわけです。
検索上位の人気の記事もインデックスはあるけど、いくらクリックしても記事まで飛んできません。
「記事は存在しません」という状態になるわけです。
そんな悲惨な状態を少しでも回避するための手段として、パーマリンクの変更で存在しなくなった記事(古いURL)から、新たにパーマリンクの変更をしたURLに転送させるプラグインがあったので利用しました。
リダイレクトプラグインで新たなURLへ転送させる
それは「WordPress リダイレクトプラグイン Redirection」というプラグインです。
tamshow(タムショー)さんのサイトを参考にさせていただきました。
WordPress リダイレクトプラグイン Redirectionを使う
結果的には、このプラグインを使い転送させたんですが、過去記事すべてを転送させるにはかなりの労力が必要なので、主に人気がある記事だけを転送させました。
ちなみにPC版とスマホ版の両方の検索結果のURLで転送設定させました。
サーチコンソールに登録
パーマリンクの変更で過去のコンテンツはネット上に存在しない状態になります。
その解決策としてサーチコンソールで再インデックスさせる必要がありますが、これが全部するとなるとかなり時間がかかります。
そういう事情もあり、こちらでも人気記事のみ再インデックスさせました。
でも実際に検索順位に反映されるのはいつになることでしょう・・・
ブログ記事の表示エラーでパーマリンクを変更したまとめ
今回はブログ記事が表示されない問題解決のために、はてなブログから引きずってきた古いパーマリンクを変更した経緯をブログでまとめました。
同じような症状でお悩みの方もいらっしゃると思います。
僕の場合はパーマリンクの変更を選びましたが、もしかしたら今後WordPressで修正がされて対策がされるかもしれません。
どちらの方法を選ぶのか?それは個々の判断でお願いします。
そう考えると最初からWordPressでブログを作っておけばよかったな・・・と思いますが、仕方がない事です。
パーマリンクの変更でどの程度アクセスが減るのか考えると恐ろしい気もしますが、その結果もまたご報告したいと思っています。