📋 目次

🗺️ 1. 6つの基本対策の全体像

WordPressのセキュリティ対策は多岐にわたりますが、まず以下の6つを実施することが最重要です。これらは費用がほとんどかからず、初心者でも実施できます。

🔒

対策1: SSL化(HTTPS対応)

通信を暗号化。Googleのランキング要因にもなっており、サイトの信頼性を高める最優先事項。

効果
👤

対策2: ユーザー名の変更

「admin」というデフォルトユーザー名を変更するだけで、ブルートフォース攻撃の大半を無効化できる。

効果
🔑

対策3: 強固なパスワード

12文字以上のランダムなパスワードに変更。パスワードマネージャーで管理すれば覚える必要もない。

効果
📱

対策4: 二要素認証(2FA)

パスワードが漏洩しても不正ログインを防ぐ最強の防御。スマートフォンのアプリで実装できる。

効果
⚙️

対策5: wp-config.php保護

データベース情報や認証キーが含まれる最重要ファイル。.htaccessで外部アクセスを完全遮断する。

効果
📂

対策6: ファイルパーミッション

ファイルの書き込み権限を最小限に設定。マルウェアがサーバー上にファイルを設置することを防ぐ。

効果
✅ まず3つだけでも:時間がない方は対策1(SSL化)・対策2(ユーザー名変更)・対策3(パスワード変更)の3つだけでも今すぐ実施してください。この3つだけで自動攻撃の大半を防げます。残りの対策は後日でも構いません。

🔒 2. 【対策1】SSL化(HTTPS化)

SSLとは、ブラウザとサーバー間の通信を暗号化する技術です。URLがhttps://から始まるサイトはSSL対応済みです。SSL化されていないサイトはブラウザに「保護されていない接続」と表示され、訪問者に不安を与えるうえ、Googleの検索評価でも不利になります。

🚨 2026年現在、SSL化は必須:GoogleはSSL非対応サイトを検索順位で大幅に不利扱いします。また、ChromeやFirefoxはSSL非対応サイトにアクセスする際に強い警告を表示します。まだSSL化していない場合は最優先で実施してください。

① サーバーパネルからの無料SSL発行手順

主要レンタルサーバーはすべてLet's Encrypt(無料SSL)に対応しています。サーバーパネルから数クリックで発行できます。

1
サーバーパネルでSSL設定を開く
⏱ 約5分
1
各サーバーのSSL設定場所

エックスサーバー:サーバーパネル → SSL設定 → ドメインを選択 → 無料独自SSL追加
ConoHa WING:コントロールパネル → サイト管理 → サイトセキュリティ → SSL → 有効化
ロリポップ:ユーザー専用ページ → セキュリティ → 独自SSL証明書導入

2
SSL証明書の発行・反映を待つ

申請後、証明書の発行・反映には通常数分〜1時間かかります。反映後、ブラウザでhttps://あなたのドメインにアクセスして鍵マーク(🔒)が表示されれば成功です。

2
WordPressのURLをhttpsに変更する
⏱ 約5分
1
管理画面でURLを変更

WordPress管理画面 → 設定 → 一般 → 「WordPressアドレス(URL)」と「サイトアドレス(URL)」を両方ともhttps://に変更して保存。

2
httpからhttpsへのリダイレクトを設定

.htaccess(WordPressルートディレクトリにある)を開き、# BEGIN WordPressに以下を追記:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

② 混合コンテンツエラーの解決方法

https化後に一部の画像やスクリプトがhttpのまま読み込まれていると「混合コンテンツ(Mixed Content)エラー」が発生し、鍵マークに警告が表示されます。

「Really Simple SSL」プラグインで一括対応

プラグイン「Really Simple SSL」をインストール・有効化するだけで、混合コンテンツの多くを自動修正してくれます。設定も不要で最も簡単な方法です。

Better Search Replaceでデータベースを置換

プラグイン「Better Search Replace」でhttp://あなたのドメインhttps://あなたのドメインに一括置換することで、データベース内に残ったhttpを修正できます。

💡 差別化ポイント:SSLの自動更新を確認しよう:Let's Encryptの証明書は有効期限が90日です。多くのサーバーは自動更新に対応していますが、まれに自動更新が失敗するケースがあります。Google Search Consoleで証明書の有効期限アラートを設定しておくか、サーバーパネルで自動更新が有効になっているか確認してください。証明書切れはSEOに深刻なダメージを与えます。

👤 3. 【対策2】管理者ユーザー名の変更

WordPressのデフォルトインストールでは管理者ユーザー名が「admin」になることが多く、ブルートフォース攻撃の自動ツールは真っ先に「admin」でのログインを試みます。ユーザー名を変更するだけで攻撃の大半を無効化できます。

⚠️ WordPressはユーザー名を直接変更できない:WordPress管理画面からはユーザー名を直接変更できません。新しい管理者アカウントを作成して旧アカウントを削除する方法が最も確実です。
1
新しい管理者アカウントを作成する
⏱ 約10分
1
ユーザー追加画面へ移動

WordPress管理画面 → ユーザー → 新規追加

2
新しいユーザー情報を入力

ユーザー名:「admin」「administrator」「サイト名」以外の推測されにくい名前を設定
メールアドレス:現在のものとは別のアドレスを使用
権限グループ:「管理者」を選択
「ユーザーを追加」をクリック

3
新アカウントでログインし直す

一度ログアウトし、新しいユーザー名・パスワードでログインします。ログインできることを確認してから次のステップへ進んでください。

4
旧アカウント(admin)を削除

ユーザー一覧で旧adminアカウントを削除。「すべてのコンテンツを帰属させる」で新アカウントを選択してから削除してください(投稿の帰属先が変わります)。

✅ 表示名はニックネームで別途設定できる:ユーザー名(ログインID)を変更しても、サイト上に表示される「投稿者名」はプロフィール画面の「ニックネーム」と「ブログ上の表示名」で別途設定できます。ユーザー名が変わってもサイトの見た目は変わりません。
💡 差別化ポイント:ユーザー名が外部に漏れるケースに注意:多くのWordPressサイトでは、投稿者アーカイブページ(/?author=1)にアクセスするとユーザー名がURLに表示される仕様があります。Wordfenceやセキュリティプラグインの「ユーザー名の漏洩防止」機能を有効にするか、.htaccessで/?author=へのアクセスをブロックすることを推奨します。

🔑 4. 【対策3】強固なパスワードの設定

弱いパスワードは最も多い侵入経路の一つです。2024年の調査では、侵害されたWordPressサイトの約30%が弱いパスワードが原因とされています。

安全なパスワードの条件

条件推奨NG例
文字数16文字以上8文字以下
文字種英大文字・小文字・数字・記号を混在英字のみ・数字のみ
内容ランダムな文字列サイト名・生年月日・辞書単語
使い回しこのサイト専用他サービスと同じパスワード
管理方法パスワードマネージャーで管理メモ帳・ブラウザの記憶のみ
1
パスワードを変更する
⏱ 約5分
1
強固なパスワードを生成する

パスワードマネージャー(1Password・Bitwarden・KeePass等)のパスワード生成機能を使うのが最も安全です。Bitwardenは無料で使えます。WordPressの管理画面にも「強力なパスワードを生成」機能があります。

2
管理画面でパスワードを変更

WordPress管理画面 → ユーザー → プロフィール → 「アカウント管理」セクション → 「新しいパスワードを設定」をクリック → 生成されたパスワードをコピーして入力 → 「プロフィールを更新」

💡 差別化ポイント:データベースパスワードも変更を:多くの解説では管理画面のパスワード変更のみに触れますが、wp-config.phpに記載されているデータベースパスワードも定期的に変更することを推奨します。サーバーパネルのデータベース管理画面でパスワードを変更し、wp-config.phpのDB_PASSWORDの値も同期して更新してください。FTPで直接編集します。

📱 5. 【対策4】二要素認証(2FA)の導入

二要素認証(Two-Factor Authentication / 2FA)とは、ログイン時にパスワードに加えて、スマートフォンアプリが生成するワンタイムコードも必要とする認証方式です。パスワードが漏洩しても、物理的なデバイス(スマートフォン)がなければログインできないため、不正アクセスを強力に防ぎます。

1
Two Factor Authenticationプラグインで2FAを設定
⏱ 約20分
1
プラグインをインストール・有効化

WordPress管理画面 → プラグイン → 新規追加で「Two Factor Authentication」(開発者:David Anderson)を検索してインストール・有効化。無料で利用可能です。

2
スマートフォンに認証アプリをインストール

Google Authenticator・Authy・Microsoft Authenticatorのいずれかをスマートフォンにインストール。Authyはバックアップ機能があり機種変更時に便利です。

3
QRコードをスキャンして設定完了

WordPress管理画面 → Users → Your Profile → Two Factor Authentication → 「TOTP」を有効化 → 表示されるQRコードを認証アプリでスキャン → 認証アプリに表示される6桁のコードを入力して認証 → 完了

4
バックアップコードを必ず保存する

スマートフォンを紛失した際に使えるバックアップコードが表示されます。必ず印刷またはパスワードマネージャーに保存してください。これを紛失するとロックアウトの可能性があります。

⚠️ 設定前にバックアップを:2FA設定後に認証アプリにアクセスできなくなると管理画面にログインできなくなります。設定前にサイトのバックアップを取得し、バックアップコードは必ず保存してください。

⚙️ 6. 【対策5】wp-config.phpの保護

wp-config.phpはWordPressの最重要設定ファイルです。データベース名・ユーザー名・パスワード・認証キー・テーブルプレフィックスなどが含まれており、このファイルの内容が漏洩するとサイトを完全に乗っ取られる可能性があります。

方法1: .htaccessで外部アクセスをブロック(推奨)

サーバーのルートディレクトリにある.htaccessファイルに以下を追記します。# BEGIN WordPressに追加してください。

# wp-config.phpへの外部アクセスを禁止
<files wp-config.php>
    order allow,deny
    deny from all
</files>

方法2: wp-config.phpを1階層上に移動

WordPressはwordpressディレクトリの1階層上(親ディレクトリ)にwp-config.phpを配置しても自動的に認識します。公開ディレクトリ(public_html)より上に移動することで、Webからはアクセスできない場所に配置できます。

💡 wp-config.phpのさらなる強化(差別化ポイント):wp-config.phpに以下の設定を追加することで、さらにセキュリティを高められます。

① セキュリティキーの再生成:インストール時から変更されていない場合、WordPress Secret Key Generatorで新しいキーを生成して置き換えてください(既存ログインセッションは全て無効化されます)。

② デバッグ表示の無効化:本番環境ではdefine('WP_DEBUG', false);になっていることを確認。trueになっているとエラーメッセージがサイト上に表示されてしまいます。

③ ファイル編集を無効化:define('DISALLOW_FILE_EDIT', true);を追加すると、管理画面からのテーマ・プラグインファイル編集が無効になり、管理画面乗っ取り時の被害を軽減できます。

テーブルプレフィックスの変更

WordPressのデータベーステーブルはデフォルトでwp_というプレフィックスが付きます。これを変更することでSQLインジェクション攻撃への耐性が増します。ただし既存のWordPressでは変更作業が複雑なため、新規インストール時に設定するのがベストプラクティスです。

// wp-config.php内のテーブルプレフィックス(新規インストール時に変更)
$table_prefix = 'wp_'; // → 'mySite2026_' のようにランダムな文字列に変更

📂 7. 【対策6】ファイルパーミッションの最適化

ファイルパーミッション(権限)とは、サーバー上のファイルやディレクトリに対して「誰が・何を(読む・書く・実行)できるか」を3桁の数字で表したものです。WordPressの多くのハッキングは、不適切なパーミッション(特に777)を悪用して悪意のあるファイルを設置することで行われます。

WordPress推奨のパーミッション設定

対象推奨値意味NGの値
ディレクトリ755所有者は読書実行可、他は読実行のみ777(全員が書き込み可)
ファイル644所有者は読書可、他は読のみ666・777
wp-config.php600または640所有者のみ読書可644以上
.htaccess644所有者は読書可、他は読のみ777
wp-content/uploads/755Webサーバーが書き込み可能に777
1
FTPまたはサーバーパネルで確認・変更する
⏱ 約30分
FTPソフト(FileZilla等)で確認する場合

FTPでサーバーに接続 → ファイル・フォルダを右クリック → 「ファイルパーミッション」または「属性」を選択 → 現在の値を確認・変更。ディレクトリの場合は「サブディレクトリに再帰的に適用」にチェックを入れると一括変更できます。

SSH(コマンド)で一括変更する場合

SSHが使えるサーバーでは以下のコマンドで一括変更できます:

# WordPressルートに移動(public_htmlなどに置き換え)
cd /home/username/public_html

# ディレクトリを755に設定
find . -type d -exec chmod 755 {} \;

# ファイルを644に設定
find . -type f -exec chmod 644 {} \;

# wp-config.phpだけ600に設定
chmod 600 wp-config.php
⚠️ 777は絶対に避けてください:パーミッション777は「誰でも書き込み可能」を意味します。エラー解決のために一時的に777に設定したまま忘れてしまうケースが多いですが、マルウェア設置の温床になります。必ず作業後に適切な値に戻してください。

🔄 8. 追加推奨:WordPress自動更新の設定

基本対策6つに加えて、WordPressコア・テーマ・プラグインを常に最新版に保つことが重要です。既知の脆弱性が修正された新バージョンが公開された後も旧バージョンを使い続けることで、攻撃の標的になります。

1
自動更新を有効にする(wp-config.phpに追記)
⏱ 約5分
1
マイナーアップデートの自動更新(デフォルトで有効)

WordPress 5.6以降、マイナーバージョン(4.9.x等のセキュリティ修正)は自動更新されます。無効にしている場合は以下でオフを解除:

define('WP_AUTO_UPDATE_CORE', true); // マイナー更新を自動化
2
プラグイン・テーマの自動更新を有効化

管理画面 → プラグイン 一覧で各プラグインの「自動更新を有効にする」をクリック。または wp-config.php に追記:

add_filter( 'auto_update_plugin', '__return_true' );
add_filter( 'auto_update_theme', '__return_true' );
⚠️ 自動更新前にバックアップ設定を:プラグインやテーマの自動更新が原因でサイトが壊れるケースがあります(特にPHP互換性の問題)。自動更新を有効にする前に、バックアップの自動化も合わせて設定することを強く推奨します。

❓ 9. よくある質問(FAQ)

Q. ユーザー名「admin」はなぜ危険なのですか?
ブルートフォース攻撃ツールの多くは、まず「admin」というユーザー名でログインを試みます。ユーザー名をadmin以外に変更するだけで、自動攻撃の大半を無効化できます。ユーザー名は変更後も表示名と別々に管理できるため、サイト上に表示される名前は変わりません。
Q. wp-config.phpを保護する最も簡単な方法は?
.htaccessに「<files wp-config.php>deny from all</files>」を追記するのが最も簡単です。FTPで.htaccessを開き、# BEGIN WordPressの前に追記して保存するだけです。
Q. ファイルパーミッション755と644の違いは何ですか?
755はディレクトリ向けで「所有者は読み・書き・実行可能、他のユーザーは読み・実行のみ」を意味します。644はファイル向けで「所有者は読み・書き可能、他のユーザーは読みのみ」を意味します。ディレクトリには実行権限が必要(ディレクトリに「入る」操作が実行に相当)なため、ディレクトリは755、ファイルは644が標準です。
Q. SSL化後にサイトが真っ白になりました。
WordPressのURL設定をhttpsに変更した後、.htaccessのリダイレクト設定に問題があるか、プラグインが干渉している可能性があります。FTPで.htaccessを確認し、正しいリダイレクトコードが記述されているか確認してください。それでも解決しない場合は、wp-config.phpに「define('HTTPS', true);」を追記してみてください。
Q. 2FA設定後にスマートフォンを紛失したらどうなりますか?
設定時に表示されるバックアップコードを使ってログインできます。バックアップコードを紛失した場合は、FTPでサーバーにアクセスし、使用している2FAプラグインのフォルダを一時的にリネームして無効化することでログインできます。その後、新しいデバイスで2FAを再設定してください。