お問い合わせフォームにスパムが届くと、本当に面倒ですよね。
でも安心してください。Contact Form 7とAkismetを連携させれば、自動でスパム判定をしてくれるようになります。
この記事では、CF7のフォームにAkismetを組み込む方法を、初心者の方でもわかるようにシンプルに解説します。
最短の設定手順と確認方法を紹介するので、このページを見ながら設定すればすぐに実践できますよ。
Contact Form 7とAkismetを連携するメリット

Akismetはもともと「コメント欄のスパム対策」として有名なプラグインですが、実はお問い合わせフォーム(Contact Form 7)とも組み合わせて使えます。
フォームからのスパムは意外と多い
WordPressサイトを運営していると、コメント欄だけでなく お問い合わせフォーム経由のスパム送信 に悩まされることがあります。
たとえば、海外からの広告リンクや、自動送信ツールによる迷惑メッセージなどです。
放置していると、1日で数十件以上届くことも珍しくありません。
AkismetとCF7を組み合わせるメリット
CF7で作ったフォームにAkismetを組み込むと、送信内容を自動でチェックし、スパム判定されたメッセージは受信前にブロックされます。
つまり、
- メールを開く時間や手間を削減できる
- 本当に必要な問い合わせだけを確認できる
- サイトの信頼性を保てる
というメリットがあります。
私自身も導入前は「またスパムか…」と毎日のようにガッカリしていましたが、Akismetと連携してからは、本当に必要なメッセージだけが届くようになり、精神的にもかなり楽になりました。
フォームタグにAkismet属性を追加する方法
AkismetをCF7で利用するには、フォームの入力タグに「akismet属性」を追加する必要があります。
これを設定することで、Akismetが送信内容をチェックしてくれるようになります。
注意点
現在のContact Form 7(v5.1以降)では、Akismetプラグインを有効化していると、新しく作成したフォームには「名前」や「メールアドレス」などに自動でAkismet属性が付与されます。
ただし、過去に作成したフォームや、独自のフィールド名を使っているフォームには自動で反映されません。
その場合は、以下のように手動でタグに属性を追加してください。
基本の書き方
以下のように、各フィールドに対して属性を追記します。
名前フィールド
[text* your-name akismet:author]
text*
… 必須入力フィールドyour-name
… フィールド名(任意で変更可)akismet:author
… 入力された値を「送信者名」としてAkismetに送信
メールアドレスフィールド
[email* your-email akismet:author_email]
author_email
を指定することで、入力されたメールアドレスをスパム判定に利用できます。
URLフィールド(任意)
[url your-url akismet:author_url]
URLを入力させる場合は author_url
を追加できます。
不要であれば省略してもOK。
実際のフォーム例
例えば、以下のようなシンプルなお問い合わせフォームがあったとします。
[text* your-name akismet:author "お名前"]
[email* your-email akismet:author_email "メールアドレス"]
[text your-subject "件名"]
[textarea your-message "メッセージ本文"]
[submit "送信"]
これで、名前とメールアドレスの入力値がAkismetに送られ、自動でスパム判定されます。
設定のポイント
- 必須フィールドには必ず「*」をつける
(例:[text* your-name ...]
) - フォームタグを編集したあとは、必ず保存して実際に送信テストを行う
- 既存フォームに追加するだけなので、難しい操作は不要
実際の送信テストと確認方法
フォームタグにAkismet属性を追加したら、必ずテスト送信をして動作を確認しましょう。
ここではチェックすべきポイントを解説します。
テスト送信を行う
- 作成したお問い合わせフォームを開く
- 名前・メールアドレス・本文にテスト用の内容を入力
- 「送信」ボタンをクリック
正常に設定できていれば、Akismetが自動でスパム判定を行います。
スパム判定がどう反映されるか
- 通常のメッセージ
→ いつも通りメールが届く。管理画面の「お問い合わせ」一覧にも表示される。 - スパムと判定されたメッセージ
→ 管理画面で「スパム」として処理される。
→ 受信メールに届かない場合もある。
※サイトやサーバー環境によって挙動が少し異なる場合があります。実際の挙動を必ずチェックしてください。
Akismetの統計で確認できる
WordPress管理画面の 「設定」→「Akismet Anti-Spam」 を開くと、スパム判定された件数や履歴を確認できます。

「どのくらいスパムを防げているか」が数字で見えるので、導入効果を実感しやすいですよ。
- テスト送信ではあえて「英語だけの文章」や「怪しいリンク入りの文章」を入力すると、スパム判定されやすくなります。
- 本当に必要なメールがスパムに振り分けられていないかどうか、最初のうちは必ず確認するようにしましょう。
誤判定があった場合の対応
Akismetは高精度ですが、100%ではありません。
ときどき「本来は必要な問い合わせ」がスパムに分類されることがあります。
ここでは CF7の送信内容 で誤判定が起きたときの正しい対処手順を整理します。
前提:CF7標準では「スパム一覧」は見られません
Contact Form 7(CF7)は 標準では送信内容をWordPressに保存しません。
そのため、管理画面の「お問い合わせ」からスパムを開いて解除することはできません。
※Akismetと自動連携して「スパム」一覧が見られるのは ブログのコメント機能 です。管理画面の「コメント → スパム」に出るのはコメントのスパムで、CF7の送信とは別です。
対応ステップ
ステップ1:Flamingoを導入して記録・救済できる状態にする(推奨)
「Flamingo」は、Contact Form 7の問い合わせ履歴をデータベース化するプラグインです。
- 「プラグイン → 新規追加」で「Flamingo」をインストール → 有効化 まで行う
- WordPress左メニューに「Flamingo」が追加されます。
受信メッセージを開く
- 通常のメッセージは「受信トレイ」、スパム判定されたメッセージは「スパム」に振り分けられます。
- 誤判定を見つけたら該当メッセージを開き、ステータスを変更(=スパム解除) して受信へ移動
Flamingoは導入後の送信から保存します。導入前に届かなかったメールはさかのぼって取得できません。
ステップ2:メール受信側もチェック
- メールクライアントの迷惑メールフォルダを確認
- 送信先アドレス(管理者メール)に対して 差出人ドメインの許可(ホワイトリスト) を設定
- 送信ログ系プラグインやサーバーのメールログがあれば到達状況を確認
ステップ3:再発を減らす設定
- reCAPTCHAを併用(次の記事で詳しく解説)
- 不要な入力項目(例:任意のURLフィールド)を減らす/必須化の見直し
- 明らかにスパムが通る文面・パターンがあればフォームの文言やガイドを調整
ステップ4:運用のコツ
- 導入直後や設定変更直後は Flamingoの「スパムメッセージ」を短い間隔で確認
- 落ち着いてきたら 週1回程度 の定期チェックに移行
- 変更のたびに テスト送信 → 受信/スパムの動作確認 をセットで行う
まとめ:Akismet連携でCF7のスパム対策を強化しよう
お問い合わせフォームは、サイト運営に欠かせない大切な窓口です。
でもスパムが大量に届いてしまうと、対応に時間を取られてしまい、本来の読者対応やビジネスに集中できなくなります。
今回ご紹介したように、Contact Form 7のフォームタグにAkismet属性を追加するだけで、スパム判定が自動化されます。
これだけでもスパムの大部分をブロックできるので、運営の負担がぐっと減りますよ。
さらに強固にしたい方は、reCAPTCHAの導入がおすすめです。
次の記事で詳しく解説しているので、あわせてチェックしてください。
👉 次に読むべき記事