نمره ۱۰۰ ابزار، و کاربری که سایت را «کند» صدا میزند
شما PageSpeed Insights را باز کردهاید، نمره سبز ۹۸ یا ۱۰۰ را دیدهاید، و هنوز از مشتری تماس میگیرند که «سایت شما لود نمیشود». یا خودتان از خانه با اینترنت همراه وارد میشوید و صفحه واقعاً سنگین است. این تناقض یک اشکال در ابزار نیست؛ دو دنیای متفاوت اندازهگیری را با هم قاطی کردهاید: داده آزمایشگاهی (Lab Data) و داده میدانی (Field Data).
ابزارهایی مثل Lighthouse و PageSpeed Insights از یک مرورگر بیسر در یک سرور مشخص، با اینترنت پرسرعت و ثابت، صفحه را لود میکنند. نتیجه یک نمره است. اما کاربر شما در شیراز با اینترنت همراه نسل چهارم، گوشی میانرده و در ساعات شلوغی، تجربهای کاملاً متفاوت دارد. داده میدانی دقیقاً همین تجربه واقعی را اندازه میگیرد. این مقاله درباره همین تفاوت است و اینکه چرا باید به داده میدانی اعتماد کنید، نه به نمرهای که در خلأ گرفته شده است.
داده آزمایشگاهی چیست و کجا گمراه میکند
داده آزمایشگاهی، اندازهگیری در محیط کنترلشده است. Lighthouse یک مرورگر Chromium را روی یک ماشین مجازی با مشخصات ثابت اجرا میکند، شبکه را شبیهسازی (Throttling) میکند و شاخصهایی مثل LCP و CLS را محاسبه میکند. این روش برای پیدا کردن مشکلات فنی مثل جاوااسکریپت سنگین یا تصاویر بدون ابعاد عالی است. اما یک محدودیت اساسی دارد: شبکه شبیهسازیشده، شبکه واقعی نیست.
شبیهسازی Lighthouse در حالت Mobile، تأخیر (Latency) حدود ۱۵۰ میلیثانیه و پهنای باند ۱.۶ مگابیت بر ثانیه را اعمال میکند. این عددها از میانگین شبکههای واقعی در سالهای قبل استخراج شدهاند. اما کاربر شما ممکن است در منطقهای باشد که تأخیر ۳۰۰ میلیثانیه دارد، یا برعکس، روی فیبر نوری با تأخیر ۵ میلیثانیه باشد. نتیجه این است که نمره آزمایشگاهی شما یک برآورد است، نه یک واقعیت.
مشکل بزرگتر، سختافزار است. دستگاه آزمایشگاهی Lighthouse یک ماشین مجازی با پردازنده متوسط است. گوشی کاربر شما ممکن است یک پرچمدار گرانقیمت یا یک دستگاه اقتصادی دو میلیون تومانی باشد. تفاوت قدرت پردازش بین این دو، میتواند زمان اجرای جاوااسکریپت را تا ۵ برابر تغییر دهد. داده میدانی این تفاوت را نشان میدهد؛ داده آزمایشگاهی هرگز.
اینجا اشتباه میکنند: نمره سبز را با تجربه خوب اشتباه میگیرند
رایجترین خطایی که من در کارهای پشتیبانی دیدهام این است: مدیر سایت یک صفحه را با PageSpeed Insights تست میکند، نمره ۹۵ میگیرد، و نتیجه را به مدیرعامل گزارش میدهد. یک هفته بعد، نرخ پرش (Bounce Rate) بالا میرود و کسی نمیفهمد چرا. وقتی گزارش CrUX را باز میکنید، میبینید که LCP واقعی کاربران روی ۴.۸ ثانیه است، در حالی که تست آزمایشگاهی ۱.۸ ثانیه را نشان میدهد. این اختلاف ۳ ثانیهای، همان جایی است که کاربران سایت را ترک میکنند.
نشانه این اشتباه چیست؟ صفحهای که در ابزار سبز است اما در گزارش Analytics، نرخ پرش بالای ۷۰٪ دارد. یا کامنتی از کاربر که میگوید «سایت شما با گوشی من باز نمیشود» در حالی که شما با دسکتاپ تست گرفتهاید. اگر این نشانهها را دیدید، اول از همه به داده میدانی نگاه کنید، نه به کد صفحه.
داده میدانی CrUX: تنها منبع قابل اعتماد
داده میدانی از مرورگرهای واقعی کاربران جمعآوری میشود. گوگل این دادهها را از مرورگر Chrome کاربرانی که صفحه شما را باز کردهاند، به صورت ناشناس جمعآوری میکند و در مجموعهای به نام Chrome User Experience Report (CrUX) منتشر میکند. این دادهها شامل شاخصهای Core Web Vitals یعنی LCP، INP و CLS است. نکته مهم: این دادهها فقط برای صفحاتی وجود دارد که ترافیک کافی داشته باشند.
آستانه انتشار CrUX معمولاً حدود ۲۰ بازدید منحصربهفرد در روز برای یک URL است. اگر سایت شما تازه راهاندازی شده یا ترافیک کمی دارد، CrUX برای آن دادهای نخواهد داشت. در این حالت، PageSpeed Insights بخش «Field Data» را خالی نشان میدهد و فقط داده آزمایشگاهی را نمایش میدهد. این به معنای خوب بودن سایت نیست؛ فقط یعنی هنوز داده کافی جمع نشده است.
برای مشاهده داده میدانی، دو راه دارید. اول، صفحه PageSpeed Insights که به صورت خودکار CrUX را نشان میدهد. دوم، وبسایت رسمی CrUX در Google BigQuery که دادههای خام را برای تحلیل عمیقتر ارائه میدهد. برای استفاده از BigQuery، به دانش SQL نیاز دارید، اما برای یک بررسی سریع، همان PageSpeed Insights کافی است.
چگونه داده میدانی را درست بخوانیم
CrUX دادهها را به صورت درصدی (Percentile) ارائه میدهد. عددی که گوگل گزارش میکند، صدک ۷۵ است. یعنی ۷۵٪ از کاربران شما تجربهای بهتر از این عدد داشتهاند و ۲۵٪ بدتر. این عدد مهم است چون میانگین (Average) میتواند گمراهکننده باشد. اگر ۹۰٪ کاربران شما LCP زیر ۲ ثانیه داشته باشند و ۱۰٪ بالای ۱۰ ثانیه، میانگین حدود ۳ ثانیه میشود که به نظر بد نمیرسد. اما صدک ۷۵ عدد دقیقتری از تجربه اکثریت میدهد.
آستانههای گوگل برای Core Web Vitals را به خاطر بسپارید: LCP باید زیر ۲.۵ ثانیه باشد، INP زیر ۲۰۰ میلیثانیه و CLS زیر ۰.۱. اگر CrUX شما در محدوده «نیاز به بهبود» (Needs Improvement) باشد، یعنی بین آستانه خوب و بد، باید اقدام کنید. اگر در محدوده «ضعیف» (Poor) باشد، یعنی کاربران واقعاً در حال ترک سایت شما هستند.
چرا داده میدانی و آزمایشگاهی با هم اختلاف دارند
اختلاف بین این دو نوع داده، طبیعی است و همیشه نشانه مشکل نیست. اما وقتی اختلاف زیاد میشود، باید دلیل آن را پیدا کنید. سه عامل اصلی این اختلاف را ایجاد میکنند:
- شبکه واقعی: Lighthouse از یک پروفایل شبکه ثابت استفاده میکند، اما کاربران شما در شبکههای مختلف با کیفیتهای متفاوت هستند. وایفای خانگی، اینترنت همراه، یا شبکه شرکتی، هر کدام تأخیر و پهنای باند متفاوتی دارند.
- سختافزار دستگاه: گوشیهای اقتصادی پردازنده ضعیفتری دارند و اجرای جاوااسکریپت برایشان کندتر است. این تفاوت میتواند INP را به شدت تحت تأثیر قرار دهد.
- عوامل خارجی: سرور شما ممکن است در ساعات شلوغی پاسخگویی کندتری داشته باشد. یا CDN شما در منطقهای خاص عملکرد خوبی نداشته باشد. داده آزمایشگاهی این نوسانات را نمیبیند.
یک نکته مهم: اگر اختلاف بین داده میدانی و آزمایشگاهی کمتر از ۲۰٪ باشد، معمولاً مشکل جدی نیست. اما اگر داده میدانی شما دو برابر داده آزمایشگاهی باشد، یعنی یک مشکل زیرساختی یا کدنویسی دارید که در تستهای آزمایشگاهی دیده نمیشود.
راهکار عملی: از کجا شروع کنیم
اولین قدم، بررسی داده میدانی سایت خودتان است. صفحه PageSpeed Insights را باز کنید و به بخش «Field Data» نگاه کنید. اگر دادهای وجود ندارد، یعنی ترافیک شما کم است. در این حالت، باید به داده آزمایشگاهی تکیه کنید اما با این آگاهی که ممکن است با واقعیت فاصله داشته باشد.
اگر داده میدانی موجود است و وضعیت بدی دارد، این ترتیب را دنبال کنید:
- ابتدا LCP را بررسی کنید. این شاخص معمولاً بیشترین تأثیر را روی تجربه کاربر دارد. اگر LCP بالای ۲.۵ ثانیه است، به دنبال عنصر بزرگ صفحه (Hero Element) بگردید و آن را بهینه کنید. راهنمای عملی بهبود LCP میتواند نقطه شروع خوبی باشد.
- سپس INP را بررسی کنید. اگر بالای ۲۰۰ میلیثانیه است، مشکل از جاوااسکریپت شماست. شنوندههای رویداد (Event Listeners) سنگین یا اجرای طولانی جاوااسکریپت در ترد اصلی، مقصران اصلی هستند.
- در نهایت CLS را بررسی کنید. اگر بالای ۰.۱ است، مشکل از عناصری است که بعد از لود اولیه جابهجا میشوند. تصاویر بدون ابعاد، فونتهای دیرهنگام و تبلیغات متحرک، شایعترین دلایل هستند. مقاله رفع پرش چیدمان CLS را برای جزئیات بیشتر بخوانید.
یک نکته مهم: بهینهسازی برای داده میدانی، با بهینهسازی برای داده آزمایشگاهی تفاوت دارد. در داده آزمایشگاهی، شما میتوانید با حذف جاوااسکریپت یا کاهش حجم تصاویر، نمره را بالا ببرید. اما در داده میدانی، باید به عواملی مثل زمان پاسخ سرور (TTFB) و کیفیت شبکه توجه کنید. اگر سرور شما در ایران است و کاربران خارج از کشور دارید، TTFB شما بالا خواهد بود و هیچ بهینهسازی سمت کلاینت این را حل نمیکند. در این حالت، استفاده از CDN یا سرورهای میانی ضروری است.
برای بررسی دقیقتر وضعیت فنی دامنه و DNS خود، میتوانید از ابزارهای بررسی فنی دامنه استفاده کنید. تأخیر DNS میتواند چند دهم ثانیه به TTFB اضافه کند که در داده میدانی دیده میشود اما در داده آزمایشگاهی نه.
اینجا اشتباه میکنند: بهینهسازی برای نمره، نه برای کاربر
من بارها دیدهام که توسعهدهندگان برای بالا بردن نمره Lighthouse، کارهای عجیبی میکنند. مثلاً تصاویر را با ابعاد بسیار کوچک لود میکنند و بعد با CSS بزرگنمایی میکنند. نمره LCP بالا میرود اما تصویر برای کاربر تار است. یا محتوای صفحه را به چند بخش تقسیم میکنند و فقط بخش اول را لود میکنند تا LCP سریعتر ثبت شود. این کارها نمره ابزار را بالا میبرد اما تجربه کاربر را خراب میکند.
نشانه این اشتباه چیست؟ داده میدانی شما خوب است (LCP زیر ۲.۵ ثانیه) اما نرخ تبدیل (Conversion Rate) پایین است. یا کاربران زمان کمی در صفحه میمانند. اگر این نشانهها را دیدید، احتمالاً برای نمره بهینهسازی کردهاید نه برای کاربر. داده میدانی فقط سرعت را نشان میدهد، نه کیفیت محتوا یا تجربه کلی را. یک صفحه سریع با محتوای بیکیفیت، همچنان کاربر را فراری میدهد.
تصویر و فونت: دو عامل پنهان در داده میدانی
تصاویر و فونتها دو عاملی هستند که در داده آزمایشگاهی به سختی دیده میشوند اما در داده میدانی تأثیر زیادی دارند. تصویری که در تست آزمایشگاهی ۲۰۰ کیلوبایت است، ممکن است در شبکه واقعی به دلیل فشردهسازی اپراتور، ۳۰۰ کیلوبایت شود. یا فونتی که از سرور خارجی لود میشود، در ایران با تأخیر بالا مواجه شود.
برای تصاویر، حتماً از فرمتهای مدرن مثل WebP و AVIF استفاده کنید. این فرمتها حجم را تا ۳۰٪ کاهش میدهند بدون افت کیفیت محسوس. راهنمای عملی بهینهسازی تصویر با WebP و AVIF را مطالعه کنید. برای فونتها، فونتهای فارسی را روی سرور خودتان هاست کنید و از لود غیرهمزمان (Async) استفاده کنید. فونتهای خارجی مثل Google Fonts در ایران با تأخیر بالا لود میشوند و میتوانند CLS را بدتر کنند.
یک نکته دیگر: اگر از سیستم مدیریت محتوا مثل وردپرس استفاده میکنید، افزونههای کش و بهینهسازی میتوانند کمک کنند اما همیشه نه. بعضی افزونهها کدهای اضافه به صفحه تزریق میکنند که INP را بدتر میکند. قبل از نصب هر افزونه، تأثیر آن را روی داده میدانی بررسی کنید، نه فقط روی نمره آزمایشگاهی.
ابزارهای مکمل برای تحلیل داده میدانی
CrUX تنها منبع داده میدانی نیست. چند ابزار دیگر هم وجود دارند که میتوانند تصویر کاملتری بدهند:
- Google Search Console: گزارش Core Web Vitals در Search Console، داده میدانی را بر اساس نوع دستگاه (موبایل و دسکتاپ) جدا میکند و صفحات مشکلدار را فهرست میکند. این گزارش برای پیدا کردن صفحات خاصی که مشکل دارند، بهترین گزینه است.
- Web Vitals JavaScript Library: این کتابخانه را میتوانید در سایت خودتان قرار دهید تا داده میدانی را به صورت لحظهای از کاربران خودتان جمعآوری کنید. این دادهها دقیقتر از CrUX هستند چون شامل همه کاربران شما میشوند، نه فقط کاربران Chrome.
- RUM (Real User Monitoring): ابزارهایی مثل New Relic یا Datadog داده میدانی را با جزئیات بیشتر جمعآوری میکنند، از جمله اطلاعات جغرافیایی، نوع مرورگر و نوع اتصال. این ابزارها پولی هستند اما برای سایتهای بزرگ ارزش سرمایهگذاری دارند.
اگر سایت شما وردپرسی است، افزونههای RUM سبکی هم وجود دارند که داده را به صورت خودکار جمعآوری میکنند. اما مراقب باشید: خود افزونه RUM هم جاوااسکریپت اضافه میکند و میتواند INP را بدتر کند. یک کتابخانه سبک مثل web-vitals که کمتر از ۱ کیلوبایت است، انتخاب بهتری است.
تصمیم نهایی: کدام را ملاک قرار دهیم؟
پاسخ صریح من: داده میدانی. اگر CrUX شما دادهای دارد، آن را ملاک اصلی تصمیمگیری قرار دهید. داده آزمایشگاهی فقط برای پیدا کردن ریشه مشکل مفید است، نه برای سنجش موفقیت. اگر CrUX شما دادهای ندارد (سایت کمترافیک)، از داده آزمایشگاهی استفاده کنید اما با این آگاهی که ممکن است خوشبینانه باشد.
یک استثنا وجود دارد: اگر سایت شما تازه راهاندازی شده و هنوز ترافیک کافی برای CrUX ندارد، داده آزمایشگاهی تنها گزینه شماست. در این حالت، روی بهینهسازیهای قطعی مثل کاهش حجم تصاویر، فشردهسازی کدها و استفاده از کش مرورگر تمرکز کنید. این کارها در هر دو نوع داده تأثیر مثبت دارند.
و اگر سایت شما ترافیک خوبی دارد اما CrUX برای آن دادهای نشان نمیدهد، مشکل از نحوه جمعآوری داده است. مطمئن شوید که سایت شما با HTTPS سرو میشود و هیچ خطای جاوااسکریپتی در کنسول مرورگر ندارید. CrUX فقط برای صفحات HTTPS داده جمعآوری میکند.
در نهایت، به یاد داشته باشید که بهینهسازی سرعت یک پروژه یکباره نیست. داده میدانی شما با تغییر فصل، تغییر رفتار کاربران و تغییر الگوریتمهای گوگل نوسان میکند. یک برنامه منظم (مثلاً ماهانه) برای بررسی داده میدانی و مقایسه آن با داده آزمایشگاهی داشته باشید. اگر اختلافی دیدید، ریشهیابی کنید. اگر نه، کارتان درست است.
اگر به کمک تخصصی برای تحلیل داده میدانی و بهینهسازی سرعت سایت خود نیاز دارید، تیم خدمات سئو میتواند ممیزی کامل فنی و محتوایی سایت شما را انجام دهد و برنامه عملی برای بهبود Core Web Vitals ارائه دهد.
پرسشهای پرتکرار
داده میدانی CrUX چیست و از کجا میآید؟
CrUX مجموعه دادهای است که گوگل از مرورگر Chrome کاربران واقعی جمعآوری میکند. این دادهها شامل شاخصهای LCP، INP و CLS است و به صورت ناشناس از کاربرانی که صفحه شما را باز کردهاند، ثبت میشود. برای مشاهده آن، صفحه PageSpeed Insights سایت خود را باز کنید و به بخش Field Data نگاه کنید.
چرا PageSpeed Insights من داده میدانی نشان نمیدهد؟
داده میدانی فقط برای صفحاتی وجود دارد که ترافیک کافی داشته باشند، معمولاً حدود ۲۰ بازدید منحصربهفرد در روز. اگر سایت شما تازه راهاندازی شده یا ترافیک کمی دارد، CrUX دادهای برای آن ندارد. در این حالت، PageSpeed Insights فقط داده آزمایشگاهی را نشان میدهد.
آیا نمره ۱۰۰ در PageSpeed Insights به معنای سایت سریع است؟
خیر. نمره ۱۰۰ فقط نشان میدهد که صفحه در محیط آزمایشگاهی Lighthouse عملکرد خوبی داشته است. داده میدانی ممکن است کاملاً متفاوت باشد، به خصوص اگر کاربران شما از شبکههای همراه یا دستگاههای ضعیف استفاده کنند. برای اطمینان، حتماً داده میدانی CrUX را بررسی کنید.
چگونه داده میدانی سایت خود را بهبود دهم؟
ابتدا CrUX خود را بررسی کنید و ببینید کدام شاخص (LCP، INP یا CLS) در محدوده ضعیف است. سپس روی همان شاخص تمرکز کنید. برای LCP، تصاویر و سرور را بهینه کنید. برای INP، جاوااسکریپت را کاهش دهید. برای CLS، ابعاد تصاویر و فونتها را مشخص کنید. راهنمای کامل Core Web Vitals را مطالعه کنید.
دیدگاهها ۰
هنوز دیدگاهی ثبت نشده؛ اولین نفر باشید!