تقنيات متقدمة لتسريع ووردبريس
بعد الأساسيات، هذه التقنيات ستحقق فرقاً ملموساً في مواقع ذات زيارات عالية.
PHP OPcache
# تحقق من تفعيل OPcache:
php -i | grep opcache
# في php.ini:
opcache.enable=1
opcache.memory_consumption=256
opcache.max_accelerated_files=20000
opcache.validate_timestamps=0
# ⚠️ في الإنتاج فقط — يحتاج إعادة تشغيل PHP عند التحديث
sudo systemctl restart php8.2-fpm
Gzip/Brotli Compression
# Apache - Gzip:
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/css
AddOutputFilterByType DEFLATE application/javascript application/json
AddOutputFilterByType DEFLATE application/xml text/xml
</IfModule>
# Nginx:
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml;
gzip_min_length 1000;
# Brotli (أفضل من Gzip بـ 15-25%):
# Apache:
AddOutputFilterByType BROTLI_COMPRESS text/html text/css application/javascript
تحسين الخطوط
# استضافة الخطوط محلياً بدل Google Fonts:
# 1. حمّل الخط من google-webfonts-helper.herokuapp.com
# 2. ضعه في assets/fonts/
@font-face {
font-family: 'Cairo';
src: url('assets/fonts/cairo-regular.woff2') format('woff2');
font-weight: 400;
font-display: swap; /* مهم! يعرض نص بديل أثناء التحميل */
}
# Preload الخط:
<link rel="preload" href="assets/fonts/cairo-regular.woff2" as="font" type="font/woff2" crossorigin>
تحسين WooCommerce
# تعطيل سكربتات WooCommerce في الصفحات غير المتجر:
add_action('wp_enqueue_scripts', function() {
if (!is_woocommerce() && !is_cart() && !is_checkout()) {
wp_dequeue_style('wc-blocks-style');
wp_dequeue_script('wc-cart-fragments');
}
});
# تحديد عدد المنتجات في AJAX:
add_filter('woocommerce_product_query_meta_query', function($meta_query) {
// تحسين استعلامات المنتجات
return $meta_query;
});
ملخص المهارات المكتسبة
- إعداد PHP OPcache للتسريع
- تفعيل Gzip/Brotli للضغط
- استضافة الخطوط محلياً مع font-display: swap
- تحسين WooCommerce بتعطيل السكربتات غير الضرورية
الخطوة التالية: طبّق هذه التحسينات وقارن درجات PageSpeed قبل وبعد.