WordPressを導入したウェブサイトは、制作後の保守を制作会社に依頼するか、もしくは自社で行っていく必要があります。「WordPressの保守って何?」「制作後、何も保守を行っていない」という話もまだまだ多く、この記事ではWordPressの保守や管理について、またWordPressの保守は具体的に何をすればいいか?という疑問について解説します。
目次
WordPressの保守とは
WordPressそのもの自体は無料で利用できるCMSですが、ご存知の通りオープンソースのためソースコードは公開されています。またプラグインを利用することで機能拡張ができますが、無料で利用できる公式のプラグインが多く、公式プラグインもソースコードが公開されています。WordPressのテーマも同様です。
そもそも、WordPressでサイトを構築する場合、「誰(どの会社)が公開後の保守を担当する管理者・保守担当者なのか」を決めておく必要があります。
WordPressやプラグイン、テーマはチームや個人という「人」が開発している以上、コードのどこかに脆弱性が発見されることは避けられません。脆弱性が発見されると、WP開発元のAutomattic社やプラグインであればプラグイン開発者らは早急にアップデートすることが求められ、多くはセキュリティに対応済みの新しいバージョンが公開されるため、セキュリティ被害が出ていない限り管理者は新しいバージョンへアップデートをすれば基本的には問題ありません。
また、WordPressやプラグイン、テーマは新しい機能が追加されたり、より使いやすい形への改善といった目的でアップデートされていることが多く、公開されたバージョンに更新することで機能を強化・改善できます。
これらのバージョンアップの際、使っているWordPressのバージョンや他のプラグイン、利用中のテーマとの整合性がとれず不具合が発生したり、致命的なエラーの場合はウェブサイトが表示されない、大きく崩れるといったリスクがあります。
アクセスがあまりないサイトであれば大きな問題ではないかもしれませんが、アクセス数が多いサイトや、ウェブからの問い合わせ・申し込みをメインにしているサイト、信用にかかわる場合などはウェブサイトの不具合や表示エラーは重大です。
WordPressの保守とは、WordPress各種アップデートを行い最新の状態に保つことや、万が一のためにデータ全体を定期的にバックアップすること、基本的なWordPressセキュリティ対策を行ってサイトを安全に保つことなど、WordPressサイトを運用する上で生じる様々な課題に対応しWordPressサイトを適切にメンテナンス・運用していくことを指します。
行うべきWordPressの保守の種類
それではWordPressサイトにおける保守管理の作業とは具体的にどういった作業があるのか一例をご紹介します。具体的な対応方法までは記載しきれないため、気になった項目はウェブ検索にてお調べください。
定期バックアップ
HTMLだけで作られた静的なサイトの場合、最新のHTMLデータを一括ダウンロードして保存しておけばバックアップが取れている状態となりますが、WordPressサイトの場合はウェブデータとデータベースに分かれているため、ウェブデータ一式とデータベース全体をバックアップする必要があります。
データベースはページ作成や記事更新をしたとき等を含む管理画面側の操作や登録した情報などが保存されているため、月に1度や週に1度より、1日1度といった回数でのスケジュールを組んでバックアップをするのが理想です。
バックアップ先については同じサーバー内に保存する方法の場合、万が一サーバー全体に被害が及ぶ場合はバックアップの意味がなくなってしまうため、利用中のサーバーとは別のサーバーやクラウド上にバックアップするほうがより安全です。
例えば、Amazonが提供するクラウドストレージサービスのAmazon S3へ保存すると、従量課金で物理的なサーバーを用意するより安く済むケースが多いです。
アップデート
冒頭でご説明の通り、脆弱性への対応や機能追加等で新しいバージョンにアップデートする必要があります。アップデートするべき対象は以下の4点です。
- WordPress本体
- 各種プラグイン
- 利用テーマ
- 各種翻訳ファイル
WordPress本体はある程度の古いバージョンにおいても、基本的には脆弱性に対応したマイナーバージョンを公開するため、設定していなければ自動的にマイナーアップデートをしてくれます。ただ、公式では古いバージョンはセキュリティアップデートに対してメンテナンスされていないと明記されているので注意が必要です。
ソフトウェアのセキュリティを改善していくのは常に進行形の懸案事項であり、このため、最新バージョンの WordPress に常に更新すべきです。WordPress の旧バージョンはセキュリティアップデートに対してメンテナンスされていません。
https://ja.wordpress.org/support/article/hardening-wordpress/
一方、プラグインについてはWordPress本体のようにそれぞれのバージョンにおけるアップデートという概念は基本的にないため(※1)、基本的にセキュリティアップデートについても最新のバージョンのアップデートとなります。
従ってプラグインのアップデートをしないまま放置しておくと、脆弱性が発見されて対応したバージョンが公開されていたとしても、脆弱性があるバージョンのまま利用し続けることなります。
2020年に発見された主なプラグインの脆弱性です。
- 500万以上ダウンロードのContact From 7に無制限にファイルをアップロードできる脆弱性 – これについては解説した記事を書きました。
- 200万以上ダウンロードのAll In One SEO Packプラグインに悪意のあるスクリプトを実行される脆弱性
- File Managerプラグインに悪意のあるファイルをアップロードされ実行される脆弱性
利用者が多いプラグイン程大きな影響となるため、攻撃する側から見れば少ない労力でより被害を与えられるため効率がいいのは自明です。重要なのは、有名で多くのサイトがインストールしているプラグインだから安心ということは無いのです。影響を与えるのがわかっているかつ許容できるリスクなのかを判断できている以外は最新のプラグインのバージョンを利用することが安心です。
テーマのアップデートに関しては、オリジナルテーマを利用している場合は基本的にテーマ制作者が更新しない限りアップデートはありません。WordPressに公式に登録されているテーマや有料テーマを利用している場合は定期的にアップデートがあります。これも脆弱性や機能追加改善といった目的が主なので、テーマ自体を改変していてアップデートできないといった場合を除き、基本的には最新のバージョンを利用するようにしましょう。
※そもそもテーマ自体の改変は推奨されず子テーマを作成するべき
参考: [WordPress]カスタマイズを始める前に覚えておきたい子テーマ機能と作成方法
各種翻訳ファイルは、プラグインやテーマで新しく翻訳データが追加されるとアップデートできるようになります。脆弱性には直接関係ありませんが、任意の翻訳に意図して変更していないかぎりはアップデートするのが望ましいです。
どのくらいの頻度でアップデートしたらいいか
一般的なWordPressサイトではおおよそ10-20程度のプラグインを使っていることが多く、だいたいそのくらいインストールしていると週に何個かはアップデートが公開されています。よって、週に1度は確認・アップデートできるのが望ましいです。
アップデート前にはバックアップを忘れずに、万が一不具合やエラーが発生した場合はバックアップデータから復旧できるようにしておきましょう。
30個以上プラグインを使っている場合はもっと頻繁にアップデートが発生しますが、そういった場合はそもそも必要なプラグインなのかどうかという選定を先にしたほうが良さそうですね。
新しいブロックエディタ、Gutenberg
WordPress5.0からはGutenbergというブロックエディタが登場しました。以前からあるサイトでは無効化しているところも多いと思いますが、優秀な機能でより便利なため、WordPress 5.0 以降のサイトでは基本的にブロックエディタでページを作成されていると思います。
WordPressのこれからの流れとして、Gutenbergプロジェクトは力が入っていて活発に更新されているため、特にWordPress本体のアップデートはGutenbergへの影響があることが多いです。恩恵を受けるためにも本体のアップデートは欠かさないようにしましょう。
さらに、WordPress 5.9からはブロックエディタをベースとしたフルサイト編集(Full Site Editing: 略したFSE)が実装され、ますますGutenbergがWordPressに欠かせない存在となっています。
セキュリティ対策
冒頭に記載の通り、WordPressはオープンソースのプログラムのため、脆弱性が発見されては対応されの繰り返しです。最新バージョンにアップデートして使っていれば基本的に問題はないと言われていますが、企業が安心して利用するにはいくつか注意しておきたい箇所があります。
まずはブルートフォースアタック(総当たり攻撃)です。WordPressは管理画面のログインページは公開されていないものの、通常の使い方だと固定のURLに設定されているため、第三者でもログイン画面にアクセス可能です。管理画面ごときと思うことなかれ、必要なログイン情報はユーザー名/メールアドレス+パスワードの組み合わせですが、ユーザー名はソースコード上に書いてあることが多いため容易に確認できます。あとはパスワードをランダムに組み合わせて途方も無い回数のログイン試行をすることで管理画面にログインすることができます。これがブルートフォースアタックです。
WordPressの場合はログイン画面とユーザー名がわかっていることが多いため、攻撃者からすると効率がいいのです。もしログインされたアカウントが最高権限である管理者権限だったらと考えると恐ろしいですね。
ブルートフォースアタックを防ぐため、まずログインURLを変更します。WordPress特有のものから、独自のログインURLに変更します。
そして、ユーザー名を利用せずにメールアドレスを利用してログインするように変更します。これでユーザー名がわかってもログインができません。最後に、二段階認証を導入します。
二段階認証の導入方法やログインURLの変更等は過去記事にも書きましたのでご参考ください。
基本的な対策として、かんたんなパスワードを利用せずに強力なパスワードの組み合わせを利用するのは大前提です。
細かいため全部は書ききれないですが、他にもできればやったことがいいことをざっと書きます。
- テーマやプラグインのファイルエディター機能を無効: 管理画面に入ってもテーマファイルに直接書き込みができないように
- ログインエラー時のメッセージを無効: ログイン時のエラーメッセージが表示されるとヒントになってしまうため非表示にする
- 操作ログを記録: ログイン履歴や各操作のログを取得&保存しておく。ログファイルは肥大化しやすいため管理者権限のみ等に制限しておく
- 404への大量アクセス対応: 404対象のファイルへ大量アクセスがあった際に自動的にアクセス制限をかけ、サーバー負荷をかけないように
死活監視
サイトが落ちていないか、正常に稼働しているかを常にチェックして、何か問題があれば通知する仕組みを作ります。普段アクセスしても気づかなくても、意外と数日に一回や1日のうちに何回か落ちている、ということはあったりします。共有サーバーの場合は他のサイトが原因で落ちることもありますが、自分のサイトが原因で他のサイトやサーバー自体に負荷をかけないように注意しましょう。あまりにも高負荷の場合はサーバー会社から連絡がくることがあります。
一般的に死活監視はpingコマンドを送って返事があれば正常、なければ停止といったような状態管理となります。あくまで生きているか死んでいるかの判断のみになり、もし停止していてもどういった原因で何をすればよいかまでは判断できません。停止となっている連絡があり、復旧しないようであれば不具合の修正や対応を行います。WordPressやプラグインの自動アップデートによる不具合やテンプレートファイルとの整合性のエラー等が発生しているケースが多いです。
死活監視の例として、WordPressの開発元が提供するプラグインのJetPackの機能の一つにサイト監視や、freshpingという無料で利用できる死活監視サービスがあります。
改ざんチェック
脆弱性が発見されそのまま放置していると、不正なコードを設置されたり実行されるようなファイルを置かれてしまい、被害者のみならず加害者にもなってしまう恐れがあります。そうならないよう、定期的にスキャンを実施してファイル改ざんなどがないか確認しましょう。同時に、各種ブラックリストに登録されていないかも確認できるとなおいいです。
無料で使えて有名なサービスとしてはセキュリティサービスを提供するSucuriのスキャンツールです。
Sucuri SiteCheck – Free Website Security Check & Malware Scanner
障害時の復旧対応
対策をしていても100%安全ということはないため、不正なファイルやコードの設置等の障害が発生してしまう場合があります。その場合は原因を特定し保存してあるバックアップデータから復旧します。
該当ファイルだけを削除しても、また同じ脆弱性を利用して悪意のある攻撃が行われる可能性が強いため、安全だとわかっているバージョンから一度復旧した上で、脆弱性が修正されたバージョンにアップデートしたり、コードの修正を行います。
テスト用検証環境の構築
公開している環境しかない場合、何か問題があるとサイトが見られなくなったりアクセスしづらくなったりする影響が強いため、公開中の本番環境とは別にテスト用途に利用できる検証環境を別で持っておくことが望ましいです。特にビジネス目的のウェブサイトの場合、404エラーや503エラーとなると組織・企業の信用に関わってくるため、検証環境を持つことは重要です。
本番環境を複製した環境を別途用意しておき、関係者しかアクセスできないように全体をパスワード等にて保護します。できれば本番環境と同じ構成のサーバーが望ましいです。公開してしまうと検索結果に表示されたり、重複サイトとして本番サイトに悪影響のリスクがあります。
影響がありそうなアップデートや、プログラムの修正・確認は検証環境で行い、問題ないと判断できたら本番環境で実行するような運用フローを作れるとより安全なサイト運用となります。
検証環境の作成方法は以下記事をご参考ください。
WordPressのテストサイト・検証用環境の作り方
PHPのアップデート
WordPressはプログラム言語のPHPを使って作られています。PHPはオープンソースのプログラム言語のため、定期的にバージョンアップされています。WordPress同様、最新のバージョンを使うことが望ましいですが、2020年11月に公開されたPHP8はWordPress 5.6でサポートされていますが、プラグインやテーマがPHP8に完全に対応しているかは不明です。よって、そのあたりはセキュリティ的に安心かつ安定して動作するバージョンを利用していくのが今の所最適な運用といえます。
WordPressで利用できるPHPのバージョンは5.6.2以上の古いバージョンでも動きますが、7.4以上と公式要件に記載されています。
PHP バージョン 7.4 以上。(中略)古いバージョンの PHP や MySQL しか使えない古い環境にいる場合でも、WordPress は PHP 5.6.20以上及び MySQL 5.0以上で動きます。しかしこれらの古いバージョンは既に公式でサポートが終了しており、サイトを脆弱性にさらす危険性があります。
要件 | WordPress.org 日本語
古いバージョンのPHPを使うことはデメリットしかないため、要件以上の新しいバージョンを使うことをおすすめします。どうしても古いバージョンを使わないといけない場合、以前書いた抱える問題を把握しておきましょう
パフォーマンス改善
これは直接的にはWordPressの保守管理には関係ありませんが、よりサイトの目的を達成するためや、快適な運用をしていく上で重要のためご紹介します。
WordPressは通常の静的なHTMLサイトと異なり、ユーザーが閲覧したタイミングでサーバーにリクエストを送り、ページの表示に必要な情報を都度DBから取得して閲覧しています。DBへのリクエストが増えるため、どうしても静的サイトに比べてサーバーへの負荷が高くなります。
また、ページ内で表示する画像はできるだけ軽いほうがいいですが、ページ作成者が各デバイスにとって最適な画像を都度作成するのは非常に面倒で時間がかかり、現実的ではありません。
ページ表示速度が遅くなると、SEOへの悪影響やコンバージョン率低下につながることがわかっています。
Google ウェブマスター向け公式ブログ [JA] : ページの読み込み速度をモバイル検索のランキング要素に使用します
一般に表示が遅れるごとにコンバージョン率、顧客満足度は大幅に低下し、表示に3秒以上かかるページは40%以上のユーザーが離脱するとまで言われています。
ページ表示速度のSEOへの影響は?サイトの表示速度改善のメリット | ナイルのSEO相談室
そこで、キャッシュの利用や遅延読み込みの実施、画像の圧縮や適正サイズへの変更といった、よりページ速度を改善させる対応をすることで、SEOやコンバージョン率への影響を払拭します。
まとめ
WordPressを導入するとHTMLやCSSといった知識がなくてもかんたんにページを作成・更新でき便利になりますが、その反面WordPress特有のケアする部分が出てきます。
WordPressの保守を適切に行うことで問題をそもそも起きない状態にし、もし何か発生した際には迅速に対応できる環境が整います。
今回ご紹介したWordPressの保守管理ですが、「自社で対応できる人材がいない」「制作会社に依頼したが断られた」という場合はハイファイブクリエイトが提供するWordPress 保守管理サポートをご検討ください。WordPressサイトを継続的に保守することを前提に、今回ご紹介したすべての実施からテクニカルサポートまで保守管理に含みます。
※1 Automattic社が開発元のECプラグインであるWooCommerceは各バージョンに対応したプラグイン開発を行っており、古いバージョンでもセキュリティ対応したバージョンにアップデートできる体制を整えています。参考: おそらく初?プラグインで各バージョンのマイナーアップデートを実施したWooCommerce
コメントを残す