クイック修正: このエラーは、WordPressがログインCookieを設定できないことを意味します。
wp-config.phpを開き、COOKIE_DOMAINおよびCOOKIEPATHの定数を削除(または修正)してください。それでも解決しない場合は、以下のfunctions.phpを使った方法でCookieのパスを直接リセットします。
ログインしようとしたときに「Cookies are blocked or not supported by your browser. You must enable cookies to use WordPress」というメッセージが表示されますか?この記事では、最も信頼できる2つの修正方法と、どちらでも解決しない場合に試すべきことを説明します。
まず診断しましょう — あなたの状況に合った修正方法を選んでください:
| 症状 | 最も考えられる原因 | 最初に試すこと |
|---|---|---|
| エラーがステージングサイトでのみ表示される | 移行時に残ったCOOKIE_DOMAIN定数 |
方法1(wp-config.php修正) |
| プライベート/シークレットモードでエラーが表示される | そのブラウザセッションでCookieが無効になっている | 通常のブラウザウィンドウに切り替える |
| 新しいホストに移行した後にエラーが表示された | 古いブラウザCookieが新しいサーバーと競合している | ブラウザCookieを削除して再試行する |
| 本番サイトでもエラーが表示される | セキュリティまたはキャッシュプラグインの干渉 | 一時的にプラグインを無効化し、その後方法1を試す |
| 以下のどちらの修正でも解決しない | SSLの不一致またはサードパーティCookieポリシー | 「どちらの修正でも解決しない場合の対処法」セクションを参照 |

Contents
エラー「Cookies are blocked or not supported by your browser」の原因
エラーメッセージが示すのとは異なり、根本原因がブラウザの設定であることはまれです。このメッセージは、WordPressが認証Cookieを書き込めないために表示されます。最も多いのは、wp-config.php内の定数が誤ったドメインを指している場合や、プラグインがCookie処理に干渉している場合です。
WP STAGINGのサポートチケットで最も一般的な原因は、以前の移行時に残ったCOOKIE_DOMAIN定数が、サイトの現在のドメインと一致しなくなっていることです。
時には、ブラウザを更新するだけでこのエラーが消えることもあります。消えない場合は、以下の修正方法を順に試してください。
セキュリティプラグインまたはキャッシュプラグインが原因のWordPressログインエラー
セキュリティプラグインやキャッシュプラグインは、WordPressのCookieとログイン処理に干渉し、ログインCookieが正しく生成されるのを妨げることがあります。原因を切り分けるには、FTPまたはファイルマネージャーでフォルダ名を変更して、セキュリティまたはキャッシュプラグインを一時的に無効化します。/wp-content/plugins/plugin-nameを別の名前に変更してから、ログインを試してください。
これで問題が解決した場合は、プラグインを再インストールし、開発者にCookieの競合について連絡してください。
WordPressサイトを別のサーバーに移行しつつ同じドメインを維持する場合、ブラウザに保存されたCookieが新しいサーバーのセッションと競合することがあります。ブラウザのすべてのCookieを削除してから、もう一度ログインしてみてください。
ステージングサイトでCookieが失敗しやすい理由
サブディレクトリ(例:yoursite.com/staging/)でホストされているステージングサイトは、本番サイトと親ドメインを共有しています。WordPressはCOOKIE_DOMAINとCOOKIEPATHの定数を使って認証Cookieを設定します。wp-config.php内のいずれかの定数が、本番サイトのルートや以前のホストのドメインをまだ指している場合、ステージングサイトはログインCookieを書き込めません。
これはWP STAGINGユーザーが最も頻繁に遭遇するシナリオです。ステージングサイトを本番に戻した後、古いCOOKIE_DOMAIN定数がステージングコピーのwp-config.phpに残ってしまうのです。以下の方法1の修正で、これを1行で修正できます。
wp-config.phpファイルを編集して「Cookies Blocked」エラーを修正する
これは、ステージング環境や移行後のセットアップにおいて最も信頼できる修正方法です。サイトのルートフォルダにあるwp-config.phpを開いてください。FTP(例:FileZilla)やホストのファイルマネージャー経由でアクセスできます。
COOKIE_DOMAINまたはCOOKIEPATHを定義している行を探してください。見つかった場合は、それを削除するか、以下の行に置き換えてください。/* That's all, stop editing! Happy publishing. */と書かれているコメントのすぐ上に貼り付けます:
define('COOKIE_DOMAIN', $_SERVER['HTTP_HOST'] );ファイルを保存し、ブラウザのCookieを削除して、ログインページを再読み込みしてください。
この行が行うこと: $_SERVER['HTTP_HOST']を使用すると、COOKIE_DOMAINは、以前のホストや移行時のハードコードされた値ではなく、サイトが現在実行されているドメインに解決されます。これにより、保存されたCookieと現在のドメインの間の不一致が解消されます。
functions.phpファイルを編集して「Cookies are blocked or not Supported」エラーを修正する
wp-config.phpの修正で問題が解決しなかった場合、この代替方法ではWordPressレベルでCookieのパスをリセットします。私たちのテストでは、このアプローチはSITECOOKIEPATHとCOOKIEPATHが食い違っているケースを解決します。これはあまり一般的ではありませんが、根強くこのエラーの原因となります。
ステップ1:functions.phpファイルを開いて編集する
cPanelファイルマネージャーまたはFTP経由で、テーマのfunctions.phpにアクセスします。このファイルはwp-content/themes/your-theme-name/functions.phpにあります。
ステップ2:functions.phpファイルにコードを追加する
以下のコードをコピーして、functions.phpの一番下に貼り付けてください:
if ( SITECOOKIEPATH != COOKIEPATH ) {
setcookie(TEST_COOKIE, 'WP Cookie check', 0, SITECOOKIEPATH, COOKIE_DOMAIN);
}ステップ3:ファイルを保存する
ファイルを保存し、ローカルで編集した場合はサーバーに再アップロードしてください。ログイン時にエラーが表示されなくなるはずです。
どちらの修正でも解決しない場合の対処法
上記のどちらの方法でも効果がない場合、原因は次のいずれかである可能性が高いです:
ブラウザがすべてのCookieをグローバルにブロックしている。 ブラウザのプライバシー設定を開き、Cookieが有効になっていることを確認してください。Chromeの場合:設定 → プライバシーとセキュリティ → Cookieと他のサイトデータ → 「すべてのCookieを許可する」。Firefoxの場合:設定 → プライバシーとセキュリティ → カスタム → 「Cookie」のチェックを外す。Safariの場合:環境設定 → プライバシー → 「すべてのCookieをブロック」のチェックを外す。
最新のブラウザにおけるサードパーティCookieの制限。 Chrome、Firefox、Safariは、デフォルトでサードパーティCookieを制限しています。WordPressのログインエンドポイントが、メインサイトとは異なるサブドメインから提供されている場合(ステージング環境でよくあります)、ブラウザがCookieをブロックすることがあります。方法1のCOOKIE_DOMAIN修正は、ほとんどのサブディレクトリ型ステージングインストールにおいてこの問題に対処します。
ステージングサブディレクトリのCookieドメイン不一致。 ステージングサイトがyoursite.com/staging/にあり、COOKIE_DOMAINがサブディレクトリのパスなしでyoursite.comに設定されている場合、WordPressはCookieを一致させることができません。COOKIE_DOMAINの修正とあわせて、define('COOKIEPATH', '/staging/');をwp-config.phpに追加してください。
SSL/HTTPSの設定ミス。 サイトにSSL証明書があるにもかかわらず、WordPressがsiteurlやhome(wp_options内)でhttp://を使うように設定されたままの場合、ブラウザのセキュアCookie要件によって認証Cookieが拒否されることがあります。wp-admin → 設定 → 一般で両方の値がhttps://を使用していることを確認してください。
修正の確認:Cookieを削除してログインした後に見えるべきもの
いずれかの方法を適用した後:
- ブラウザでサイトドメインのすべてのCookieを削除します。
- 新しいブラウザタブを開き、WordPressのログインページに移動します。
- 認証情報を入力します。修正が成功していれば、Cookieエラーが表示されることなくダッシュボードにたどり着きます。
- シークレットウィンドウまたはプライベートウィンドウでもテストしてください。これにより、メインセッションからキャッシュされたCookieの状態を除外できます。
プライベートモードでのみエラーが再発する場合は、ブラウザ拡張機能(広告ブロッカーやプライバシーツールなど)がCookieを傍受している可能性が高いです。拡張機能を1つずつ無効にして、競合の原因を特定してみてください。