توی این راهنمای کوتاه یاد میگیری که چطور:
پینگهای بهروزرسانی وردپرس و pingbackها رو بهطور کامل غیرفعال کنی (روش ۱)
در صورت نیاز، XML-RPC رو بهطور کامل غیرفعال کنی، فقط اگر از Jetpack یا remote publishing یا اتصالهای اپ موبایل استفاده نمیکنی (روش ۲)
⚠️ قبل از تغییر روی سایت اصلی، حتماً از سایتت بکاپ بگیر.
چرا باید پینگها رو غیرفعال کنیم؟
- وقتی یه نوشته منتشر میکنی، وردپرس برای هر آدرسی که توی بخش Settings → Writing → Update Services ثبت شده، پینگ XML-RPC میفرسته.
- اگر اون سرویسهای خارجی در دسترس نباشن (فیلتر، بلاک یا منقضی شده باشن)، سرورت باید منتظر تایماوت بمونه که باعث کند شدن انتشار و مصرف بیشتر CPU/RAM میشه.
- خیلی از سرویسهای پینگ دیگه عملاً منقضی شدن و برای موتورهای جستجوی امروزی کاربردی نیستن؛ الان نقشهی سایت (sitemap) و APIهای مستقیم مثل IndexNow و Search Console روشهای مطمئنتری برای خبر دادن به کراولرها هستن.

روش اول: غیرفعال کردن همه پینگها، pingbackها و فانکشنهای مرتبط وردپرس
این کار دقیقاً چیکار میکنه؟
جلوی این رو میگیره که وردپرس سعی کنه سرویسهای بهروزرسانی خارجی رو نوتیفای کنه.
pingbackهای ورودی رو غیرفعال میکنه تا اسپم و حملات کمتر بشن.
اون اکشنهای داخلی وردپرس رو که موقع انتشار/آپدیت نوشته پینگ میفرستن، حذف میکنه.
این کد رو کجا بذارم؟
این قطعهکد رو به فایل functions.php قالبت اضافه کن.
/**
* Disable WordPress pings and pingbacks (safe for news sites)
*
* What it does:
* - Clears the update services list
* - Prevents automatic pings when publishing/updating posts
* - Removes pingback XML-RPC methods to stop incoming pingbacks
* - Keeps XML-RPC enabled by default (unless you choose Method 3)
*/
/* 1) Ensure default pingback flag is off (UI checkbox default) */
add_filter( 'option_default_pingback_flag', '__return_false' );
add_filter( 'pre_option_default_pingback_flag', '__return_zero' );
/* 2) Make the Update Services option empty (so WP doesn't try to call remote URLs) */
add_filter( 'option_ping_sites', '__return_empty_string' );
add_filter( 'pre_option_ping_sites', '__return_empty_string' );
/* 3) Prevent WordPress from performing scheduled/automatic pings */
remove_action( 'do_pings', 'do_all_pings' );
remove_action( 'publish_post', 'generic_ping' );
remove_action( 'publish_future_post', 'generic_ping' );
/* 4) Disable pingback XML-RPC methods (prevents incoming pingback abuse) */
add_filter( 'xmlrpc_methods', function( $methods ) {
if ( isset( $methods['pingback.ping'] ) ) {
unset( $methods['pingback.ping'] );
}
if ( isset( $methods['pingback.extensions.getPingbacks'] ) ) {
unset( $methods['pingback.extensions.getPingbacks'] );
}
return $methods;
});
نکات مهم
این کد خودش XML-RPC رو غیرفعال نمیکنه (پس افزونههایی که به XML-RPC وابسته هستن، میتونن به کارشون ادامه بدن).
این کد فقط جلوی ارسال پینگها رو میگیره و ورودیهای pingback که معمولاً برای حمله استفاده میشن رو حذف میکنه.
دانلود رایگان افزونه برای غیرفعال کردن پینگهای وردپرس
بهجای اضافه کردن کد دستی، میتونی یه افزونهی سبک که مخصوص همین کار نوشتم نصب کنی. تمیز، مینیمال و امن برای استفاده هست.
اگر دوست داری، میتونی به صفحهی releases گیتهاب سر بزنی و آخرین نسخه رو بگیری.
روش دوم: غیرفعال کردن کامل XML-RPC ( غیرضروری)
کی از این روش استفاده کنم؟
فقط زمانی از این روش استفاده کن که مطمئن باشی از Jetpack، اپ موبایل وردپرس، انتشار از راه دور یا هیچ افزونهای که به xmlrpc.php وابسته است، استفاده نمیکنی.
غیرفعال کردن XML-RPC یعنی برداشتن کامل یک API قدیمی؛ این کار ممکنه بعضی یکپارچگیها و اتصالها رو از کار بندازه.
کد یکخطی برای غیرفعال کردن XML-RPC
// Disable XML-RPC completely (only if you don't use Jetpack / mobile app / remote publish)
add_filter( 'xmlrpc_enabled', '__return_false' );
نکات تکمیلی برای سایتهای خبری
تنظیم sitemap رو جدی بگیر و اون رو توی Search Console (گوگل) و Bing Webmaster Tools حتما ثبت کن. این مطمئنترین روش برای درخواست ایندکس دوباره است.
به فکر پیادهسازی IndexNow باش (پشتیبانیشده توسط Bing و Yandex)؛ میتونی از یه افزونه کوچک یا امکانات افزونه سئو مثل Rank Math استفاده کنی. IndexNow خیلی کارآمدتر و کمهزینهتر از پینگهای XML-RPC است.
لاگهای سرور رو برای خطاهایی مثل
cURL error 28یا زمان اجرای طولانی PHP در لحظات انتشار بررسی کن. اینها نشونهی این هستن که پینگها دارن تایماوت میشن.
آیا غیرفعال کردن پینگها روی سئو تأثیر منفی میگذاره؟
نه، غیرفعال کردن پینگها هیچ تأثیر منفی روی سئو نداره. موتورهای جستجوی مدرن (مثل گوگل و بینگ) دیگه به نوتیفیکیشنهای XML-RPC ping وابسته نیستن. درعوض، از sitemapها، لینکهای داخلی/خارجی و APIهای ایندکسینگ برای کشف محتوای جدید استفاده میکنن.
با خاموش کردن legacy ping services درواقع جلوی تایماوتها و لود اضافه روی سرور رو میگیری، بدون اینکه سرعت ایندکس شدن نوشتههات کم بشه. این کار سایتت رو پایدارتر و سریعتر میکنه، مخصوصاً اگر سایت خبری یا با حجم انتشار بالا داشته باشی.


