WordPress のコメントを無効にするには? スパムコメントを止めるには?
執筆:Eureka Studio · 更新日
要点
WordPress では、まずそもそもコメントが必要かどうかを決めましょう。不要なら、過去の投稿やピンバックも含めてすべて閉じます。必要なら、開いたままフィルターをかけます。見えないハニーポット、最小入力時間、リンク数の上限、IP ごとの上限を使い、判断の難しいコメントは隔離します。投稿へのコメントと WooCommerce の商品レビューは、別々に判断してください。Hushfort では、無料版のスパムシールドがハニーポットと入力時間をカバーし、リンク数の上限、IP ごとの上限、隔離は Pro で使えます。
手順
1手順 1
対象ごとに決める
ブログのコメントと商品レビューは別物です。スパムシールドで「投稿へのコメント」と「商品レビュー」を別々に設定します。ストアなら、「投稿へのコメント」は「オフ — 完全に無効化」、レビューは「保護 — 公開したままボットを除外」にする、といった使い分けができます。

2手順 2
ピンバックとトラックバックをオフにする
「ピンバック / トラックバック」を「無効化 (推奨)」に設定します。ピンバックのほぼすべてはスパムです。これにより、XML-RPC のピンバックメソッドと X-Pingback ヘッダーも削除されます。

3手順 3
開いたままの部分は見えないチェックに任せる
wp-comments-post.php に直接投稿するボットや、隠し欄に入力するボットは止められます。Pro では、リンクが多すぎるレビューは隔離され、人が確認できるようになります。
4手順 4
隔離はワンクリックで整理する (Pro)
Pro では、ときどき隔離された項目に目を通しましょう。本物のものに「スパムではない」を押すと、その IP とメールアドレスが学習され、次からは引っかかりません。

なぜ重要なのか
スパムコメントの害は、承認待ちの一覧が散らかることだけではありません。すり抜けたスパムリンクは、あなたのサイトから、決しておすすめしないような場所へとリンクを張ります。承認待ちのコメントはデータベースにたまっていきます。そしてストアでは、偽の商品レビューが本物と並び、レビュー欄全体が信用できないものに見えてしまいます。
あまり語られませんが、多くのサイトにはそもそもコメントが必要ありません。ビジネスサイト、ポートフォリオ、ストアのブログには、会話よりもスパムのほうが多く届くことがよくあります。そこでコメントを閉じるのは諦めではなく、誰も使わない入口を取り除くことです。
コメントが重要な場所では、フォームスパムを止めるのと同じ見えないチェックがここでも機能します。ボットは隠し欄に入力し、速すぎる投稿をし、同じ IP から繰り返し、リンクを貼り付けるからです。
対象ごとにすばやく決めるための目安です:
| あなたのサイト | 投稿へのコメント | 商品レビュー |
|---|---|---|
| ビジネスサイト・ポートフォリオ | オフ | — |
| コミュニティが活発なブログ | 保護 | — |
| ブログはあまり更新しないストア | オフ | 保護 |
| レビューが売上を左右するストア | 保護 または オフ | 保護 |
よくある間違い
- 新しい投稿のコメントだけを閉じる。 ディスカッションの設定は古い投稿には影響しません。そして、ボットが狙うのは古い投稿です。
- コメントフォームを隠しても、エンドポイントは開いたまま。 ボットにフォームは必要ありません。
wp-comments-post.phpに直接投稿します。 - レビューをコメントと同じように扱う。 ブログのスパムを止めるためにすべてを閉じると、ストアの商品レビューと星評価まで消えてしまうことがあります。
- ピンバックをオンのままにする。 ほとんど利点がないのに、スパムが少しずつ届き続けます。
- 不審なものを何でも自動削除する。 判断の難しいコメントは保留し、捨てないでください。
プラグインを使わない方法
手作業でコメントをすべて閉じるには:
- 設定 → ディスカッション: 「新しい投稿に対し他のブログからの通知 (ピンバック・トラックバック) を受け付ける」と「新しい投稿へのコメントを許可する」のチェックを外します。
- 投稿 → 投稿一覧: すべて選択し、一括操作で 編集 を選び、「コメント」を「許可しない」、「ピン」を「許可しない」に設定します。
- 必要に応じて、「設定 → ディスカッション」で一定の日数が過ぎた投稿のコメントを閉じます。
続いて、コメントのエンドポイントへの直接投稿を拒否します。たとえば必須プラグイン (mu-plugin) で:
<?php
add_filter( 'comments_open', '__return_false', 20 );
add_filter( 'pings_open', '__return_false', 20 );
add_action( 'pre_comment_on_post', function () {
wp_die( 'Comments are closed.', 403 );
} );
これで機能しますが、WooCommerce を使っている場合は商品レビューも含めてすべてが閉じられます。また、「コメント」メニューや REST のコメント用エンドポイントは削除されません。コメントを開いたままフィルターをかけたい場合は、ハニーポットや回数制限を手作業で追加するか、クラウドサービスを使うことになります。
うまくいかないときは
- 本物のコメントが表示されない。 まずログ (Pro では隔離も) を確認してください。ブロックモードの場合は、数日間監視モードに切り替えてログを確認します。
- 商品レビューが消えた。 コメントと一緒にレビューも閉じてしまった可能性があります。「商品レビュー」を「保護」に戻してください。
- コメントを閉じた後もスパムが続く。 ページキャッシュをクリアしてください。キャッシュされたページに古いフォームが残っている可能性があります。直接投稿するボットは、いずれにしても拒否されます。
Hushfort なら
Hushfort Security は無料の WordPress セキュリティプラグインで、Hushfort Pro はその上に追加する有料アドオンです。
Hushfort の スパムシールド は、対象ごとに別々に扱います。投稿へのコメントと WooCommerce の商品レビューのそれぞれについて、次から選べます:
- 保護: 公開したまま、ハニーポット、入力時間チェック、署名付きトークンでボットを除外します (Pro ではリンク数の上限と IP ごとの上限が加わります)。
- オフ: コメントフォーム、コメント一覧、REST エンドポイント、管理画面の「コメント」メニューを削除し、
wp-comments-post.phpに直接投稿するボットも拒否します。 - 変更しない: Hushfort は関与しません。
ピンバックとトラックバックも同じ画面でオフにでき、監視モードを使えばブロックを始める前に確認できます。Pro では、IP ごと・メールアドレスごとの上限、リンク数の上限、ワードリストとブロックリスト、「スパムではない」の学習機能付きの隔離も使えます。外部のサービスには何も送信しません。
よくある質問
WordPress のコメントを完全にオフにするには?
なぜ古い投稿にスパムコメントが付くのですか?
ピンバックは残しておく価値がありますか?
コメントを無効にすると WooCommerce の注文メモに影響しますか?
Akismet は必要ですか?
関連するハウツー
CAPTCHA を使わずに WordPress のお問い合わせフォームのスパムを防ぐには?
CAPTCHA なしでお問い合わせフォームのスパム対策。Elementor、Contact Form 7、WPForms をハニーポットと送信上限で守ります。
手順を読むWordPress のスパム登録(偽ユーザー登録)を止めるには?
WordPress と WooCommerce のスパム登録対策。IP ごと・サイト全体の 1 時間あたりの上限とハニーポットで偽ユーザー登録を止めます。
手順を読むxmlrpc.php とは何ですか? WordPress で無効化するには?
xmlrpc.php とは何か、WordPress で安全に無効化する方法を解説。ログインを隠しても残る入口を閉じ、ピンバックを残す方法も紹介します。
手順を読む
