تعمل جميع خطط الاستضافة المشتركة وخطط الموزّعين لدى WebGee على LiteSpeed، ما يعني أن أسرع ذاكرة تخزين مؤقت لـ WordPress مدمجة بالفعل في خادم الويب. أضف Redis لتسريع استعلامات قاعدة البيانات، وانقل المهام المجدولة في WordPress إلى مهمة cron حقيقية، وبذلك تتخلص من أكثر ثلاثة أسباب شيوعًا للبطء في المواقع المعتادة.
يتناول هذا الدليل كل خطوة بالترتيب الذي يمنحك أكبر قدر من التحسن أولًا.
أهم النقاط
- LiteSpeed Cache مجاني في جميع خطط WebGee، ويمكن تفعيله ببضع نقرات من أداة LiteSpeed Web Cache Manager في cPanel.
- ابدأ بالإعداد المسبق Essentials الذي لا يمكن أن يُفسد تصميم موقعك، واختبر الإعدادات المسبقة الخاصة بتحسين الصفحات على نسخة تجريبية أولًا.
- افحص ترويسة الاستجابة x-litespeed-cache في نافذة تصفح خاصة للتأكد من أن الصفحات تُقدَّم من ذاكرة التخزين المؤقت.
- Redis هو الخيار الوحيد للتخزين المؤقت للكائنات على WebGee، وربطه بـ LiteSpeed Cache يُسرّع الموقع للمستخدمين المسجّلين ولوحة الإدارة.
- استبدال WP-Cron بمهمة cron في cPanel تعمل كل خمس دقائق يمنع المهام المجدولة من إبطاء تحميل الصفحات.
قبل أن تبدأ
- إمكانية الوصول إلى cPanel وإلى لوحة إدارة WordPress
- نسخة تجريبية من الموقع إذا كنت تخطط لتجربة ميزات تحسين الصفحات
- نافذة تصفح خاصة لإجراء الاختبارات، لأن الصفحات التي يُسجَّل فيها الدخول لا تُخزَّن مؤقتًا أبدًا
- عدم تفعيل أي إضافة أخرى للتخزين المؤقت للصفحات إلى جانب LiteSpeed Cache
التخزين المؤقت للصفحات والتخزين المؤقت للكائنات يؤديان مهمتين مختلفتين
التخزين المؤقت للصفحات يحفظ الصفحات كاملة بعد إنشائها، فيحصل الزوار غير المسجّلين عليها دون تشغيل PHP على الإطلاق. ويتولى LiteSpeed Cache (LSCache) هذه المهمة.
التخزين المؤقت للكائنات يحتفظ بنتائج استعلامات قاعدة البيانات في الذاكرة، فيتوقف WordPress عن طرح الأسئلة نفسها على قاعدة البيانات مع كل تحميل للصفحة. وهو يفيد المستخدمين المسجّلين ولوحة الإدارة وكل ما لا يمكن للتخزين المؤقت للصفحات تقديمه. ويتولى Redis هذه المهمة.
تستفيد معظم المواقع من الاثنين معًا. ابدأ بإعداد التخزين المؤقت للصفحات، لأنه يقدم أكبر فائدة لأكبر عدد من الزوار.
تفعيل LiteSpeed Cache
LSCache مجاني في جميع خطط WebGee. وأسرع طريقة لتفعيله هي من خلال cPanel، الذي يثبّت الإضافة ويهيئها نيابةً عنك:
- سجّل الدخول إلى cPanel وافتح LiteSpeed Web Cache Manager.
- ضمن LiteSpeed Cache Management، اختر WordPress Cache.
- اختر Scan إذا لم تظهر عمليات التثبيت الخاصة بك في القائمة.
- اختر Enable بجوار عملية التثبيت.
إذا كانت الإضافة مثبّتة بالفعل لكن التخزين المؤقت متوقف، فانتقل إلى LiteSpeed Cache ← Cache في WordPress واضبط Enable Cache على ON.
تعمل الإعدادات الافتراضية في معظم المواقع دون أي تعديل. فقواعد المسح تُفرّغ تلقائيًا الصفحة الرئيسية وأرشيفات التصنيفات والوسوم والكُتّاب عند نشر أي مقال، كما تستثني إعدادات WooCommerce الافتراضية سلة التسوق وصفحة الدفع. وإذا واجهت مشكلة في صفحة معينة، فأضفها ضمن Excludes بدلًا من تعطيل التخزين المؤقت. راجع تثبيت LiteSpeed Cache وتفعيله.
تطبيق إعداد مسبق
تُطبّق الإعدادات المسبقة مجموعة كاملة من الإعدادات دفعة واحدة. انتقل إلى LiteSpeed Cache ← Presets، ومن تبويب Standard Presets اختر Apply Preset بجوار الإعداد الذي تريده. تُحفظ نسخة احتياطية من إعداداتك الحالية أولًا، ويتيح لك قسم History استعادتها. وإذا لم يظهر خيار Presets، فحدّث الإضافة إلى الإصدار 5.3 أو أحدث.
- Essentials: التخزين المؤقت ومدة TTL أطول والتخزين المؤقت في المتصفح. ولا يمكن أن يُفسد تصميم موقعك.
- Basic: يضيف تحسين الصور وذاكرة تخزين مؤقت للأجهزة المحمولة. وتحسين الصور خدمة من QUIC.cloud تتطلب مفتاح نطاق مجانيًا.
- Advanced: يضيف مجموعة كبيرة من ميزات تحسين الصفحات.
- Aggressive وExtreme: يضيفان دمج ملفات CSS وJavaScript، وCritical CSS وUnique CSS، وهي خدمات من QUIC.cloud قد تترتب عليها رسوم.
ابدأ بالإعداد Essentials. فهو يحقق معظم التحسن الممكن، والفارق بينه وبين الإعدادات الأكثر حدة أصغر بكثير في زمن التحميل الفعلي منه في نتيجة اختبار سرعة الصفحة. انتقل مستوى واحدًا في كل مرة واختبر بعد كل خطوة. راجع الإعدادات المسبقة في LiteSpeed Cache.
تحسين الصفحات هو ما يتسبب في تعطل المواقع بدءًا من الإعداد Advanced فما فوق، قد يؤدي تصغير ملفات CSS وJavaScript ودمجها إلى إفساد تصميم موقعك أو تعطيل أحد السكربتات دون أي تنبيه، وغالبًا ما يحدث ذلك في قالب واحد فقط. اختبر هذه الإعدادات المسبقة على نسخة تجريبية، ولا تطبقها مباشرةً على موقع مباشر أبدًا، وتوقّع أنك ستحتاج إلى استثناء بعض الملفات المتعارضة.
التأكد من تخزين الصفحات مؤقتًا
افتح الموقع في نافذة خاصة في Chrome، واضغط F12، وانتقل إلى تبويب Network ثم أعد تحميل الصفحة. اختر الإدخال الأول، وهو مستند HTML، وابحث ضمن Response Headers عن x-litespeed-cache:
hit: قُدّمت الصفحة من ذاكرة التخزين المؤقت، أي أن كل شيء يعمل.miss: أُنشئت الصفحة بواسطة PHP ثم خُزّنت. أعد التحميل مرة واحدة وستظهر القيمة hit.- عدم وجود الترويسة: الصفحة لا تُخزَّن مؤقتًا.
لإجراء فحص سريع لرابط واحد، استخدم check.lscache.io. وإذا لم يُخزَّن أي شيء، فتأكد من أن الإضافة مفعّلة، وابحث عن ملف .litespeed_flag في المجلد الجذر للموقع، وأزل أي إضافة تخزين مؤقت منافسة. فوجود نظامين للتخزين المؤقت للصفحات يؤدي إلى تعارضهما، وفي الغالب لا يعمل أي منهما. راجع التحقق من عمل LiteSpeed Cache.
حول أداة الزحف أداة الزحف الخاصة بـ LSCache، التي تُحمّل الصفحات مسبقًا حتى لا يضطر الزائر الأول إلى الانتظار، معطّلة في الاستضافة المشتركة لأنها تستهلك موارد كثيرة جدًا لا يتحملها خادم مشترك. وهي متاحة في خطط Premium Hosting وPremium Reseller.
إضافة التخزين المؤقت للكائنات عبر Redis
Redis هو نظام التخزين المؤقت للكائنات على WebGee. فقد أُوقف دعم Memcached وأصبحت إضافة PHP الخاصة به معطّلة على مستوى المنصة بالكامل، لذا فإن أي موقع لا يزال مهيأً لاستخدام Memcached لا يستفيد من التخزين المؤقت للكائنات على الإطلاق. ويُحدث Redis أكبر فرق في المواقع التي تحتوي على إضافات كثيرة، أو كتالوجات منتجات كبيرة، أو لوحة إدارة بطيئة، بينما لا يُحدث فرقًا يُذكر في موقع تعريفي صغير يُقدَّم بالفعل من ذاكرة التخزين المؤقت للصفحات.
1. تفعيل Redis في cPanel
افتح Redis في cPanel، واختر Enable Redis، ودوّن المنفذ وكلمة المرور الظاهرين.
2. تفعيل إضافة PHP
افتح Select PHP Version، واختر Extensions، وحدد redis. يُطبَّق التغيير فورًا.
3. توجيه LiteSpeed Cache إلى Redis
في WordPress، انتقل إلى LiteSpeed Cache ← Cache ← Object واضبط ما يلي:
- Object Cache:
On - Method:
Redis - Host:
127.0.0.1 - Port وPassword: القيم التي حصلت عليها في الخطوة 1
- Username: اتركه فارغًا
اختر Save. يجب أن تظهر حالة الاتصال في الصفحة نفسها بالقيمة Passed. فإذا ظهرت الرسالة Connection refused فهذا يعني أن Redis لا يعمل، أما Class 'Redis' not found فتعني أن إضافة PHP معطّلة، وAuthentication failed تعني أن كلمة المرور غير صحيحة. وتُنشأ كلمة مرور جديدة في كل مرة يُعطَّل فيها Redis ثم يُعاد تفعيله، لذا انسخها مجددًا من cPanel. راجع تفعيل التخزين المؤقت للكائنات عبر Redis وأي نظام للتخزين المؤقت للكائنات يجب أن أستخدم؟.
استبدال WP-Cron بمهمة cron حقيقية
يتحقق WP-Cron من وجود مهام مجدولة في كل مرة يُحمّل فيها أحدهم صفحة. وفي المواقع ذات الزيارات الكثيفة، قد يضطر هذا الفحص إلى انتظار عملية PHP متاحة فيؤخر الزائر. أما في المواقع قليلة الزيارات، فلا تُنفَّذ المقالات المجدولة والنسخ الاحتياطية لأن أحدًا لم يُحمّل أي صفحة.
أولًا، أضف ما يلي إلى ملف wp-config.php فوق السطر الذي يحتوي على /* That's all, stop editing! */:
define( 'DISABLE_WP_CRON', true );بعد ذلك افتح Cron Jobs في cPanel، واضبط الجدول الزمني على Once Per Five Minutes، وأدخل الأمر التالي، مع استبدال cpaneluser باسم مستخدم cPanel الخاص بك، وتعديل المسار إذا لم يكن WordPress مثبّتًا في public_html:
cd /home/cpaneluser/public_html && /usr/local/bin/php -q wp-cron.php > /dev/null 2>&1تناسب الدقائق الخمس معظم المواقع، وينبغي لمتاجر WooCommerce الإبقاء عليها عند خمس دقائق لأن معالجة الطلبات وتحديثات المخزون تعتمد عليها. ويمنع الجزء > /dev/null 2>&1 cPanel من إرسال المخرجات إليك عبر البريد الإلكتروني مع كل تشغيل. تأكد من أن المهمة تعمل باستخدام إضافة WP Crontrol من خلال Tools ← Cron Events. راجع استبدال WP-Cron بمهمة cron حقيقية.
إذا ظلت لوحة التحكم بطيئة
لا تُخزَّن صفحات wp-admin مؤقتًا أبدًا، لذا فهي تكشف المشكلات التي تخفيها الواجهة الأمامية المخزّنة مؤقتًا. وفي الغالب يكون السبب في الموقع نفسه لا في الخادم. اتبع الخطوات التالية بالترتيب:
- القياس أولًا. ثبّت إضافة Query Monitor لمعرفة زمن إنشاء الصفحة، وعدد الاستعلامات، وأبطأ الاستعلامات، والإضافة التي أرسلتها. كما تتيح أداة PHP X-Ray في cPanel تحليل الطلب من جانب الخادم دون تثبيت أي شيء.
- تحديد الإضافة المسببة. إضافة واحدة سيئة الأداء هي السبب في معظم حالات بطء لوحة التحكم. وإذا لم تكشفها Query Monitor، فعطّل الإضافات واحدة تلو الأخرى على نسخة تجريبية.
- تقييد Heartbeat API في الواجهة الأمامية ولوحة التحكم، مع إبقائها تعمل في محرر المقالات حيث تتولى الحفظ التلقائي.
- رفع حد الذاكرة في ملف
wp-config.php. يوصي WooCommerce بـ 256 MB، وتسمح خطط WebGee بما يصل إلى 1 GB. - استخدام إصدار حديث من PHP عبر أداة MultiPHP Manager في cPanel، وتفعيل OPcache ضمن إضافات PHP.
لا تُخزّن wp-admin مؤقتًا، حتى لو عرضت عليك إحدى الإضافات ذلك. فستظهر لك أعداد طلبات ومستويات مخزون قديمة، وستتخذ قراراتك بناءً عليها. راجع تحسين لوحة تحكم WordPress أو WooCommerce البطيئة.
الأسئلة الشائعة
لماذا تظهر صفحتي بالقيمة x-litespeed-cache: miss؟
تعني القيمة miss أن الصفحة أُنشئت بواسطة PHP ثم خُزّنت، وهذا أمر طبيعي عند التحميل الأول. أعد تحميل الصفحة مرة واحدة وستظهر القيمة hit، واحرص على الاختبار في نافذة تصفح خاصة، لأن الصفحات التي يُسجَّل فيها الدخول لا تُخزَّن مؤقتًا أبدًا.
هل يمكنني استخدام Memcached بدلًا من Redis؟
لا. فقد أُوقف دعم Memcached على WebGee، وإضافة PHP المسماة memcached معطّلة على مستوى المنصة بالكامل، لذا فإن Redis هو الخيار المدعوم للتخزين المؤقت للكائنات.
ما الإعداد المسبق الذي يجب أن أستخدمه في LiteSpeed Cache؟
ابدأ بالإعداد Essentials، الذي يضيف التخزين المؤقت ومدة TTL أطول والتخزين المؤقت في المتصفح دون المساس بتصميم موقعك. انتقل بعد ذلك مستوى واحدًا في كل مرة واختبر بعد كل خطوة، ويُفضَّل أن يكون ذلك على نسخة تجريبية.
لماذا لا تتوفر أداة الزحف الخاصة بـ LSCache في خطتي؟
أداة الزحف معطّلة في الاستضافة المشتركة، لأن زيارة كل صفحة في كل موقع تستهلك موارد كثيرة جدًا لا يتحملها خادم مشترك. وهي متاحة في خطط Premium Hosting وPremium Reseller.