【PR】を含みます。

WordPress

【WordPress】ログインURLとユーザー名のセキュリティ設定

WordPressのログインURLとユーザー名のセキュリティ設定

WordPressのログインページのURLは、初期設定のままならどのサイトも同じなので、誰でも開けます。そのうえ、ログインに使うユーザー名も、第三者に知られてしまうことがあります。記事を公開しているだけのつもりでも、URLを1つ開かれただけでユーザー名が分かる状態かもしれません。

この記事では、ユーザー名が漏れていないかを確認する方法、ユーザー名を調べにくくする設定、ログインページのURLを変更する方法を解説します。もしログインできなくなっても戻せるように、管理画面へ入り直す方法も最後に載せています。

この記事はWordPress 7.1SiteGuard WP Plugin 1.8.9(2026年9月時点)をもとに書いています。SiteGuard WP Pluginは、これより古いバージョンだと画面の文言が違うことがあります。

ログインページのURLとユーザー名は両方対策する

Q. WordPressのユーザー名は、第三者に特定されますか?

A. 初期設定のままなら特定されます。著者ページのURLやREST APIに、ログインに使うユーザー名と同じ文字列が表示されます。

WordPressのログインは、ユーザー名(またはメールアドレス)とパスワードの組み合わせです。ユーザー名が特定されると、攻撃者はパスワードの推測に専念できます。

ログインページのURLは、初期状態ではどのサイトも同じ/wp-login.phpです。ユーザー名とパスワードの組み合わせを探る攻撃は、その大半が機械的に行われ、既定のログインページが狙われます。

そのため、ユーザー名を調べにくくする設定と、ログインページのURLの変更を、両方行います。

ログインに使う「ユーザー名」と、記事に表示される「ニックネーム」は別のもの

管理画面のプロフィール画面には名前の欄がいくつかありますが、ログインに使うのはユーザー名だけです。

名前の種類どこにあるか何に使われるか変更できるか
ユーザー名プロフィール画面ログイン管理画面からは変更できません
ニックネーム (必須)プロフィール画面ブログ上の表示名で選べる名前の1つ変更できます
ブログ上の表示名プロフィール画面記事に表示される名前選び直せます
投稿者スラッグ画面にはない著者ページのURL管理画面からは変更できません

プロフィール画面のユーザー名の欄は読み取り専用で、「ユーザー名は変更できません。」と表示されます。ニックネーム (必須)ブログ上の表示名を変えても、ログインに使うユーザー名は変わりません。

プロフィール画面の「名前」の欄。読み取り専用のユーザー名の欄と「ユーザー名は変更できません。」の表示、その下に名・姓・ニックネーム (必須)・ブログ上の表示名の欄がある

ニックネームとブログ上の表示名は、初期値ではどちらもユーザー名と同じです。変えていなければ、記事に表示される名前がユーザー名になっています。ニックネームをユーザー名と違う名前に変えて、ブログ上の表示名でそのニックネームを選び直してください。

投稿者スラッグは、著者ページ(そのユーザーが書いた記事の一覧ページ)のURLに使われる文字列です。https://example.com/author/xxxxx/xxxxxにあたります。

投稿者スラッグの初期値はユーザー名をURL用に整形したものなので、既定では著者ページのURLにユーザー名がそのまま表示されます。

自分のサイトでユーザー名が漏れていないか確認する

投稿者スラッグが第三者に知られてしまう主な経路は5つあります。

1つのユーザー名が、著者ページ・REST API・oEmbed・サイトマップ・テーマの投稿者リンクという5つの経路から外に出ていることを示した図

以下のexample.comは、自分のサイトのドメインに置き換えて開いてください。ログインしたままだと、第三者に見えている内容とは違う表示になるURLがあります。プライベートウィンドウ(シークレットウィンドウ)で開くと確実です。

「?author=1」を開いて投稿者スラッグが漏れていないか確認する

https://example.com/?author=1をブラウザで開きます。アドレスバーのURLがhttps://example.com/author/xxxxx/のような形に変わったら、そのxxxxxが投稿者スラッグです。初期設定のままの場合、この投稿者スラッグはログインに使うユーザー名と同じ文字列です。

末尾の数字はユーザーIDです。23と変えていくと、ほかのユーザーについても確認できます。

URLが/author/xxxxx/の形にならなかった場合、ここから投稿者スラッグが漏れることはありません。URLが/author/xxxxx/の形に変わるのは、パーマリンク設定が「基本」以外で、そのユーザーが作成者の公開済みのデータが1件以上ある場合です。記事を書いていないユーザーでも、ブロックテーマで保存したナビゲーションやスタイルなどがあると当てはまります。パーマリンク設定が「基本」のままだと、著者ページのURLも?author=1の形なので、この経路から投稿者スラッグは漏れません。

REST APIのユーザー一覧を開いて「slug」を確認する

REST APIは、WordPressの中のデータをJSONという形式で外部に渡すための仕組みです。ユーザーの情報もここから読み取れます。

https://example.com/wp-json/wp/v2/usersを開くと、次のような文字の並びが表示されます。

[{"id":1,"name":"山田 太郎", … ,"slug":"yamada", … }]

この中の"slug"が投稿者スラッグです。"name"は記事に表示される名前です。表示名を変えていなければ、ここにもユーザー名と同じ文字列が表示されます。

パーマリンク設定が「基本」の場合は/wp-json/という形のURLが使えません。その場合はhttps://example.com/?rest_route=/wp/v2/usersを開くと、同じものが表示されます。

oEmbed・サイトマップ・テーマの投稿者リンクにも著者ページのURLが出る

  • oEmbed:記事のURLを他のサイトに貼ったときに、タイトルなどを埋め込み表示するための仕組みです。https://example.com/wp-json/oembed/1.0/embed?url=記事のURLを開くと、author_urlに著者ページのURLが入っています(author_nameは記事に表示される名前で、表示名を変えていなければユーザー名と同じです)。
  • サイトマップhttps://example.com/wp-sitemap-users-1.xmlに、著者ページのURLの一覧が載っています。WordPressが標準で出力するものなので、SEOプラグインでサイトマップを置き換えている場合は404になることがあります。404が表示される場合、WordPress標準のサイトマップからは投稿者スラッグは漏れていません。ただし、SEOプラグインが自分のサイトマップを出している場合は、そちらに著者ページのURL(/author/xxxxx/)が含まれていないかも確認してください。
  • テーマの投稿者リンク:記事ページに書いた人の名前がリンクとして表示されるテーマの場合、そのリンク先が著者ページです。リンクをクリックしてURLを見ると確認できます。テーマによっては投稿者リンクを出力していません。

SiteGuard WP Pluginをインストールする

ユーザー名を調べにくくする設定も、ログインページのURLを変える設定も、SiteGuard WP Pluginという1つのプラグインにそろっています。EGセキュアソリューションズが開発している日本製のプラグインで、日本語の公式マニュアルが公開されています。

インストールする前に、次の3点を確認してください。

  • 有効化した瞬間にログインページのURLが変わります。設定画面で切り替えるのではなく、有効化の時点で「ログインページ変更」が有効になります。
  • 新しいURLは、有効化の直後に表示される緑色の通知と、管理者あてのメールで分かります。
  • 通知を見ないままブラウザを閉じると、ログインページのURLが分からなくなります。その状態でログアウトすると、管理画面に入れなくなります。

ログインページのURLが分からなくなったときの対処法は「ログインできなくなったときに管理画面へ入り直す方法」にまとめてあります。作業を始める前に目を通しておくと、あわてずに済みます。

インストールして有効化する

  1. 管理画面のプラグインの追加画面で「SiteGuard WP Plugin」を検索する

  2. 検索結果に出てきたSiteGuard WP Pluginの「今すぐインストール」をクリック

    プラグインを追加する画面の検索結果に表示されたSiteGuard WP Pluginのカード。右上に「今すぐインストール」ボタンがある
  3. インストールが終わったら有効化する

    有効化した時点で、ログインページのURLがlogin_+5桁の数字(例: https://example.com/login_12345)に変わります。

有効化の直後に出る通知から新しいログインページのURLをブックマークする

有効化すると、緑色の通知が表示されます。書かれているのは「ログインページの URL は変更されました。」と「新しいログインページ URL をブックマークしてください。設定変更は こちら です。」の2つで、新しいログインページ URLの部分がリンクになっています。

SiteGuard WP Pluginを有効化した直後のプラグイン画面。緑色の通知に「ログインページの URL は変更されました。」と、リンクになった「新しいログインページ URL」が表示されている

このリンク先が新しいログインページなので、通知が出ているうちにブックマークしてください。

同時に、同じ内容のメールがWordPressに管理者として登録されているユーザー全員あてに届きます。

SiteGuardで変える設定は2つだけ

有効化すると、管理画面の左メニューにSiteGuardが追加されます。中にはログインまわりの項目がいくつもありますが、設定を変えるのは「ユーザー名漏えい防御」(ユーザー名を調べにくくする設定)と「ログインページ変更」の2つだけです。ほかの項目は初期値のままで進めます。

「ユーザー名漏えい防御」を有効にする

この設定を有効にすると、ユーザーIDの数字を順番に試して、投稿者スラッグを特定する方法が使えなくなります。「有効」を選ぶだけでできるので、やっておいて損はありません。ただし、パーマリンク設定が「基本」のサイトでは、著者ページのURLが?author=1の形なので、著者ページが開けなくなります。

「ログインページ変更」はプラグインを有効化した時点で「有効」になりますが、「ユーザー名漏えい防御」は違います。「ユーザー名漏えい防御」の初期値は「無効」なので、プラグインをインストールしただけでは、?author=1からもユーザー名が漏れる状態のままです。自分で「有効」に切り替える必要があります。

  1. 管理画面の左メニューの「SiteGuard」から「ユーザー名漏えい防御」を開く

  2. 「有効」「無効」のうち「有効」を選ぶ

    SiteGuardの「ユーザー名漏えい防御」の画面。「有効」「無効」の切り替えで「有効」を選んでいる。その下に「オプション」の「REST API 無効化」、初期値のoembed・contact-form-7・akismetが入った「除外する REST API ネームスペース」の欄と、このサイトのネームスペースの一覧がある
  3. 「変更を保存」をクリック

    保存されると「設定を保存しました。」と表示されます。

この設定を有効にすると、?author=に数字が続くアクセスは、サイトのトップページに転送されます。プライベートウィンドウをいったん閉じて開き直してから、https://example.com/?author=1をもう一度開いて、著者ページではなくトップページが表示されれば、この経路は塞がっています。

REST APIも止める場合は「REST API 無効化」にチェックを入れる

「有効」を選んだだけでは、https://example.com/wp-json/wp/v2/usersを開くと、まだ投稿者スラッグが表示されます。こちらも塞ぐには、同じ画面の「オプション」にあるREST API 無効化にチェックを入れて、「変更を保存」をクリックします。

チェックを入れると、投稿や固定ページの編集権限がない状態でREST APIにアクセスするとエラーになり、「このサイトでは REST API は無効に設定されています。」というメッセージが返ります。

この設定には副作用があります。プラグインやテーマの中には、REST APIを使って動く機能があります。たとえばお問い合わせフォームには、訪問者が送信ボタンを押したときに、REST APIを通して内容を送るものがあります。「REST API 無効化」にチェックを入れると、ログインしていない訪問者からのREST APIへのアクセスはエラーになるので、こうした機能が動かなくなることがあります。その場合は同じ画面の「除外する REST API ネームスペース」に、その機能のネームスペースを追加します。

ネームスペースは、REST APIのURLで/wp-json/の直後に来る部分です。たとえばhttps://example.com/wp-json/wp/v2/usersならwp/v2がネームスペースです。初期値として入っているcontact-form-7は、お問い合わせフォームのプラグイン「Contact Form 7」のネームスペース(contact-form-7/v1)を除外するためのものです。

自分のサイトのネームスペースは、調べなくても同じ画面の一覧に表示されます。動かなくなった機能のネームスペースを一覧から選んで除外するネームスペースを追加をクリックし、「変更を保存」をクリックします。

「ユーザー名漏えい防御」で塞がらない経路もある

「ユーザー名漏えい防御」が塞ぐのは、5つの経路のうち2つです。

経路「有効」を選ぶ+「REST API 無効化」
?author=+数字塞がる塞がる
/wp-json/wp/v2/users塞がらない塞がる
oEmbedのauthor_url塞がらない塞がらない
/wp-sitemap-users-1.xml塞がらない塞がらない
テーマの投稿者リンク塞がらない塞がらない

oEmbedが残るのは、「除外する REST API ネームスペース」にoembedが初期値として入っているためです。この欄から外すこともできますが、記事を埋め込んで表示する仕組みに影響するので、初期値のままにしておくのが無難です。

サイトマップ、テーマの投稿者リンク、https://example.com/author/xxxxx/への直接アクセスも塞がりません。これらを塞ぐには投稿者スラッグ自体を別の文字列に変える必要がありますが、WordPressの管理画面にはその入力欄がありません。SiteGuardの設定だけでは、著者ページのURLが使えなくなるわけではないので、ユーザー名は特定されます。この設定は、ユーザー名を隠すものではなく、調べる手間を増やすための対策です。だからこそ、ログインページのURLの変更まで行っておきます。

ユーザー名を知られても、それだけでログインされるわけではありません。WordPressの開発チームも、ユーザー名は秘密の情報ではなく、本人かどうかを確かめるのはパスワードの役目だとしています。ユーザー名を調べにくくすることとログインページのURLを変えることは攻撃を受けにくくするための対策で、いちばん大事なのは推測されにくいパスワードを使うことです。

ログインページのURLを推測されにくい名前に変える

ログインページのURLは、プラグインを有効化した時点で/wp-login.phpからlogin_+5桁の数字に変わっていますが、自分で決めた名前にも変えられます。

いま使われているログインページのURLは、SiteGuardログインページ変更を開いた画面の「ログインURL:」の行で確認できます。

名前を変える前に、次の4点に注意してください。

  • 保存した時点でログインページのURLが変わります。
  • 使える文字は英数字・ハイフン・アンダースコアで、4文字以上必要です。
  • サイトのルートに同じ名前のファイルやフォルダがあると、その名前は使えません。
  • Nginxの環境や.htaccessが使えないApacheの環境では、URLの末尾に.phpが付きますhttps://example.com/login_12345.php)。自分の環境がどちらかは、保存したあとに「ログインURL:」の行を見れば分かります。
  1. 管理画面の左メニューの「SiteGuard」から「ログインページ変更」を開く

  2. 「変更後のログインページ名」に新しい名前を入力し、「オプション」の「管理画面 (/wp-admin/) からログイン画面にリダイレクトしない。」にチェックを入れる

    SiteGuardの「ログインページ変更」の画面。「ログインURL:」の行、「変更後のログインページ名」の入力欄、「オプション」の「管理画面 (/wp-admin/) からログイン画面にリダイレクトしない。」のチェックボックスがある
  3. 「変更を保存」をクリック

  4. 「ログインURL:」の行に出ている新しいURLを開き、ログイン画面が表示されることを確認してブックマークを更新する

「ログインページ変更」の各項目は、開発元の公式マニュアルログインページ変更でも説明されています。

「/wp-admin/」からの転送を止めないと、URLを変えた意味が薄れる

「管理画面 (/wp-admin/) からログイン画面にリダイレクトしない。」にチェックを入れないままだと、ログインしていない人がhttps://example.com/wp-admin/を開いたときに、新しいログインページへ転送されます。つまり、変更後のURLを誰でも知ることができます。

チェックを入れると、この場合はトップページへ転送されるようになります。

ログインページのURLを変えたあとの状態を確認する

https://example.com/wp-login.phpを開くと、404(ページが見つかりません)になります。これは変更が効いている印です。

ほかにもログインページのURLを変えるプラグインを使っている場合は、管理画面に警告が表示されます。ログインページのURLを変える機能は、どちらか一方のプラグインだけで使ってください。両方で同じURLに変更すると、エラーになる可能性があります。

ログインできなくなったときに管理画面へ入り直す方法

手段は3つあります。上から順に試してください。1と2はWordPressに管理者として登録しているメールアドレスを受信できることが前提です。

1. ログインURLレスキューでメールを送ってもらう

https://example.com/?siteguard_rescue=1を開くと、「ログイン URL レスキュー」の画面が表示されます(siteguard_rescueはハイフンではなくアンダースコアです)。「管理者メールアドレス」と、画像認証(「上に表示された文字を入力してください。」と書かれた欄)を入力してメールを送信をクリックすると、変更後のログインページのURLがメールで届きます。

「ログイン URL レスキュー」の画面。「管理者メールアドレス」の入力欄と、画像認証の欄、「メールを送信」ボタンがある
  • 送信先は、WordPressに管理者として登録されているメールアドレスだけです。
  • 1時間に3回以上使うとロックがかかります。届かないときは、もう一度送る前に迷惑メールフォルダを確認してください。
  • 入力したアドレスが登録済みかどうかに関わらず、「メールを送信しました。(メールアドレスが登録されている場合のみ)」と表示されます。

この機能は初期状態で有効です。「ログインページ変更」の画面にある「ログイン URL レスキューを有効にする。」のチェックを外していると使えません。

2. プラグインを有効化したときに届いたメールを探す

プラグインを有効化した時点で、管理者あてに新しいログインページのURLを書いたメールが送られています。件名に「ログインページ URL が変更されました」が入っているので、メールソフトで検索してください。

3. サーバーのファイルマネージャーかFTPでプラグインを削除する

メールが使えない場合の最後の手段です。サーバーからメールが送られない設定になっていると、1も2も使えません。

この方法は、サーバーの管理画面にあるファイルマネージャー、またはFTPソフトで、サイトのファイルを直接操作できることが前提になります。ログイン情報が手元にあるかを先に確認してください。

開発元のFAQが案内している手順は次のとおりです。.htaccessが見つからない環境(ログインページのURLの末尾に.phpが付く環境)では、手順1を飛ばして手順3に進みます。

  1. WordPressをインストールしたフォルダにある「.htaccess」を開き、「#SITEGUARD_PLUGIN_SETTINGS_START」から「#SITEGUARD_PLUGIN_SETTINGS_END」までの記述を削除する

  2. 「https://example.com/wp-login.php」を数回開いてみる

    ログイン画面が表示されたら、ここで終わりです。

  3. 表示されない場合は、「/wp-content/plugins/」の中の「siteguard」フォルダを削除する

    削除したあと、「https://example.com/wp-login.php」を開いてログインします。

手順3で「siteguard」フォルダを削除した場合は、ログインできたあとに管理画面からインストールし直せます。ただし設定はデータベースに残っているので、インストールし直して有効化すると、ログインページのURLは削除する前と同じものに戻ります。有効化したあとに「ログインページ変更」を開いて、「ログインURL:」の行のURLをブックマークし直してください。「ユーザー名漏えい防御」は「無効」に戻り、「REST API 無効化」のチェックも外れ、「除外する REST API ネームスペース」に追加した分も消えるので、設定し直す必要があります。

まとめ

WordPressでユーザー名を調べにくくして、ログイン画面を守るために押さえるところは次の6点です。

  • ログインに使うユーザー名と、記事に表示される名前は別のもの:ニックネームや表示名を変えても、ユーザー名と投稿者スラッグは変わりません。
  • 表示名がユーザー名のままになっていないか確認する:ニックネームとブログ上の表示名は、初期値ではどちらもユーザー名と同じです。ニックネームを変えて、ブログ上の表示名で選び直します。
  • ユーザー名を第三者に調べられるかは、5つの経路のURLを開いて確認できる?author=1/wp-json/wp/v2/usersのほか、oEmbed・サイトマップ・テーマの投稿者リンクの5つです。
  • SiteGuard WP Pluginは有効化した瞬間にログインページのURLが変わる:表示された通知とメールで新しいURLを確認して、その場でブックマークします。
  • 「ユーザー名漏えい防御」の初期値は「無効」:インストールしただけでは効かないので自分で「有効」にします。有効にしても、著者ページのURL(/author/xxxxx/)が使えなくなるわけではないので、ユーザー名は特定されます。
  • いちばん大事なのは推測されにくいパスワード:ユーザー名を調べにくくすることとログインページのURLを変えることは、攻撃を受けにくくするための対策です。

ログインページのURLが分からなくなっても、?siteguard_rescue=1のレスキュー機能、有効化時のメール、サーバー側でのプラグイン削除の3つで管理画面に入り直せます。作業を始める前に、自分がどれを使えるかを確認しておきましょう。

この記事を書いた人
もみじのアイコン画像

もみじ

現役フリーランスWebエンジニア。フロントエンド開発を中心に、Web制作、WordPress、業務効率化ツール開発、PHPを用いた機能改修に携わってきました。社内SEとして業務ツール開発や運用保守を担当した経験もあります。

実務や学習を通じて得た知見をもとに、初心者がつまずきやすいポイントや、現場で役立つ考え方をわかりやすく発信しています。

詳しいプロフィールはこちら

-WordPress
-