آموزش غیرفعال کردن پینگ‌ها در وردپرس – روش مطمئن برای سایت‌های خبر پربازدید

اگه سایتت توی روز پست‌های زیادی منتشر می‌کنه، مخصوصاً روی سرورهایی که منابع محدودی دارن، سیستم پینگ خودکار وردپرس ممکنه باعث تایم‌اوت و فشار اضافی روی سرور بشه. با غیرفعال کردن پینگ‌ها و pingbackها، وردپرس دیگه برای هر انتشار با سرویس‌های قدیمی خارجی تماس نمی‌گیره؛ نتیجه‌اش هم سرعت بیشتر، مصرف کمتر منابع و امنیت بالاتره. این تغییر هیچ تأثیر منفی روی سئو نداره، چون موتورهای جستجو الان برای شناسایی محتوا از نقشه‌های سایت و APIهای ایندکسینگ استفاده می‌کنن، نه از پینگ‌های قدیمی XML-RPC.
disable wordpress pings
نویسنده:
|
مدیر فنی
آژانس خلاقیت کوانتا
تاریخ بروز رسانی:
اگه دوست داری کسی کارای دیجیتال مارکتینگت رو انجام بده، من اینجام که کمکت کنم. اینجا کلیک کن

توی این راهنمای کوتاه یاد می‌گیری که چطور:

  • پینگ‌های به‌روزرسانی وردپرس و pingback‌ها رو به‌طور کامل غیرفعال کنی (روش ۱)

  • در صورت نیاز، XML-RPC رو به‌طور کامل غیرفعال کنی، فقط اگر از Jetpack یا remote publishing یا اتصال‌های اپ موبایل استفاده نمی‌کنی (روش ۲)

⚠️ قبل از تغییر روی سایت اصلی، حتماً از سایتت بکاپ بگیر.

 

چرا باید پینگ‌ها رو غیرفعال کنیم؟

  1. وقتی یه نوشته منتشر می‌کنی، وردپرس برای هر آدرسی که توی بخش Settings → Writing → Update Services ثبت شده، پینگ XML-RPC می‌فرسته.
  2. اگر اون سرویس‌های خارجی در دسترس نباشن (فیلتر، بلاک یا منقضی شده باشن)، سرورت باید منتظر تایم‌اوت بمونه  که باعث کند شدن انتشار و مصرف بیشتر CPU/RAM می‌شه.
  3. خیلی از سرویس‌های پینگ دیگه عملاً منقضی شدن و برای موتورهای جستجوی امروزی کاربردی نیستن؛ الان نقشه‌ی سایت (sitemap) و APIهای مستقیم مثل IndexNow و Search Console روش‌های مطمئن‌تری برای خبر دادن به کراولرها هستن.

 

بخش Update Services در وردپرس

روش اول: غیرفعال کردن همه پینگ‌ها، 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 که معمولاً برای حمله استفاده می‌شن رو حذف می‌کنه.

دانلود رایگان افزونه برای غیرفعال کردن پینگ‌های وردپرس

به‌جای اضافه کردن کد دستی، می‌تونی یه افزونه‌ی سبک که مخصوص همین کار نوشتم نصب کنی. تمیز، مینیمال و امن برای استفاده هست.

دانلود افزونه (فایل ZIP)

اگر دوست داری، می‌تونی به صفحه‌ی 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 درواقع جلوی تایم‌اوت‌ها و لود اضافه روی سرور رو می‌گیری، بدون اینکه سرعت ایندکس شدن نوشته‌هات کم بشه. این کار سایتت رو پایدارتر و سریع‌تر می‌کنه، مخصوصاً اگر سایت خبری یا با حجم انتشار بالا داشته باشی.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

آموزش‌های کاربردی وب برای طراحان، توسعه‌دهندگان و متخصصان سئوی وردپرس
بازدید بیشتری از گوگل می‌خوای؟

درباره پیمان فراهانی

پیمان فراهانی هستم و الان مدیر فنی آژانس خلاقیت کوانتا

حدودا ۱۰ سال هست که به عنوان یه دیجیتال مارکتر در چند شاخه تخصصی این حوزه مثل سئو، طراحی و توسعه سایت‌های وردپرسی، سایت‌های فروشگاهی، تبلیغات و برندینگ دیجیتال، ویژوال دیزاین، طراحی و مدیریت محصول در حال فعالیت هستم و به برندهای زیادی برای رشد در فضای دیجیتال کمک کردم