ابزار PageSpeed Insights گوگل، ابزاری ساده برای سنجش سرعت یک صفحه است و به شما می‌گوید که آیا عملکرد صفحه‌ای کندتر از چیزی است که باید باشد یا خیر.
این ابزار متناسب با کمیت عملکرد صفحه به شما امتیاز می‌دهد. از آنجایی که امتیاز PageSpeed Insights واقعی است، معیاری برای اندازه‌گیری عملکرد سایت است. سال‌های پیش نیز افراد فقط به دلیل وجود پیج رنک PageRank می‌خواستند تا نمره آن را بهینه کنند. در واقع Moz مقاله‌ای مشهور در این زمینه دارد : چگونه در Google Page Speed Test Tool به امتیاز ۱۰۰ برسیم؟

می‌توان این کار را برای سایت‌ های کوچکی که بر روی CMSهای متداول وجود دارند (مثلاً WordPress) انجام داد. PageSpeed Insights مکانی عالی برای شروع است. دستیابی به نمره کامل برای اکثر سایت‌ها واقع‌گرایانه نیست؛ پس از کجا باید شروع کنیم؟ برای جواب در این مقاله آموزش سئو با ما همراه باشید.

این پست درباره این موضوع است و می‌خواهم در آن سه نکته را بیان کنم :

  • تاخیر در زمان بارگذاری می‌تواند بیشتر از پهنای باند آسیب زننده باشد
  • امتیازهای PageSpeed Insights نباید دارای ارزش رسمی باشند
  • بهبود با اندازه‌گیری، تنظیم هدف و اولویت‌بندی آغاز می‌شود

این مطلب را با تجربیاتی که در ذهن دارم می‌نویسم و بیشتر بر روی جنبه‌های فنی تاکید دارم. شما نیز باید دید وسیعی داشته باشید تا بتوانید سوالات خوبی را مطرح کنید و در نتیجه توصیه‌های بهتری را نیز ارائه دهید.

سلب مسئولیت : HTTP2 برخی از مشکلات مطرح شده در این مطلب را بهبود بخشیده است. مخصوصاً که ارسال درخواست‌های متعدد به یک سرور در آن کمتر مشکل‌ساز است.

تاخیر در زمان بارگذاری می‌تواند بیشتر از پهنای باند آسیب زننده باشد

ممکن است با نگاه اول به قوانین PageSpeed Insights فکر کنید که همه کارایی آن در مورد مهیا کردن و ارسال بایت کمتر به کاربر است. کم کردن، بهینه‌ سازی، فشرده‌سازی.
مساله سایز فقط نیمی از داستان است. مساله مدت زمانی که طول می‌کشد تا درخواست به سرور برسد و مدت زمانی که طول می‌کشد تا سرور به شما پاسخ دهد، نیز هست.

زمانی که درخواستی را ارسال می‌کنید چه اتفاقی رخ می‌دهد؟

اگر کاربری یک URL را در نوار آدرس مرورگر وارد کند و اینتر را بزند، درخواست ارسال می‌شود. هنگامی که این درخواست ارسال می‌شود اتفاقات بسیاری رخ می‌دهند. آخرین قسمت آن انتقال محتوای درخواست شده است. فقط این آخرین بیت است که تحت تاثیر پهنای باند و سایز محتوا است. انجام یک درخواست کم و بیش به این گام‌ها نیاز دارد :
– پیدا کردن سرور
– اتصال به سرور
– منتظر ماندن برای پاسخ
– دریافت پاسخ

هر کدام از این گام‌ها زمان‌بر است. سه تای اولی از سایز فایل مستقل بوده و بخشی ثابت از این فرآیند هستند. همه این ۳ بخش صرف‌نظر از اینکه آیا یک فایل کوچک CSS می‌خواهد بارگیری شود یا یک فایل بزرگ از یک تصویر فشرده‌نشده با هر درخواست همراه هستند.

چرا دریافت پاسخ زمان‌بر است؟

عاملی که نمی‌توانیم از آن اجتناب کنیم این است که سیگنال‌های شبکه نمی‌توانند سریع‌تر از سرعت نور حرکت کنند. این یک حداکثر تئوریک است، در واقع مدت زمان بیشتری طول می‌کشد تا داده انتقال پیدا کند. برای مثال برای نور ۴۰ms طول می‌کشد تا از پاریس تا نیویورک را طی کند. اگر دو برابر این زمان برای داده طول بکشد تا اقیانوس اطلس را درنوردد، حداقل زمانی که طول می‌کشد تا پاسخی از سرور دریافت شود ۸۰ms است.

به همین دلیل است که معمولاً از CDNها استفاده می‌شود. CDNها سرورها را از لحاظ فیزیکی به کاربر نزدیک‌تر می‌کنند که این تنها راه کاهش زمان دسترسی به سرور است.

این مساله چقدر مهم است؟

زندگی یک درخواست که توسط Chrome Dev Tools اندازه‌گیری شده است.

سایت های سریع تر

همه مقادیری که در جعبه قرمز وجود دارند، چیزهایی هستند که من آن‌ها را ” تاخیر ” تلقی می‌کنم. مجموع کلی آن‌ها حدود ۲۲۰ms است. انتقال واقعی محتوا ۰٫۷ms طول می‌کشد. هیچ فشرده‌سازی یا کاهش سایز فایل نمی‌تواند این مقدار را بهبود ببخشد، تنها راه کاهش مدت زمان پاسخ به درخواست کاهش ” تاخیر ” (latency) است.

آیا باید برای بارگذاری یک صفحه درخواست‌های زیادی ارسال کنیم؟

بیش از یک درخواست برای بارگذاری همه محتواهای ضروری و رندر کردن یک صفحه نیاز است. اگر URL مربوط به یک صفحه وب باشد، معمولاً مرورگر می‌فهمد که برای رندر کردن صفحه به بارگذاری منابع بیشتری نیاز است. این منابع می‌توانند CSS، JavaScript یا فایل‌های فونت باشند. برای بارگذاری هر کدام از این فایل‌ها باید مراحلی که در بالا ذکر شد طی شود.

خوشبختانه زمانی که سرور پیدا شود (“DNS Lookup” در تصویر بالا) نیازی نیست که مرورگر دوباره آن را بازبینی کند. هنوز هم نیاز به برقراری ارتباط است و هنوز هم باید صبر کنیم تا پاسخی دریافت شود.

مروری بر تست‌های PageSpeed Insights

همه ارزیابی‌های PageSpeed Insights چیزهایی که بر روی سرعت سایت تاثیر می‌گذارند را پوشش می‌دهند. پیاده‌سازی برخی از آن‌ها در سایت‌ های بزرگ آسان نیست و ممکن است بسته به طراحی سایت‌ برخی از آن‌ها از برخی دیگر تاثیرگذارتر باشند. این موضوع بدین معنا نیست که می‌توانید بهانه‌ای برای انجام ندادن این کارها داشته باشید، همه این‌ها بهترین شیوه‌ها بوده و کمک کننده هستند اما تصویری کلی از سرعت سایت ارائه نمی‌دهند.

با توجه به این موضوع در اینجا برخی از قوانین PageSpeed Insights را بازخوانی می‌کنیم.

تست‌هایی که بر روی کاهش استفاده از پهنای باند تمرکز داشته‌اند

قانون بازخوانی
بهینه سازی تصاویر ممکن است اگر تصاویری با سایز بسیار بزرگ داشته باشید، این مساله مهمی نباشد. این تست کمک می‌کند تا بفهمید که آیا می‌توان تصاویر را بیش از این فشرده کرد یا خیر. اما هیچ ارتباطی با بارگذاری بیش از حد آن‌ها ندارد.
فعال کردن فشرده‌سازی فشرده‌سازی آسان است. باید از آن استفاده کنید. همچنین ممکن است تغییر زیادی ایجاد نکند مگر اینکه برای مثال با بارگذاری فایل‌های بزرگ JavaScript سر و کار داشته باشید.
کوچک‌سازی HTML نهایت کاهش سایزی که می‌توانیم داشته باشیم تا ده‌ها کیلوبایت است. تاخیر تاثیر بسیار بیشتری از سایز پاسخ دارد.
کوچک‌سازی CSS نهایت کاهش سایزی که می‌توانیم داشته باشیم تا ده‌ها کیلوبایت است. تاخیر تاثیر بسیار بیشتری از سایز پاسخ دارد.
کوچک‌سازی JS مطمئناً به اندازه تبدیل  JS به یک فایل برای کاهش تعداد درخواست‌ها اهمیت ندارد.

 

تست‌هایی که بر روی کاهش تاخیر تمرکز داشته‌اند

قانون بازخوانی
استفاده از ذخیره‌سازی مرورگر (browser caching) قطعاً اجازه می‌دهیم تا فایل‌های خودمان cache بشوند. احتمالاً بسیاری از فایل‌هایی که می‌توانند از مزایای caching (ذخیره‌سازی) استفاده کنند بر روی سرورهای شخص ثالث میزبانی می‌شوند. شما باید خودتان آن‌ها را میزبانی کنید تا بتوانید تعداد دفعات نیاز به cache را تغییر دهید.
کاهش مدت زمان پاسخ‌گویی سرور آستانه در PSI بسیار بالاست و به جای اینکه ببیند چه مدت زمانی طول می‌کشد تا سرور هنگام دریافت درخواست پاسخ دهد، همچنین تلاش می‌کند تا تاخیر فیزیکی سرور را کاهش دهد.
اجتناب از ریدایرکت کردن صفحات فرود بله.
حذف جاوا اسکریپت و CSSهای render-blocking در محتوا نگرانی به جایی است اما می‌تواند به صورت نا امید کننده‌ای سخت باشد. نداشتن درخواست‌ در بارگذاری بالای صفحه اول برای رندر کردن محتوا و دستیابی به اهداف عملکرد ضروری نیست.
اولویت‌بندی محتوای قابل مشاهده در واقع به نوعی مهم است.

این‌ها را به عنوان آخرین دستاوردها در عملکرد سایت حساب نکنید. مستقل از این تست‌ها چیزهایی برای تفکر وجود دارد. برخی به هیچ عنوان توسط PageSpeed Insights پوشش داده نشده‌اند و برخی به صورت نصفه و نیمه پوشش داده شده‌اند :

  • Caching (ذخیره‌سازی) محتوای تحت کنترل
  • کاهش میزان محتوایی که از دامنه‌های شخص ثالث بارگذاری می‌کنید.
  • کاهش مدت زمان پاسخ‌گویی سرور فراتر از حداقل لازم برای قبولی در تست PageSpeed Insights.
  • نزدیک‌تر کردن سرور به کاربر نهایی که اساساً با استفاده از CDN انجام می‌شود.
  • کاهش درخواست‌های مسدودسازی. اطمینان از اینکه از HTTP2 استفاده می‌کنید در اینجا کمک کننده است.

چگونه شروع به بهبود کنیم

اندازه‌گیری

اسکرین‌شاتی که در این پست استفاده شده از Chrome DevTools است. این ابزار در مرورگر تعبیه شده و به شما اجازه می‌دهد تا اتفاقاتی که هنگام بارگذاری صفحه می‌افتد را رصد کنید.

به جای اعتماد به Pagespeed Insights tool، فراتر رفته و صفحه خود را در Chrome بارگذاری کنید و ببینید چه عملکردی دارد. ببینید چه درخواست‌هایی زمان بیشتری می‌گیرند. پاسخ اغلب واضح است : برای مثال، زمان زیادی صرف بارگذاری تبلیغات می‌شود.

تنظیم هدف

اگر هدفتان دستیابی به امتیاز کامل PageSpeed Insights نیست، باید هدف خود را مشخص کنید. این مساله مهم است زیرا این امکان را فراهم می‌کند که عملکرد فعلی خود را با آن هدف مقایسه کنید. می‌توانید ببینید که آیا کاهش ملزومات مورد نیاز پهنای باند موجب نزدیک شدن به هدفتان می‌شود یا انجام کاری که باعث کاهش تاخیر شود (از CDN استفاده کنید که به درخواست‌های کم‌تری رسیدگی کرده و محتواهای با اولویت بیشتر را اول بارگذاری می‌کند).

اولویت‌بندی

اولویت‌بندی بر اساس سرعت صفحه مهم است – این تنها نوع اولویت‌بندی نیست. اولین سوالی که مطرح می‌شود این است که به بارگذاری چه چیزهایی نیاز است. تلاش PageSpeed Insights بر این است که بفهمد آیا محتواهای خود را به درستی اولویت‌بندی کرده‌اید یا خیر. این هدفی عالیست، اما ارزیابی آن کامل نیست، جداسازی محتواهای ضروری و غیر ضروری باید ساده‌تر باشد.

برای مثال اگر سایت‌ تان وابسته به درآمد تبلیغات است، باید ابتدا همه محتوای صفحه را بارگذاری کنید و سپس شروع به بارگذاری تبلیغات کنید. پیدا کردن اینکه چگونه می‌توان خدمت کمتری کرد چالشی است که توسط شما و تیم‌تان بهتر حل می‌شود. در نهایت اینکه PageSpeed Insights راه حلی مناسب برای همه این مشکلات است.

نتیجه‌گیری

خلاصه این مطلب این بود که PageSpeed Insights می‌تواند مفید باشد، اما راه‌هایی هوشمندانه‌تر برای ارزیابی و بهبود سرعت سایت نیز وجود دارند. گرفتن امتیاز کامل لزوماً نشان‌دهنده یک سایت سریع نیست.

اگر می‌خواهید در این زمینه مطالب بیشتری را یاد بگیرید توصیه می‌کنم که به سایت Ilya Grigorik سری بزنید، همچنین می‌توانید این مقدمه قدیمی اما خوب را نیز مطالعه کنید. Grigorik یکی از مهندسان عملکرد وب در گوگل و یکی از بهترین متخصصان در زمینه مشکلات سرعت سایت است.

منبع : سایت MOz.COM Faster Sites: Beyond PageSpeed Insights