سه روش کارآمد برای جلوگیری از اسپم در وردپرس
ارسال نظرات غیرواقعی هرزنامه یا Spam در سایتهای وردپرسی متداول است، این کار معمولا با هدف دریافت بکلینک از سایتهای دیگر و سئو کلاه سیاه به انجام میرسد.
نظرات اسپم باعث کاهش کیفیت سایت شما میشوند و این کاهش کیفیت از دید رباتهای گوگل مخفی نمیماند. در مراحل بالاتر حتی ممکن است سایت شما به صورت دستی و توسط نیروی انسانی گوگل نشانهگذاری شود و به طور کامل از نتایج جستجو حذف شود.
مقابل با نظرات اسپم با افزونهها و روشهای مختلفی امکانپذیر است. در این نوشته سه روش خلاقانه که میتوانید انجام دهید تا زمان صرف شده برای بازبینی نظرات و برخورد با کامنتهای اسپم به حداقل برسد را بررسی میکنیم.
روش اول: مسدود کردن کامنتهای ارسال شده از طریق رباتها
در این روش، با استفاده از دستورات htaccess بررسی میکنیم که آیا کامنت ارسالی از یکی از صفحات سایت ارسال شده است یا توسط یک ربات اینترنتی، به صورت انبوه ارسال شده است. این روش عملکرد کامل و دقیقی ندارد و تنها میتواند برخی از کامنتهای مزاحم را شناسایی و پیش از رسیدن به وردپرس مسدود کند.
مزیت استفاده از این روش، کاهش بار پردازشی سرور در هنگامی است که حجم کامنتهای ارسالی از طرف رباتها زیاد است.
برای به کارگیری این روش، کدهای زیر را به فایل htaccess سایت خود بیفزایید.
1 2 3 4 5 6 7 8 |
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_METHOD} POST RewriteCond %{REQUEST_URI} wp-comments-post\.php RewriteCond %{HTTP_REFERER} !.*example.com.* [OR] RewriteCond %{HTTP_USER_AGENT} ^$ RewriteRule (.*) http://invalid.request.method/ [R=301,L] </IfModule> |
در کدهای بالا، بخشی که نام دامنه example.com نوشته شده است، نام دامنهی اصلی سایت خود را ثبت نمایید.
روش دوم: تعریف لیست سیاه برای کلمات در بخش تنظیمات وردپرس
وردپرس به صورت معمول در بخش تنظیمات > گفتگوها، تنظیماتی را در اختیار شما قرار میدهد تا کلماتی را در آن مشخص نمایید. اگر این کلمات در نام، نشانی، ایمیل یا متن کامنتها موجود باشد، کامنتها به صورت خودکار در صف بازبینی یا به سطل زباله هدایت میشوند.
همچنین میتوانید IP فرستنده را نیز در این بخش مشخص نمایید.
این روش تنها زمانی قابل استفاده است که حجم کامنتهای مزاحم با ساختاری مشخص، از طرف افرادی محدود برای شما ارسال میشود.
روش سوم: شناسایی رباتها به روشی دیگر
برای شناسایی رباتها که اغلب بدون باز کردن سایت در مرورگر اقدام به ارسال کامنت میکنند، میتوانید کدهای زیر را در فایل functions.php قالب خود درج کنید. توجه به این نکته ضروری است که این کد مانع ارسال کامنت توسط کاربرانی میشود که جاوااسکریپت روی مرورگر آنها غیرفعال است. همچنین رباتها نیز که توانایی اجرای جاوااسکریپت را ندارند نخواهند توانست در سایت شما کامنت ارسال کنند.
برای اطمینان بهتر است پس از درج این کدها که به صورت اختصاصی در روکا برنامهنویسی شده است، یک کامنت به صورت ناشناس در سایت ارسال کنید تا از عملکرد صحیح آن و هماهنگی با افزونهها و قالب سایت اطمینان پیدا کنید.
همچنین لازم به ذکر است که این روش روی فیلد url کاربر عمل میکند. اگر سایت شما این فیلد را به کاربران نشان نمیدهد، این کد به درستی عمل نخواهد کرد. اغلب ارسال کنندگان کامنت اسپم به دنبال درج نشانی سایت خود برای اهداف سئو هستند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
// block spam comments directly posted to WP add_filter( 'comment_form_default_fields', 'roka_comment_form_default_fields' ); function roka_comment_form_default_fields( $fields ) { if( isset( $fields[ 'url' ] ) ) { $fields[ 'url' ] .= '<script>jQuery( function( $ ) { $( "input#url" ).attr( "name", "roka-url" ) } );</script>'; } return $fields; } add_action( 'after_setup_theme', 'roka_handle_comment_url' ); function roka_handle_comment_url() { if( basename( $_SERVER[ 'PHP_SELF' ] ) !== 'wp-comments-post.php' ) { return; } if( isset( $_POST[ 'url' ] ) ) { wp_die(); } if( isset( $_POST[ 'roka-url' ] ) ) { $_POST[ 'url' ] = $_POST[ 'roka-url' ]; unset( $_POST[ 'roka-url' ] ); } } |