موقعك يرسل "نبضات" مستمرة للخادم! تقنية Heartbeat في ووردبريس تقوم بإرسال طلبات (AJAX) تلقائية كل 15 ثانية أثناء تحرير المقالات، وكل 60 ثانية أثناء التجول في لوحة التحكم. في الاستضافات المشتركة أو المواقع ذات الزيارات العالية، هذا النشاط الخلفي قد يسبب ثقلاً في لوحة التحكم واستهلاكاً زائداً للمعالج (CPU).

لماذا يمثل هذا الأمر أهمية؟

تقنية Heartbeat مسؤولة عن ميزات مفيدة جداً، مثل:

  • الحفظ التلقائي (Auto-save): حفظ المسودات دورياً لضمان عدم ضياع مجهودك.
  • قفل المقالات (Post Locking): منع تداخل المحررين عند عمل أكثر من شخص على نفس المقال.
  • تحديثات لوحة التحكم: عرض إشعارات التعليقات والطلبات الجديدة فور وصولها.

ولكن، كل "نبضة" هي عبارة عن طلب كامل للملف admin-ajax.php. إذا كان لديك عدة محررين يعملون في نفس الوقت، ستتضاعف هذه الطلبات وتؤدي لإجهاد الخادم بلا داعٍ.

خطوات الحل

ممارسة آمنة: قبل إجراء أي تغييرات تقنية، تأكد من وجود نسخة احتياطية كاملة لموقعك (الملفات وقاعدة البيانات) عبر لوحة تحكم الاستضافة أو إضافة متخصصة مثل UpdraftPlus.

الطريقة 1: استخدام mu-plugin (الخيار الاحترافي)

يمكنك تقليل تردد هذه النبضات (مثلاً من 15 ثانية إلى دقيقتين) لضمان بقاء الميزات تعمل ولكن بضغط أقل. أنشئ ملفاً باسم heartbeat-control.php داخل مجلد wp-content/mu-plugins/ وضع فيه الكود التالي:

<?php
/**
 * Plugin Name: Dravasite – Heartbeat Control
 * Description: تقليل تردد نبضات القلب (Heartbeat) لتخفيف الحمل عن الخادم.
 * Version:     1.0.0
 */

if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

// تغيير التردد ليصبح كل 120 ثانية بدلاً من 15
add_filter( 'heartbeat_settings', function ( $settings ) {
    $settings['interval'] = 120; // المدة بالثواني
    return $settings;
} );

إذا أردت تعطيل النبضات تماماً في لوحة التحكم (مع إبقائها في محرر المقالات للحفاظ على الحفظ التلقائي)، أضف هذا الجزء أيضاً:

add_action( 'init', function () {
    if ( ! is_admin() ) return;

    global $pagenow;

    // تعطيل النبضات في كافة الصفحات عدا صفحة تحرير المقالات
    if ( $pagenow !== 'post.php' && $pagenow !== 'post-new.php' ) {
        wp_deregister_script( 'heartbeat' );
    }
} );

تنبيه: إذا كنت جديداً على هذه الملفات، يمكنك مراجعة دليل استخدام mu-plugins.

الطريقة 2: استخدام إضافات جاهزة

  • Heartbeat Control: إضافة بسيطة تتيح لك التحكم في التردد لكل منطقة في الموقع على حدة.
  • Perfmatters: تتضمن خياراً سهلاً لتعطيل أو تقليل تردد النبضات.
  • WP Rocket: توفر أداة للتحكم في Heartbeat ضمن إعداداتها لتحسين الأداء الكلي.

ملاحظات هامة

  • لا تعطلها تماماً في المحرر: إذا قمت بتعطيل Heartbeat تماماً في صفحات تحرير المقالات، ستفقد ميزة الحفظ التلقائي، وقد تضيع تعديلاتك في حال انقطاع الإنترنت أو إغلاق المتصفح فجأة.
  • التوازن: ضبط التردد على 120 ثانية (دقيقتين) هو التوازن الأمثل بين الأداء والأمان.
  • نوع الاستضافة: هذا التعديل ضروري جداً لمستخدمي الاستضافات المشتركة (Shared Hosting)، بينما يكون تأثيره أقل وضوحاً في السيرفرات الخاصة (VPS) أو الاستضافات السحابية القوية.