پاسخ کوتاه: افزایش سرعت سایت با یک کار بزرگ انجام نمی شود، با ترتیب درست چند کار کوچک انجام می شود. اول تصویرها را کوچک و سبک کنید، بعد کش مرورگر و کش صفحه را روشن کنید، بعد پاسخ سرور را فشرده کنید، بعد اسکریپت ها و افزونه های سنگین را کنار بگذارید. اگر سرعت بعد از این چهار کار تغییر نکرد، ریشه کندی در میزبان و زمان پاسخ سرور است و از داخل وردپرس حل نمی شود. هر کدام از این کارها یک عدد مشخص را جابه جا می کند و همان عدد را می شود قبل و بعد اندازه گرفت. بخش زیادی از کندی سایت از فایلهای ثابت و فاصلهٔ سرور تا کاربر میآید؛ کلودفلر همان فایلها را از نزدیکترین نقطه تحویل میدهد و درخواست مشکوک را پیش از رسیدن به سرور فیلتر میکند.

سرعت سایت از کدام لایه می آید؟
سرعت سایت یک عدد تنها نیست. از چهار لایه ساخته می شود که هر لایه سهم خودش را از زمان می برد: پیدا کردن سرور، برقراری ارتباط، پاسخ سرور و در آخر دانلود و نمایش صفحه. روی اندازه گیری خودمان از همین سایت، این چهار لایه این طور تقسیم شده بودند: پیدا کردن سرور بین ۵ تا ۱۶ میلی ثانیه، برقراری ارتباط ۸۷ تا ۹۸، اتصال امن ۱۷۴ تا ۱۸۸ و اولین بایت پاسخ سرور بین ۶۴۵ تا ۶۸۶ میلی ثانیه. یعنی در بیشتر بازدیدها سنگین ترین قسمت همان اولین بایت است، نه تصویر و نه جاوااسکریپت.
پس پیش از هر تغییری باید بدانید علت کندی سایت شما در کدام لایه است. اگر روی بخش اشتباه کار کنید، ساعت ها وقت می گذارید و عدد تکان نمی خورد. روش اندازه گیری با یک دستور ساده را در راهنمای سرعت سایت را چطور اندازه بگیریم نوشته ایم و اینجا تکرارش نمی کنیم. موضوع این مقاله مرحله بعد است: وقتی فهمیدید کدام لایه کند است، چه کاری واقعا عدد را جابه جا می کند.

چرا سرعت سایت روی فروش اثر می گذارد؟
کندی سایت سه هزینه دارد و هر سه قابل اندازه گیری است. هزینه اول کاربر است: کسی که از طریق لینک موبایل وارد صفحه محصول یا صفحه تماس می شود، اگر صفحه در چند ثانیه باز نشود، برمی گردد و همان بازدید را از دست می دهید. هزینه دوم جست وجو است؛ گوگل رسما اعلام کرده شاخص های سرعت صفحه، همان مجموعه ای که به نام Core Web Vitals شناخته می شود، یکی از سیگنال های رتبه بندی است و صفحه های کند در نتایج پایین تر می نشینند. هزینه سوم و کم دیده شده، خود کار روزمره است: پنل مدیریت کند، ذخیره کردن مطلب با معطلی، و بارگذاری عکس محصول که با هر بار آپلود وقت می برد.
برای اینکه بدانید سایت شما کجای این داستان است، دو ابزار رایگان کافی است: PageSpeed Insights که گزارش گوگل از سرعت واقعی و آزمایشگاهی می دهد، و Lighthouse که همان ابزار را داخل مرورگر و روی دستگاه خودتان اجرا می کند. اگر می خواهید خودتان بی ابزار عدد بگیرید، همان مقاله اندازه گیری را ببینید.

شش اصلاحی که واقعا عدد را جابه جا می کند
این شش کار به ترتیب اثر مرتب شده اند؛ نه به ترتیب شهرت. هیچ کدام هم دستور جادویی نیست، ولی هر کدام یک عدد مشخص را عوض می کند.
یک: تصویرها را سبک کنید
تصویر سنگین، هم زمان دانلود را بالا می برد و هم حافظه دستگاه کاربر را پر می کند. دو کار ساده بیشترین اثر را دارد. اول، عکس را با قالب مدرن ذخیره کنید، مثل WebP که در مقایسه با تصویر معمولی حجم بسیار کمتری می دهد: تبدیل تصویر های سایت خودمان به قالب جدید و کاهش کیفیت تا حدی که چشم تفاوت را نبیند، وزن یک مقاله را از ۷٬۲۳۴ کیلوبایت به ۵٬۱۲۲ کیلوبایت و زمان بارگذاری اش را از ۲٫۴۹ ثانیه به ۱٫۴۲ ثانیه رساند. دوم، عرض عکس را به اندازه واقعی جای نمایشش بگیرید؛ عکسی که ۱٬۶۰۰ پیکسل عرض دارد و در قالب در قابی ۸۰۰ پیکسلی نشان داده می شود، دو برابر اندازه لازم دانلود می شود.
دو: کش مرورگر و کش صفحه را روشن کنید
کش یعنی این پاسخ که امروز ساخته شده، فردا از نو ساخته نشود. دو نوع کش هست. کش مرورگر روی رایانه بازدیدکننده ذخیره می شود و وظیفه اش این است که لوگو، قالب و فایل های ثابت فقط یک بار دانلود شوند. کش صفحه روی سرور ذخیره می شود و وظیفه اش این است که صفحه آماده در انبار بماند و هر بازدید، دوباره ساخته نشود. روی وردپرس، افزونه های شناخته شده این کار LiteSpeed Cache و WP Rocket و W3 Total Cache هستند؛ بعضی میزبان ها هم کش سرور را خودشان ارائه می دهند که بهتر از هر افزونه ای است چون پیش از رسیدن درخواست به برنامه اعمال می شود.
نکته ای که زیاد اشتباه می شود: کش و سرعت دو چیز جدا هستند ولی اگر کش را روشن کنید و بعد فراموش کنید آن را پاک کنید، بعد از هر تغییر ظاهری سایت، خودتان نسخه قدیمی را می بینید و گمان می کنید تغییر اعمال نشده.
سه: پاسخ سرور را فشرده کنید
فشرده سازی یعنی متن صفحه پیش از رفتن به مرورگر کوچک شود. روی همین سایت، فشرده سازی متن مقاله را از ۱۷۴٬۴۶۷ بایت به ۴۰٬۹۷۵ بایت رساند، یعنی ۷۷ درصد کمتر. صفحه اصلی از ۱۷۱٬۹۷۷ به ۲۸٬۱۹۶ بایت رسید که روی هم ۸۴ درصد کمتر است و صفحه خدماتی از ۱۱۵٬۶۱۴ به ۲۸٬۶۷۶ بایت، یعنی ۷۵ درصد کمتر. علامت فعال بودن آن این است که در هدر پاسخ، مقدار فشرده سازی روی حالت فشرده باشد؛ روی سرور آپاچی این کار با یک خط تنظیم انجام می شود.
چهار: اسکریپت ها و افزونه های سنگین را کنار بگذارید
هر افزونه ای که روشن است، مقداری جاوااسکریپت و استایل به همه صفحه ها اضافه می کند، حتی صفحه هایی که به آن افزونه کاری ندارند. یک اسلایدر، یک افزونه آمارگیر، یک افزونه شبکه اجتماعی و چند افزونه ظاهری روی هم می توانند چند صد کیلوبایت به هر صفحه اضافه کنند. کاری که توصیه می کنیم: فهرست افزونه های فعال را بنویسید و برای هر کدام یک سؤال بپرسید که این افزونه امروز چه کاری برای مشتری انجام می دهد. آنچه پاسخ روشنی ندارد، خاموش شود. نکته مهم تر اینکه خاموش کردن افزونه آخرین کار باشد نه اولین کار، چون ریسک به هم ریختن سایت دارد.
پنج: میزبان و زمان پاسخ سرور
اگر چهار کار بالا را انجام داده اید و اولین بایت هنوز بالای یک ثانیه می ماند، کار از داخل سایت گذشته است. اندازه گیری خودمان از سایت خودمان اولین بایت را ۶۴۵ تا ۶۸۶ میلی ثانیه نشان داد و آستانه ای که گوگل توصیه می کند زیر ۰٫۸ ثانیه است؛ یعنی سایت ما روی مرز است. در این حالت گزینه ها اینهاست: هاست سبک تر و به روزتر، پایگاه داده کوچک تر با پرس و جو های بهینه، و کم کردن کار سنگین هنگام نمایش صفحه. در سطح انتخاب میزبان، تفاوت دو سرور نزدیک به هم به اندازه تفاوت یک بیت و بایت نیست بلکه در حافظه، نوع دیسک و شلوغی سرور است؛ تفاوتشان را در راهنمای انواع هاست و انتخاب آن نوشته ایم.
شش: شبکه توزیع محتوا (CDN)
اگر بازدیدکننده های شما در شهر ها یا کشور های مختلف پخش شده اند، نسخه ای از فایل های ثابت سایت روی سرور های نزدیک تر به کاربر گذاشته می شود تا فاصله فیزیکی کوتاه تر شود. برای سایتی که همه مشتریانش در یک شهر هستند، این کار کمترین اثر را دارد و بهتر است اول چهار کار بالا انجام شود.
بخش بزرگی از کندی سامانه ها از پرس وجوهای بدون ایندکس است؛ این موضوع را با عدد اندازه گیری شده در «دیتابیس چیست» توضیح دادیم.
جدول تصمیم: کدام کار را خودتان انجام بدهید، کدام را سفارش بدهید
| کار | خودتان انجام بدهید اگر | بسپارید به کسی اگر |
|---|---|---|
| سبک کردن تصویرها | پنل مدیریت سایت را می شناسید و عکس هر محصول را می توانید جایگزین کنید | چند صد تصویر قدیمی دارید یا نمی دانید اندازه درست هر کدام چقدر است |
| روشن کردن کش | افزونه کش را می توانید نصب و تنظیم کنید و یکی دو صفحه را آزمایش کنید | سایت فروشگاهی است و خطای کش می تواند سبد خرید را خراب کند |
| فشرده سازی پاسخ | به پنل هاست و تنظیمات سرور دسترسی دارید | دسترسی سرور ندارید و باید از پشتیبانی هاست بخواهید |
| کم کردن افزونه ها | می دانید هر افزونه چه کاری می کند و سایت را بعد از هر خاموشی آزمایش می کنید | افزونه ها به هم وابسته اند و خاموش کردن یکی، بخشی از سایت را از کار می اندازد |
| تغییر میزبان یا سرور | تجربه انتقال سایت و پایگاه داده را دارید | سایت فروشگاهی زنده است؛ انتقال اشتباه آن یک روز فروش را می برد |
| شبکه توزیع محتوا | بازدید بین المللی دارید و تنظیم پیشرفته آن را می شناسید | بازدیدها محدود به ایران است؛ این کار اولویت شما نیست |
یک قاعده ساده بالای این جدول بگذارید: کاری که برگشت پذیر است و انجامش را بلدید، خودتان انجام بدهید؛ کاری که برگشت پذیر نیست یا شبانه روز فروشگاه را متوقف می کند، سفارش بدهید. تغییر میزبان و کار روی پایگاه داده بیشترین ریسک را دارند و دقیقا به همین دلیل آخرین کار فهرست اند.
معیار پذیرش: با چه عددی می گوییم کار تمام شده است
بدون عدد، کار سرعت هیچ وقت تمام نمی شود. این جدول همان چیزی است که باید پیش از شروع کار به آن توافق کنیم و در پایان با همان اندازه گیری شود. ستون آخر از مستندات رسمی گوگل گرفته شده است.
| شاخص | عدد پذیرش | چه چیزی را می سنجد |
|---|---|---|
| اولین بایت پاسخ سرور | زیر ۰٫۸ ثانیه | سرعت پاسخ میزبان پیش از رسیدن هر بایتی به کاربر |
| بزرگ ترین عنصر صفحه | زیر ۲٫۵ ثانیه | زمانی که بزرگ ترین تصویر یا متن صفحه کامل نمایش داده می شود |
| پاسخ دهی به کلیک | زیر ۲۰۰ میلی ثانیه | فاصله بین کلیک کاربر و دیدن واکنش صفحه |
| جابه جایی ناخواسته صفحه | زیر ۰٫۱ | پریدن محتوا هنگام لود شدن، که روی موبایل کلید اشتباهی می زند |
| وزن صفحه اصلی | کمتر از یک مگابایت | جمع دانلود اولیه صفحه بدون کش |
| فشرده بودن پاسخ | روشن | ارسال متن صفحه به شکل فشرده به مرورگر |
روش کار درست این است که پیش از شروع، همین جدول را با عدد امروز خودتان پر کنید و در پایان دوباره اندازه بگیرید. اگر عددی جا به جا نشد، آن کار انجام نشده است، حتی اگر ظاهرا انجام شده باشد.
با یک دستور، قبل و بعد را بسنجید
برای اینکه ادعای هر تغییر را با عدد بسنجید، دستور زیر را دو بار اجرا کنید: یک بار پیش از تغییر و یک بار پس از آن. این دستور فقط یک عدد برمی گرداند و همان برای مقایسه کافی است.
for i in 1 2 3; do
curl -s -o /dev/null \
-w "ttfb %{time_starttransfer}\n" \
https://your-site.ir/
done
سه بار پشت سر هم اجرا می شود تا عدد پرت را ببینید. مهم نیست عدد دقیقا چند است؛ مهم این است که پیش و پس را با همین دستور و در شرایط مشابه بگیرید. اگر پیش از تغییر ۱٫۴ ثانیه بوده و بعد ۱٫۱ شده و شما تصویرها را سبک کرده اید، تصمیم درستی گرفته اید. اگر عدد پس از تغییر بدتر شد، همان تغییر را برگردانید.
چه کاری در دامنه کار ما نیست
صادقانه بگوییم، بخشی از کار هایی که نامشان سرعت است، کار ما نیست یا نتیجه اش قابل دفاع نیست. نوشتن برنامه اختصاصی برای کاهش چند میلی ثانیه زمانی بهینه نیست. کوچک کردن کد قالب بندی در حد چند کیلوبایت، وقتی تصویرها دو مگابایت اند، اولویت نیست. تضعیف امنیت برای سرعت، مثل باز گذاشتن دسترسی ها یا خاموش کردن بازبینی، هیچ وقت توصیه نمی شود. و شبکه توزیع محتوا برای سایتی که همه بازدیدکننده هایش از یک استان هستند، پول هدر دادن است.
آنچه در دامنه کار ماست ساختن سایت از ابتدا روی پایه سبک است: قالب سبک، تصویر های فشرده در همان تولید، بدون افزونه های اضافه و با کش سرور از روز اول. اگر سایت فعلی شما روی پایه سنگین بنا شده و اصلاحش گران تر از ساخت دوباره است، این هم چیز بدی نیست ولی وقتی به آن می رسیم با عدد نشانش می دهیم. بخش بهینه سازی محتوایی، مثل عنوان و ساختار و پیوند های داخلی، سمت دیگری از سئو است و در راهنمای بهینه سازی سایت و سنجش نیم ساعته جداگانه نوشته شده است.
هزینه و نفر-ساعت: چه چیزی قیمت را تعیین می کند
هزینه سرعت یک رقم ثابت نیست و به سه چیز بسته است: تعداد صفحه، تعداد تصویر و دسترسی شما به سرور. سایتی با بیست مقاله و پانصد تصویر، روزها کار تصویر دارد؛ سایتی با یک صفحه فرود، یک ساعت. برای اینکه پیش فاکتور قابل بررسی باشد، این چهار مورد را در آن بخواهید: فهرست کارها با ترتیب و زمان هر کدام، سهم نفر-ساعت در برابر کار ماشینی، عدد پیش و پس برای هر شاخص، و مشخص کردن اینکه کدام کار در قرارداد نیست.
یک هشدار عملی هم بدهیم: اگر پیش فاکتوری دیدید که در آن «تضمین صدر گوگل» یا «تضمین رسیدن به عدد مشخص» نوشته شده، آن وعده را باور نکنید. ما هم چنین وعده ای نمی دهیم، چون سرعت یکی از ده ها عاملی است که نتیجه نهایی را می سازد. چیزی که می توان تضمین کرد این است: عدد پیش و پس با همان دستور، و تحویل فهرست کار های انجام شده. اگر مرحله اول سرعت را جای خودش می بینید، صفحه طراحی سایت در شیراز نقطه شروع ماست و پیش از هر چیز با اندازه گیری شروع می کنیم.

جمع بندی
سرعت سایت با ترتیب درست و عدد قابل اندازه گیری ساخته می شود، نه با فهرست بلند کار. تصویر سبک، کش روشن، پاسخ فشرده و افزونه کمتر، چهار کاری است که در بیشتر سایت ها نتیجه می دهد؛ اگر جواب نداد، مسئله به میزبان و زمان پاسخ سرور می رسد و آنجاست که باید تصمیم گرفت کدام کار را خودتان انجام بدهید و کدام را سفارش بدهید. کاری که از شما لازم است و از امروز می توانید انجام بدهید این است: یک بار همین دستور را روی سایت خودتان اجرا کنید و عدد اولین بایت را بنویسید؛ همان یک عدد، نقطه شروع گفت و گو درباره سرعت است.

ارسال نظر جدید