أداء plugins تحليلات WordPress: مقارنة تحت اختبار ضغط
اختبرنا ضغط 8 plugins تحليلات WordPress تحت حمل متزامن دون تخزين مؤقت للصفحات. كان لـ Statnive أدنى حمل LCP. إليك المنهجية والأرقام والقيود الصادقة.
لكلّ plugin تحليلات كلفة أداء
إضافة plugin تحليلات إلى موقع WordPress الخاص بك تعني إضافة عمل إلى كل تحميل صفحة. تضيف بعض plugins JavaScript يُحمَّل ويُحلَّل ويُنفَّذ في المتصفّح. تضيف أخرى PHP يعمل على خادمك. تحت حمل خفيف مع تخزين مؤقت للصفحات، تبدو الفروق بين معظم الـ plugins صغيرة. تحت اختبار ضغط اصطناعي — مستخدمون متزامنون، دون تخزين مؤقت، كل طلب يصطدم بـ PHP — تصبح الفروق المعمارية مرئية.
شغّلنا ذلك اختبار الضغط مقابل 8 plugins تحليلات WordPress شائعة. تُظهر النتائج أدناه فروقًا اتجاهية في كيفية تعامل بنية كل plugin مع الحمل المتزامن. هي ليست ضمانات إنتاج — سنمشي عبر ما تعنيه وما لا تعنيه بالضبط، بما في ذلك قسم قيود منهجية صريح في النهاية. إذا كنت ستتذكّر شيئًا واحدًا فقط: في اختبار الضغط أحادي التشغيل لدينا، كان لـ Statnive أدنى حمل LCP، لكن موقع WordPress إنتاجي مخزَّن مؤقتًا بشكل صحيح يشغّل أيًا من هذه الـ plugins سيعمل بشكل أفضل بكثير ممّا توحي به هذه الأرقام.
كيف اختبرنا: متصفّحات حقيقية تحت حمل اصطناعي
بنينا إطار اختبار آلي يعزل كل plugin تحليلات. العملية:
- عطّل كل plugins التحليلات عبر REST API الخاص بـ WordPress
- أعدّ OPcache وMySQL بإحماء متطابق قبل كل إعداد
- فعّل plugin واحدة في المرّة
- شغّل ~150 تحميل صفحة في متصفّح Chromium حقيقي عبر 4 أنواع صفحات (الصفحة الرئيسية، منشور، منتج، متجر) بينما يضغط 50 مستخدم HTTP متزامن على الخادم
- اجمع Core Web Vitals (TTFB، FCP، LCP، CLS، INP) عبر PerformanceObserver
- كرّر لكلّ plugin، ثم اختبر كل plugins الـ 8 معًا
يشتغل قياس الأساس بدون أي plugins تحليلات نشطة. يُقاس حمل كل plugin كفرق عن هذا الأساس.
بيئة الاختبار: WordPress 6.9.4 على Local by Flywheel (macOS)، PHP 8.2، WooCommerce مع 20 منتجًا عيّنة، k6 v1.6.1 مع وحدة متصفّح Chromium، 10 VU متصفّح + 50 VU بروتوكول لكل إعداد. لم يُثبَّت أي plugin تخزين مؤقت للصفحات — كل طلب اخترق مسار WordPress PHP الكامل. ليست هذه طريقة تشغيل مواقع WordPress الإنتاجية عادةً. تستخدم معظم المواقع الإنتاجية W3TC أو WP Rocket أو CDN يتجاوز PHP تمامًا للصفحات المخزّنة.
نتائج اختبار الضغط: 8 plugins تحت حمل متزامن
يُظهر الجدول التالي حمل كل plugin مضافًا إلى الأساس في اختبار الضغط أحادي التشغيل لدينا. كل القيم فروق بالمللي ثانية — كم أضاف كل plugin إلى Time to First Byte وFirst Contentful Paint وLargest Contentful Paint مقابل أساس بلا تحليلات. عمود Impact هو نتيجة مركّبة (0 = لا تأثير، 100 = أقصى). أقلّ هو أفضل.
| الترتيب | Plugin | LCP Δ | TTFB Δ | FCP Δ | Impact |
|---|---|---|---|---|---|
| 1 | Statnive | +260ms | +290ms | +256ms | 6.7 |
| 2 | Independent Analytics | +566ms | +568ms | +574ms | 14.2 |
| 3 | Jetpack Stats | +776ms | +785ms | +784ms | 19.5 |
| 4 | MonsterInsights (GA4) | +964ms | +963ms | +964ms | 24.1 |
| 5 | WP Slimstat | +1030ms | +1005ms | +1010ms | 25.4 |
| 6 | WP Statistics | +1424ms | +1446ms | +1432ms | 35.9 |
| 7 | Koko Analytics | +2278ms | +2229ms | +2238ms | 56.3 |
| 8 | Burst Statistics | +3592ms | +3572ms | +3576ms | 89.6 |
| — | كل الـ 8 مجتمعة | +4002ms | +3924ms | +4010ms | 99.5 |
| — | الأساس (لا تحليلات، تحت حمل) | 3038ms | 2927ms | 3030ms | — |
في اختبار الضغط لدينا، كان لـ Statnive أدنى حمل LCP. خذ المضاعفات المحدّدة بحذر — تشغيل واحد على جهاز واحد دون تخزين مؤقت يمكن أن يتأثّر بترتيب الأحداث، والطلبات الشاذّة، وغرائب خاصّة بـ plugin مثل معالجة دفعات WP-Cron. أرقام Koko Analytics وBurst Statistics خاصّةً كبيرة بما يكفي حتى نشكّ أنها تعكس مشاكل تسلسل كتابة محدّدة من جانب الخادم تحت حملنا الاصطناعي بدلًا من حمل في حالة الاستقرار. حقّق في سلوكها على موقعك الخاص قبل استخلاص الاستنتاجات.
تحليل plugin-by-plugin
Statnive (الترتيب 1 في اختبارنا: +260ms LCP)
تهدف بنية Statnive ذات التحميل ثنائي المرحلة إلى إبقاء مسار التصيير الحرج خاليًا. tracker نواة inline مضغوط بـ gzip بحجم ~0.9 KB يُطلق مشاهدة الصفحة عبر navigator.sendBeacon() قبل تحميل أي موارد خارجية. tracker كامل بحجم ~5.5 KB خام / ~2.4 KB مضغوط بـ gzip يُحمَّل بشكل غير متزامن مع معامل strategy: 'async' في WordPress 6.3+ ويتعامل مع تتبّع التفاعل والأحداث وإدارة الموافقة دون حجب التصيير. المعالجة من جانب الخادم نقطة نهاية REST خفيفة واحدة كتابة لكل زائر.
الأفضل لـ: أي موقع WordPress يهتمّ بالأداء والخصوصية معًا. بيانات مستضافة ذاتيًا، صفر cookies، لا حاجة للافتات موافقة.
Independent Analytics (الترتيب 2 في اختبارنا: +566ms LCP)
يستخدم Independent Analytics hooks PHP من جانب الخادم بدلًا من JavaScript من جانب العميل. يُلغي هذا النهج زمن تحليل JS تمامًا، ممّا يساعد على الهاتف حيث تكون كلفة التحليل أعلى بـ 2-5 مرّات من سطح المكتب. المقايضة هي عمل PHP أكبر لكل طلب، وهذا سبب احتلاله المرتبة خلف Statnive في اختبار الحمل الاصطناعي لدينا.
الأفضل لـ: المواقع التي يكون فيها تنفيذ JavaScript مصدر قلق (إعدادات إعلانات ثقيلة، نصوص خارجية كثيرة).
Jetpack Stats (الترتيب 3 في اختبارنا: +776ms LCP)
يُرسل Jetpack بيانات التتبّع إلى خوادم WordPress.com البعيدة. يُحرّك ذلك الاختيار المعماري معالجة التحليلات بعيدًا عن خادمك، لكن الـ tracker لا يزال يضيف حملًا محلّيًا ملحوظًا — تحمّل وحدة Jetpack كمّية كبيرة من JavaScript بجانب كود الإحصائيات.
الأفضل لـ: المواقع التي تستخدم بالفعل نظام Jetpack وتقبل إرسال بيانات الزوار إلى WordPress.com.
MonsterInsights / Google Analytics (الترتيب 4: +964ms LCP)
يربط MonsterInsights WordPress بـ Google Analytics 4. يضيف tag GA4 (134KB مضغوطًا) وزنًا ملحوظًا في الواجهة. تحدث المعالجة الفعلية للتحليلات في سحابة Google، لكن تحميل gtag.js وحده عبء أكبر من معظم أدوات tracker المستضافة ذاتيًا.
الأفضل لـ: المواقع التي تتطلّب Google Analytics تحديدًا وتقبل المقايضة في الأداء.
WP Slimstat (الترتيب 5: +1030ms LCP)
يوفّر Slimstat تتبّع زوار مفصّل بما في ذلك المشاهدات في الوقت الفعلي. tracker JS مع نقل قائم على REST ومعالجة PHP واسعة لكل طلب يضيف نحو ثانية واحدة من حمل LCP تحت الحمل.
الأفضل لـ: المواقع التي تُولي أولوية لتتبّع زائر بالتفصيل على سرعة الصفحة الخام.
WP Statistics (الترتيب 6: +1424ms LCP)
WP Statistics مستضاف ذاتيًا بالكامل بمجموعة ميزات ناضجة. يستخدم tracker الخاص به admin-ajax لإرسال البيانات، وهو أثقل من نقاط نهاية REST أو استدعاءات Beacon API. تحت حمل متزامن، يصبح admin-ajax عنق زجاجة لأن كل إصابة تمرّ عبر إقلاع إدارة WordPress الكامل.
الأفضل لـ: المواقع التي تحتاج تحليلات مستضافة ذاتيًا شاملة وتستطيع قبول حمل أداء ملحوظ.
Koko Analytics (الترتيب 7 في اختبارنا: +2278ms LCP)
يحتوي Koko Analytics على tracker inline صغير بشكل ملحوظ بحجم 468 بايت — معماريًا أحد أخفّ الخيارات المستضافة ذاتيًا. لكن في اختبار الضغط لدينا، احتلّ المرتبة 7 بفرق LCP كبير جدًا. نشكّ أن هذا يعكس تنازع كتابة من جانب الخادم تحت حملنا الاصطناعي المحدّد بدلًا من حمل في حالة الاستقرار: يكتب Koko إلى قاعدة البيانات على كل مشاهدة صفحة، و50 كاتبًا متزامنًا دون أي طبقة تخزين مؤقت يخلق تنازعًا مرَضيًا لن يجرّبه موقع إنتاجي حقيقي مع تخزين مؤقت للصفحات أبدًا. هذا الرقم على الأرجح أثر اختبار — نوصي بأن تقيّم Koko على موقعك الخاص قبل استخلاص الاستنتاجات.
الأفضل لـ: المواقع منخفضة الحركة وأي شخص يقدّر البساطة المعمارية.
Burst Statistics (الترتيب 8 في اختبارنا: +3592ms LCP)
يحمّل Burst tracker الخاص به بسمة async ويستخدم Beacon API لإرسال البيانات — كلاهما خياران جيّدان. الفرق الكبير جدًا في LCP في اختبار الضغط لدينا على الأرجح يعكس تسلسل كتابة نقطة نهاية Beacon API تحت حمل متزامن، أو ربما معالجة دفعات WP-Cron التي بدأت أثناء نافذة الاختبار. كما هو الحال مع Koko، نشكّ أن هذا الرقم منتفخ بشروط اختبارنا المحدّدة بدلًا من أن يكون ممثّلًا للحمل في العالم الحقيقي. اختبر بنفسك.
الأفضل لـ: المواقع التي تريد خيار تحليلات بمنطق الخصوصية أولاً مع مجموعة ميزات ناضجة.
جرّب Statnive: تحليلات سريعة وخاصّة ومستضافة ذاتيًا
يمنحك Statnive أداء tracker خفيف مع ميزات مجموعة تحليلات كاملة. كل البيانات تبقى على خادمك. لا cookies، لا حاجة للافتات موافقة. ثبّته مجانًا من WordPress.org.
مقارنة مفصّلة: ما يهمّ لموقعك
حسب سرعة استجابة الخادم (حمل TTFB)
يقيس Time to First Byte مدى سرعة استجابة خادمك. فرق أقلّ يعني أن موارد استضافتك لا تُستهلَك بمعالجة التحليلات.
| Plugin | TTFB Δ | تأثير الخادم |
|---|---|---|
| Statnive | +290ms | حدّ أدنى |
| Independent Analytics | +568ms | منخفض (تتبّع من جانب الخادم) |
| Jetpack Stats | +785ms | متوسّط (JS محلّي + معالجة بعيدة) |
| MonsterInsights | +963ms | متوسّط (يحمّل gtag.js) |
| WP Slimstat | +1005ms | أعلى |
| WP Statistics | +1446ms | أعلى (admin-ajax) |
| Koko Analytics | +2229ms | أعلى تحت الحمل (كتابات DB لكل إصابة) |
| Burst Statistics | +3572ms | الأسوأ تحت الحمل (ضغط كتابة عكسي) |
حسب سرعة الرسم في الواجهة (حمل LCP)
يقيس Largest Contentful Paint متى يصبح المحتوى الرئيسي مرئيًا. هذا المقياس الذي تستخدمه Google بأكبر قدر لترتيب Core Web Vitals.
| Plugin | LCP Δ | تأثير التصيير |
|---|---|---|
| Statnive | +260ms | منخفض جدًا (نواة inline + كامل async) |
| Independent Analytics | +566ms | منخفض (لا JS من جانب العميل) |
| Jetpack Stats | +776ms | متوسّط |
| MonsterInsights | +964ms | أعلى (gtag.js 134KB) |
| WP Slimstat | +1030ms | أعلى |
| WP Statistics | +1424ms | أعلى (admin-ajax يحجب) |
| Koko Analytics | +2278ms | عالٍ تحت الحمل |
| Burst Statistics | +3592ms | الأسوأ تحت الحمل |
حسب نموذج الخصوصية
| Plugin | موقع البيانات | Cookies | هل تحتاج موافقة |
|---|---|---|---|
| Statnive | خادمك | لا شيء | لا |
| Koko Analytics | خادمك | اختياري | لا |
| WP Statistics | خادمك | لا شيء | لا |
| Burst Statistics | خادمك | اختياري | يعتمد |
| Independent Analytics | خادمك | لا شيء | لا |
| WP Slimstat | خادمك | جلسة | يعتمد |
| Jetpack Stats | WordPress.com | نعم | نعم |
| MonsterInsights | خوادم Google | نعم | نعم |
أي Plugin هو الأفضل لموقعك؟
الأفضل للمواقع بمنطق الخصوصية أولاً
Statnive. مستضاف ذاتيًا بالكامل، صفر cookies، لا حاجة للافتة موافقة، وأسرع plugin في معيارنا بفارق كبير. يقدّم ميزات أكثر من أدوات tracker الأدنى (تتبّع التفاعل، أحداث مخصّصة، إيرادات WooCommerce) مع البقاء خفيفًا معماريًا.
الأفضل لمواقع WordPress عالية الحركة
Statnive. حمل LCP بـ 260ms تحت 50 مستخدمًا متزامنًا كان الأدنى الذي قِسناه — أقلّ بـ 2.2× من الـ plugin التالي الأفضل. يُطلق tracker النواة inline مشاهدة الصفحة قبل أن يحدث أي عمل من جانب الخادم، ونقطة نهاية REST مصمَّمة لمقياس كتابة متزامن.
الأفضل للمبتدئين
Statnive. يعمل عند التفعيل بصفر إعداد، يتضمّن لوحة تحكم في الوقت الفعلي وإسناد المصادر، ولن يبطئ موقعك.
الأفضل لمتاجر WooCommerce
Statnive (مستوى Professional) يتتبّع الإيراد لكل زائر، مشاهدات المنتجات، وأحداث السلّة. MonsterInsights يدعم WooCommerce أيضًا لكنّه يتطلّب Google Analytics ولديه ~3.7× حمل أداء أكثر.
قيود المنهجية (يُرجى القراءة)
المعيار جدير بالثقة بقدر منهجيّته فقط. إليك قائمة صادقة لما لا يتحكّم فيه هذا الاختبار:
تشغيل واحد، آلة واحدة. شغّلنا اختبار الفئة الثقيلة مرّة واحدة، على MacBook عبر Local by Flywheel. تشغّل المعايير المناسبة 3-5 مرّات بترتيب عشوائي وتُبلّغ الوسيط مع المدى الربعي. تشغيل ثانٍ قد يُحرّك المواقع.
لا تخزين مؤقت للصفحات. كل طلب اخترق مسار WordPress PHP الكامل. تستخدم معظم مواقع WordPress الإنتاجية W3TC أو WP Rocket أو CDN يتجاوز PHP تمامًا للصفحات المخزّنة. مع تفعيل التخزين المؤقت، تتقلّص الفجوة بين معظم الـ plugins بشكل كبير لأن كتابة التحليلات تحدث فقط على cache misses أو عبر JavaScript غير متزامن.
لا تخزين مؤقت للكائنات. لا Redis، لا Memcached. موقع إنتاجي مع تخزين مؤقت للكائنات لديه خصائص تنازع قاعدة بيانات مختلفة جدًا.
نمط حمل اصطناعي. 50 VU HTTP متزامن خامّ. حركة المرور الحقيقية لها قمم وصول، وتباين جلسات، وصفحات مخزّنة في معظمها. حملنا أقرب إلى DDoS من صباح الإثنين.
آثار الترتيب غير مضبوطة. اختُبرت الـ plugins بترتيب ثابت. تنجرف حالة الخادم (تجمّع اتصال MySQL، ذاكرة PHP، OPcache) عبر تشغيل ~50 دقيقة، يمكن أن يعاقب الإعدادات اللاحقة.
عيّنات العدّ تتفاوت. plugins السريعة حصلت على ~156 عيّنة لكل إعداد؛ plugins الأبطأ حصلت على ما يصل إلى 117 عيّنة لأن التكرارات انتهت مهلتها. عيّنات أقلّ = تباين أكثر = وسطاء أقل ثقة.
شُكوك القيم الشاذّة. نتائج Koko Analytics (+2278ms) وBurst Statistics (+3592ms) كبيرة جدًا. لم نتحقّق بشكل مستقلّ أنها لا تنتج عن معالجة دفعات WP-Cron، أو أخطاء plugin محدّدة تحت حمل متزامن، أو كتابات قاعدة بيانات عالقة. عاملها على أنها «حدث شيء سيّء لهذا الـ plugin في اختبارنا» بدلًا من «هذا ما ستجرّبه على موقعك».
انحياز الاختبار الذاتي. بنينا الإطار وبنينا Statnive. حتى مع نوايا حسنة، يمكن أن يتسلّل الانحياز إلى اختيار الصفحة، واختيار المقاييس، وبنية الاختبار. التحقّق المستقلّ سيكون أكثر جدارة بالثقة من أي شيء ننشره. الإطار مفتوح المصدر — يُرجى تشغيله بنفسك.
ما يُظهره الاختبار
رغم القيود، يكشف الاختبار بشكل مفيد عن أنماط معمارية:
- plugins التي تضع JavaScript أو عمل خادم في مسار التصيير الحرج تضيف حمل LCP قابلًا للقياس تحت أي حمل
- plugins ذات كتابات قاعدة بيانات لكل طلب تتدهور بحدّة عندما لا يمكن تخزين هذه الكتابات مؤقتًا
- بُنى نواة inline + tracker async (Statnive، Koko inline الأدنى، Burst المحمَّل async) تُبقي المسار الحرج خاليًا
- plugins المعالجة البعيدة (Jetpack، MonsterInsights) لا تزال تضيف وزن JavaScript محلّي حتى لو كانت المعالجة خارج الموقع
تتّسق هذه الأنماط مع أبحاث منشورة من Google وWordPress Core وweb.dev. ينبغي النظر إلى الأرقام المحدّدة من اختبارنا كنقطة بيانات واحدة، لا ترتيبًا قاطعًا.
أسئلة شائعة
هل يؤثّر plugin التحليلات لديّ فعلًا على SEO؟
نعم، مبدئيًا. تستخدم Google Core Web Vitals (بما في ذلك LCP) كإشارة ترتيب. plugin يضيف زمن تحليل JavaScript ذا معنى أو يحجب التصيير قد يدفع صفحاتك من «جيد» إلى «يحتاج تحسينًا». عمليًا، إذا كان لديك تخزين مؤقت للصفحات، يختفي معظم هذا التأثير لأن الصفحات المخزّنة لا تشغّل كود PHP الخاص بـ plugin أبدًا.
هل يمكنني تشغيل plugins تحليلات متعدّدة؟
تقنيًا نعم، لكنّها تتراكم. كل plugin إضافي يضيف JavaScript ليُحلَّل وعمل من جانب الخادم لكل طلب. أظهر اختبار «كل plugins مجتمعة» لدينا حملًا عاليًا جدًا، كما هو متوقّع. إذا كنت تحتاج مصادر بيانات متعدّدة، ادمج إلى plugin مستضاف ذاتيًا واحد جيّد التصميم وادمج أدوات أخرى من جانب الخادم حيثما أمكن.
كم مرّة يجب أن أقيس أداء موقعي؟
بعد أي تحديث plugin، أو تغيير theme، أو ترقية WordPress core. استخدم Google PageSpeed Insights لبيانات العالم الحقيقي، وChrome DevTools لتحليل لكل نص، ومعيارًا اصطناعيًا مثل اختبارنا للاختبار المقارن.
هل التحليلات المستضافة ذاتيًا أسرع فعلًا من Google Analytics؟
في اختبارنا الاصطناعي، نعم. مكتبة gtag.js بحجم 134KB كلفة تحليل ملحوظة بصرف النظر عن التخزين المؤقت. أدوات tracker المستضافة ذاتيًا يمكن أن تكون أصغر بكثير (Statnive ~5.5 KB خام / ~2.4 KB مضغوط بـ gzip، Koko تحت 1KB). على موقع إنتاجي حقيقي مع تخزين مؤقت، لا يزال الفرق موجودًا لكنّه أصغر بقيمة مطلقة.
ما كلفة أداء Statnive تحديدًا؟
في اختبار الضغط لدينا، كان لـ Statnive أدنى حمل LCP بـ +260ms مقابل الأساس. على موقع إنتاجي حقيقي مع plugin تخزين مؤقت للصفحات مثبّت، يختفي معظم ذلك الحمل لأن الصفحات المخزّنة لا تنفّذ كود PHP الخاص بـ Statnive أبدًا — يبقى لك فقط ~2.4 KB مضغوط بـ gzip من JavaScript من جانب العميل، محمَّل بشكل غير متزامن.
هل ينبغي أن أثق بهذه الأرقام المحدّدة؟
كمؤشّرات اتجاهية، نعم. كتنبّؤات دقيقة بأداء موقعك، لا. الأرقام من تشغيل اصطناعي واحد دون تخزين مؤقت. موقع إنتاجك مع التخزين المؤقت، على استضافتك المحدّدة، سيُنتج أرقامًا مطلقة مختلفة. الأنماط المعمارية (نواة inline مقابل JS حاجب، async مقابل synchronous، نفس المنشأ مقابل بعيد) هي ما يعمّم — المللي ثانية المحدّدة لا تعمّم.
المنهجية وقابلية التكرار
شُغّلت كل الاختبارات باستخدام إطار اختبار perf-impact مفتوح المصدر لدينا. يُؤتمت نص الاختبار (perf-impact-runner.sh) تبديل الـ plugin، وإحماء التخزين المؤقت، والإحماء، واختبار متصفّح k6. تُحفظ النتائج كـ JSON للمقارنة التاريخية.
لإعادة إنتاج هذه النتائج على تثبيت WordPress الخاص بك:
cd statnive
./tests/perf/run.sh perf-impact heavy
ملفات البيانات الخام متاحة في tests/perf/results/perf-impact/.
لتحليل أعمق للمنافسين الفرديين، شاهد صفحات المقارنة لدينا: Statnive vs Google Analytics وStatnive vs MonsterInsights وStatnive vs Jetpack Stats وStatnive vs WP Statistics وStatnive vs Plausible. للحصول على الترتيب الكامل الذي يجمع الأداء مع الخصوصية، وعمق الفئة المجانية، وامتداد الميزات، شاهد قائمتنا المرتّبة لإضافات تحليلات WP. اقرأ القصة الهندسية وراء تحسيننا أو استكشف كل ميزات Statnive.