WordPress お問い合わせフォーム 設置方法【2026年版】
要約
WordPressでお問い合わせフォームを設置するには、Fluent FormsやJetpackのフォームブロックなどのプラグインを入れ、名前・メール・本文の欄を作って、ブロックエディターでページに配置します。そのうえでSMTPサービスとSPF・DKIMを設定し、メールが受信トレイに届くようにします。ハニーポットでスパムを防ぎ、本番サイトから別のアカウントで送信して確認してください。
WordPress お問い合わせフォーム 設置方法は、基本的に三つの手順で済みます。フォームプラグインを入れ、名前、メール、本文の入力欄を作り、固定ページにそのブロックを置くだけです。ここまでは10分ほどで終わります。多くのお問い合わせフォームが静かに失敗するのは、その後の「メールが実際に届くか」の部分です。この記事では、その最後の工程に最も時間を割いています。
WordPressのコアには、フォームのブロックがありません。ブロックテーマを使えば、ページ、グループ、カラム、ボタンといった部品は揃いますが、入力されたデータを集めて送る機能は含まれていません。そのため、どのプラグインを選ぶか、そして送信の仕組みをどう整えるかが実質的な判断になります。
WordPressでお問い合わせフォームにプラグインは必要ですか?
継続して使うフォームであれば、必要です。HTMLフォームとPHPの処理を子テーマに書けば、チュートリアルどおりに動くものは作れます。ただし、その場合は入力値の検証、スパム対策、nonceの確認、エスケープ、データの保存、エラー表示をすべて自分で持つことになります。それは、自分で保守する小さなプラグインを一つ抱えるのと同じです。
クライアントのサイトでは、この保守の負担が判断を決めます。2024年に書いた処理は、2028年になってもサイトに残っているでしょう。その頃には、送信に失敗したときの挙動を誰も覚えていないかもしれません。保守されているプラグインであれば、セキュリティ修正は自動的に届きます。
例外は、フォームそのものが製品の一部である場合だけです。それ以外では、手書きのフォームは避けてください。
どのフォームプラグインを選ぶべきですか?
一般的なケースは次の五つで大半が足ります。選ぶ基準は、テンプレートの多さではなく、送信後に何が起きるかです。
Jetpack フォームブロック: ネイティブのブロックで、学ぶことはほとんどありません。シンプルな問い合わせページに向いています。ただし、Jetpackとの連携が前提です。
WPForms Lite: ドラッグ&ドロップで組めて、画面がわかりやすい。条件分岐や決済は有料版になります。
Fluent Forms: 無料版でも機能が充実していて、ビルダーの動きが速い。複数のサイトで同じフォームを使い回す制作会社に向いています。
Contact Form 7: 無料で軽量ですが、テキストのテンプレートで設定します。ビジュアルビルダーはないため、クライアントに渡すには向きません。
Gravity Forms: 有料のみですが、アドオンと開発者向けのエコシステムが最も充実しています。複数ステップのフォームや外部連携に適しています。
一般的な問い合わせページであれば、Fluent Forms か Jetpack のブロックで十分です。CRMへ送る必要がある場合は、Gravity Forms か WPForms Pro を選び、比較はそこで終えてください。
Jetpackのフォームブロックの解説では、エディター内での動作やフッターへの配置が説明されています。ほかのプラグインを選ぶ場合でも参考になります。
フォームそのものはどう作りますか?
プラグインを「プラグイン」→「新規追加」からインストールして有効化し、「お問い合わせ」や「シンプル」といったテンプレートから新しいフォームを作成します。ビルダーを開く前に、項目を紙の上で決めておきましょう。項目が一つ増えるごとに、最後まで入力する人は減ります。

多くの小規模サイトに必要な項目は四つです。名前、メールアドレス、本文の欄に加えて、問い合わせ先を振り分ける必要がある場合だけ件名のドロップダウンを置きます。電話番号欄は、実際に折り返し電話をかけるのでなければ、完了率を下げるだけです。
レイアウトよりも重要な設定が三つあります。第一に、必須にするのはメールアドレスと本文だけにしてください。第二に、プレースホルダーではなく、項目の上に実際のラベルを書きます。プレースホルダーは入力すると消えてしまい、コントラストの基準も満たしにくくなります。WCAG 2.2 の観点でも問題になります。第三に、送信後の確認メッセージは別ページへ飛ばさず、同じページに表示させます。計測のためにサンクスページのURLが必要な場合だけ、リダイレクトを使いましょう。
アラビア語やヘブライ語のサイトでは、公開前に必ず右から左(RTL)の表示でテストしてください。サイトの言語をRTLのロケールに設定すると、多くのプラグインでラベルと送信ボタンは正しく反転します。ただし、メールアドレス欄は必ずしも追従しません。メールアドレスは左から右に読む文字列なので、その入力欄に dir="ltr" を付けるか、プラグインのカスタム属性で指定してください。そうしないと、訪問者が@を入力するたびにカーソルが飛んでしまいます。
ブロックエディターでフォームをページに追加するには?
「お問い合わせ」という固定ページを作成し、プラス記号のボタンからインサーターを開いて、プラグイン名で検索します。主要なフォームプラグインはどれも専用のブロックを登録しています。それを選び、作成したフォームを指定して公開します。
配置場所はほかにもあります。サイトエディターで「外観」→「エディター」を開き、フッターや固定ページのテンプレートパーツを選んで、同じブロックを挿入します。ショートコードを使わずに、短いフォームをすべてのページのフッターに置く、フルサイト編集(FSE)の方法です。
制作の現場から二つ補足します。フォームは最大幅640px前後のグループの中に入れてください。1200pxの幅いっぱいに広がったフォームは読みにくくなります。また、フォームの上に一行、直接のメールアドレスを書いておくとよいでしょう。フォームを使いたくない人もいます。アドレスを載せるコストはほぼゼロです。
お問い合わせメールが届かないのはなぜですか?
WordPressは、Webサーバーの標準のPHPメール機能を使って送信します。受信側のメールサーバーは、この送信元を信用しないことが多いのです。wp_mail() の開発者リファレンスにあるとおり、この関数はサーバーが用意した仕組みにメッセージを渡すだけです。共有サーバーでは、認証されていない送信元になりがちで、SPFやDKIMの確認に失敗します。その結果、GmailやOutlookは迷惑メールに振り分けるか、そもそも拒否します。
厄介なのは、それでもフォームは緑色の成功メッセージを表示することです。プラグインは仕事をしています。サーバーがメッセージを受け付けたのです。ただ、受信トレイには届いていません。

解決には三つの作業が必要です。
WP Mail SMTP、FluentSMTP、Post SMTP などのSMTPプラグインを入れ、トランザクションメールのサービスに接続します。
送信元(From)のアドレスは、Gmailなどの無料アドレスではなく、自社ドメインのアドレス(例: hello@yourdomain.com)にします。
メールサービスが指定するSPFとDKIMのレコードを、ドメインのDNSに追加します。さらに、監視用だけでもかまわないのでDMARCレコードを公開します。
どのサービスを選ぶか。お問い合わせフォームで送るメールは一日に数件程度なので、ほとんどのトランザクションメールサービスで足ります。Postmarkは、まさにこの用途のために作られており、トランザクションメールをマーケティングメールとは別の基盤で送信します。
後からメルマガでリードに連絡したい場合は、Brevoが役立ちます。トランザクションメールもキャンペーンも一つのアカウントで扱え、小規模サイトなら無料枠で十分です。
同じSMTPの設定を画面付きで順に追いたい場合は、Mailtrapのステップバイステップのチュートリアルも参考になります。
スパムを防ぎつつ、実際の訪問者の手間を増やさないには?
公開しているフォームには、数日でボットが集まります。よくある対策は画像認証(CAPTCHA)ですが、最初に使う手段としては不適切なことが多いです。一つ増やすたびに、本物の送信を失う可能性があるからです。
防御は次の順番で重ね、スパムが止まった時点でやめてください。まず、ハニーポットです。人間には見えない隠しフィールドで、人間は入力せず、ボットは必ず入力します。多くのフォームプラグインでは、最初から有効になっています。次に、プラグインが対応していればAkismetを追加します。それでも続く場合は、Cloudflare Turnstileのような、プライバシーに配慮した認証を使います。目に見える画像パズルは、そのあとで検討してください。古典的なreCAPTCHAのチェックボックスは、継続的に攻撃を受けているフォームのためにとっておきます。
可能であれば、サーバー側でレート制限もかけてください。1つのIPアドレスから1分間に40件送られてくるのは、訪問者ではありません。
法的な面では、サイトがEU圏の訪問者を対象とする場合、プライバシーポリシーへのリンクを付けた、チェックされていない同意チェックボックスを置きます。また、必要以上に送信内容を保存しないよう設定してください。多くのプラグインは初期設定で、すべての送信内容をデータベースに永久に残します。それは変更しておきましょう。
引き渡す前に、フォームをどうテストしますか?
初めて訪れた人になったつもりでテストしてください。テストはステージング環境ではなく、本番のドメインで行います。ステージング環境は外部へのメール送信をブロックすることが多く、そこで成功しても何も証明されないからです。

スマートフォンのモバイル回線からGmailのアドレスで送信し、次にOutlookのアドレスでも送信します。受信側の受信トレイと迷惑メールフォルダを確認してください。メールのヘッダーを開き、spf=pass と dkim=pass があるかを見ます。すべての欄を空のまま送信し、次に意図的に壊したメールアドレスで送信して、エラーメッセージが分かりやすく、スクリーンリーダーでも読めるかを確かめます。
最後に、キーボードだけで入力してみてください。Tabキーで送信ボタンに到達できない、またはどの欄にフォーカスがあるか見えない場合は、テーマのフォーカススタイルを修正します。
補足として、送信内容のログを残しておくと役立ちます。送信されたメッセージを保存するプラグインの機能やメールサービスの機能を使えば、クライアントから「問い合わせが届いていない」と言われたときに、半日ではなく一分で答えられます。
フォームプラグインが適さないのはどんなときですか?
問い合わせフォームが、訪問者に必要なものではない場合もあります。ショップであれば、注文データを読み取るサポートウィジェットの方が、空白のメッセージ欄より役立ちます。リード獲得のランディングページでは、フォームは計測付きのより大きな導線の中に置くべきです。
送信内容をCRMやスプレッドシートに集める必要があるなら、メールを手作業でコピーするのではなく、直接そこへ送ってください。Zapier と連携するフォームプラグインなら、数クリックで各送信内容をGoogleスプレッドシート、Slack、プロジェクト管理ツールに流せます。
フォームが営業パイプラインの入口なら、CRMに組み込まれたフォーム機能を使う方法もあります。プラグインを一つ減らし、連絡履歴を一か所にまとめられます。よく使われる例が、HubSpotの無料フォームです。
どの場合でも考え方は同じです。フォームを作るのは十分程度の作業です。難しいのは、送信内容が確実に届くこと、スパムへの対策、そしてその後の対応です。今夜、自分のサイトのお問い合わせフォームから別のアカウント宛てに送ってみてください。届くまでにどれくらいかかるかを確かめましょう。