वर्डप्रेस में स्पैम कमेंट को कैसे रोकें?

आज विश्व की 43% वेबसाइट्स वर्डप्रेस पर आधारित हैं। इसलिए इस प्लेटफार्म को हैकर और स्पैमर सबसे अधिक टारगेट करते हैं। आपने देखा होगा कि ब्लॉग पर अधिक ट्रैफिक आने के साथ बहुत सारे स्पैम कमेंट भी आते हैं। ये चीज़ आपकी साइट के उपयोगकर्ता अनुभव के साथ-साथ Search Engine रैंक पर भी बुरा असर डाल सकती है।

इस आलेख में Plugin based Solution | Manual Solution | Optimize Discussion Settings | FAQs

यदि आप वास्तव में चाहते हैं कि आपका कंटेंट Google में बेहतर रैंक पाए, तो आपको स्पैम कमेंट से बचना चाहिए।

इसके लिए मैंने Forget Spam Comment नामक एक प्लगइन बनाया है।

Performance की दृष्टि से, ये अब तक सबसे तेज और प्रभावी anti-spam plugins में से एक है। 😍

5000 से भी ज्यादा साइट्स यह प्लगइन का लाभ ले रहे हैं। मैं आपको बता दूँ, यह बिल्कुल निःशुल्क, Lightweight होने के साथ-साथ GDPR-compliant भी है। बस आपको इस प्लगइन को सर्च करके Install और Activate कर लेना है। इसमें कोई सेटिंग्स करने की भी आवश्यकता नहीं है। यह स्वचालित रूप से काम करती है। और ये multi-site को भी सपोर्ट करती है। यह प्लगइन केवल AMP page के लिए नहीं है।

Forget Spam Comment वाकयी कैसे काम करता है?

समान्यतः एक विज़िटर जब भी आपके किसी ब्लॉग आर्टिकल पर कमेंट करते हैं, तो उस प्रोसेस में /wp-comments-post.php यूआरएल पर POST Request जाती है। यह प्लगइन आप जैसे एक्टिवेट करते हैं तो ये Path को सबसे पहले Source Code से हीं दिया जाता है, और इसे ब्लॉक भी कर दिया जाता है। लेकिन एक विज़िटर आपके ब्लॉग article को पढ़ते-पढ़ते जैसे पेज को स्क्रॉल करेंगे तब कमेंट सिस्टम automatic इनेबल हो जाएगा। इस वजह से रियल यूजर को कोई दिक्कत नहीं होगा।

आप इस वीडियो को देख कर और भी बेहतर तरीके से समझ सकते हैं।

मैन्युअल रूप से Anti-Spam Commenting System सेटअप कैसे करें?

बहुत से लोग किसी प्लगइन को इनस्टॉल नहीं करना चाहते हैं, that’s ok. सिर्फ उनके लिए यह manual method है।

किसी को सीधे /wp-comments-post.php पर POST अनुरोध करने की अनुमति देने के बजाय हम स्पैम टिप्पणियों को 100% तक रोकने के लिए कुछ Query String जोड़ सकते हैं।

स्टेप 1. Query String Parameter पर टिप्पणी POST request को प्रतिबंधित करें

मैं तीन तरीके साझा करने जा रहा हूं, एक विधि का उपयोग करें।

Apache वेब सर्वर के लिए यह कोड आप .htaccess फाइल में जोड़ें

# If Query string doesn't matches return 404
<IfModule mod_rewrite.c>
	RewriteEngine On
        RewriteCond %{REQUEST_URI} .wp-comments-post\.php
        # You may change 45jpfAY9RcNeFP to something else
        RewriteCond %{QUERY_STRING} !^45jpfAY9RcNeFP
	RewriteRule (.*) - [R=404,L]
</IfModule>

यदि आप LiteSpeed पर हैं, तो यह .htaccess फ़ाइल का भी support करता है। कोड जोड़ने के बाद आपको फिर से सर्वर को Restart करना होगा।

NGINX

Apache की तरह NGINX भी एक काफी पॉपुलर वेब सर्वर है, अगर आप इसका इस्तेमाल कर रहे हैं तो यह कोड को configure करें।

# If Query string doesn't matches return 404
location = /wp-comments-post.php {

 if ($query_string !~ "45jpfAY9RcNeFP") {
     return 404;
  }
}

Cloudflare

Cloudflare एक पॉपुलर reverse proxy सर्विसेज प्रोवाइड करने वाली कंपनी हैं। जिसके WAF rule के मदद से भी POST request को किसी खास query string के लिए restrict कर सकते हैं। ध्यान रहे, Proxy सिस्टम चालु होनी चाहिए।

prevent spam comments

Steps

  • Cloudflare Dashboard को लॉगिन करें
  • Firewall menu में जाएँ> Firewall Rules
  • निम्नलिखित expression के साथ एक Web Firewall rule सेटअप करें
(http.request.uri contains "wp-comments-post.php" and http.request.uri.query ne "45jpfAY9RcNeFP")
  • और इसके बाद Block action को चुनें

स्टेप 2. जब User पेज को Scroll करे तो Comment System Enable हो इसके लिए यह कोड जोड़ें

Code Snippets प्लगइन या Theme function.php का उपयोग करके नीचे दिए गए PHP function Code को जोड़ें

सुनिश्चित करें कि आप सही डोमेन और फॉर्म आईडी का उपयोग हो।

function correct_comment_url_on_scroll() {
// Check if Comment is enabled
if(comments_open()) echo '<script>
let commentForm = document.querySelector("#commentform, #ast-commentform, #ht-commentform");

// Load new comment path on the scroll event
document.onscroll = function () {
    commentForm.action = "https://www.example.com/wp-comments-post.php?45jpfAY9RcNeFP";
};
</script>';
}
add_action('wp_footer', 'correct_comment_url_on_scroll', 99);

दूसरा तरीका यह है कि यदि आप GeneratePress प्रीमियम थीम उपयोगकर्ता हैं तो आप Elements मॉडल का उपयोग करके सीधे JS कोड को जोड़ सकते हैं।

<script>
let commentForm = document.querySelector("#commentform");

commentForm.action = "https://www.example.com/wp-comments-post.php";
// Load new comment path on the scroll event
document.onscroll = function () {
    commentForm.action = "https://www.example.com/wp-comments-post.php?45jpfAY9RcNeFP";
};
</script>
  • Add a new hook
  • New Hook Title: Change Comment URL on the Fly
  • Hook: WP Footer
  • Priority: 99
  • Location: Posts – All posts
  • Publish

कैसे जांचें कि यह काम कर रहा है या नहीं?

आम तौर पर वर्डप्रेस /wp-comments-post.php पर GET request करने पर के लिए HTTP 405 page दिखता है। लेकिन उपरोक्त सेटअप के बाद, आप एक्सेस नहीं कर पाएंगे।

और, यूआरएल केवल विशेष Query string, 45jpfAY9RcNeFP की उपस्थिति में लोड होना चाहिए। जिसे हमने स्पैम comment को रोकने के लिए जोड़ा है। आप उपरोक्त सभी कॉन्फ़िगरेशन में इस Query string को किसी और चीज़ में बदल सकते हैं।

Result #1: zero स्पैम, यह है इस Forget Spam Comment का power! 😎

no spam

Result #2: आप देख सकते हैं फ्रेंड्स, स्पैम कमैंट्स को सफलतापूर्वक ब्लॉक किया जा रहा है

log

वर्डप्रेस का Discussion Settings को optimize कीजिये

  • wp-admin डैशबोर्ड लॉगिन करें > Settings > Discussion में जाएँ

Default post settings

इसकी आवश्यकता नहीं है, और इसके वजह से काफी link स्पैम आते हैं। इसलिए off रखें।

  • Attempt to notify any blogs linked to from the post
  • Allow link notifications from other blogs (pingbacks and trackbacks) on new posts
  • Allow people to submit comments on new posts – यह चेकबॉक्स आपको तभी इनेबल करना है जब आप कमेंटिंग सिस्टम को इनेबल करना चाहते हैं।
  • Comment author must fill out name and email – यह चेकबॉक्स को भी जरूर इनेबल कर लें।

Other comment settings

  • Enable threaded (nested) comments (5) levels deep

Email me whenever

अगर आपको प्रत्येक बार कमेंट आने पर ईमेल नोटिफिकेशन चाहिए तो ये दोनों चेकबॉक्स को इनेबल करें

  • Anyone posts a comment
  • A comment is held for moderation

Before a comment appears

  • Comment must be manually approved – ये चेकबॉक्स को checked रखें ताकि आप सभी कमैंट्स को मैन्युअली approve कर पाएं।
  • Comment author must have a previously approved comment – ये चेकबॉक्स को checked रखें।

Disallowed Comment Keys

  • यदि आपको अभी भी कुछ प्रकार के कीवर्ड से स्पैम प्राप्त हो रहा है, तो आप Discussion settings > Disallowed Comment Keys का उपयोग कर सकते हैं। इसमें आप अन्य भाषा के कीवर्ड को लिख कर Disallow कर सकते हैं।
Ё
И
О
У
Ы
Э
Ю
Я

FAQs

मेरे ब्लॉग पर पहले से ही 20,000 स्पैम कमैंट्स आये हैं, उसको कैसे डिलीट करूँ?

सबसे पहले पूरी साइट का बैकअप ले लीजिये। और उसके बाद WP Sweep प्लगइन की मदद से एक साथ comments को डिलीट कर सकते हैं।

मुझे नहीं चाहिए कमैंट्स। कैसे हज़ारों पोस्ट पर एक साथ कमेंट को Disable करूँ?

Method 1. WP Optimize
WP Optimize प्लगइन को इनस्टॉल करके इसके सेटिंग्स में जाइये, यहाँ आपको Trackback/comments actions मिलेगा, दोनों के लिए एक बार Disable button पर क्लिक कीजिये।

Method 2. Via WP CLI (ध्यान दें! इस command से सभी पोस्ट के अपडेट तारीख भी बदल जाएंगे।)
यह कमांड सही वर्डप्रेस डायरेक्टरी में चालायें। Example: /var/www/html

wp post update $(wp post list --post_type=post --orderby=date --order=DESC --format=ids --allow-root) --comment_status=close--allow-root

Method 3. Bulk Actions
वर्डप्रेस डैशबोर्ड में All Posts पेज पर जाएँ। एक bulk action नाम का dropdown menu दिखाई देगा। इसमें आप कुछ पोस्ट को सेलेक्ट कर “Edit” चुनें, फिर कमेंट के लिए “Do not allow” सेट कर अपडेट कर सकते हैं। इससे selected पोस्ट के लिए कमेंट ऑप्शन disable हो जाएगा।

विशेष जानकारी

  • By default WordPress Commenting system author को follow-up ई-मेल नहीं भेजती है। इस समस्या को ठीक करने के लिए, आप अर्नो वेलज़ेल द्वारा Comment Reply Email Notification प्लगइन का उपयोग कर सकते हैं।

मुझे आशा है कि आपने वर्डप्रेस में स्पैम टिप्पणियों को रोकने के लिए विभिन्न तकनीकें सीख ली हैं। आपको यह पोस्ट कैसी लगी? कृपया अपनी प्रतिक्रिया साझा करें।

Leave a Comment