کالبدشکافی یک سایت کند: قاتل را در کمتر از ۳ دقیقه پیدا کنید

انتشار در ۲۴ اسفند ۱۴۰۴
بهینه سازی سایت

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

هاست؟ قالب؟ افزونه‌ها؟ عکس‌ها؟ یا همه اینها با هم؟

خبر خوب: پیدا کردن ریشه کندی سایت، یک فرآیند کارآگاهیست که از یک گزارش ساده شروع می‌شود.

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


قدم صفر: نبض‌گیری با یک ابزار رایگان

پیش از هر چیز، یک کار ساده انجام دهید. وارد سایت GTmetrix.com شوید. (اگر اینترنت بین‌الملل دارید) یا اگر در ایران هستید، از ابزارهای جایگزین داخلی استفاده کنید. آدرس صفحه اول سایتتان را بدهید و دکمه “Test your site” را بزنید.

بعد از ۳۰ ثانیه، یک گزارش کامل دارید. نترسید از انبوه اعداد و نمودارها. فقط به دنبال دو عدد باشید:

۱. Largest Contentful Paint (LCP): یعنی مدت زمانی که طول می‌کشد تا بزرگترین المان صفحه (معمولاً عکس اصلی یا تیتر) برای کاربر نمایش داده شود. این عدد باید زیر ۲.۵ ثانیه باشد.
۲. Fully Loaded Time: یعنی کل زمانی که صفحه کاملاً بارگذاری می‌شود. این عدد باید زیر ۳ ثانیه باشد.

اگر این اعداد بالاتر از این مقادیرند، سایت شما کند است و باید قاتل را پیدا کنیم.


اکنون، کالبدشکافی را شروع می‌کنیم: ۴ مظنون اصلی

در گزارش GTmetrix، از بالا به پایین حرکت کنید. این ۴ مظنون را به ترتیب بازجویی کنید:


مظنون اول: عکس‌ها (معمولاً مقصر اصلی)

در گزارش، به دنبال بخش “Properly size images” یا “Serve scaled images” بگردید. اگر این بخش نارنجی یا قرمز است، قاتل را پیدا کرده‌اید.

بازجویی: این یعنی شما عکسی را با ابعاد مثلا ۴۰۰۰ پیکسل در یک قاب ۴۰۰ پیکسلی قرار داده‌اید. مرورگر مجبور است کل آن تصویر غول‌پیکر را دانلود کند، بعد با CSS کوچکش کند. این مثل این است که یک کامیون آجر سفارش دهید، فقط برای گذاشتن یک آجر روی دیوار.

حکم: عکس‌ها را قبل از آپلود، با یک ابزار ساده (مثل Paint یا TinyPNG) به اندازه دقیق محل نمایششان تغییر سایز دهید. همچنین از فرمت WebP استفاده کنید که حجم را ۳۰٪ کمتر از JPG می‌کند.


مظنون دوم: فایل‌های CSS و جاوااسکریپت چاق و پردردسر

در گزارش، به دنبال “Eliminate render-blocking resources” بگردید. این بخش معمولاً لیستی از فایل‌های CSS و JS را نشان می‌دهد که مرورگر را معطل کرده‌اند.

بازجویی: این یعنی یک سری فایل استایل و اسکریپت (معمولاً از افزونه‌های مختلف) درست در لحظه‌ای که مرورگر می‌خواهد صفحه را نمایش دهد، وسط راه می‌پرند و می‌گویند: “صبر کن! اول من را دانلود کن!” اینها قاتلان خاموش سرعت هستند.

حکم: دو راه دارید. یا از یک افزونه کش (مثل WP Rocket یا W3 Total Cache) استفاده کنید که این فایل‌ها را ترکیب و فشرده کند. یا قاتلان را شناسایی کنید و افزونه‌های غیرضروری که آنها را تولید کرده‌اند را حذف کنید.


مظنون سوم: سرور کند و بی‌حال (Time to First Byte – TTFB)

در گزارش GTmetrix، یک نمودار آبشاری داریم. اولین نوار که نشان‌دهنده درخواست به سرور است چند میلی‌ثانیه طول کشیده؟ اگر این عدد بالای ۸۰۰ میلی‌ثانیه است، هاست شما مشکل دارد.

بازجویی: TTFB یعنی “چقدر طول کشید تا سرور اصلاً بیدار شود و شروع به کار کند؟” اگر هاست شما اشتراکی و شلوغ باشد، یا سرور از نظر CPU و RAM ضعیف باشد، این عدد بالاست. مثل رستورانی که آشپزش خواب آلود پشت میز لم داده و ۱۰ دقیقه طول می‌کشد تا سفارش شما را روی کاغذ بنویسد.

حکم: اگر TTFB بالاست، این مشکل با افزونه حل نمی‌شود. باید به فکر ارتقای هاست (از اشتراکی به نیمه‌اختصاصی یا ابری) باشید. یا از یک CDN داخلی مثل ابر آروان استفاده کنید که محتوا را از نزدیک‌ترین نقطه به کاربر ارسال می‌کند.


مظنون چهارم: دیتابیس چاق و تنبل

اگر سه مظنون قبلی بی‌گناه بودند، سراغ دیتابیس بروید. دیتابیس مثل انبار مغازه شماست. اگر انبار پر از جعبه‌های خالی، اجناس تاریخ مصرف گذشته و آشغال باشد، پیدا کردن جنس مورد نظر مشتری ۱۰ برابر بیشتر طول می‌کشد.

بازجویی: دیتابیس وردپرس با گذر زمان پر می‌شود از:

  • بازبینی‌های قدیمی نوشته‌ها (Revisions)
  • کامنت‌های اسپم حذف شده
  • داده‌های موقت (Transients) که منقضی شده اما پاک نشده‌اند
  • جداول به جا مانده از افزونه‌هایی که دیگر نیستند

حکم: افزونه‌هایی مثل WP-Optimize یا Advanced Database Cleaner را نصب کنید. دیتابیس را اسکن و بهینه‌سازی (Optimize) کنید. این کار مثل این است که انبار را جارو بزنید و آشغال‌ها را بریزید دور.


یک تکنیک کارآگاهی حرفه‌ای

اگر هیچکدام از این ۴ مظنون مقصر نبودند، از تکنیک “حذف و مشاهده” استفاده کنید:

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


جمع‌بندی: خلاصه کالبدشکافی در ۳ دقیقه

دقیقهاقدام
دقیقه اولتست GTmetrix —- نگاه به عدد LCP
دقیقه دومبررسی عکس‌ها (Properly size images) و فایل‌های مسدودکننده (Render-blocking)
دقیقه سومبررسی TTFB و تصمیم‌گیری درباره هاست یا دیتابیس

بعد از این کالبدشکافی، دقیقاً می‌دانید مشکل کجاست. حالا می‌توانید برای درمان اقدام کنید، یا اگر تخصص کافی ندارید، مشکل را دقیقاً به یک متخصص بگویید: “من عکس‌هایم بهینه نیستند. فقط همین را درست کن.” اینطوری هزینه تعمیر هم کمتر می‌شود، چون متخصص می‌داند دقیقاً کجا را باید هدف بگیرد.

قاتل را پیدا کردید؟ اگر نه، در بخش نظرات آدرس سایت و مشکلتان را بگویید. شاید بتوانم کمک کنم.