حتما با فرمتهای فشرده سازی zip و rar آشنا هستید که برای کاهش حجم فایل از این فرمتها استفاده میکنید. gzip هم دقیقا کارکردی مشابه این نرمافزارها و فرمتها دارد که با استفاده از الگوریتم مورد استفاده توسط همین روش فشردهسازی برای کاهش حجم صفحات سایتها مورد استفاده قرار میگیرد که آن را با نام gzip میشناسیم. امروزه همه مرورگرها از این قابلیت پشتیبانی میکنند. وقتی وارد سایتی میشوید، مرورگر ابتدا درخواستی را ارسال میکند که مشخص شود gzip روی این سرور فعال است یا خیر. اگر پاسخ به این درخواست مثبت بود و از سمت سرور هم مشخص شد که مرورگر از این قابلیت پشتیبانی میکند، سرور شروع به ارسال فایلها با فرمت فشرده شده به مرورگر میکند. اما اگر پاسخ منفی باشه فایلها با حجم عادی ارسال میشوند که در حالت فشرده نبوده و به دلیل بالا بودن حجم فایلها هم سرعت سایت شما پایین خواهد بود.
وقتی کاربری وارد سایت شما میشود، درخواست برای دریافت اطلاعات سایت در مرورگر برای سرور ارسال شده و بعد از اینکه سرور به این درخواست پاسخ مثبت داد فایلها شروع به بارگذاری میکنند. حالا هرچه حجم این فایلهای استفاده شده در صفحات بیشتر باشد، زمان بیشتری صرف لود کامل سایت خواهد شد. بنابراین باید حجم صفحات خود را با استفاده از gzip کاهش دهیم تا در مدت زمان کوتاهتری یک صفحه وب برای کاربر بارگذاری شده و در دسترس قرار گیرد. با استفاده از gzip کلیه فایلهای مربوط به html، css و جاوا اسکریپت فشرده شده و کدهای تکراری اون نادیده گرفته میشوند که در نهایت منجر به افزایش سرعت سایت خواهد شد.
در فایلهایی که مربوط به برنامه نویسی هستند کدها به کاراکترهای خلاصهتر و کوتاهتر با استفاده از فناوری فشرده سازی حجم صفحات تبدیل خواهند شد. سپس مرورگری که از قابلیت Gzip پشتیبانی میکند، این موضوع رو درک کرده و کدها را در حالت استاندارد پردازش و در نهایت ساختار یک سایت رو به درستی نمایش خواهد داد.
چگونه متوجه شویم که Gzip در سایت فعال است؟
قبل از اینکه به روشهای استفاده از gzip بپردازیم، پیشنهاد میکنیم برای این که واقعا ببینید gzip تا چه میزان در افزایش سرعت سایت وردپرس تاثیرگذار خواهد بود یک بار سایت خودتان را که از gzip استفاده نشده آنالیز و بررسی کنید. برای این منظور به وبسایت checkgzipcompression.com مراجعه کنید و سپس آدرس کامل سایت خود را در فیلد مربوطه وارد کرده و روی آیکون جستجو کلیک کرده و منتظر بمونید تا سایت آنالیز شده و بر اساس افزونههای وردپرس و قالبی که از اون استفاده میکنید به شما بگوید که با استفاده از Gzip تا چه میزان قادر هستید تا حجم صفحات خود را کم کنید.
یکی دیگر از روشهای بررسی هم با استفاده از خود مرورگر است که میتوانید با کلیک راست کردن در صفحه سایت و انتخاب گزینه Inspect Element سورس صفحات رو ببینید. در صورتی که content-incoding: gzip را مشاهده کردید، نشاندهنده فعال بودن Gzip در سایت هست. از این بخش میتوانید میزان فشرده سازی فایلها را به صورت قبل و بعد هم مشاهده کرده و مقایسه کنید. برای این کار هم کافی است روی نمایش به صورت ردیفی کلیک کرده و از ستون Size میزان فشرده سازی برای هر فایل را ببینید.
چگونه Gzip را در سرور آپاچی فعال کنیم؟
برای این کار کافی است فایل htaccess را پیدا کنید و کدهای زیر را در آن قرار دهید:
<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 در وردپرس کنید. برای این منظور بسته به کنترل پنل سیپنل و دایرکت ادمین که استفاده میکنید ابتدا باید وارد File Manager هاست خود شوید. اگر وردپرس روی دامنه شما نصب شده کافیه به مسیر /public_html/ مراجعه کنید و به دنبال فایلی با نام htaccess. باشید. اما اگر اقدام به نصب وردپرس در ساب دامنه و یا ساب فولدر کردید کافیه تا به مسیر مورد نظر که وردپرس در اون پوشه نصب شده مراجعه کنید و دنبال فایل htaccess. بگردید.فایل htaccess. جزو فایلهای مخفی در هاست است که ممکن است در اولین ورودتون به هاست قادر به مشاهده آن نباشید. بنابراین در همین مسیری که قرار دارید روی دکمه Settings که در بالای صفحه در سمت راست قرار داره کلیک کنید تا پنجره زیر برای شما باز شود. سپس تیک گزینه Show Hidden Files را انتخاب کرده و در نهایت روی دکمه Save کلیک کنید تا تنظیمات ذخیره شود.
حالا قادر به مشاهده فایل htaccess. هستید و میتوانید تا با راست کلیک کردن و انتخاب گزینه Edit این فایل را ویرایش کنید و کدهای زیر را در مکان مناسبی از فایل اضافه کنید. پیشنهاد میکنم تا کدهای زیر را در انتهای این فایل قرار دهید تا تداخلی با سایر کدها ایجاد نشود.
در کنترل پنل سیپنل:
AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/x-javascript
در کنترل پنل دایرکت ادمین:
<ifModule mod_gzip.c> mod_gzip_on Yes mod_gzip_dechunk Yes mod_gzip_item_include file .(html?|txt|css|js|php|pl)$ mod_gzip_item_include handler ^cgi-script$ mod_gzip_item_include mime ^text/.* mod_gzip_item_include mime ^application/x-javascript.* mod_gzip_item_exclude mime ^image/.* mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* </ifModule>
استفاده از افزونه در وردپرس
اگر از کاربران وردپرسی هستید که نمیخواهید از کد استفاده کنید و با پلاگین راحتتر هستید، ما برای شما هم راهکاری داریم! از آن جایی که همه ما از افزونههایی نظیر W3 Total Cache، Wp Fatest Cache و wp super cache و… برای افزایش سرعت بارگذاری سایت استفاده میکنیم اگر شما هم از افزونههای کش وردپرس استفاده میکنید با مراجعه به تنظیمات این افزونهها بررسی کنید و ببینید که آیا امکان استفاده از Gzip وردپرس در این افزونهها وجود دارد یا خیر! در صورتی که امکان استفاده از gzip وردپرس در چنین افزونههایی فراهم بود نیازی به استفاده از افزونه معرفی شده یا کد معرفی شده در این مقاله نخواهید داشت و کافی است تا تیک فعال کردن Gzip را فعال کنید. به عنوان نمونه اگر از افزونه W3 Total Cache استفاده میکنید کافیه تا با مراجعه به مسیر Performance> Browser Cache در پیشخوان وردپرس اقدام به فعال کردن قابلیت gzip وردپرس در این افزونه کنید.