当サイトが新ドメインに移行して、はや1か月が経とうとしています。
基本的には、元の”http://b-qol.onamae.jp/”から”https://www.asset-ad.com/b-qol/”へとアドレスが変わっただけなのですが、お引越しには何かとトラブルがつきもの。
今回、Google先生から「404 not found エラーが見つかったよ。利用者のために対応した方がいいかもね。」というアドバイスをいただきました。
旧サイトでは確認されていなかったのであせりましたが、発見から対応までの顛末を記事ネタにさせてもらいました。 🙂
そもそも404エラーって?
「404 not found エラー」とは以下のようなエラーです。
HTTP 404、またはエラーメッセージ Not Found(「未検出」「見つかりません」の意)は、HTTPステータスコードの一つ。クライアントがサーバに接続できたものの、クライアントの要求に該当するもの (ウェブページ等) をサーバが見つけられなかったことを示すもの。
引用元:Wikipedia
実際に僕のページに現れたのが以下の画面。
言われてみれば、ネットを見ていると良く目にする画面ですね。 😛
発見の経緯
旧サイトからの移行直後は、検索すると記事のリンク先が旧サイトのアドレスを表示します。
新サイト立ち上げで情報が浸透しないのでしょうがないのですが、そのままでは新サイトの知名度は低いままです。
このため、特に検索頻度が高いGoogleについては、サイトマップを送信して新サイトへの移行をアピールしていました。
そんなある日、Google Console を確認していたところ、クロール(ページの巡回・情報収集)エラーで“URLエラー”が1つ出ていることに気がつきます。
「なんだろう?」と思って確認してみたところ、”jan-2018-preparation-fp-exam”というアドレスの記事に「404エラー」が出ているとのこと。
実際に”jan-2018-preparation-fp-exam”を入力して確認すると、最初に見ていただいたとおり確かにエラーが出ています。
このエラーについて、原因と影響を見てみると次のとおり。
検索順位等への影響はなく、比較的軽微なエラーだとわかり、ホッとしました。
しかし、エラーが出ている状態に変わりはないですし、元のエラーメッセージでは確かに味気ない。
そこで、この404エラーメッセージをもうちょっと改良してみることにしました。
404エラーメッセージを変えるには?
このエラーメッセージをどこで制御しているのかが最初の課題でした。
随分いろいろと調べたところ、このサイトで使用しているWordPressの場合、デザインを決定している各テーマに依存しているらしいことが分かってきました。
当サイトの現在のテーマは「マテリアル2」になります。
(以前の記事 “サイトデザインを一新! 無料なのにスゴイ「マテリアル2」” を参照)
そこでFTPソフトを使って、そのデータを探したところファイルを発見しました!
その名もスバリ「404.php」でした。 🙂
実際に記述されている内容を見てみると、エラー画面のメッセージ内容と一致しています。
これでファイルは特定できました。
あとは以下の手順で修正を加えますが、バズ部さんの「404エラーページのカスタマイズ方法」を参考にさせていただきました。
- 「404.php」を一旦ローカルディスクにコピー
- それをテキストエディタ(メモ帳など)で書き換えてローカル上で上書き
- 「content-none.php」を新たに作成し、ローカル上に保存
- 上書きした「404.php」と新規作成の「content-none.php」を、子テーマ「wp_material2_child」のフォルダにコピー
なお「content-none.php」を新規作成するとき、テキストエディタを使うときには、保存形式ですべてのファイルにしないと「content-none.php.txt」となって認識されません。
また、保存する際の文字コードも「UTF-8」に切り替えるのを忘れないようにしましょう。
これで新「404.php」から「content-none.php」へと流れる内容が優先して表示されるようになります。
(注:PHPファイルの変更は、必ず子テーマを使ってその中で行いましょう。本体ファイルを変更すると致命的なエラーが生じる恐れがあります。)
いよいよ変更本番!
テスト投稿はうまくいったけど
まず、試しに最もベースとなる書き換えを行ってテストしてみました。
標題:「404 NOT FOUND」→「あなたがアクセスしようとしたページは削除されたかURLが変更されています。」
本文:「ページが見つかりませんでした」→検索・人気リスト・カテゴリー・問い合わせフォームの題名のみ
↑クリックで拡大↑
結果は上記のとおり。
どうやらうまく表示されているようです。
本番構成へ試行錯誤
テストがうまくいったので、次に本番の環境に移行します。
ところが、コードをそのまま移行してきてもうまくいきません。
バズ部さんのコードの考え方は、この404エラーを検索でのエラーにも流用することを念頭に精緻に書かれていますが、どうもその分岐設定で引っかかってしまっているようです。
このため、とりあえず404エラーページの改善を最優先に、思い切って冒頭のコードを書き換えます。
なお、実際の見え方については、新規投稿ページのテキスト入力を行い、それがビジュアルにどう反映するかで確認していきます。
ようやく完成!
こうして作成したテキストコードを「content-none.php」へと移植し、微調整を加えて完成!
半日がかりでようやく満足できる形にたどりつきました。 🙂
これからエラーメッセージが出ても、皆様の失望感が多少低減できると幸いです。
もちろんリンク切れ等が起きないよう、最大限努力するつもりです。 😉