اگر از همراهان همیشگی پرشین تولز هستید، حتماً مقاله قبلی در مورد رفع خطاهای سایت به کمک GTmetrix را خواندهاید! در این مقاله هم قصد داریم به بررسی ادامه این بحث بپردازیم تا بتوانید با افزایش سرعت سایت، وضعیت سئوی سایت خود را بهبود ببخشید و رضایت کاربران را هم جلب کنید.
رفع خطای Avoid CSS @import در GTmetrix
یکی دیگر از خطاهایی که معمولاً ممکن است در هنگام تست سرعت سایت با GTmetrix با آن مواجه شوید، Avoid CSS @import است. در واقع نمیشود گفت که این پیغام نشانی از خطا دارد، بلکه به شما گفته میشود که سعی کنید از ایمپورت کردن یک فایل در فایلهای دیگه به این شیوه دوری کنید و از روش استاندارد استفاده کنید. در سایتهای فارسی مجبور هستیم تا از فونتهای فارسی استفاده کنیم که سایت ما حسابی با تغییر فونت دگرگون شود. برخی افراد به صورت اشتباه داخل همان صفحه HTML فونتی که مد نظر است را با استفاده از import@ فراخوانی میکنند که این کار اشتباه است.
در آموزش رفع خطای Enable Keep Alive دیدیم که برای این که سایت با سرعت بیشتری لود شود، بهتر است کاری کنیم که فایلهایی با فرمت یکسان مثل css.، js.، تصاویر و… به صورت همزمان شروع به بارگذاری کنند و به صورت تکی این فایلها را از سرور برای مرورگر بفرستیم!
اکنون وقتی ما با استفاده از دستور import@ فایلی رو در صفحه فراخوانی کنیم، تا زمانی که فایل اولیه که مکمل فایلهای بعدی هم است و در آن فایلهای دومی فراخوانی شده است لود نشده باشند و فایلهای دوم بارگذاری شده باشند، این کار باعث میشود که بعد از بارگذاری فایل اولیه مجدد فایلهایی که در این فایل فراخوانی شدند، شروع به لود کنند. برای همین تعداد درخواست HTTP بالا میرود و سرور هم مجدداً باید به درخواست مرورگر پاسخ دهیم و مجدداً باید فایلها را برای مرورگر ارسال کند تا صفحه به صورت کامل لود شود. برای نمونه اگر فایل استایلی رو به این روش بخواهیم در جایی فراخوانی کنیم، از حالت زیر استفاده میکنیم.
@import url("site.com/css/style.css")
بنابراین بهتر است از این روش دوری کنیم و مستقیماً کاری کنیم که فایلها به صورت همزمان و در یک خط شروع به دانلود کنند؛ نه این که یک فایلی وابسته به فایلهای دیگر باشد که تا وقتی آن فایل بارگذاری نشده شروع به لود شدن نکند. برای این کار میشود متاتگهایی را استفاده کرد که برای نمونه مثال قبل میشود از کد زیر استفاده کرد
<link rel="style.css" href="style.css" type="text/css">
این حالت استاندارد است و وقتی از این حالت استفاده کنیم در واقع بارگذاری موازی اتفاق میافتد و همزمان فایلهای وابسته که فراخوانی شدند هم شروع به دانلود شدن خواهند کرد. در این صورت دیگر با بارگذاری چند باره و افت سرعت سایت مواجه نخواهید بود.
رفع خطای Defer parsing of JavaScript در GTmetrix
یکی از خطاهای رایجی که هنگام تست سرعت سایت با GTmetrix با آن روبرو میشویم، خطای Defer parsing of JavaScript و Prefer asynchronous resources است که به ما نمایش داده میشود و هر دو مربوط به فایلهای جاوا اسکریپت هستند! برای حل هر دو خطای Prefer asynchronous resources و خطای Defer parsing of JavaScript در جی تی متریکس راهکار یکسانی وجود دارد که در مقالات قبلی به بررسی آن پرداختهایم!
رفع خطای Avoid a character set in the meta tag در GTmetrix
یکی دیگر از خطاهایی که ممکن است موقع تست سرعت سایت با GTmetrix با آن مواجه میشوید و البته خیلی کم به چشم میخورد، خطای Avoid a character set in the meta tag است. این خطا همانطور که از اول عبارت با کلمه Avoid نمایش داده میشود، به این معنی است که شما با یک خط قرمز رو بهرو نیستید و اجباری به رفع آن نیست اما ترجیح داده میشود که آن را برطرف کنید. پیش از اینکه character set utf8 به وجود بیاید، بیشتر سیستمعاملها و کامپایلرهای برنامهنویسی با سیستم قدیمی ASCII کار میکردند. در این سیستم(سیستم اسکی) هر Character یک بایت یا هشت بیت فضا اشغال میکرد. در نتیجه کل کاراکترهای قابل پوشش در این سیستم ۲۵۶ حرف بود. پس این مقدار برای نگهداری زبانهای مختلف کافی نبود. این مسئله باعث شد که character set به وجود بیاید!
کاری که character set در سایت انجام میدهد، این است که به عنوان یک استاندارد بین المللی شناخته شده است و مواردی که مربوط به تبادل اطلاعات چندزبانه بودن یک سایت هستند و البته از قبل تعریف شدهاند، را برطرف میکند. به عبارت دیگر، این استاندارد بین المللی مشخص میکند که بسته به زبان محتویات سایت چطور باید به کاربران نشان داده شوند که این کار توسط مرورگر شناسایی خواهد شد. این استاندارد بین المللی چند نوع مختلف دارد که پر استفادهترین حالت برای UTF-8 است و اگر با HTML آشنا باشید، این مورد را هم میشناسید!
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
اما مشکلی که در این زمینه وجود دارد، این است که در مرورگر اینترنت اکسپلورر مایکروسافت که از نسخه ۸ به پایین مرسوم است، باید از هدر مخصوص به خودش استفاده کنیم تا زمان لود سایت را بهینه کنیم. در این مرورگر و برخی مرورگرهای دیگر این متاتگ در همه صفحات وجود دارد و همیشه با رفتن بازدیدکننده به هر صفحه این مورد از سمت سرور بررسی شده و پس از این که پاسخ مثبت یا منفی ارسال شد، سایت شروع به لود شدن متناسب با این پاسخ خواهد کرد. همین موضوع باعث میشود تا حالتی که در همه صفحات قرار دارد، مشکل آفرین باشد که بهتر است یک بار این مورد از سمت سرور برای کاربر مشخص شده و برای همیشه در این حالت باقی بماند. در مقاله بعدی به ادامه این بحث میپردازیم!