トップページは表示されているものの、人気記事をクリックすると404エラーでページが表示されない。
プラグインWordPress Popular Postsの不具合か?
しかし、最新記事等も同じく404エラーでページが表示されない。
一体、何が起きたのか?
サイトの記事ページが404エラーで表示されない原因と対処法です。
トップページは表示されるが記事ページは表示されない
不思議なことにトップページは表示されるが記事ページは表示されない。当日、行っていた作業と言えば、ページの読み込み(表示)速度改善の為のプラグインのインストール・設定と.htaccessの編集。
※ページの読み込み(表示)速度改善について詳しくは⇒サイトのページ読み込み(表示)速度を改善する方法(2)~スコア85[PageSpeed Insights]に役立つプラグインと.htaccessコード
しかし、サイトのトップページは表示されていたのでまさかそんなことになっていようとは思わなかった。
最初の異変はGoogleアドセンスの報酬金額。
いつもならその時点で5000円前後あるGoogleアドセンスが200円。
最初は目を疑った。
しかし、7月8月とGoogleのアップデートがあったので、遂に私のサイトは終わったのかと観念した。
次に「おや?」と思ったのが、プラグインの負荷を調べるP3 (Plugin Performance Profiler)で別のサイトをスキャンしていた時。
「アクセスしようとしたページは見つかりませんでした。」の404エラーが何回も出ている。
そこで他のサイトも調べてみると、404エラーが表示されるサイトの共通点が分かった。
いずれもページの読み込み(表示)速度改善の途中であるコードを削除していたことが判明。
そのコードを追加(元に戻した)ところ、記事ページが正常に表示されるようになった。
何故、.htaccessのコードを削除したのか?
きっかけは溜まったキャッシュを一括処理できるプラグイン「WP Fastest Cache」だった。
サイトのページの読み込み(表示)速度が調べることができるPageSpeed Insightsでは「最適化についての提案」で、以下の項目が表示されることがある。
①圧縮を有効にする
②ブラウザのキャッシュを活用する
私はそれまで.htaccessに追加コードを加えることでこれに対応していたが、プラグインでそれができると知った。
それが「WP Fastest Cache」。
「WP Fastest Cache」をインストール(有効化)し、設定を済ませると.htaccessにコードが追加される。
結果、<ifModule mod_deflate.c>~</ifModule>と<IfModule mod_expires.c>~</IfModule>のコードがダブる。
ダブルとプラグインの動きが悪くなる。
タブった<ifModule mod_deflate.c>~</ifModule>と<IfModule mod_expires.c>~</IfModule>~と~
を削除すると、確かにスコアがある。
しかし、この時、余計な事をしたのが404エラーで記事ページが表示されない原因だった。
404エラーで記事ページが表示されない原因
.htaccessを見ると~
もコードが追加されていた。
そこで、私は以下のコードを削除してしまった。
# BEGIN WordPress
RewriteEngine On
RewriteBase /public_html/
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /public_html/index.php [L]
# END WordPress
これが404エラーで記事ページが表示されない原因だった。
このコードを元に戻すと、記事ページが正常に表示されるようになった。
やれやれである。
素人判断でうかつに.htaccessを編集すると怖いですね。