WordPress の保守は、サイトを安全に運営し、訪問者の体験を向上させるための不可欠なプロセスです。
初心者の方でも行いやすいように、保守を「定期メンテとセキュリティ強化」に分けて、ステップバイステップで解説します。
以下では、保守開始時にすべき基本作業から、日常で実践できる簡単タスク、さらにサーバー側で設定すべきポイントまで、網羅的にまとめました。
1. Webサイト保守の重要性とは
WordPress はオープンソースであるがゆえ、世界中の誰もがコードを変更・アップデートできます。
その結果、以下のようなリスクが常に潜んでいます。
| リスク | 具体例 | 影響 |
|---|---|---|
| バグ・脆弱性 | コア・テーマ・プラグインの古いバージョン | 不正ログイン、サイト停止 |
| データ消失 | バックアップ無し → 失敗 | 記事・ユーザー情報完全喪失 |
| パフォーマンス低下 | 大量スレッド・古いキャッシュ | ページ読み込み遅延 |
| スパム・ボット攻撃 | 画像ロジックなし | コメントスパム、DDoS |
保守の目的は「予防」にあります。
定期的に行う簡単な手順で、事前にリスクを軽減できるため、サイトを継続的に安全に保つのは簡単です。
2. まずはバックアップの設計と実行
2-1. バックアップの種類
| 種類 | 内容 | 取得頻度 |
|---|---|---|
| 完全バックアップ | データベース + ファイル全体 | 月1回 |
| 増分/差分バックアップ | 変更箇所のファイル + 変更されたDB行 | 日次 |
| ポイントインタイム | 任意日時まで戻せるDBスナップショット | 必要に応じて |
2-2. バックアッププラグインの選定
| プラグイン | 特徴 | 無料/有料 |
|---|---|---|
| UpdraftPlus | スケジュール設定、クラウド(Google Drive 等) | 無料・有料 |
| BackWPup | 大容量でメール送信可 | 無料 |
| VaultPress | 1日1回、リアルタイム | 有料 |
初心者は UpdraftPlus で「毎日増分バックアップ、毎週完了バックアップ」と設定するのが手軽です。
バックアップファイルは オフサイト で保存(クラウドストレージや遠隔サーバ)を推奨。
2-3. バックアップ失敗時の対策
- バックアップ完了メールを受け取る設定にする
- 定期的に復元テストを行う(DBと画像が正常に復元されるか確認)
- バックアップ保持期間を設定し、古いファイルは自動で削除
3. WordPress コア・テーマ・プラグインのアップデート戦略
3-1. アップデートの優先順位
- WordPress コア:毎月 1 つのバージョンがリリース
- セキュリティパッチを含む:脆弱性が公開された場合は即時
- テーマ / プラグイン:自動更新が設定されていないものは手動で確認
3-2. 自動更新の設定
- WordPress コア:管理 > 更新 で「メンテナンス更新を自動で行う」を有効化
- プラグイン:更新通知で「自動で更新」を有効化 (ただし安全性の低いプラグインは手動が安全)
- テーマ:自動更新は非推奨。テーマ更新は必ず事前にテストサーバで検証されているものに限定
3-3. バージョン管理とテスト環境
- ステージング環境(例:Subdomain
staging.yoursite.comでwp-testsを使用)で変更を検証 - バージョン管理:重要な作業は Git で管理し、変更履歴を残す
- 変更通知:重要アップデート時にメールで知らせるように
3-4. 失敗した場合のロールバック
- UpdraftPlus の差分バックアップを元に復元
- 変更前の wp-config.php や .htaccess をバックアップから差し替える
4. データベース最適化とメンテナンス
4-1. データベースのクリーンアップ
wp_posts:不要な「Revision」や「Draft」記事を削除wp_postmeta:重複したメタ情報をまとめるwp_options:siteurl,home以外の無効化
4-2. テーブル最適化
- phpMyAdmin / Adminer から OPTIMIZE TABLE を実行
- 定期的(3か月ごと)に実行することでパフォーマンス維持
4-3. プラグインの最適化
- WP-Optimize でキャッシュと短期メタ情報を削除
- Transients Manager で不要な transient を削除
4-4. データベース自動化
- Cron で
wp-cliコマンドを実行しwp db optimizeを自動化 - 例:
0 3 * * * wp db optimize --path=/path/to/wordpress
5. セキュリティ対策:推奨プラグインと設定
5-1. サイト全体を守るプラグイン
| プラグイン | 主な機能 | 推奨設定 | 無料/有料 |
|---|---|---|---|
| Wordfence Security | ファイアウォール、DDoS防御 | 「ライブサイトトラフィック」を有効化 | 無料・有料 |
| Sucuri Security | ファイルの整合性監査 | 「サイトモニタリング」を常時オン | 無料・有料 |
| iThemes Security | ブルートフォース防止、ログイン制限 | 「ロックアウト時間」を 300 秒に | 無料・有料 |
| Really Simple SSL | HTTPS 強制 | 「自動移行」を有効化 | 無料・有料 |
5-2. 基本設定
| 設定項目 | 推奨値 | 目的 |
|---|---|---|
DISALLOW_FILE_EDIT |
true |
ダッシュボードからファイル編集を無効化 |
WP_SECURITY |
true |
公式のセキュリティモード(実装はカスタム) |
AUTH_KEY, SECURE_AUTH_KEY 等 |
固有に生成 | セッション情報のハッシュ化強化 |
define('FORCE_SSL_ADMIN', true) |
必要に応じて | 管理画面を HTTPS で強制 |
5-3. 重要なファイル保護
.htaccess編集によりwp-config.phpやreadme.htmlを非公開に設定- サーバー側でファイル権限 777 ではなく、755 (フォルダ)、644 (ファイル) を基本に
5-4. ログインセキュリティ
- パスワードは 256 ビット SHA-512 で管理
- 2 要素認証 (2FA) を活用(Google Authenticator, Authy 等)
- ログイン試行に対して IP 制限や CAPTCHA を設置
6. ファイル権限とサーバー設定(.htaccess, wp-config.php)
6-1. 権限のベストプラクティス
wp-config.php:600wp-content/uploads:775- すべてのディレクトリ:
755 - すべてのファイル:
644
6-2. .htaccess のセキュリティ強化
# 1. wp-config.php を保護
<Files wp-config.php>
deny from all
</Files>
# 2. 読み取り専用で index.html を防止
<Files ~ "\.(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$">
Order Allow,Deny
Deny from all
</Files>
# 3. 画像フォルダだけを許可
<Directory "/wp-content/uploads">
Order Allow,Deny
Allow from all
</Directory>
6-3. wp-config.php のセキュリティ
define('SCRIPT_DEBUG', false); // 本番時は最小化
define('WP_DEBUG', false); // デバッグ情報は非表示
define('DISALLOW_FILE_MODS', true); // ファイル改ざん防止
define('DISALLOW_FILE_EDIT', true); // ダッシュボードからの編集無効
6-4. ファイルの自動更新を抑制
add_filter('auto_update_plugin', '__return_false'); // プラグイン更新をオフ
add_filter('auto_update_theme', '__return_false'); // テーマ更新をオフ
7. 侵入検知とログ監視
7-1. アクティビティロガー
- Activity Log (WP Activity Log):ユーザー行動履歴と変更ログ
- WP Security Audit Log:セキュリティ関連のログ(ログイン、変更、エラー等)
7-2. 定期アラート
- 「失敗ログイン 5 回」「ファイル変更 50 行以上」があった場合にメールで通知
- Fail2Ban で SSH / FTP アクセスのブロックを自動化
7-3. サーバー側ログ
Apache / Nginxのアクセスログとエラーログを 7 番台で確認mod_securityやModSecurityで一般的な攻撃パターンをブロック
8. 既知の脆弱性を防ぐための実践的ヒント
8-1. 定期脆弱性スキャン
- WPScan(無料)で脆弱性をチェック
- Sucuri SiteCheck:サーバーとファイルをチェック
8-2. 重要なファイルの署名
wp-content/uploadsの中の画像はsha256sumを保存し、改ざんを検知- 画像アップロード時に
hash=sha256:xxxをデータベースに保存
8-3. API キーと認証情報の暗号化
wp-config.phpのdefine('SECRET_KEY', 'xxxxx');- 環境変数で管理(
.envやconfig.phpへの直書きは不可)
8-4. ファイルインクルード攻撃の防止
require_onceのパスをフルパスで指定realpath()でパス正規化
9. アクセス解析とパフォーマンス管理
9-1. アクセス解析
- Google Analytics: ページ滞在時間、直帰率の監視
- Google Search Console: サイトマップ、検索クエリ、リンクステータス
9-2. 速度テスト
- GTmetrix, Pingdom, WebPageTest を定期的に実行
- 画像圧縮(EWWW Image Optimizer)、キャッシュ(WP Rocket)を併用
9-3. リソースの分析
- 1 サーバーに最大 50 同時接続を想定
- バックアップやログファイルは /tmp 等別パーティションへ
10. まとめとチェックリスト
| 項目 | 実施 |
|---|---|
| バックアップ(最低週1回) | はい |
| コア・テーマ・プラグイン更新 | 週次で確認 |
| データベース最適化 | 3か月ごと |
| セキュリティプラグイン運用 | Wordfence / Sucuri 有効 |
.htaccess と wp-config.php 設定 |
チェック済み |
| ファイル権限 | 755/644 基本 |
| ログ監視 | 月に1回確認 |
| パフォーマンス測定 | 1か月1回 |
| 侵入検知設定 | 有効化 |
| アクセス解析 | データ収集継続 |
| チェックリスト | 毎週完了チェック |
初心者の方は 「一度に全部を完了」 を目指すべきではありません。
まずは「バックアップ+更新」を確実に行い、次に「パフォーマンス+セキュリティ」を徐々に補完するのが最適です。
保守は継続のプロセス。
1 周期ごとに上記チェックリストを通り、疑問点が生じたらサポートフォーラムで質問しましょう。
WordPress を安全に、そして高性能で維持できれば、訪問者も安心し、SEO も上がります。
安心して運営を続けるために、今日からでも小さなメンテナンスを取り入れ、サイトを守りましょう。

コメント