زمن استجابة السيرفر TTFB (Time To First Byte) هو المقياس الأهم لأداء أي موقع ويب. يقيس الوقت بين إرسال المتصفح للطلب واستقبال أول بايت من الاستجابة. إذا كان TTFB مرتفعاً فكل شيء آخر سيكون بطيئاً بغض النظر عن مدى تحسين الواجهة الأمامية. Google توصي بأن يكون TTFB أقل من 200 ميلي ثانية للحصول على تقييم جيد في Core Web Vitals.
⚡
تقليل TTFB: اجعل سيرفرك يستجيب بسرعة البرق
دليل عملي شامل لتحقيق زمن استجابة أقل من 200ms
ما هو زمن استجابة السيرفر TTFB وكيف يُقاس؟
TTFB يشمل ثلاث مراحل: وقت إرسال الطلب عبر الشبكة (Network Latency)، وقت معالجة الطلب على السيرفر (Server Processing Time)، ووقت إرسال الاستجابة. المرحلة الثانية هي الأهم لأنها تحت سيطرتك المباشرة وتتأثر بإعدادات السيرفر وقاعدة البيانات والكود البرمجي.
يمكنك قياس TTFB بعدة طرق: أدوات المطور في المتصفح (Network tab)، أو أدوات مثل GTmetrix و WebPageTest، أو عبر سطر الأوامر باستخدام curl:
# قياس TTFB باستخدام curl
curl -o /dev/null -s -w "TTFB: %{time_starttransfer}snTotal: %{time_total}snDNS: %{time_namelookup}snConnect: %{time_connect}sn" https://example.com
# النتيجة المثالية:
# TTFB: 0.150s (أقل من 200ms)
# DNS: 0.020s
# Connect: 0.050sأسباب ارتفاع زمن استجابة السيرفر TTFB
1. سيرفر بطيء أو مُحمَّل بشكل زائد
الاستضافة المشتركة الرخيصة غالباً تضع مئات المواقع على سيرفر واحد. عندما يستهلك أحد المواقع موارد زائدة يتأثر الجميع. الحل هو الترقية إلى VPS أو سيرفر مخصص مع موارد مضمونة. في مرام هوست نوفر سيرفرات VPS بأقراص NVMe وموارد مخصصة تضمن TTFB منخفض.
2. عدم تفعيل الكاش
بدون كاش، كل طلب يمر بالدورة الكاملة: تنفيذ PHP → استعلام قاعدة البيانات → بناء HTML → إرسال الاستجابة. مع الكاش، الصفحة المُولَّدة تُخزَّن ويتم تقديمها مباشرة بدون إعادة المعالجة. هذا وحده يمكن أن يُخفّض زمن استجابة السيرفر TTFB من 2 ثانية إلى 50 ميلي ثانية.
3. استعلامات قاعدة بيانات بطيئة
استعلامات SQL غير مُحسّنة أو بدون فهارس (Indexes) مناسبة قد تستغرق ثوانٍ للتنفيذ. موقع ووردبريس عادي ينفذ 50-100 استعلام لكل صفحة. إذا كان متوسط كل استعلام 20ms فالمجموع 1-2 ثانية فقط لقاعدة البيانات. الحل هو تحسين الاستعلامات وإضافة Redis كطبقة كاش لقاعدة البيانات.
4. بُعد جغرافي عن الزوار
إذا كان سيرفرك في أمريكا وجمهورك في العراق، فالبيانات تحتاج وقتاً أطول للسفر عبر الشبكة. الحل: اختر مركز بيانات قريب من جمهورك أو استخدم CDN مثل Cloudflare لتقريب المحتوى جغرافياً.
خطوات عملية لتقليل TTFB إلى أقل من 200ms
1. تفعيل OPcache
OPcache يُخزّن كود PHP المُترجم في الذاكرة فلا يحتاج إعادة ترجمته مع كل طلب. هذا يُسرّع تنفيذ PHP بنسبة 200-300%:
# في php.ini
opcache.enable=1
opcache.memory_consumption=256
opcache.max_accelerated_files=20000
opcache.validate_timestamps=0
opcache.revalidate_freq=0
opcache.jit=1255
opcache.jit_buffer_size=128M2. تفعيل Redis Object Cache
Redis يُخزّن نتائج استعلامات قاعدة البيانات المتكررة في الذاكرة. بدلاً من تنفيذ نفس الاستعلام 100 مرة في الثانية، يُقرأ من الذاكرة بسرعة فائقة:
# تثبيت Redis
sudo apt install redis-server php-redis -y
sudo systemctl enable redis-server
# في wp-config.php
define("WP_REDIS_HOST", "127.0.0.1");
define("WP_REDIS_PORT", 6379);
define("WP_REDIS_DATABASE", 0);
# ثم ثبّت إضافة Redis Object Cache في ووردبريس وفعّلها3. تفعيل FastCGI Cache في Nginx
FastCGI Cache يُخزّن صفحات HTML الكاملة ويقدمها مباشرة من Nginx بدون تشغيل PHP أصلاً. هذا أقوى أنواع الكاش ويُخفّض TTFB إلى أقل من 20ms:
# في nginx.conf (خارج server block)
fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=WPCACHE:100m inactive=60m max_size=1g;
# داخل server block
set $skip_cache 0;
# لا تُخزّن صفحات الأدمن أو المستخدمين المسجلين
if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-.*.php") { set $skip_cache 1; }
if ($http_cookie ~* "wordpress_logged_in") { set $skip_cache 1; }
location ~ .php$ {
fastcgi_cache WPCACHE;
fastcgi_cache_valid 200 60m;
fastcgi_cache_bypass $skip_cache;
fastcgi_no_cache $skip_cache;
add_header X-Cache-Status $upstream_cache_status;
}4. استخدام CDN
شبكة توزيع المحتوى (CDN) تُوزّع نسخاً من موقعك على سيرفرات حول العالم. عندما يزور شخص من العراق موقعك، يحصل على المحتوى من أقرب سيرفر بدلاً من السيرفر الأصلي البعيد. Cloudflare يوفر خطة مجانية ممتازة تشمل CDN وحماية DDoS وتحسين تلقائي.
5. تحسين إعدادات MySQL/MariaDB
# في /etc/mysql/mariadb.conf.d/50-server.cnf
innodb_buffer_pool_size = 1G # 50-70% من RAM المتاح
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 2
query_cache_type = 1
query_cache_size = 128M
tmp_table_size = 64M
max_heap_table_size = 64M
thread_cache_size = 16
table_open_cache = 40006. تقليل إضافات ووردبريس
كل إضافة تُضيف كوداً يُنفَّذ مع كل طلب. بعض الإضافات تُضيف 100-500ms لكل صفحة. راجع إضافاتك واحذف كل ما لا تستخدمه فعلاً. استخدم إضافة Query Monitor لمعرفة أي إضافة تستهلك أكثر وقت. القاعدة الذهبية: كلما قلّت الإضافات كان الموقع أسرع.
قياس النتائج قبل وبعد التحسين
من المهم قياس TTFB قبل وبعد كل تغيير لمعرفة تأثيره الفعلي. استخدم أدوات مثل GTmetrix و WebPageTest لقياس الأداء من مواقع جغرافية مختلفة. سجّل النتائج في جدول لتتبع التحسن. الهدف النهائي هو الوصول لـ TTFB أقل من 200ms من أي مكان في العالم.
مع تطبيق جميع الخطوات السابقة على سيرفر VPS مناسب، يمكن لموقع ووردبريس تحقيق TTFB بين 30-100ms وهو ما يضعك في أفضل 5% من المواقع عالمياً من حيث سرعة الاستجابة.
بدك TTFB أقل من 100ms؟
سيرفرات مرام هوست بأقراص NVMe وإعدادات مُحسّنة تضمن أسرع استجابة لموقعك. ابدأ من هنا.
????: ?????? ??????
