پرش به محتوای اصلی
علی فاتحی

بهینه‌سازی سرعت سایت

پیدا کردن گلوگاه واقعی سایت و رساندن LCP، INP و CLS به محدوده سبز — با گزارش عدد قبل و بعد.

چه چیزی تحویل می‌گیرید

  • گزارش پروفایلینگ اولیه: LCP، INP، CLS، TTFB، حجم انتقالی و زمان کوئری‌های دیتابیس
  • فهرست اولویت‌بندی‌شده گلوگاه‌ها با تخمین اثر هر کدام
  • پیاده‌سازی بهینه‌سازی‌ها روی سایت (نه فقط توصیه روی کاغذ)
  • پیکربندی کشینگ چندلایه: آبجکت کش، پیج کش و کش مرورگر
  • گزارش نهایی با عدد قبل و بعد روی همان صفحه‌ها و همان شرایط
  • سند کوتاه نگهداری: چه کاری نکنید تا سایت دوباره کند نشود

روند کار

  1. ۱

    اندازه‌گیری و تشخیص

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

  2. ۲

    رفع گلوگاه‌ها به ترتیب اثر

    از بزرگ‌ترین برنده شروع می‌کنم. معمولاً سه یا چهار تغییر، هشتاد درصد بهبود را می‌سازند و بقیه کارها صرفه اقتصادی ندارند.

  3. ۳

    تثبیت و تحویل

    کشینگ را طوری تنظیم می‌کنم که با به‌روزرسانی محتوا نشکند، دوباره اندازه می‌گیرم، و گزارش قبل و بعد را با روش سنجش تحویل می‌دهم.

سرعت یک عدد نیست، یک زنجیره است

وقتی می‌گویند «سایت کند است»، تقریباً همیشه منظور یکی از این چهار حالت است و هر کدام درمان کاملاً متفاوتی دارد:

۱. سرور دیر جواب می‌دهد (TTFB بالا) — مشکل در PHP، کوئری‌های دیتابیس یا نبود آبجکت کش است. ۲. اولین محتوای بزرگ دیر می‌آید (LCP بالا) — معمولاً یک تصویر بهینه‌نشده، یک فونت بدون preload یا یک اسلایدر جاوااسکریپتی. ۳. صفحه دیر به کلیک جواب می‌دهد (INP بالا) — جاوااسکریپت زیاد روی thread اصلی. ۴. محتوا موقع لود می‌پرد (CLS بالا) — تصویر بدون ابعاد، بنر تزریق‌شده، فونت بدون fallback هم‌اندازه.

کاری که اغلب اتفاق می‌افتد این است که برای مشکل شماره ۱، افزونه‌ای نصب می‌شود که فقط شماره ۲ را کمی بهتر می‌کند. برای همین اولین قدم من همیشه اندازه‌گیری است.

چه چیزی را واقعاً اندازه می‌گیرم

داده آزمایشگاهی (Lighthouse) برای تشخیص خوب است ولی معیار قضاوت نیست. معیار، داده میدانی است — یعنی همان چیزی که گوگل از کاربران واقعی شما جمع می‌کند و در رتبه‌بندی استفاده می‌کند. در گزارش، هر دو را می‌بینید:

معیارحد سبزمعنی عملی
LCPزیر ۲٫۵ ثانیهکاربر چه زمانی حس می‌کند صفحه آمده
INPزیر ۲۰۰ میلی‌ثانیهکلیک چقدر طول می‌کشد تا جواب بدهد
CLSزیر ۰٫۱محتوا چقدر زیر دست کاربر می‌پرد
TTFBزیر ۸۰۰ میلی‌ثانیهسرور چقدر طول می‌کشد تا شروع کند

چیزهایی که معمولاً بیشترین اثر را دارند

روی سایت‌های وردپرسی ایرانی، این موارد تکرارشونده‌اند:

  • کوئری‌های meta_query بدون ایندکس روی جدول wp_postmeta. روی چند هزار محصول، یک فیلتر ساده می‌تواند چند ثانیه طول بکشد.
  • افزونه‌هایی که همه‌جا لود می‌شوند. یک افزونه فرم‌ساز که CSS و JS خودش را در صفحه محصول هم تزریق می‌کند.
  • نبود آبجکت کش. وردپرس بدون Redis یا Memcached، در هر ریکوئست ده‌ها کوئری تکراری به wp_options می‌زند.
  • فونت‌های ریموت. هر فونت از یک دامنه دیگر یعنی یک DNS lookup و یک TLS handshake اضافه، قبل از اینکه یک حرف روی صفحه بیاید.
  • تصاویر بدون width و height. رایج‌ترین دلیل CLS و ارزان‌ترین چیز برای درست‌کردن.

چیزی که تحویل می‌گیرید

گزارش نهایی یک فایل است، نه یک اسکرین‌شات از Lighthouse. در آن مشخص است هر تغییر چه بود، چرا انجام شد و چقدر اثر داشت. اگر بعداً کسی خواست روی سایت کار کند، این سند به او می‌گوید کجا را دست نزند.

نمونه‌کارهای این خدمت

مطالب مرتبط با این خدمت

  • ۲ دقیقه مطالعه

    کاهش LCP در وردپرس: ترتیب درست کارها

    بیشتر راهنماهای سرعت، فهرستی از بیست کار می‌دهند بدون اینکه بگویند کدام‌یک واقعاً اثر دارد. این نوشته ترتیب کارها را بر اساس نسبت اثر به هزینه می‌چیند.

    • #سرعت سایت
    • #وردپرس
    • #Core Web Vitals

سؤال‌های پرتکرار

چقدر طول می‌کشد؟

یک سایت شرکتی معمولی معمولاً سه تا پنج روز کاری. فروشگاه ووکامرس با چند هزار محصول بسته به وضعیت دیتابیس بین یک تا دو هفته.

تضمین می‌کنید امتیاز ۱۰۰ بگیرم؟

نه، و کسی که تضمین می‌کند یا شرایط سایت شما را ندیده یا قرار است عدد آزمایشگاهی را دستکاری کند. چیزی که تضمین می‌کنم گزارش شفاف قبل و بعد است؛ اگر بهبود معناداری حاصل نشود، دلیلش را مکتوب می‌گویم.

آیا سایت در حین کار از دسترس خارج می‌شود؟

نه. کار روی نسخه استیجینگ انجام می‌شود و فقط تغییرات تأییدشده روی سایت اصلی اعمال می‌شوند.

فرق این کار با نصب یک افزونه کش چیست؟

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

مطمئن نیستید کدام یکی است؟

کافی است بنویسید چه مشکلی دارید. تشخیص اینکه کار در کدام دسته می‌افتد با من.

شروع یک پروژه