عملکرد پلاگینهای تحلیلی WordPress: یک مقایسه تحت آزمون فشار
ما 8 plugin تحلیلی WordPress را تحت بار همزمان و بدون page caching آزمون فشار کردیم. Statnive کمترین سربار LCP را داشت. روششناسی، اعداد و محدودیتهای صادقانه را اینجا بخوانید.
هر پلاگین تحلیلی هزینه عملکردی دارد
افزودن یک plugin تحلیلی به سایت WordPress به معنای افزودن کار به هر بارگذاری صفحه است. برخی پلاگینها JavaScript اضافه میکنند که در مرورگر دانلود، تجزیه و اجرا میشود. برخی دیگر PHP اضافه میکنند که روی سرور شما اجرا میشود. تحت بار سبک با page caching، تفاوت بین بیشتر پلاگینها کوچک به نظر میرسد. تحت یک آزمون فشار مصنوعی — کاربران همزمان، بدون caching، هر درخواست به PHP میرسد — تفاوتهای معماری قابلمشاهده میشوند.
ما این آزمون فشار را روی 8 plugin تحلیلی محبوب WordPress اجرا کردیم. نتایج زیر تفاوتهای جهتدار را در نحوه برخورد معماری هر plugin با بار همزمان نشان میدهد. اینها تضمینهای تولیدی نیستند — در یک بخش صادقانه محدودیتهای روششناسی در پایان دقیقاً توضیح میدهیم چه چیزی منظور است و چه چیزی نیست. اگر فقط یک نکته در یاد بماند: در آزمون فشار تکاجرایی ما، Statnive کمترین سربار LCP را داشت، اما یک سایت تولیدی WordPress با caching مناسب که هر یک از این پلاگینها را اجرا کند، عملکرد بسیار بهتری از این اعداد خواهد داشت.
چگونه آزمون کردیم: مرورگرهای واقعی تحت بار مصنوعی
ما یک framework آزمون خودکار ساختیم که هر plugin تحلیلی را ایزوله میکند. فرآیند:
- غیرفعالسازی همه پلاگینهای تحلیلی از طریق REST API WordPress
- آمادهسازی OPcache و MySQL با warmup یکسان قبل از هر پیکربندی
- فعالسازی هر بار یک plugin
- اجرای حدود 150 بارگذاری صفحه واقعی Chromium در 4 نوع صفحه (homepage، post، product، shop) در حالی که 50 کاربر HTTP همزمان سرور را تحت فشار قرار میدهند
- جمعآوری Core Web Vitals (TTFB، FCP، LCP، CLS، INP) از طریق PerformanceObserver
- تکرار برای هر plugin، سپس آزمون همه 8 plugin بهصورت ترکیبی
اندازهگیری baseline با هیچ plugin تحلیلی فعال اجرا میشود. سربار هر plugin بهصورت اختلاف نسبت به این baseline اندازهگیری میشود.
محیط آزمون: WordPress 6.9.4 روی Local by Flywheel (macOS)، PHP 8.2، WooCommerce با 20 محصول نمونه، k6 v1.6.1 با ماژول مرورگر Chromium، 10 VU مرورگر + 50 VU پروتکل به ازای هر پیکربندی. هیچ page caching plugin نصب نشده بود — هر درخواست مسیر کامل PHP WordPress را طی میکرد. این روشی نیست که سایتهای تولیدی WordPress معمولاً اجرا میشوند. بیشتر سایتهای تولیدی از W3TC، WP Rocket یا یک CDN استفاده میکنند که PHP را برای صفحات کششده بهطور کامل دور میزند.
نتایج آزمون فشار: 8 پلاگین تحت بار همزمان
جدول زیر سربار افزودهشده هر plugin به baseline در آزمون فشار تکاجرایی ما را نشان میدهد. همه مقادیر اختلاف بر حسب میلیثانیه هستند — اینکه هر plugin چقدر به Time to First Byte، First Contentful Paint و Largest Contentful Paint نسبت به baseline بدون تحلیلگری اضافه کرده است. ستون 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 |
| — | Baseline (بدون تحلیلگری، تحت بار) | 3038ms | 2927ms | 3030ms | — |
در آزمون فشار ما، Statnive کمترین سربار LCP را داشت. ضرایب خاص را با احتیاط در نظر بگیرید — یک اجرای منفرد روی یک ماشین منفرد بدون caching میتواند تحت تأثیر اثرات ترتیبی، درخواستهای خارج از محدوده و خصوصیات ویژه plugin مثل پردازش دستهای WP-Cron قرار بگیرد. اعداد Koko Analytics و Burst Statistics بهخصوص، آنقدر بزرگ هستند که گمان میکنیم بازتاب مشکلات خاص سریالسازی نوشتن سمت سرور تحت بار مصنوعی ما هستند نه سربار حالت پایدار. قبل از نتیجهگیری، رفتار آنها را روی سایت خودتان بررسی کنید.
تحلیل plugin به plugin
Statnive (رتبه #1 در آزمون ما: +260ms LCP)
معماری بارگذاری دومرحلهای Statnive هدفش حفظ مسیر رندر بحرانی است. یک tracker هسته inline با حجم 1.1KB، pageview را از طریق navigator.sendBeacon() قبل از بارگذاری هر منبع بیرونی ارسال میکند. tracker کامل با حجم حدود 4KB بهصورت ناهمگام با پارامتر strategy: 'async' در WordPress 6.3+ بارگذاری میشود و ردیابی تعامل، رویدادها و مدیریت رضایت را بدون مسدود کردن رندرینگ انجام میدهد. پردازش سمت سرور یک نوشتن endpoint سبک REST به ازای هر بازدیدکننده است.
بهترین برای: هر سایت WordPress که هم به عملکرد و هم به حریم خصوصی اهمیت میدهد. داده خود-میزبان، بدون کوکی، بدون نیاز به نوار رضایت.
Independent Analytics (رتبه #2 در آزمون ما: +566ms LCP)
Independent Analytics به جای JavaScript سمت کلاینت از hookهای PHP سمت سرور استفاده میکند. این رویکرد زمان تجزیه 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 متصل میکند. تگ GA4 (134KB فشرده) وزن قابلتوجهی به frontend اضافه میکند. پردازش واقعی تحلیلگری در فضای ابری Google اتفاق میافتد، اما بارگذاری gtag.js بهتنهایی بار سنگینتری از بیشتر trackerهای خود-میزبان است.
بهترین برای: سایتهایی که بهطور خاص به Google Analytics نیاز دارند و مبادله عملکردی را میپذیرند.
WP Slimstat (رتبه #5: +1030ms LCP)
Slimstat ردیابی دقیق بازدیدکننده شامل نمای بلادرنگ را ارائه میدهد. tracker JS ترکیب با انتقال مبتنی بر REST و پردازش گسترده PHP به ازای هر درخواست، حدود 1 ثانیه سربار LCP تحت بار اضافه میکند.
بهترین برای: سایتهایی که ردیابی دقیق به ازای هر بازدیدکننده را به سرعت خام صفحه ترجیح میدهند.
WP Statistics (رتبه #6: +1424ms LCP)
WP Statistics کاملاً خود-میزبان و با مجموعه ویژگیهای بالغ است. tracker آن از admin-ajax برای انتقال داده استفاده میکند، که سنگینتر از endpointهای REST یا فراخوانیهای Beacon API است. تحت بار همزمان، admin-ajax به یک گلوگاه تبدیل میشود زیرا هر بازدید از طریق bootstrap کامل پیشخوان WordPress عبور میکند.
بهترین برای: سایتهایی که به تحلیلگری جامع خود-میزبان نیاز دارند و سربار عملکردی قابلتوجه را میپذیرند.
Koko Analytics (رتبه #7 در آزمون ما: +2278ms LCP)
Koko Analytics یک tracker inline بهطور قابلتوجهی کوچک با 468 بایت دارد — معمارانه یکی از سبکترین گزینههای خود-میزبان. اما در آزمون فشار ما، در رتبه #7 با اختلاف LCP بسیار بزرگ قرار گرفت. گمان میکنیم این بازتاب رقابت نوشتن سمت سرور تحت بار مصنوعی خاص ما باشد نه سربار حالت پایدار: Koko در هر pageview در پایگاه داده مینویسد و 50 نویسنده همزمان بدون لایه caching یک رقابت پاتولوژیک ایجاد میکند که یک سایت تولیدی واقعی با page cache هرگز تجربه نخواهد کرد. این عدد بهاحتمال زیاد یک ساخته آزمون است — توصیه میکنیم Koko را روی سایت خودتان قبل از نتیجهگیری ارزیابی کنید.
بهترین برای: سایتهای کمترافیک و هر کسی که به مینیمالیسم معماری اهمیت میدهد.
Burst Statistics (رتبه #8 در آزمون ما: +3592ms LCP)
Burst tracker خود را با ویژگی async بارگذاری میکند و از Beacon API برای انتقال داده استفاده میکند — هر دو انتخابهای خوب. اختلاف LCP بسیار بزرگ در آزمون فشار ما به احتمال زیاد بازتاب سریالسازی نوشتن endpoint Beacon API تحت بار همزمان است، یا احتمالاً ورود پردازش دستهای WP-Cron در پنجره آزمون. مانند Koko، گمان میکنیم این عدد توسط شرایط خاص آزمون ما تورم یافته است نه اینکه نماینده سربار دنیای واقعی باشد. آزمون خودتان را انجام دهید.
بهترین برای: سایتهایی که میخواهند گزینه تحلیلگری حریمخصوصیمحور با مجموعه ویژگیهای بالغ داشته باشند.
Statnive را امتحان کنید: تحلیلگری سریع، خصوصی، خود-میزبان
Statnive عملکرد یک tracker سبک را با ویژگیهای یک مجموعه تحلیلگری کامل به شما میدهد. همه دادهها روی سرور شما باقی میماند. بدون کوکی، بدون نیاز به نوار رضایت. رایگان از 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 | بدترین تحت بار (فشار برگشتی نوشتن) |
بر اساس سرعت رنگآمیزی frontend (سربار LCP)
Largest Contentful Paint زمان قابلمشاهده شدن محتوای اصلی شما را اندازه میگیرد. این شاخصی است که Google بیشترین استفاده را برای رتبهبندی Core Web Vitals دارد.
| Plugin | LCP Δ | تأثیر رندرینگ |
|---|---|---|
| Statnive | +260ms | بسیار کم (هسته inline + کامل async) |
| Independent Analytics | +566ms | کم (بدون JS سمت کلاینت) |
| Jetpack Stats | +776ms | متوسط |
| MonsterInsights | +964ms | بالاتر (134KB gtag.js) |
| WP Slimstat | +1030ms | بالاتر |
| WP Statistics | +1424ms | بالاتر (مسدود کردن admin-ajax) |
| Koko Analytics | +2278ms | بالا تحت بار |
| Burst Statistics | +3592ms | بدترین تحت بار |
بر اساس مدل حریم خصوصی
| Plugin | محل داده | کوکی | نیاز به رضایت |
|---|---|---|---|
| Statnive | سرور شما | هیچ | خیر |
| Koko Analytics | سرور شما | اختیاری | خیر |
| WP Statistics | سرور شما | هیچ | خیر |
| Burst Statistics | سرور شما | اختیاری | بستگی دارد |
| Independent Analytics | سرور شما | هیچ | خیر |
| WP Slimstat | سرور شما | نشست | بستگی دارد |
| Jetpack Stats | WordPress.com | بله | بله |
| MonsterInsights | سرورهای Google | بله | بله |
کدام plugin برای سایت شما بهترین است؟
بهترین برای سایتهای حریمخصوصیمحور
Statnive. کاملاً خود-میزبان، بدون کوکی، بدون نیاز به نوار رضایت، و سریعترین plugin در benchmark ما با اختلاف زیاد. ویژگیهای بیشتری از trackerهای حداقلی ارائه میدهد (ردیابی تعامل، رویدادهای سفارشی، درآمد WooCommerce) در حالی که معمارانه سبک باقی میماند.
بهترین برای سایتهای پرترافیک WordPress
Statnive. سربار 260ms LCP تحت 50 کاربر همزمان کمترین چیزی بود که اندازه گرفتیم — 2.2 برابر کمتر از بهترین plugin بعدی. tracker هسته inline آن، pageview را قبل از انجام هر کار سمت سرور ارسال میکند، و endpoint REST برای مقیاس نوشتن همزمان طراحی شده است.
بهترین برای مبتدیان
Statnive. با فعالسازی و بدون پیکربندی کار میکند، شامل داشبورد بلادرنگ و انتساب منبع است، و سایت شما را کند نمیکند.
بهترین برای فروشگاههای WooCommerce
Statnive (سطح Professional) درآمد به ازای هر بازدیدکننده، نمای محصول و رویدادهای سبد را ردیابی میکند. MonsterInsights نیز از WooCommerce پشتیبانی میکند اما به Google Analytics نیاز دارد و سربار عملکردی حدود 3.7 برابر بیشتری دارد.
محدودیتهای روششناسی (لطفاً بخوانید)
یک benchmark فقط به اندازه روششناسیاش قابلاعتماد است. یک فهرست صادقانه از چیزهایی که این آزمون کنترل نمیکند:
اجرای تک، ماشین تک. ما آزمون tier سنگین را یک بار، روی یک MacBook از طریق Local by Flywheel اجرا کردیم. benchmarkهای مناسب 3-5 بار با ترتیب تصادفی اجرا میشوند و میانه به اضافه دامنه میانچارکی را گزارش میدهند. اجرای دوم میتواند جایگاهها را تغییر دهد.
بدون page caching. هر درخواست مسیر کامل PHP WordPress را طی میکرد. بیشتر سایتهای تولیدی WordPress از W3TC، WP Rocket یا یک CDN استفاده میکنند که PHP را برای صفحات کششده بهطور کامل دور میزند. با فعال بودن caching، فاصله بین بیشتر پلاگینها بهطور چشمگیر کاهش مییابد زیرا نوشتن تحلیلگری فقط در cache miss یا از طریق JavaScript ناهمگام اتفاق میافتد.
بدون object caching. بدون Redis، بدون Memcached. یک سایت تولیدی با object caching ویژگیهای رقابت پایگاه داده بسیار متفاوتی دارد.
الگوی بار مصنوعی. 50 VU HTTP همزمان خام است. ترافیک واقعی پیکهای ورودی، تنوع نشست و بیشتر صفحات کششده دارد. بار ما به DDoS نزدیکتر است تا یک صبح دوشنبه.
اثرات ترتیب کنترل نشدهاند. پلاگینها در یک ترتیب ثابت آزمون شدند. حالت سرور (pool اتصال MySQL، حافظه PHP، OPcache) در طول یک اجرای حدود 50 دقیقهای منحرف میشود، که میتواند پیکربندیهای بعدی را جریمه کند.
تعداد نمونهها متفاوت است. پلاگینهای سریع حدود 156 نمونه به ازای هر پیکربندی گرفتند؛ پلاگینهای کندتر تا 117 نمونه گرفتند زیرا تکرارها timeout شدند. نمونههای کمتر = تنوع بیشتر = میانههای کمتر قابلاعتماد.
موارد مشکوک خارج از محدوده. نتایج Koko Analytics (+2278ms) و Burst Statistics (+3592ms) بسیار بزرگ هستند. ما بهطور مستقل تأیید نکردهایم که آنها توسط پردازش دستهای WP-Cron، باگهای خاص plugin تحت بار همزمان یا نوشتنهای گیر افتاده پایگاه داده ایجاد نشدهاند. آنها را بهعنوان «چیزی بد در آزمون ما برای این plugin اتفاق افتاد» در نظر بگیرید نه «این چیزی است که شما روی سایتتان تجربه خواهید کرد».
سوگیری خود-آزمون. ما framework را ساختیم و ما Statnive را ساختیم. حتی با نیات خوب، سوگیری میتواند به انتخاب صفحه، انتخاب متریک و ساختار آزمون نفوذ کند. تأیید مستقل قابلاعتمادتر از هر چیزی است که ما منتشر میکنیم. framework متنباز است — لطفاً خودتان آن را اجرا کنید.
آنچه آزمون نشان میدهد
با وجود محدودیتها، آزمون بهطور مفید الگوهای معماری را آشکار میکند:
- پلاگینهایی که JavaScript یا کار سرور را در مسیر رندر بحرانی قرار میدهند، تحت هر باری سربار LCP قابلاندازهگیری اضافه میکنند
- پلاگینهایی با نوشتن پایگاه داده به ازای هر درخواست بهشدت تنزل مییابند وقتی آن نوشتنها قابل کش شدن نیستند
- معماریهای هسته inline + tracker async (Statnive، inline حداقلی Koko، بارگذاری async Burst) مسیر بحرانی را پاک نگه میدارند
- پلاگینهای پردازش از راه دور (Jetpack، MonsterInsights) همچنان وزن JavaScript محلی اضافه میکنند حتی اگر پردازش خارج از سایت باشد
این الگوها با تحقیقات منتشر شده Google، WordPress Core و web.dev سازگار هستند. اعداد خاص از آزمون ما باید بهعنوان یک نقطه داده در نظر گرفته شوند، نه یک رتبهبندی قطعی.
پرسشهای متداول
آیا plugin تحلیلی من واقعاً بر SEO تأثیر میگذارد؟
بله، در اصل. Google از Core Web Vitals (شامل LCP) بهعنوان یک سیگنال رتبهبندی استفاده میکند. یک plugin که زمان تجزیه JavaScript معنادار اضافه میکند یا رندرینگ را مسدود میکند، میتواند صفحات شما را از «خوب» به «نیاز به بهبود» منتقل کند. در عمل، اگر page cache تنظیم کرده باشید، بیشتر این تأثیر از بین میرود زیرا صفحات کششده هرگز کد PHP plugin را اجرا نمیکنند.
آیا میتوانم چندین plugin تحلیلی را اجرا کنم؟
از نظر فنی بله، اما جمع میشود. هر plugin اضافی JavaScript برای تجزیه و کار سمت سرور به ازای هر درخواست اضافه میکند. آزمون «همه پلاگینها ترکیبی» ما سربار بسیار زیادی نشان داد، همانطور که انتظار میرفت. اگر به چند منبع داده نیاز دارید، به یک plugin خود-میزبان بهخوبی طراحی شده تجمیع کنید و در صورت امکان ابزارهای دیگر را سمت سرور ادغام کنید.
چقدر باید عملکرد سایتم را benchmark کنم؟
پس از هر بهروزرسانی plugin، تغییر تم یا ارتقای هسته WordPress. از Google PageSpeed Insights برای دادههای دنیای واقعی، Chrome DevTools برای پروفایلگیری به ازای هر اسکریپت، و یک benchmark مصنوعی مثل ما برای آزمون مقایسهای استفاده کنید.
آیا تحلیلگری خود-میزبان واقعاً سریعتر از Google Analytics است؟
در آزمون مصنوعی ما، بله. کتابخانه gtag.js با حجم 134KB یک هزینه تجزیه قابلتوجه است صرفنظر از caching. trackerهای خود-میزبان میتوانند بسیار کوچکتر باشند (Statnive حدود 5KB، Koko زیر 1KB). در یک سایت تولیدی واقعی با caching، تفاوت همچنان وجود دارد اما در ابعاد مطلق کوچکتر است.
هزینه عملکردی Statnive بهطور خاص چقدر است؟
در آزمون فشار ما، Statnive کمترین سربار LCP را با +260ms نسبت به baseline داشت. در یک سایت تولیدی واقعی با page cache نصب شده، بیشتر آن سربار از بین میرود زیرا صفحات کششده هرگز کد PHP Statnive را اجرا نمیکنند — فقط حدود 5KB JavaScript سمت کلاینت برایتان باقی میماند که بهصورت ناهمگام بارگذاری میشود.
آیا باید به این اعداد خاص اعتماد کنم؟
بهعنوان شاخصهای جهتدار، بله. بهعنوان پیشبینیهای دقیق عملکرد سایت شما، خیر. اعداد از یک اجرای مصنوعی بدون caching هستند. سایت تولیدی شما با caching، روی میزبانی خاص شما، اعداد مطلق متفاوتی تولید خواهد کرد. الگوهای معماری (هسته inline در مقابل JS مسدود کننده، async در مقابل synchronous، same-origin در مقابل از راه دور) چیزی هستند که قابلتعمیم هستند — میلیثانیههای خاص نه.
روششناسی و قابلیت تکرار
همه آزمونها با استفاده از framework آزمون perf-impact متنباز ما اجرا شدند. اسکریپت آزمون (perf-impact-runner.sh) تغییر plugin، آمادهسازی cache، warmup و آزمون مرورگر 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. داستان مهندسی پشت بهینهسازی ما را بخوانید یا همه ویژگیهای Statnive را بررسی کنید.