کرنومتر قدیمی فلزی با عقربه‌های باریک

ما هفت صفحه از سایت‌های نمونهٔ وردپرسی ویسا را با Lighthouse روی موبایل تست کردیم. امتیاز عملکرد از ۷۴ تا ۹۷ بود و سرور در همهٔ صفحه‌ها زیر ۱۰۰ میلی‌ثانیه جواب داد، ولی فقط سه صفحه LCP خوب گرفتند. یعنی کندی باقی‌مانده بیشتر از فونت، تصویر و جاوااسکریپت می‌آمد، نه از سرور. این مقاله عددها، روش آزمون و محدودیت‌هایش را می‌گوید.

نتیجهٔ تست سرعت هفت صفحه

عددها میانهٔ سه اجراست و میانهٔ هر معیار جدا حساب شده است. آزمون در ۱۷ آبان ۱۴۰۵ انجام شد.

صفحهنوعامتیازLCP (ثانیه)TBT (میلی‌ثانیه)CLSTTFB (میلی‌ثانیه)حجم (کیلوبایت)درخواست
ننوفروشگاه، صفحهٔ اصلی۹۷۲٫۳۳۰۰۹۲۶۹۲۶۳
ارسیمجله، صفحهٔ اصلی۹۶۲٫۳۱۱۴۳۰۳۹۳۸۰۲۷
آویژهفروشگاه، صفحهٔ اصلی۹۵۲٫۴۸۰۰۵۳۵۸۹۷۱
پارسه سازهشرکتی، صفحهٔ اصلی۸۹۳٫۰۵۱۹۲۰٫۰۰۲۴۹۵۰۰۲۴
دفتر شب‌بووبلاگ، صفحهٔ اصلی۸۷۳٫۷۵۱۳۴۰۴۵۵۶۰۳۱
زرین‌خوانفروشگاه، صفحهٔ محصول۸۶۳٫۷۰۳۰۶۰۵۱۵۷۰
زرین‌خوانفروشگاه، صفحهٔ اصلی۷۴۴٫۶۸۲۶۱۰٫۰۳۴۷۱۷۶۵۷۶

LCP زمان نمایش بزرگ‌ترین بخش صفحه است و مرز خوبش ۲٫۵ ثانیه است. CLS جابه‌جایی ناگهانی اجزای صفحه را می‌سنجد و مرز خوبش ۰٫۱ است (web.dev). TBT مدتی است که پردازش جاوااسکریپت جلوی واکنش صفحه را می‌گیرد. TTFB زمان رسیدن اولین بایت از سرور است.

از این عددها چه فهمیدیم؟

سرور گلوگاه نبود

همهٔ صفحه‌ها اولین بایت را زیر ۱۰۰ میلی‌ثانیه گرفتند. با این حال LCP تا ۴٫۶۸ ثانیه رسید. فاصلهٔ این دو عدد کاری است که مرورگر بعد از گرفتن پاسخ انجام می‌دهد: فونت و تصویر را می‌گیرد، جاوااسکریپت را اجرا می‌کند و صفحه را می‌چیند.

اگر TTFB سایت شما خوب است و صفحه هنوز کند باز می‌شود، عوض‌کردن هاست کمک زیادی نمی‌کند. سراغ محتوای صفحه بروید. اگر TTFB بالاست، مشکل احتمالاً در هاست، دیتابیس یا نبود کش است و راهنمای هاست وردپرس به کارتان می‌آید.

در سه صفحه از چهار صفحهٔ کندتر، بزرگ‌ترین بخش صفحه متن بود

Lighthouse عنصر LCP را مشخص می‌کند. در «پارسه سازه»، «دفتر شب‌بو» و صفحهٔ اصلی «زرین‌خوان» این عنصر یک پاراگراف در بخش بالای صفحه بود، نه عکس. در صفحهٔ محصول «زرین‌خوان» و در هر سه صفحه‌ای که LCP خوب گرفتند، این عنصر عکس بود.

متن به فونت وابسته است و در دو صفحه از این سه، پاراگراف انیمیشن ورود هم داشت. این دو عامل را جداگانه آزمایش نکرده‌ایم، پس علت قطعی را نمی‌گوییم. نکتهٔ عملی این است که عنصر LCP صفحهٔ خودتان را پیدا کنید و همان را درست کنید.

فونت فارسی می‌تواند از عکس سنگین‌تر باشد

در «دفتر شب‌بو» از ۵۶۰ کیلوبایت کل صفحه، ۳۷۱ کیلوبایت فونت بود و عکس‌ها فقط ۸۴ کیلوبایت. در صفحه‌های دیگر هم فونت بین ۱۳۵ تا ۲۰۱ کیلوبایت حجم داشت. برای سایت فارسی، هر وزن اضافهٔ فونت هزینهٔ واقعی دارد. یک تا دو وزن معمولاً کافی است. ووکامرس فارسی هم همین را برای فروشگاه‌ها توصیه می‌کند.

تعداد درخواست به‌تنهایی چیزی نمی‌گوید

صفحهٔ اصلی «ننو» با ۶۳ درخواست امتیاز ۹۷ گرفت و «پارسه سازه» با ۲۴ درخواست امتیاز ۸۹. سنگین‌ترین صفحه، یعنی صفحهٔ اصلی «زرین‌خوان» با ۷۶۵ کیلوبایت، کمترین امتیاز را هم داشت، ولی این یک نمونه است و قانون نمی‌سازد.

جابه‌جایی صفحه تقریباً صفر بود

بدترین CLS ۰٫۰۳۴ بود که با فاصله زیر مرز ۰٫۱ قرار دارد. مشخص‌کردن ابعاد عکس‌ها و فضای ثابت برای اجزای صفحه این نتیجه را می‌دهد.

یک بار تست کافی نیست

همین صفحه‌ها در سه اجرای پشت‌سرهم این بازه‌ها را گرفتند:

صفحهکمترین امتیازبیشترین امتیاز
ننو۹۵۹۷
ارسی۹۴۹۸
آویژه۹۴۹۶
پارسه سازه۸۶۹۳
دفتر شب‌بو۸۵۹۶
زرین‌خوان، صفحهٔ محصول۸۶۸۶
زرین‌خوان، صفحهٔ اصلی۶۲۷۵

اختلاف ۱۳ واحدی روی «زرین‌خوان» بدون هیچ تغییری در سایت پیش آمد. پس اگر بعد از نصب افزونه ۵ واحد بالا یا پایین رفتید، هنوز چیزی ثابت نشده است. چند بار تست کنید و میانه را نگه دارید.

روش آزمون

  • ابزار: Lighthouse نسخهٔ ۱۲٫۸٫۲، با پیکربندی موبایل و شبکهٔ شبیه‌سازی‌شده (تأخیر ۱۵۰ میلی‌ثانیه و سرعت حدود ۱٫۶ مگابیت).
  • محل اجرا: از یک کامپیوتر در ایران، بدون فیلترشکن. سایت‌ها هم در ایران میزبانی می‌شوند.
  • تعداد: هر صفحه سه بار، پس از یک بازدید اولیه برای گرم‌شدن کش. بازدیدکننده وارد حساب کاربری نشده بود.
  • پردازنده: کاهش سرعت پردازنده را روی ۱ برابر گذاشتیم.

دلیل تنظیم آخر مهم است. شاخص پردازندهٔ کامپیوتر ما بین ۴۲۵ تا ۵۵۴ بود و این کامپیوتر خودش به اندازهٔ کافی کند بود. با تنظیم پیش‌فرض ۴ برابر، صفحهٔ اصلی «زرین‌خوان» ۳۵ و ۴۸ گرفت و Lighthouse هشدار داد که پردازنده از حد انتظار کندتر است و امتیاز را پایین می‌آورد. مستندات Lighthouse برای همین حالت تنظیم ضریب را پیشنهاد می‌کند.

این عددها چه چیزی را نشان نمی‌دهند؟

  • دادهٔ آزمایشگاهی است. کاربر واقعی با گوشی و اینترنت خودش عدد دیگری می‌گیرد. INP هم فقط با کاربر واقعی سنجیده می‌شود.
  • با PageSpeed Insights یکی نیست. آن ابزار از سرورها و تنظیم‌های دیگری تست می‌کند. API آن هنگام این آزمون محدودیت سهمیه داد و از آن استفاده نکردیم.
  • سایت‌های نمونه شلوغ نیستند. محتوایشان نمونه است و افزونه و اسکریپت تبلیغاتی مشتری‌ها را ندارند. روی سرور هم سهم پردازندهٔ تضمین‌شدهٔ کمی دارند و دیتابیس مشترک استفاده می‌کنند، پس با منابع پلن‌های مشتری یکی نیستند.
  • صفحه‌های بدون کش را نسنجیده‌ایم. سبد خرید، پرداخت و حساب کاربری کش نمی‌شوند و باید جدا سنجیده شوند.

سایت خودتان را چطور تست کنید؟

  1. صفحهٔ اصلی و یک صفحهٔ پربازدید را انتخاب کنید. برای فروشگاه، صفحهٔ محصول هم لازم است.
  2. در PageSpeed Insights حالت موبایل را سه بار اجرا کنید و میانه را بنویسید.
  3. TTFB را نگاه کنید. اگر بالاست، از هاست و کش شروع کنید.
  4. بخش LCP را باز کنید و ببینید عنصر LCP عکس است یا متن.
  5. اگر عکس است، حجم و ابعادش را کم کنید و بارگذاری تنبل را از آن بردارید.
  6. اگر متن است، وزن‌های فونت و انیمیشن ورود را بررسی کنید.
  7. بعد از هر تغییر دوباره سه بار تست کنید.

۱۲ روش عملی را در افزایش سرعت سایت وردپرس به ترتیب اثرگذاری آورده‌ایم.

پرسش‌های پرتکرار

امتیاز چند در Lighthouse خوب است؟

ابزار امتیاز ۹۰ به بالا را سبز نشان می‌دهد. ولی برای کاربر و گوگل، LCP، INP و CLS مهم‌تر از خود امتیازند. در تست ما صفحه‌ای با امتیاز ۸۹ هنوز LCP سه‌ثانیه‌ای داشت.

چرا هر بار امتیاز فرق می‌کند؟

شلوغی سرور و کامپیوتر آزمایش‌کننده، شبکه و کارهای پس‌زمینهٔ مرورگر هر بار فرق دارند. در تست ما اختلاف تا ۱۳ واحد بود.

TTFB پایین یعنی سایتم سریع است؟

نه. TTFB فقط شروع کار است. در تست ما TTFB زیر ۱۰۰ میلی‌ثانیه با LCP نزدیک پنج ثانیه کنار هم دیده شد.

سایت‌های ویسا همیشه این عددها را می‌گیرند؟

نه. این عددها نمونه‌های بدون ترافیک واقعی‌اند. قالب، افزونه، عکس و اسکریپت هر سایت نتیجه را عوض می‌کند. قالب‌های آماده را می‌توانید خودتان با همین روش تست کنید.

جمع‌بندی

در این آزمون سرور جلوی سرعت را نگرفته بود. فرق صفحهٔ سریع و کند در فونت، عنصر LCP و جاوااسکریپت بود و نتیجهٔ یک اجرا هم قابل اعتماد نبود. عدد خودتان را با چند اجرا بگیرید و از بزرگ‌ترین گلوگاه شروع کنید.

منابع

ح
حجت حسینی

حجت حسینی توسعه‌دهندهٔ وردپرس، برنامه‌نویس PHP و مدیر سیستم است. کارش نوشتن افزونه و قالب اختصاصی وردپرس، بهینه‌سازی سرعت سایت‌های وردپرسی و فروشگاه‌های ووکامرس، راه‌اندازی و نگهداری سرورهای لینوکس و کانتینرها با Docker و Kubernetes، و طراحی بکاپ و امنیت سایت است. در این وبلاگ از همین تجربه‌ها می‌نویسد: چطور سایت وردپرسی را بسازیم، سریع کنیم و سالم نگه داریم.