エックスサーバーでWordPress REST APIが403になる原因と直し方【実体験】

WordPressブログ 迷わない始め方を図解するアイキャッチ画像

【PR】この記事には広告リンクが含まれています。

エックスサーバー上のWordPressを外部ツールやGoogle Apps Scriptから自動操作しようとすると、認証情報が正しくてもREST APIが403になることがあります。

当サイトではWordPressの下書き自動投稿を組んだ際、REST APIへの接続が403になりました。WordPressのユーザー名やアプリケーションパスワードを見直しても直らず、原因はエックスサーバー側の「REST API アクセス制限」でした。

結論からいうと、外部の自動化環境から/wp-jsonへ接続する場合は、最初にエックスサーバーの国外アクセス制限を確認します。ただし、セキュリティ設定をまとめて解除するのではなく、必要なREST APIだけを切り分けることが大切です。

目次

エックスサーバーのREST APIが403になる主な原因

403は、サーバーがリクエストを受け取ったものの、アクセスを許可しなかったときに返るHTTPステータスです。WordPress REST APIでは、次の原因を順番に切り分けます。

  • エックスサーバーのREST APIアクセス制限に該当している
  • WordPressのユーザー名やアプリケーションパスワードが違う
  • ユーザー権限が投稿・更新に足りない
  • セキュリティ系プラグインや独自コードがREST APIを制限している
  • 接続先URLやHTTPS設定が正しくない

エックスサーバー公式マニュアルでは、国外IPだけでなく、海外クラウド事業者が所有する一部の国内IPや外部サーバー経由のアクセスも制限対象になる場合があると案内されています。日本国内で操作していても、Google Apps Scriptなどの実行元によっては国外アクセスとして判定される可能性があります。

【実体験】認証情報を直しても403が消えなかった

私が最初に疑ったのは、WordPressのユーザー名とアプリケーションパスワードでした。専用のアプリケーションパスワードを作り直し、接続先も確認しましたが、403は解消しませんでした。

そこでWordPress側だけでなく、エックスサーバーのサーバーパネルを確認しました。「WordPressセキュリティ設定」にある国外アクセス制限のうち、「REST API アクセス制限」が有効になっていました。

実際に行った対応は、REST APIアクセス制限をOFFにし、ダッシュボードアクセス制限はONのまま維持する方法です。設定後に同じ接続テストを行うと認証済みのREST APIへ接続でき、WordPressへ非公開下書きを作成できました。

この経験から、403が出たときはパスワードを何度も再発行する前に、レスポンスがWordPress由来なのか、サーバー側のアクセス制限由来なのかを切り分けるのが早いと分かりました。

REST API 403を直す手順

1. 公開REST APIが開くか確認する

最初に、ブラウザで次のURLを開きます。

https://あなたのドメイン/wp-json/

JSON形式のサイト情報が表示されれば、公開REST API自体には到達できています。ここで403になる場合は、エックスサーバーのアクセス制限、WAF、セキュリティ系プラグインなど、認証より手前の制限を疑います。

2. 接続先とHTTPSを確認する

投稿の取得・作成には、通常は次のようなエンドポイントを使います。

https://あなたのドメイン/wp-json/wp/v2/posts

WordPress公式は、アプリケーションパスワードを使うREST API通信をHTTPSで行うよう案内しています。HTTPとHTTPSの取り違え、www有無、末尾のパス、別サイトのドメインを確認してください。

3. アプリケーションパスワードを確認する

WordPressの「ユーザー」から対象ユーザーのプロフィールを開き、連携専用のアプリケーションパスワードを発行します。これは管理画面へログインする通常パスワードとは別物です。

WordPress公式によると、アプリケーションパスワードは連携ごとに発行でき、不要になったものだけ個別に失効できます。外部ツールへ通常のログインパスワードを渡さず、連携名が分かる専用パスワードを使います。

4. エックスサーバーのREST APIアクセス制限を確認する

  1. エックスサーバーのサーバーパネルへログインする
  2. 「WordPressセキュリティ設定」を開く
  3. 対象ドメインを選ぶ
  4. 「国外アクセス制限」を開く
  5. 「REST API アクセス制限」を確認する
  6. 外部自動化に必要な場合だけOFFへ変更する

詳しい画面と最新の注意事項は、エックスサーバー公式のWordPressセキュリティ設定で確認できます。

5. 同じ認証テストを再実行する

設定変更後は、条件を変えずに同じREST APIリクエストを再実行します。複数の設定を同時に変えると、どれが原因だったのか分からなくなります。

認証済みリクエストが成功したら、いきなり公開投稿を作るのではなく、最初はstatus=draftで非公開下書きを作り、タイトル、本文、画像、カテゴリ、タグが正しく入るか確認すると安全です。

ダッシュボード制限までOFFにしない

エックスサーバーは、国外アクセス制限を通常はONのまま運用することを推奨しています。外部投稿でREST APIが必要でも、管理画面への国外アクセスが不要なら、ダッシュボードアクセス制限まで一緒に解除する必要はありません。

当サイトのケースでは、REST APIアクセス制限だけをOFFにし、ダッシュボードアクセス制限はONを維持しました。必要な経路だけを開けることで、自動化と管理画面保護を分けて考えられます。

固定IPを使える環境なら、ホワイトリストやIPアドレス制限も検討できます。ただし、Google Apps Scriptのように実行元IPを固定しにくいサービスでは、運用方法に合うか確認が必要です。

XML-RPCの制限は別設定

REST APIとXML-RPCは別の仕組みです。REST API投稿のために、使っていないXML-RPCの制限まで解除する必要はありません。

  • REST APIの主なパス:/wp-json
  • XML-RPCの主なパス:/xmlrpc.php
  • WordPress管理画面:/wp-admin/wp-login.php

どの機能がどのURLを使うかを分けて確認すると、不要な解除を避けられます。

安全に自動投稿するためのチェックリスト

  • WordPressサイトをHTTPSで運用する
  • 通常のログインパスワードではなくアプリケーションパスワードを使う
  • アプリケーションパスワードは連携ごとに分ける
  • 不要になった連携のパスワードを失効する
  • 認証情報をスプレッドシートや実行ログへ出さない
  • 最初は非公開下書きで投稿テストする
  • slug重複、H1重複、アイキャッチ、カテゴリ、タグを公開前に検証する
  • 必要なアクセス制限だけを変更する
  • 設定変更後はWordPress側で投稿状態を再取得する

当サイトでは、認証情報をApps Scriptのスクリプトプロパティに保存し、接続確認ログには秘密情報を表示しない設計にしています。さらに、公開処理ではWordPress側の状態を再取得し、実際に公開されたことを確認してから管理表へ記録します。

WordPressブログの自動化まで進めたい場合

REST APIの403を解消したあとは、下書き作成だけでなく、カテゴリ・タグ、SEO情報、アイキャッチ、重複slugの検査まで自動化できます。

当サイトで使っているサーバーとテーマ、サイトマップ404やREST API 403を含む開設後の運用は、「ひとり社長のWordPressブログの始め方」でまとめています。

エックスサーバーでWordPressを始める

よくある質問

REST APIアクセス制限をOFFにすると必ず危険ですか?

OFFにしただけで直ちに侵入されるという意味ではありませんが、アクセス可能な経路は増えます。HTTPS、強いユーザーパスワード、連携専用のアプリケーションパスワード、不要な連携の失効、プラグイン更新などを組み合わせてください。固定IPを利用できる場合はホワイトリストも候補です。

403なら必ずエックスサーバー設定が原因ですか?

必ずではありません。ユーザー権限、アプリケーションパスワード、セキュリティ系プラグイン、WAF、独自コード、接続先URLでも403になることがあります。公開REST API、認証、サーバー制限の順に切り分けると原因を見つけやすくなります。

WordPressの通常パスワードを使ってもよいですか?

外部REST API連携には、通常パスワードではなくアプリケーションパスワードを使います。WordPress公式も、外部のスクリプトやサービスによるAPI認証の用途として案内しています。

設定変更後すぐ公開投稿を試してよいですか?

最初は非公開下書きで試すのが安全です。投稿、更新、画像アップロード、カテゴリ・タグ設定がすべて通ることを確認し、公開前の品質ゲートを通過した記事だけを公開します。

まとめ:認証情報より先にサーバー側の制限を切り分ける

エックスサーバーでWordPress REST APIが403になる場合、認証情報が間違っているとは限りません。外部クラウドから/wp-jsonへ接続しているなら、REST APIアクセス制限を確認してください。

私はREST APIアクセス制限だけをOFFにし、ダッシュボードアクセス制限はONのまま維持して接続を復旧できました。設定を広く解除せず、必要な機能だけを一つずつ切り分けることが、安全に自動化を続けるポイントです。

参考にした公式情報

公式情報の最終確認日:2026年8月11日

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次