先日、WordPressで制作したサイトで突如メールフォームが送信できない以下の事象が起こりました。
- 入力後、確認画面で別のユーザーの入力情報が表示されてしまう。
- 再度入力しても確認画面に遷移せず入力画面に戻されてしまう。
公開後、半年経ったあとの出来事で今までは正常に受信していました。
上記の1の事象に関しては最初ゾッとしましたが、早期的に原因を突き止める手がかりとなりました。
原因はキャッシュ系プラグイン
メールフォームのプラグインはMW WP Formを使用しており、設定画面やソースに異常は見られず、狐に包まれた気持ちになっていた頃、WordPressでなにか起きた時はだいたいキャッシュ系のプラグインの仕業だろうと思い、試しにWP Fastest Cacheを停止。
その後、再度送信テストを実施したところ不具合が解消されました。
しかし、WP Fastest Cacheを停止してしまうと、PageSpeed Insightsでスマートフォン表示のスコアが30も下がってしまい一気に真っ赤っかに。
WP Fastest Cacheをページ毎に設定除外
去年2018年、SEO業界を賑わしたメディックアップデートとともに重要事項である、MFI(モバイルファーストインデックス)評価を下げるわけにはいかず、WP Fastest Cacheの設定を再度見直したところ、個別のページ、つまりURL別に設定を除外できることが分かりました。
手順1
WordPress管理画面のメニューから「WP Fastest Cache」>「除外する」タブを選択。
手順2
上段に「除外するページ」という項目があるので、右側の「Add New Rule」ボタンを押します。
手順3
「Exclude Page Wizard」というウィンドウが開くので、「If REQUEST_URI」のプルダウンから「Is Equal To」を選択。
手順4
入力項目に、メールフォームを要するページのURLを入力し除外させます。最後に「Save」ボタンを押して完了。
以上で、メールフォームを要するページのみWP Fastest Cacheが適用されなくなり、ページスピードのスコアも落とさずに済みました。
確認画面なども除外しておく
フォームが表示されているページのみを除外してもまだ安心してはいけません。
以前、ユーザーから「フォームの確認画面へ進まない」という電話がきたことがあります。
コンバージョン計測やユーザビリティのために確認画面や送信完了画面が必要でMW WP Formをメールフォームとして使用している人が多いかと思いますが、確認画面と送完了画面も除外設定しなければならないことを忘れずに。
そうしないと、確認画面ページには遷移せず、真っ白な画面になってしまいますので。
さいごに。
キャッシュ系プラグインは便利な反面、むかしからヒヤヒヤさせられていて、設定には気をつけているつもりでしたが久しぶりに肝を冷やす思いをしました。