WordPressのサイトヘルスを改善

WordPressのサイトヘルスを改善したので、その改善内容と方法について記載します。

はじめに

WordPressは、Webサーバ上で動作するオープンソースのソフトウェアでブログの表示・管理をするために使用されています。このブログもWordPressで管理しています。

WordPressの管理画面で表示されるダッシュボードには「サイトヘルス」という項目があり、WordPressで管理しているページの健全性が表示されます。このブログはサイトヘルスで数項目のエラーがでており、それらを改善しました。以下ではサイトヘルスのエラー内容とその改善の方法について書いていきます。

imagickがインストールされていない

imagickはLinux等でよく使用されている画像処理ライブラリImageMagickをPHPで使用するための拡張機能で、これがインストールされていないとのことでエラーが出ていました。調べてみると、使用しているさくらインターネットのレンタルサーバの設定の問題のようでしたので、以下の手順で改善しました。インストールされていないというよりは共有ライブラリがロードされていないことが原因でした。

  • サクラインターネットのコントロールパネルにログインする。
  • 左側メニューの「スクリプト設定」→「php.ini設定」をクリックする。
  • php.iniファイルの編集ツールが開くので「extension = imagick.so」と入力し、「保存する」を押す。

REST APIで予期しない結果が発生しました

RESTというのは「REpresentational State Transfer」の略でWebシステムの設計思想の一つで、REST APIはRESTの設計思想に基づいたAPI(Application Programing Interface)です。このエラーはさくらインターネットのWAF(Web Application Firewall)を無効化することで改善するよう。WAFを無効化するとセキュリティ的に脆弱になりますので、代わりにWordPressのプラグインで「SiteGuard WP Plugin」を入れることにしました。

WAFの無効化

  • さくらインターネットのコントロールパネルにログインする。
  • ドメイン一覧が表示されるので「利用状態」が「有効」になっているドメインについて、右側の「設定」ボタンをクリックしてでてくるメニューで無効化する。

WordPressに「SiteGuard WP Plugin」をインストール

  • WordPressの管理ページにログインする。
  • 左側のメニューの「プラグイン」→「新規追加」をクリックする。
  • 右上の「プラグインの検索」に「SiteGuard」と入力する(インクリメント検索されます)。
  • 「SiteGuard WP Plugin」が表示されるので、「今すぐインストール」をクリックする。
  • 「Activate」をクリックして有効化する。
  • 左側のメニューで「プラグイン」をクリックして、「SiteGuard WP Plugin」の欄で「自動更新を有効化」をクリックする。

サイトでHTTPSを使用していません

HTTPはWebページを記述するハイパーテキストの情報をやりとりするためのプロトコルで、その通信をセキュアにしたものがHTTPSです。HTTPS化は以前試みたことがあるのですが、証明書の取得が有料だったため放置していました。今回調べたところ無料でできるようになっているようだったので改善することにしました。

具体的には、さくらインターネットのこちらのページに書いてあることを実施するだけです。しかし、やってみたところキャッシュ関係のトラブルでブログの表示が真っ白になって表示されなくなるというトラブルが起こりました。HTTPSを有効にするとURLが「https://」で始まる形になりますが、WordPressのキャッシュのURLの参照先が「http://」になっていることでいろいろ問題が起こって真っ白になってしまうようです。ブラウザのキャッシュを削除してもだめで、サーバー側(WordPressのキャッシュ?)が悪さをしているようでした。

URLの参照先が違うだけならファイルがないという、いわゆる404エラーがでるはずですが、WordPressはデータベース上のデータを参照してページを動的に生成していたりするので、エラーが連発して真っ白になっているのかな?と思いますが、詳細はよく分かりませんでした。

このエラーが起こるとWordPressの管理画面も入れなくなってしまい、どうにもできなくなってしまいます。そこでMobaXtermを使用し、sshでサーバに直接ログインして、WordPressのルートディレクトリ以下の「wp-content」に移動し、そこにある「plugins」というディレクトリを「plugins2」などと名称変更して、強制的にプラグインを無効化しました。それにより管理画面にログインできるようになりました。

ログイン後、管理画面で「プラグイン」をクリックすると当然エラーになるので、先ほど「plugins2」と名称変更したディレクトリを「plugins」に戻して、ブラウザの画面でリロードをかけるとプラグインの設定が表示されます。そこでキャッシュ関係のプラグインを無効化します。

私の場合は、「W3 Total Cache」を使用してましたが、これを無効化すると問題無く表示されるようになりました。しかし、キャッシュが無効のままではブログの表示が低速になりますので、キャッシュを更新して、キャッシュを有効化しつつ表示できるようにしないといけません。

「W3 Total Cache」を有効化し、いくつかあるキャッシュをすべて削除してみましたが、結局有効化すると画面が真っ白になる状態は解決出来ませんでした。そのため、他のキャッシュプラグイン、「WP Fastest Cache」、を入れたところキャッシュ有効化の状態でブログが表示されるようになりました。

Well done!

サイトヘルスは満点になりました 🙂

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA