كيفية تحسين WordPress للسرعة بدون المكونات الإضافية (دليل التعليمات البرمجية فقط)

تم النشر بتاريخ | بواسطة
6 دقائق قراءة

If you’re reading this, you’re likely tired of the standard WordPress performance advice. The usual routine—installing WP Rocket, adding an image optimizer plugin, and throwing in an asset manager—often leads to a paradox: تقوم بتثبيت المكونات الإضافية لتسريع موقعك، لكن المكونات الإضافية نفسها تضيف تضخمًا في قاعدة البيانات، ووظائف cron في الخلفية، وحمولات CSS/JS الخاصة بها.

الحقيقة هي أن WordPress لا يحتاج إلى 15 مكونًا إضافيًا للأداء ليتم تحميلها في أقل من ثانية. يحدث تحسين السرعة الحقيقية على الطبقة المعدنية — الخادم وقاعدة البيانات والرمز الأساسي.

في هذا الدليل، سنتجاوز النظام البيئي للمكونات الإضافية بالكامل. سنقوم بتحسين WordPress باستخدام التكوينات من جانب الخادم، wp-config.php التعديلات والجراحة functions.php مقتطفات.


1. الأساس من جانب الخادم (لا يتطلب PHP)

قبل لمس سطر واحد من كود WordPress، يجب تحسين بيئة الخادم لديك بشكل كبير. لا يمكن إصلاح الخادم الضعيف عن طريق التخزين المؤقت للواجهة الأمامية.

الترقية إلى PHP 8.1+

يعمل WordPress على PHP. يمكن أن يؤدي الانتقال من PHP 7.4 إلى PHP 8.1 أو 8.2 إلى تقليل وقت التنفيذ بنسبة 20-30% وتقليل استهلاك الذاكرة بشكل ملحوظ. فعل: قم بتغيير هذا في cPanel أو Plesk أو عبر CLI إذا كنت تدير VPS الخاص بك.

تمكين الضغط على مستوى الخادم (Brotli عبر Gzip)

في حين أن Gzip هو المعيار، بروتلي (تم تطويره بواسطة Google) يوفر نسب ضغط أفضل بنسبة 15-20% تقريبًا للملفات النصية (HTML، CSS، JS) بنفس تكلفة وحدة المعالجة المركزية. الإجراء (إنجينكس): تأكد من الخاص بك nginx.conf هل قام بروتلي بتمكين:

brotli on;
brotli_comp_level 6;
brotli_types text/plain text/css application/javascript application/json image/svg+xml;

قم بتطبيق FastCGI Caching (Nginx) أو LiteSpeed ​​Cache

بدلاً من استخدام مكون إضافي للتخزين المؤقت يعتمد على PHP (والذي لا يزال يتطلب تحميل WordPress جزئيًا لخدمة ذاكرة التخزين المؤقت)، قم بتخزين ذاكرة التخزين المؤقت على مستوى خادم الويب. يقوم التخزين المؤقت لـ Nginx FastCGI بتخزين HTML الذي تم إنشاؤه في ذاكرة الوصول العشوائي (RAM) أو على القرص ويقدمه مباشرة، متجاوزًا PHP وMySQL تمامًا للزوار المجهولين.


2. التصلب والترقق عن طريق wp-config.php

ال wp-config.php الملف هو غرفة التحكم الخاصة بك. افتراضيًا، يسمح WordPress ببعض السلوكيات التي تؤدي إلى تضخم قاعدة بياناتك بمرور الوقت.

أضف هذه المقتطفات مباشرة قبل /* That's all, stop editing! Happy publishing. */ خط.

الحد من مراجعات المشاركة

افتراضيًا، يقوم WordPress بتخزين مراجعات لا حصر لها لمشاركاتك. المنشور الذي تم تحديثه 50 مرة سيكون له 50 نسخة في حسابك wp_posts جدول قاعدة البيانات، مما يؤدي إلى إبطاء استعلامات قاعدة البيانات بشكل كبير.

// Keep only the last 3 revisions
define( 'WP_POST_REVISIONS', 3 );

تحسين الفاصل الزمني للحفظ التلقائي

يتم حفظ WordPress تلقائيًا كل 60 ثانية. إذا كان لديك عدة محررين يعملون، فهذا يضر بقاعدة البيانات. أبطئها.

// Change autosave from 60 seconds to 5 minutes
define( 'AUTOSAVE_INTERVAL', 300 );

إفراغ سلة المهملات بشكل أسرع

تبقى المشاركات والتعليقات المحذوفة في قاعدة البيانات لمدة 30 يومًا. قم بتقليل هذا للحفاظ على قاعدة البيانات هزيلة.

// Empty trash every 7 days
define( 'EMPTY_TRASH_DAYS', 7 );

3. "مضاد للانتفاخ" functions.php مقتطف رئيسي

يقوم WordPress الأساسي بإدخال كمية هائلة من نصوص الدعم القديمة وروابط الاكتشاف والأنماط المضمنة في موقعك  و 

 بشكل افتراضي.

لتحقيق أقصى قدر من الحصول على المعلومات مقارنة بالمنافسين، لن نطلب منك فقط "استخدام مكون إضافي لإلغاء الحجب". إليك الكود الدقيق لإزالة انتفاخ WordPress الأكثر شيوعًا جراحيًا.

ملاحظة: أضف هذا إلى سمة الطفل الخاصة بك functions.php أو البرنامج المساعد Mu المنسدلة.

/**
 * The Ultimate WordPress Debloat Snippet
 */
add_action('init', function() {
    // 1. Remove RSD, XMLRPC, and WLW links
    remove_action('wp_head', 'rsd_link');
    remove_action('wp_head', 'wlwmanifest_link');
    add_filter('xmlrpc_enabled', '__return_false');

    // 2. Remove WordPress version footprint (Security & Speed)
    remove_action('wp_head', 'wp_generator');

    // 3. Remove Shortlinks and REST API links from header
    remove_action('wp_head', 'wp_shortlink_wp_head');
    remove_action('wp_head', 'rest_output_link_wp_head');

    // 4. Disable native Emojis (Saves 1 JS and 1 CSS HTTP Request)
    remove_action('wp_head', 'print_emoji_detection_script', 7);
    remove_action('wp_print_styles', 'print_emoji_styles');
    remove_action('admin_print_scripts', 'print_emoji_detection_script');
    remove_action('admin_print_styles', 'print_emoji_styles');
    remove_filter('the_content_feed', 'wp_staticize_emoji');
    remove_filter('comment_text_rss', 'wp_staticize_emoji');
    remove_filter('wp_mail', 'wp_staticize_emoji_for_email');

    // 5. Disable oEmbeds (If you don't embed external URLs automatically)
    remove_action('wp_head', 'wp_oembed_add_discovery_links');
    remove_action('wp_head', 'wp_oembed_add_host_js');
    add_action('wp_footer', function() { wp_deregister_script('wp-embed'); });
});

/**
 * 6. Remove Global Styles (WP 5.9+ Inline CSS Bloat)
 */
add_action('wp_enqueue_scripts', function() {
    wp_dequeue_style('global-styles');
    wp_dequeue_style('classic-theme-styles');
}, 100);

/**
 * 7. Remove jQuery Migrate (If using modern themes/plugins)
 */
add_action('wp_default_scripts', function($scripts) {
    if (!is_admin() && isset($scripts->registered['jquery'])) {
        $script = $scripts->registered['jquery'];
        if ($script->deps) {
            $script->deps = array_diff($script->deps, ['jquery-migrate']);
        }
    }
});

/**
 * 8. Throttle the Heartbeat API
 * Prevents high CPU usage when leaving the WP Admin open
 */
add_filter('heartbeat_settings', function($settings) {
    $settings['interval'] = 60; // Throttle to 60 seconds
    return $settings;
});

ماذا حققنا للتو؟

من خلال إضافة الكود أعلاه، تكون قد قمت على الفور بإزالة ما يصل إلى 5-8 طلبات HTTP غير ضرورية وقمت بإزالة العشرات من أسطر CSS/JS المضمنة من كل تحميل للصفحة - كل ذلك دون تثبيت مكون إضافي واحد.


4. تحسين الوسائط (الطريق الصعب)

تعد المكونات الإضافية مثل Smush أو Imagify ملائمة، ولكنها تقوم بتشغيل معالجة الصور على خادم PHP الخاص بك، مما يستهلك موارد وحدة المعالجة المركزية.

تحويل WebP/AVIF يدويًا

قبل تحميل أي صورة على WordPress، قم بتشغيلها من خلال ضاغط خارجي بدون فقدان البيانات Squoosh.app (بواسطة جوجل) أو تايني PNG. والأفضل من ذلك، تحويلها إلى .webp أو .avif التنسيقات محليًا قبل التحميل.

الاستفادة من التحميل البطيء الأصلي

منذ إصدار WordPress 5.5، أصبح التحميل البطيء الأصلي مدمجًا. يضيف ووردبريس تلقائيًا loading="lazy" إلى الصور الخاصة بك. لا تحتاج إلى مكون إضافي للتحميل البطيء يعتمد على JavaScript. ومع ذلك، تأكد من أن صورك "الجزء المرئي من الصفحة" (مثل شعارك أو صورة البطل) لا تحتوي على هذه السمة، حيث سيؤدي ذلك إلى تأخير أكبر طلاء محتوى (LCP).

يمكنك إزالة التحميل البطيء للصورة الأولى على الصفحة عبر functions.php:

add_filter( 'wp_get_attachment_image_attributes', function( $attr, $attachment, $size ) {
    static $is_first_image = true;
    if ( $is_first_image ) {
        $attr['loading'] = 'eager'; // Force immediate load for LCP
        $is_first_image = false;
    }
    return $attr;
}, 10, 3 );

5. إلغاء تجزئة قاعدة البيانات عبر phpMyAdmin

تشتمل المكونات الإضافية للتحسين عادةً على زر "تنظيف قاعدة البيانات". يمكنك القيام بذلك محليًا على مستوى قاعدة البيانات.

  1. قم بتسجيل الدخول إلى لوحة الاستضافة الخاصة بك وافتحها phpMyAdmin.
  2. حدد قاعدة بيانات ووردبريس الخاصة بك.
  3. انتقل إلى الأسفل، تحقق تحقق من كل شيء.
  4. في القائمة المنسدلة "مع التحديد:"، اختر تحسين الجدول.

سيقوم MySQL بإعادة بناء فهارس الجدول واستعادة المساحة غير المستخدمة. قم بذلك يدويًا مرة واحدة في الشهر.


الحكم

لا يقتصر تحسين WordPress بدون المكونات الإضافية على توفير المال على الاشتراكات المميزة فقط. إنها فلسفة تخفيض الديون الفنية. كل مكون إضافي لا تقم بتثبيته يمثل ثغرة أمنية لا يتعين عليك تصحيحها، وجدول قاعدة بيانات لا يتعين عليك تنظيفه، وبرنامج PHP النصي الذي لا يتعين على خادمك تنفيذه.

انقل عبء العمل إلى الخادم (PHP 8.1+، Nginx FastCGI)، وفرض الانضباط في ملفك wp-config.php، وقم بتقطيع الانتفاخ الأساسي باستخدام functions.php. سيعكس الوقت المستغرق حتى البايت الأول (TTFB) ومؤشرات الويب الأساسية الفرق.

Ajay Malik

أجاي مالك هو مطور WordPress وموظف مستقل يتمتع بخبرة تزيد عن 8 سنوات.