WordPressでフォームを設置する際に、多くの方が使っている「MW WP Form」。私もサクラサーバー+MW WP Formでお問い合わせフォームを設置しましたが、「非ログイン時だけフォームが送信できない」という現象に直面。
MW WP Formが正常に動かない?キャッシュとWAFの落とし穴に注意|実体験から学ぶ原因究明の流れ
WordPressサイトで「MW WP Form」を使ってフォームを構築していた際、ログアウト状態でフォームが確認画面・完了画面に進まないという問題に直面しました。
最初は「WAFが原因か?」と考え、サクラサーバーのWAFを無効化。しかし改善せず、次にフォームの確認・完了URLの設定を見直し、作動したりしなかったりという現象が続きました。
一時的に正常に動作したため、「これで解決か」と思いきや、数時間後にまた送信できなくなる。この不安定さが非常に厄介でした。
最終的にたどり着いた原因は、WP-Optimizeのキャッシュ機能です。
WP-Optimizeはページキャッシュを保持することで、ログインユーザーと非ログインユーザーで表示内容に差が出ることがあります。フォームページがキャッシュされていたことで、JavaScriptの送信処理やPOSTの遷移がブロックされていたのです。
ログイン中はキャッシュが無効なので問題が起きず、非ログイン時のみ影響が出るという、まさに落とし穴のような現象。
このようなトラブルを避けるためには:
フォームの不具合は「原因が複数に見える」ことが多いため、トラブルシューティングには冷静な切り分けが重要です。