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

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

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

The truth is, WordPress doesn’t need 15 performance plugins to load in under a second. True speed optimization happens at the metal layer—the server, the database, and the core code.

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


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

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

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

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

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

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

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 caching بتخزين 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. The “Anti-Bloat” functions.php المقتطف الرئيسي

يقوم WordPress الأساسي بحقن كمية هائلة من نصوص الدعم القديمة وروابط الاكتشاف والأنماط المضمنة في <head> و <footer> بشكل افتراضي.

To achieve maximum information gain over competitors, we won’t just tell you to “use a debloat plugin.” Here is the exact code to surgically remove the most common WordPress bloat.

Note: Add this to your Child Theme’s functions.php أو إضافة mu-plugin مباشرة.

/**
 * 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 غير ضرورية and removed dozens of lines of inline CSS/JS from every single page load—all without installing a single plugin.


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

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

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

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

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

منذ WordPress 5.5، أصبح التحميل البطيء الأصلي مدمجًا. يضيف WordPress تلقائيًا loading="lazy" to your images. You don’t need a JavaScript-based lazy loading plugin. However, ensure your “above the fold” images (like your logo or hero image) DO NOT have this attribute, as it will delay the Largest Contentful Paint (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

Optimization plugins usually feature a “Clean Database” button. You can do this natively at the database level.

  1. سجل الدخول إلى لوحة الاستضافة وافتح phpMyAdmin.
  2. حدد قاعدة بيانات WordPress الخاصة بك.
  3. مرر إلى الأسفل، حدد تحديد الكل.
  4. In the “With selected:” dropdown, choose تحسين الجدول.

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


الحكم

Optimizing WordPress without plugins isn’t just about saving money on premium subscriptions. It is a philosophy of تقليل الديون التقنية. Every plugin you don’t install is a security vulnerability you don’t have to patch, a database table you don’t have to clean, and a PHP script your server doesn’t have to execute.

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

Siteskyline

Siteskyline

Siteskyline is a premium WordPress plugin and SEO management platform dedicated to providing the best speed, security, and optimization tools.