لماذا يعتبر موقع WooCommerce الخاص بي بطيئًا جدًا؟
تشخيص خطوة بخطوة لموقع WooCommerce البطيء: الاستضافة، والمكونات الإضافية، وتضخم قاعدة البيانات، والتخزين المؤقت، والمشكلات الخاصة بالخروج التي يفتقدها معظم الأدلة.
لا يمثل بطء متجر WooCommerce مشكلة واحدة - فهو عادة ما يكون عبارة عن ثلاثة أو أربعة متاجر أصغر حجمًا مكدسة فوق بعضها البعض، وهذا هو بالضبط السبب في أن "تثبيت مكون إضافي للتخزين المؤقت" وحده نادرًا ما يحل المشكلة. هذا هو التسلسل التشخيصي الذي نجريه عندما يقول العميل أن متجره يشعر بالبطء، بالترتيب الذي يكتشف السبب بشكل أسرع.
التشخيص قبل إصلاح أي شيء
قبل أن تلمس الإضافات أو الاستضافة، احصل على أرقام حقيقية. قم بتشغيل صفحتك الرئيسية وصفحة المنتج من خلال Google PageSpeed Insights ولاحظ شيئين على وجه التحديد:الوقت حتى البايت الأول (TTFB)وانهيار ما يمنع العرض. يشير TTFB الذي يزيد عن 600 مللي ثانية دائمًا إلى وجود مشكلة في الاستضافة أو من جانب الخادم - ولا يوجد أي قدر من تحسين الواجهة الأمامية يعمل على إصلاح الخادم البطيء. إذا كان TTFB سريعًا ولكن الصفحة لا تزال بطيئة في التحميل، فمن المرجح أن تكون المشكلة في الواجهة الأمامية: الصور أو البرامج النصية التي تحظر العرض أو CSS/JS المحقونة بالمكونات الإضافية.
يوفر هذا الفحص الفردي ساعات — فهو يخبرك ما إذا كنت تريد البدء بمضيفك أو بمجموعة المكونات الإضافية الخاصة بك، وهي إصلاحات مختلفة تمامًا.
الاستضافة: السبب الجذري الأكثر شيوعًا
يقوم WooCommerce بتشغيل PHP عند كل طلب يمس قاعدة البيانات - صفحات المنتج، وعربة التسوق، والخروج على وجه الخصوص هي ديناميكية وليست ثابتة، لذا فإن الاستضافة المشتركة مع عمال PHP محدودين وتخصيص وحدة المعالجة المركزية تواجه صعوبة في ظل أي حركة مرور حقيقية. إذا كان TTFB الخاص بك بطيئًا باستمرار حتى على الصفحة التي لا تحتوي على مكونات إضافية ثقيلة نشطة، فمن المحتمل جدًا أن تكون الاستضافة هي إجابتك، وليست عرضًا يجب التغلب عليه.
ما يجب التحقق منه:
- نسخة PHP.تعد إصدارات PHP الأقدم (7.x وما دونه) أبطأ بشكل ملحوظ من إصدارات PHP 8.x الحالية لنفس الكود. تأكد من أن مضيفك يقوم بتشغيل إصدار حالي — وهذا غالبًا ما يكون تغييرًا مجانيًا بنقرة واحدة في لوحة تحكم الاستضافة.
- استضافة WooCommerce المشتركة مقابل المُدارة.الاستضافة المشتركة العامة المُحسّنة لمواقع الكتيبات ليست مصممة لتحميل قاعدة البيانات التي ينشئها WooCommerce. تتضمن استضافة WooCommerce المُدارة أو WordPress المُدارة عادةً التخزين المؤقت على مستوى الخادم وتخصيص الموارد المضبوطة لحمل العمل المحدد هذا.
- موقع الخادم.إذا كان معظم عملائك موجودين في منطقة واحدة وكان الخادم الخاص بك موجودًا في مكان آخر، فإن هذه الرحلة ذهابًا وإيابًا تضيف زمن وصول حقيقي قبل أن تتمكن شبكة CDN من المساعدة.
تدقيق البرنامج المساعد: الجودة أكثر من الكمية
يعد "عدد كبير جدًا من المكونات الإضافية" سببًا حقيقيًا للبطء، ولكن العدد أقل أهمية مما يفعله كل مكون إضافي فعليًا في كل تحميل للصفحة. إن المكوّن الإضافي خفيف الوزن الذي يعمل فقط في المشرف لا يكلفك شيئًا على واجهة المتجر. إن أداة إنشاء الصفحات ذات الترميز السيئ أو المكون الإضافي الذي يستعلم عن قاعدة البيانات في كل طلب للواجهة الأمامية يكلفك الوقت الفعلي في كل صفحة وفي كل زيارة.
للتدقيق:
- قم بتثبيت Query Monitor (مجاني) وقم بتحميل أبطأ صفحة لديك. إنه يوضح بالضبط المكونات الإضافية التي تقوم بتشغيل استعلامات قاعدة البيانات، وعددها، والمدة التي يستغرقها كل منها.
- قم بإلغاء تنشيط المكونات الإضافية التي لا تستخدمها بشكل نشط - أدوات تحسين محركات البحث القديمة، وأدوات إنشاء الصفحات المهجورة، والوظائف المكررة من تبديل الأدوات بمرور الوقت. معظم المتاجر تتراكم العديد من هذه.
- بالنسبة للمكونات الإضافية التي تحتفظ بها، تحقق مما إذا كانت توفر إعداد "تعطيل على الواجهة الأمامية" أو "التحميل عند الحاجة فقط" - تقوم العديد من المكونات الإضافية الشائعة بتحميل أصولها على مستوى الموقع بشكل افتراضي حتى عندما يتم استخدام الميزة في صفحة واحدة فقط.
انتفاخ قاعدة البيانات
يكتب كل من WordPress وWooCommerce إلى قاعدة البيانات أكثر بكثير مما يدركه معظم مالكي المواقع: نشر المراجعات على كل تعديل للمحتوى، والعابرين منتهية الصلاحية التي لا يتم تنظيفها أبدًا، وبيانات سلة التسوق المهجورة، وسجلات الجلسة من كل محاولة دفع، سواء كانت مكتملة أم لا. على مدار عام أو عامين، يمكن لقاعدة بيانات WooCommerce غير الخاضعة للصيانة أن يتضاعف حجمها ثلاث مرات بمحتوى لا يوفر أي قيمة مستمرة.
تؤدي قاعدة البيانات المتضخمة إلى إبطاء كل استعلام، مما يؤدي إلى إبطاء كل صفحة - ويؤدي هذا إلى تفاقم مشكلات الاستعلام على مستوى المكونات الإضافية بدلاً من وجودها بشكل منفصل عنها. قم بإجراء تنظيف قاعدة البيانات (الحد من مراجعات النشر، ومسح العناصر العابرة منتهية الصلاحية، ومراجعة بيانات التعريف المعزولة) وفقًا لجدول زمني متكرر، وليس مرة واحدة فقط.
المشكلات الخاصة بـ WooCommerce يتخطاها معظم الأدلة
تغفل النصائح العامة حول سرعة WordPress بعض الأشياء الخاصة بكيفية عمل WooCommerce:
- أجزاء العربة والخروج.يقوم WooCommerce بتحديث "أجزاء سلة التسوق" عبر AJAX في كل صفحة يتم تحميلها افتراضيًا، حتى الصفحات التي لا يحدث فيها أي تفاعل مع سلة التسوق - وهذا طلب في الخلفية لا يعرف معظم مالكي المواقع أنه قيد التشغيل. يمكن تعطيله بشكل انتقائي أو قصره على الصفحات التي تحتاج إليه بالفعل.
- التعامل مع الجلسة في قاعدة البيانات.افتراضيًا، يقوم WooCommerce بتخزين بيانات الجلسة في قاعدة البيانات بدلاً من تخزينها بشكل أسرع. في المتاجر ذات حركة المرور العالية، يؤدي نقل الجلسات إلى التخزين المؤقت للكائنات (Redis أو Memcached، إذا كان مضيفك يقدم ذلك) إلى إزالة عنق الزجاجة الحقيقي.
- استعلامات المنتج ذات الصلة والبيع.تعمل هذه على تشغيل استعلامات قاعدة بيانات غير تافهة لحساب التوصيات "قد تعجبك أيضًا". في الكتالوجات الكبيرة التي لا تحتوي على فهرسة مناسبة، يمكن أن يؤدي هذا وحده إلى إبطاء صفحات المنتج بشكل ملحوظ.
- يتعارض التخزين المؤقت للصفحة الكاملة مع الخروج.لا ينبغي أبدًا عرض صفحات الدفع وصفحات سلة التسوق من ذاكرة تخزين مؤقت ثابتة، ولكن تكوينات المكونات الإضافية لذاكرة التخزين المؤقت الواسعة جدًا تقوم في بعض الأحيان بتخزينها مؤقتًا على أي حال، مما يتسبب في بيانات عربة التسوق القديمة. تأكد من أن المكون الإضافي للتخزين المؤقت الخاص بك يستبعد بشكل صريح صفحات سلة التسوق والخروج والحساب.
التخزين المؤقت والصور وإصلاحات الميل الأخير
- إعداد التخزين المؤقت للصفحةلكل شيء باستثناء صفحات سلة التسوق والخروج والحساب، باستخدام مكون إضافي للتخزين المؤقت حسن السمعة أو طبقة التخزين المؤقت المضمنة في مضيفك.
- تمكين التخزين المؤقت للكائن(Redis أو Memcached) إذا كان مضيفك يدعمها — يؤدي ذلك إلى تسريع الطلبات الديناميكية والمسجلة الدخول والخاصة بـ WooCommerce والتي لا يساعدها التخزين المؤقت للصفحة وحده.
- ضغط الصور وتغيير حجمهاقبل التحميل، وتقديم التنسيقات الحديثة (WebP أو AVIF) - عادةً ما يكون تصوير المنتج أكبر الأصول في أي صفحة تجارة إلكترونية.
- أضف CDNلخدمة الأصول الثابتة (الصور، CSS، JS) من خادم أقرب جغرافيًا إلى كل زائر.
- تأجيل أو إزالة جافا سكريبت غير المستخدمة، وخاصة التحليلات والبرامج النصية التسويقية التي يتم تحميلها بشكل متزامن في الرأس - وهي مكاسب شائعة وسهلة غالبًا ما تظهرها عمليات تدقيق المكونات الإضافية.
عندما يتوقف التحسين عن كونه كافيا
في بعض الأحيان يتم تطبيق كل إصلاح في هذه القائمة ولا يزال المتجر أبطأ مما ينبغي - عادةً لأن السمة نفسها ثقيلة، أو أن حزمة المكونات الإضافية حاملة ولا يمكن اقتطاعها بشكل أكبر دون فقدان الوظائف الحقيقية، أو أن المتجر قد تجاوز بالفعل ما يمكن أن يقدمه WooCommerce في طبقة الاستضافة الحالية. عند هذه النقطة، تتحول المحادثة الصادقة من "تحسين WooCommerce" إلى "هل لا تزال WooCommerce هي النظام الأساسي المناسب لحركة المرور وحجم الكتالوج لهذا المتجر." لدينادليل تحسين السرعة في Shopifyتعتبر نقطة مقارنة مفيدة إذا كنت تدرس هذا القرار، ونحن نغطي الجانب العملي للتبديل في موقعنادليل الترحيل من WooCommerce إلى Shopify.
إذا كنت تفضل أن يقوم شخص آخر بإجراء هذا التشخيص الكامل وإصلاح ما يجده،يتعامل Devmerx مع أعمال أداء WordPress- مراجعة الاستضافة، وتدقيق المكونات الإضافية، وتنظيف قاعدة البيانات، وتكوين التخزين المؤقت، وسعر محدد وثابت بعد إلقاء نظرة سريعة على موقعك.
الأسئلة المتداولة
لماذا أصبح موقع WooCommerce الخاص بي أبطأ فجأة بعد إضافة المنتجات؟
تعني الكتالوجات الأكبر حجمًا استعلامات قاعدة بيانات أكبر، خاصة فيما يتعلق بالتصفية والبحث وحسابات المنتجات ذات الصلة التي لم يتم تحسينها للقياس. ما يبدو جيدًا في 200 منتج يمكن أن يتباطأ بشكل ملحوظ عند 2000 منتج إذا لم يتم إنشاء مجموعة الاستضافة والمكونات الإضافية الخاصة بك مع وضع النمو في الاعتبار.
هل الاستضافة المشتركة هي حقًا السبب الرئيسي لبطء WooCommerce؟
إنه السبب الفردي الأكثر شيوعًا الذي نراه، خاصة عندما يكون TTFB بطيئًا حتى في الصفحات ذات المكونات الإضافية الخفيفة. ليس هذا هو السبب الوحيد دائمًا - فتضخم المكونات الإضافية وتضخم قاعدة البيانات شائعان بجانبه - ولكن الاستضافة عادةً ما تكون أول شيء يستحق استبعاده.
ما هو عدد المكونات الإضافية التي تعتبر كثيرة جدًا بالنسبة لـ WooCommerce؟
ليس هناك رقم ثابت. يمكن لموقع يحتوي على 40 مكونًا إضافيًا خفيف الوزن ومشفرًا بشكل جيد أن يتفوق في الأداء على موقع يحتوي على 10 مكونات إضافية سيئة الترميز. قم بمراجعة ما يفعله كل مكون إضافي فعليًا على الواجهة الأمامية بدلاً من استهداف عدد محدد.
هل سيقوم البرنامج المساعد للتخزين المؤقت بإصلاح عملية الدفع البطيئة؟
لا — لا ينبغي أبدًا تقديم عملية الدفع من ذاكرة تخزين مؤقت ثابتة في المقام الأول، لأنها تحتاج إلى أن تعكس بيانات عربة التسوق المباشرة وبيانات الجلسة. يعمل المكوّن الإضافي للتخزين المؤقت على تسريع صفحات الكتالوج والمحتوى الخاص بك، وليس عملية الدفع. تأتي سرعة الخروج من جودة الاستضافة ومعالجة الجلسة وتنظيف البرنامج النصي.
متى يجب أن أفكر في ترك WooCommerce بالكامل؟
عندما تقوم بتطبيق إصلاحات الاستضافة والمكونات الإضافية وقاعدة البيانات والتخزين المؤقت، ولا يزال أداء المتجر ضعيفًا بالنسبة لحركة المرور وحجم الكتالوج الخاص به، أو عندما يكلف عبء الصيانة المستمر (تصحيحات الأمان، وتعارضات المكونات الإضافية، وإدارة الخادم) وقتًا أطول مما يستحق بالنسبة إلى النظام الأساسي المُدار.