الان که در حال مطالعه این محتوا هستید قطعا در سیستم عاملهای مختلف مثل ویندوز، لینوکس یا اندروید و IOS تجربه استفاده از فایلهایی با فرمت ZIP. رو داشتید. یا براتون اتفاق افتاده که موقع دانلود یک فیلم، برنامه، آلبوم موسیقی و هرچیزی از سایتهای مختلف در بیشتر اوقات فایلها با فرمت zip هستند. شده تا حالا براتون این سوال پیش بیاد که چرا استفاده از این فرمت در سایتهای دانلودی خیلی مرسوم هست؟ دلیل انجام این کار به خاطر کاهش حجم فایل هست، چرا که وقتی فایلی رو zip میکنید فشرده شده و تا حد قابل توجهی حجم فایل کمتر میشه. این کار هم برای سایت مورد نظر دارای مزیت هست که حجم کمتری از سرور و هاست رو اشغال میکنه و هم برای کاربری که در حال دانلود فایلها هست ترافیک کمتری خواهد برد. استفاده از Gzip در سایت هم درست به همین دلیل هست و باعث کاهش حجم فایلها و افزایش سرعت سایت میشه که توی این اموزش میخوام نحوه رفع خطای Enable gzip compression در GTmetrix رو آموزش بدم.
توی این آموزش اول به این موضوع که اصلا Gzip چی هست و آیا لازمه که ازش استفاده کنیم پرداخته و سپس به معرفی راهکارهای مختلف برای فعال سازی gzip در هاست و انواع سرور میپردازم.
Gzip چیست؟ و چه کاربردی داره؟
حتما با فرمتهای فشرده سازی zip و rar که برای کاهش حجم فایلهاتون از این فرمتها استفاده میکنید آشنایی دارید. gzip هم دقیقا کارکردی مشابه این نرمافزارها و فرمتها داره که با استفاده از الگوریتم مورد استفاده توسط همین روش فشردهسازی برای کاهش حجم صفحات سایتها مورد استفاده قرار میگیره که اونو با نام gzip میشناسیم. امروزه همه مرورگرها از این قابلیت پشتیبانی میکنند. وقتی وارد سایتی میشید مرورگر ابتدا درخواستی رو ارسال میکنه که مشخص بشه که gzip روی این سرور فعال هست یا خیر. اگر پاسخ به این درخواست مثبت بود و از سمت سرور هم مشخص شد که مرورگر از این قابلیت پشتیبانی میکنه، سرور شروع به ارسال فایلها با فرمت فشرده شده به مرورگر میکنه. اما اگر پاسخ منفی باشه فایلها با حجم عادی ارسال میشن که در حالت فشرده نبوده و به دلیل بالا بودن حجم فایلها هم سرعت سایت شما پایین خواهد بود.
وقتی کاربری وارد سایت شما میشه درخواست برای دریافت اطلاعات سایت در مرورگر برای سرور ارسال شده و بعد از اینکه سرور به این درخواست پاسخ مثبت داد فایلها شروع به بارگذاری میکنند. حالا هرچه حجم این فایلهای استفاده شده در صفحات بیشتر باشه زمان بیشتری صرف لود کامل سایت خواهد شد. بنابراین باید حجم صفحات خودمون را با استفاده از gzip کاهش بدیم تا در مدت زمان کوتاهتری یک صفحه وب برای کاربر لود شده و در دسترس قرار گیرد. با استفاده از gzip کلیه فایلهای مربوط به html، css و جاوا اسکریپت فشرده شده و کدهای تکراری اون نادیده گرفته میشوند که در نهایت منجر به افزایش سرعت سایت خواهد شد.
در فایلهایی که مربوط به برنامه نویسی هستند کدها به کاراکترهای خلاصهتر و کوتاهتر با استفاده از فناوری فشرده سازی حجم صفحات تبدیل خواهند شد. به عنوان نمونه اگر فایل شما حاوی متنی باشه که عبارت MM I ZZZZZ BB A nnn f AAA در اون درج شده باشه که شامل 25 کاراکتر هست، به صورت خلاصه شده تبدیل شده و به شکل 3M I 5Z 2B A 3n f 3A برای مرورگر ارسال خواهد شد که تا 5 کاراکتر(با احتساب فاصله) خلاصه شده است. سپس مرورگر که از قابلیت Gzip پشتیبانی میکنه این موضوع رو درک کرده و کدها را در حالت استاندارد پردازش و در نهایت ساختار یک سایت رو به درستی نمایش خواهد داد.
آنالیز و بررسی فعال بودن Gzip
قبل از اینکه به روشهای استفاده از gzip بپردازم پیشنهاد میکنم برای اینکه واقعا ببینید gzip تا چه میزان در افزایش سرعت سایت وردپرس تاثیرگذار خواهد بود یک بار سایت خودتون را که از gzip استفاده نشده آنالیز و بررسی کنید. برای این منظور به وبسایت checkgzipcompression.com مراجعه کنید و سپس مشابه چیزی که در تصویر زیر مشاهده میکنید آدرس کامل سایت خودتون را در فیلد مربوطه وارد کرده و روی آیکون جستجو کلیک کرده و منتظر بمونید تا سایت آنالیز شده و بر اساس افزونههای وردپرس و قالبی که از اون استفاده میکنید به شما بگه که با استفاده از Gzip تا چه میزان قادر هستید تا حجم صفحات خود را کم کنید.
از اونجایی که Gzip بر روی سرورهای هاست میزبانفا فعال است در تستی که انجام دادم 28.1 درصد از حجم صفحات من در مجموع کم خواهد شد. اما بر روی هاستی که gzip فعال نباشه تا 70 درصد هم میشه حجم صفحات را کم کنید.
یکی دیگه از روشهای بررسی هم با استفاده از خود مرورگر هست که میتونید با راست کلیک کردن در صفحه سایت و انتخاب گزینه Inspect Element سورس صفحات رو ببینید. سپس مشابه تصویر زیر روی سربرگ Network کلیک کرده و حالا یک بار سایت رو بدون بستن پنجره Inspect Element رفرش کنید. در صورتی که content-incoding: gzip رو مشاهده کردید نشون دهنده فعال بودن Gzip در سایت هست.
از این بخش میتونید میزان فشرده سازی فایلها را به صورت قبل و بعد هم مشاهده کرده و مقایسه کنید. برای این کار هم کافیه روی نمایش به صورت ردیفی کلیک کرده و از ستون Size میزان فشرده سازی برای هر فایل رو ببینید.
رفع خطای Enable gzip compression در GTmetrix
برای رفع خطای Enable gzip compression در جی تی متریکس کافیه قابلیت Gzip رو در سایت فعال کنید که در ادامه به معرفی روشهای فعال سازی gzip در سایتها و وب سرورهای مختلف میپردازم.
فعال سازی Gzip در وردپرس
برای این کار میتونید هم با استفاده از افزونه و هم با استفاده از کدنویسی اقدام به فعال کردن Gzip در سایت وردپرسی بکنید. روشهای مختلفی برای فعال سازی در وردپرس وجود داره که در روش کدنویسی باید کدها رو داخل فایل htaccess. قرار بدین. برای این منظور میتونید از مقاله آموزش نحوه فعال سازی gzip در وردپرس استفاده کنید.
فعال سازی Gzip در سرور آپاچی
برای این منظور بسته به کنترل پنل هاست سیپنل و دایرکت ادمین که استفاده میکنید ابتدا باید وارد File Manager هاست خود شوید.
مشابه تصویر بالا با کلیک روی گزینه File Manager در هاست سی پنل وارد محیط مدیریت فایلها در هاست خواهید شد، حالا به مسیری که وردپرس را در سایت نصب کردید وارد شوید. اگر وردپرس روی دامنه شما نصب شده کافیه به مسیر /public_html/مراجعه کنید و به دنبال فایلی با نام htaccess. بگردید. اما اگر اقدام به نصب وردپرس در ساب دامنه و یا ساب فولدر کردید کافیه تا به مسیر مورد نظر که وردپرس در اون پوشه نصب شده مراجعه کنید و دنبال فایل htaccess. بگردید.
فایل htaccess. جزو فایلهای مخفی در هاست است که ممکنه در اولین ورودتون به هاست قادر به مشاهده اون نباشید. بنابراین در همین مسیری که قرار دارید روی دکمه Settings که در بالای صفحه در سمت راست قرار داره کلیک کنید تا پنجره زیر برای شما باز شود. سپس تیک گزینه Show Hidden Files را انتخاب کرده و در نهایت روی دکمه Save کلیک کنید تا تنظیمات ذخیره شود.
حالا قادر به مشاهده فایل htaccess. هستید و میتونید تا با راست کلیک کردن و انتخاب گزینه Edit این فایل را ویرایش کنید و کدهای زیر را در مکان مناسبی از فایل اضافه کنید. پیشنهاد میکنم تا کدهای زیر را در انتهای این فایل قرار بدین تا تداخلی با سایر کدها ایجاد نشود.
<IfModule mod_deflate.c>
# Compress HTML, CSS, JavaScript, Text, XML and fonts
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE application/x-font
AddOutputFilterByType DEFLATE application/x-font-opentype
AddOutputFilterByType DEFLATE application/x-font-otf
AddOutputFilterByType DEFLATE application/x-font-truetype
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE font/opentype
AddOutputFilterByType DEFLATE font/otf
AddOutputFilterByType DEFLATE font/ttf
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE image/x-icon
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml
# Removing browser bugs for older browsers
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Header append Vary User-Agent
</IfModule>
فعال سازی Gzip در جوملا
برای فعال کردن gzip در جوملا بعد از اینکه وارد بخش مدیریت جوملا شدید به مسیر تنظیمات کلی مراجعه کرده و در تب سرور گزینه فشرده سازی Gzip را فعال کرده و تنظیمات را ذخیره کنید.
امیدوارم که این آموزش هم مورد توجه و پسند شما قرار گرفته باشه و با استفاده از اون تونسته باشید تا نسبت به فعال سازی gzip و رفع خطای Enable gzip compression در GTmetrix اقدام کنید. اگر در رابطه با این آموزش سوالی داشتید و یا مشکلی برای شما پیش اومده در بخش دیدگاهها اعلام کنید تا در کوتاهترین زمان ممکن پاسخگوی شما باشم.