Tips & Tricks افزونه Statnive · Parhum Khoshbakht

چرا پلاگین تحلیلی شما سایتتان را کند می‌کند

اسکریپت‌های تحلیل‌گری به هر بارگذاری صفحه سربار اضافه می‌کنند. اینجا یاد می‌گیرید چگونه تأثیر plugin خود را بررسی کنید، تحقیقات درباره دلیل سریع‌تر بودن برخی پلاگین‌ها چه می‌گویند و چگونه روی سایت خودتان اندازه بگیرید.

شاید plugin تحلیلی شما رتبه‌های شما را هزینه می‌کند

هر صاحب سایت WordPress یک plugin تحلیلی نصب می‌کند. بیشتر هرگز به آنچه آن plugin به سرعت صفحه آن‌ها انجام می‌دهد فکر نمی‌کنند. اما Google فکر می‌کند.

از سال 2021، Google از Core Web Vitals به‌عنوان یک سیگنال رتبه‌بندی استفاده می‌کند. یکی از سه شاخص — Largest Contentful Paint (LCP) — اندازه می‌گیرد محتوای اصلی شما چقدر سریع ظاهر می‌شود. یک plugin تحلیلی که اسکریپت مسدودکننده رندر اضافه می‌کند می‌تواند LCP شما را از «خوب» (زیر 2.5 ثانیه) به ناحیه «نیاز به بهبود» منتقل کند. تفاوت بین رتبه گرفتن در صفحه یک و صفحه دو می‌تواند به چند صد میلی‌ثانیه برسد.

ما 8 plugin تحلیلی محبوب WordPress را در یک آزمون فشار مصنوعی (بار همزمان، بدون page caching) benchmark کردیم و تفاوت‌های زیادی در سربار LCP پیدا کردیم — از حدود 260ms برای سبک‌ترین معماری تا بیش از 3 ثانیه برای پلاگین‌هایی که مسیر نوشتن سمت سرورشان تحت بار تنزل می‌یافت. این اعداد تضمین‌های تولیدی نیستند — آن‌ها بازتاب یک آزمون مصنوعی بدون caching هستند — اما الگوهای معماری که آشکار می‌کنند با تحقیقات منتشر شده عملکرد وب سازگار است.

Core Web Vitals چه چیزی را اندازه می‌گیرد و چرا اهمیت دارد

Google سه شاخص را در هر صفحه از سایت شما ارزیابی می‌کند:

Largest Contentful Paint (LCP) اندازه می‌گیرد چه زمانی محتوای اصلی شما قابل‌مشاهده می‌شود. Google زیر 2.5 ثانیه را «خوب» در نظر می‌گیرد. اسکریپت‌های تحلیلی که رندرینگ را مسدود می‌کنند این عدد را بالاتر می‌برند.

Interaction to Next Paint (INP) اندازه می‌گیرد سایت شما چقدر سریع به کلیک‌ها و ضربه‌ها پاسخ می‌دهد. JavaScript سنگین از پلاگین‌های تحلیلی می‌تواند پاسخ مرورگر به تعاملات کاربر را به تأخیر بیندازد.

Cumulative Layout Shift (CLS) پایداری بصری را اندازه می‌گیرد. اسکریپت‌های تحلیلی به‌ندرت باعث جابه‌جایی layout می‌شوند، اما اسکریپت‌های ضعیف بارگذاری شده می‌توانند رندرینگ سایر عناصر را در موقعیت خودشان به تأخیر بیندازند.

یک صفحه که در Core Web Vitals شکست می‌خورد به‌طور خودکار رتبه‌ها را از دست نمی‌دهد. اما وقتی دو صفحه برای کلمه کلیدی یکسان با کیفیت محتوای مشابه رقابت می‌کنند، صفحه سریع‌تر برتری دارد. برای سایت‌های e-commerce، تأثیر فراتر از SEO است — بهبود 100ms در زمان بارگذاری می‌تواند تبدیل‌ها را تا 1.11% به ازای هر نشست افزایش دهد.

چگونه اسکریپت‌های تحلیلی صفحات شما را کند می‌کنند

وقتی یک plugin تحلیلی نصب می‌کنید، معمولاً JavaScript را به هر صفحه از سایت شما اضافه می‌کند. آن JavaScript باید توسط مرورگر بازدیدکننده شما دانلود، تجزیه و اجرا شود. هزینه عملکردی به سه عامل بستگی دارد:

اندازه اسکریپت. gtag.js Google Analytics 4 با حجم 134KB فشرده. جایگزین‌های حریم‌خصوصی‌محور مثل Koko Analytics از 468 بایت استفاده می‌کنند. تفاوت در زمان تجزیه قابل‌توجه است، به‌ویژه روی دستگاه‌های موبایل که در آن‌ها پردازش JavaScript 2-5 برابر کندتر از دسکتاپ است.

استراتژی بارگذاری. اسکریپتی که بدون ویژگی‌های async یا defer بارگذاری می‌شود، مرورگر را از رندر کردن هر محتوا تا پایان آن مسدود می‌کند. این «render-blocking» نامیده می‌شود و بزرگ‌ترین قاتل عملکرد برای پلاگین‌های تحلیلی است.

روش انتقال داده. برخی پلاگین‌ها از XMLHttpRequest synchronous برای ارسال داده ردیابی استفاده می‌کنند — این رشته اصلی را مسدود می‌کند. پلاگین‌های مدرن از navigator.sendBeacon() استفاده می‌کنند، که شلیک-و-فراموش‌کن است و هرگز تعامل کاربر را مسدود نمی‌کند.

داده: چگونه 8 plugin تحلیلی در یک آزمون فشار مقایسه می‌شوند

ما هر plugin را به‌صورت ایزوله روی یک سایت WordPress 6.9 با WooCommerce آزمون کردیم، با استفاده از مرورگرهای Chromium واقعی در حالی که 50 کاربر HTTP همزمان سرور را تحت فشار قرار می‌دادند. هیچ page caching نصب نشده بود — هر درخواست مسیر کامل PHP WordPress را طی می‌کرد. این روشی نیست که سایت‌های تولیدی WordPress معمولاً اجرا می‌شوند، اما آشکار می‌کند معماری هر plugin چگونه با رقابت برخورد می‌کند. رتبه‌بندی شده بر اساس سربار LCP در آزمون تک‌اجرایی ما:

Pluginسربار LCP در آزمونمعماری
Statnive+260msهسته inline + async بیرونی
Independent Analytics+566mshookهای PHP سمت سرور
Jetpack Stats+776msاز راه دور (WordPress.com)
MonsterInsights (GA4)+964msgtag.js بیرونی 134KB
WP Slimstat+1030msاسکریپت بیرونی + REST
WP Statistics+1424msاسکریپت بیرونی + admin-ajax
Koko Analytics+2278msinline 468B + نوشتن DB در هر درخواست
Burst Statistics+3592msasync بیرونی + Beacon API

ملاحظات مهم قبل از خواندن بیش از حد در این اعداد:

  • این یک اجرای منفرد روی یک ماشین توسعه‌دهنده بدون page caching است. سایت‌های تولیدی با W3TC، WP Rocket یا caching Cloudflare تفاوت‌های بسیار کوچک‌تری نشان می‌دهند زیرا صفحات کش‌شده هرگز کد PHP plugin را اجرا نمی‌کنند.
  • اختلاف‌های بسیار بزرگ برای Koko Analytics و Burst Statistics مشکوک هستند. آن‌ها به احتمال زیاد بازتاب مسائل خاص رقابت نوشتن سمت سرور (سریال‌سازی نوشتن پایگاه داده، پردازش دسته‌ای WP-Cron) هستند که در طول بار مصنوعی ما فعال شدند، نه سربار حالت پایدار. آن‌ها را به‌عنوان «Koko و Burst سایت شما را 2-3 ثانیه کند خواهند کرد» در نظر نگیرید — این کار را نخواهند کرد، روی یک سایت معمولی.
  • الگوهای معماری چیزی هستند که قابل‌تعمیم هستند، نه میلی‌ثانیه‌های خاص. trackerهای هسته inline، بارگذاری async، انتقال Beacon API و مسیرهای نوشتن مقاوم در برابر همزمانی، بهترین شیوه‌های مستندند که توسط تحقیقات Google، WordPress Core و web.dev پشتیبانی می‌شوند. اعداد خاص از هر آزمونی متفاوت خواهند بود.

روی اتصال 3G موبایل، هر سربار JavaScript بیشتر اهمیت دارد زیرا زمان‌های تجزیه و کامپایل روی پردازنده‌های موبایل 2-5 برابر طولانی‌تر هستند — بنابراین انتخاب یک معماری tracker سبک به کاربران موبایل کمک می‌کند بدون توجه به اینکه روی چه سروری اجرا می‌کنید.

به Statnive تغییر دهید: بدون جریمه عملکردی، تحلیل‌گری کامل

tracker inline 1.1KB Statnive، pageview شما را قبل از بارگذاری هر اسکریپت بیرونی ارسال می‌کند. همه داده‌ها روی سرور WordPress شما باقی می‌مانند — بدون کوکی، بدون نوار رضایت. رایگان از WordPress.org نصب کنید.

چگونه سربار تحلیل‌گری سایت خودتان را بررسی کنید

نیازی نیست به حرف ما اعتماد کنید. سه راه برای اندازه‌گیری تأثیر عملکردی plugin تحلیلی شما روی سایت خودتان وجود دارد:

روش 1: Google PageSpeed Insights

به pagespeed.web.dev بروید، URL خود را وارد کنید، و بخش «Diagnostics» را بررسی کنید. به دنبال اسکریپت تحلیل‌گری خود زیر «Reduce JavaScript execution time» یا «Remove render-blocking resources» بگردید. اگر JS تحلیل‌گری شما در آنجا ظاهر شود، به امتیازات شما آسیب می‌زند.

روش 2: تب Performance Chrome DevTools

Chrome DevTools را باز کنید (F12)، به تب Performance بروید، و یک بارگذاری صفحه ضبط کنید. در نمودار شعله، نام اسکریپت تحلیل‌گری خود را جستجو کنید. عرض بلوک اجرای آن دقیقاً نشان می‌دهد چند میلی‌ثانیه هزینه دارد. این را با کل زمان بارگذاری صفحه مقایسه کنید.

روش 3: غیرفعال کردن و مقایسه

قابل‌اعتمادترین آزمون: PageSpeed Insights را با plugin تحلیلی فعال خود اجرا کنید، امتیاز LCP را یادداشت کنید، سپس به‌طور موقت plugin را غیرفعال کنید و دوباره آزمون کنید. تفاوت دقیقاً هزینه عملکردی plugin شما است.

در یک plugin تحلیلی سریع به دنبال چه باشید

اگر در حال انتخاب یک plugin تحلیلی با عملکرد در ذهن هستید، این ویژگی‌ها را در اولویت قرار دهید:

بارگذاری اسکریپت async یا deferred. plugin باید از پارامتر بومی strategy در WordPress 6.3 استفاده کند یا ویژگی‌های async/defer را به اسکریپت tracker خود اضافه کند. اسکریپتی بدون این ویژگی‌ها رندرینگ را مسدود می‌کند.

اندازه اسکریپت کوچک. زیر 5KB فشرده هدف است. هر چیزی بالای 50KB زمان تجزیه قابل‌اندازه‌گیری روی دستگاه‌های موبایل اضافه می‌کند. Google Analytics 4 حجم 134KB دارد — به همین دلیل جایگزین‌های حریم‌خصوصی‌محور به‌طور مداوم از آن بهتر عمل می‌کنند.

Beacon API برای انتقال داده. navigator.sendBeacon() داده را بدون مسدود کردن صفحه ارسال می‌کند. پلاگین‌های قدیمی‌تر که از XMLHttpRequest synchronous یا admin-ajax استفاده می‌کنند، کار غیرضروری روی رشته اصلی اضافه می‌کنند.

پردازش داده خود-میزبان. پلاگین‌هایی که داده را به سرورهای بیرونی می‌فرستند (Google Analytics، Jetpack) به بارگذاری کتابخانه‌های JavaScript شخص ثالث نیاز دارند. پلاگین‌های خود-میزبان مثل Statnive، Koko Analytics و WP Statistics فقط tracker سبک خودشان را بارگذاری می‌کنند.

بدون کوکی یا localStorage. پلاگین‌هایی که کوکی تنظیم می‌کنند، سربار هدر HTTP را به هر درخواست بعدی اضافه می‌کنند. پلاگین‌های بدون کوکی مثل Statnive از این به‌طور کامل اجتناب می‌کنند در حالی که نیاز به نوار رضایت را نیز حذف می‌کنند.

پرسش‌های متداول

آیا غیرفعال کردن plugin تحلیلی واقعاً Core Web Vitals را بهبود می‌دهد؟

در بیشتر موارد، بله — اما بزرگی به‌شدت به تنظیمات caching شما بستگی دارد. بدون page cache، هر درخواست کد PHP plugin را اجرا می‌کند و تأثیر می‌تواند قابل‌توجه باشد. با page cache به‌درستی پیکربندی شده، بیشتر سربار PHP از بین می‌رود و فقط هزینه JavaScript سمت کلاینت برایتان باقی می‌ماند — که برای trackerهای به‌خوبی طراحی شده چند کیلوبایت بارگذاری شده به‌صورت ناهمگام است. پاسخ واقعی به «plugin من چقدر هزینه دارد» این است: اندازه‌گیری خودتان را روی سایت تولیدی خودتان اجرا کنید.

آیا می‌توانم Google Analytics را نگه دارم و همچنان Core Web Vitals خوب داشته باشم؟

بله، اگر بقیه سایت شما به اندازه کافی سریع باشد که سربار حدود 100ms را جذب کند. اما اگر در Core Web Vitals در مرز هستید، تغییر به یک گزینه سبک‌تر می‌تواند شما را به ناحیه «خوب» منتقل کند بدون تغییر چیز دیگری در سایت شما.

آیا ردیابی سمت سرور برای عملکرد بهتر است؟

ردیابی سمت سرور (که در آن PHP بازدید را به جای JavaScript پردازش می‌کند) زمان تجزیه JavaScript سمت کلاینت را به‌طور کامل حذف می‌کند — یک مزیت واقعی روی موبایل که در آن هزینه‌های تجزیه غالب هستند. با این حال، زمان پردازش سرور (TTFB) را اضافه می‌کند و می‌تواند تحت بار همزمان بدون caching گلوگاه ایجاد کند. یک رویکرد ترکیبی — JavaScript inline حداقلی + endpoint REST سبک — بهترین هر دو را به شما می‌دهد: بدون هزینه تجزیه برای بازدید بحرانی، حداقل کار سرور به ازای هر درخواست.

پلاگین‌های تحلیلی چقدر به‌طور خاص بر کاربران موبایل تأثیر می‌گذارند؟

تأثیر موبایل به‌طور نامتناسبی بالاتر است. تجزیه JavaScript روی یک گوشی Android میان‌رده 2-5 برابر طولانی‌تر از دسکتاپ طول می‌کشد. اسکریپتی که 50ms زمان تجزیه روی دسکتاپ اضافه می‌کند ممکن است 100-250ms روی موبایل اضافه کند. به همین دلیل اندازه اسکریپت و بارگذاری async برای Core Web Vitals موبایل بیشترین اهمیت را دارند.

نتیجه

plugin تحلیلی شما در هر صفحه از سایت شما کار می‌کند. چقدر، به سه چیز بستگی دارد: معماری plugin (inline در مقابل اسکریپت مسدودکننده، sync در مقابل async، پردازش محلی در مقابل از راه دور)، تنظیمات caching شما (در صورت پیکربندی، سربار PHP را به‌طور چشمگیر کاهش می‌دهد) و میزبانی شما (تحت بار بر TTFB تأثیر می‌گذارد). یک plugin با معماری به‌خوبی طراحی شده انتخاب کنید، یک page cache پیکربندی کنید، و روی سایت خودتان اندازه‌گیری کنید. مجبور نیستید بین دقت تحلیل‌گری و سرعت صفحه انتخاب کنید — اما همچنین نباید به هیچ benchmark منفردی اعتماد کنید، از جمله مال ما.

مقایسه کامل آزمون فشار را بخوانید، یاد بگیرید چگونه tracker Statnive را بهینه کردیم، یا Statnive را با Google Analytics مقایسه کنید، Jetpack Stats و سایر پلاگین‌ها.

Get Statnive Free