یکی دیگه از خطاهای رایج که در تست سرعت سایت با جی تی متریکس نمایش داده میشه با عنوان Reduce cookie size هست. همونطور که از معنای لغوی این خطا GTmetrix برداشت میشه از ما خواسته میشه که اندازه و تعداد کوکیهای سایت رو کاهش بدیم. کوکیها درخواستهایی هستند که به صورت HTTP در اولین ورود به هر سایتی در مرورگر ذخیره میشن که برای اهداف گوناگونی ازشون استفاده میشه.
بیشترین استفاده برای کوکیها جهت احراز هویت هست، اگر دقت کرده باشید موقع ورود به وردپرس گزینه تحت عنوان مرا به خاطر بسپار وجود داره که اگه تیک این گزینه رو بزنید بعد از بستن پنجره مرورگر اگر به سایت وارد شده باشید همچنان در حالت لاگین باقی میمونید، اما اگه تیک این گزینه رو فعال نکنید، بعد از بستن مرورگر مجددا باید فرم ورود رو پر کنید و وارد سایت بشید.
در این آموزش به نحوه برطرف کردن خطای Reduce cookie size در Yslow جی تی متریکس میپردازم که با استفاده ازش میتونید درخواستهای کوکی سایت که در مرورگر کاربران ذخیره میشه رو بهینه سازی کنید. کوکیهایی که در مرورگر کاربران ذخیره میکنید باعث کاهش تعداد درخواست HTTP سایت میشن، اما در مقابل حالتی که پیش میاد اینه که اگر تعداد کوکی هم بالا باشه باعث به وجود اومدن خطای Make fewer HTTP requests خواهند شد.
آموزش رفع خطای Reduce cookie size در GTmetrix
کوکیها علاوه بر اطلاعات احراز هویتی قادر هستند اطلاعاتی رو در خودشون ذخیره کنند که بیشترین نمونهها شامل اطلاعات بانکی، رمزهای ورود، اطلاعات ورود به هر سایت و… میشه. اما اگه اگه این سوال براتون پیش اومده که پس چرا اطلاعات کارت بانکی شما در درگاه پرداخت ذخیره نمیشه بخاطر این هست که کوکی در درگاههای بانکی به منظور افزایش امنیت و کاهش خطر هک حسابهای بانکی به صورت کش شده نیست و ذخیره نمیشه.
کوکیها درخواستهای HTTP رو تحت Header بین مرورگر و سرور رد و بدل میکنند که اگه بتونیم حجم این کوکیها رو کمتر کنیم و علاوه بر این هم با حذف کوکیهایی که بهشون ممکنه نیازی نداشته باشیم، اقدام به بهینه سازی کوکیهای سایت بکنیم. کارهایی مثل جلوگیری کردن از حالت کوکی در فایلهای استاتیک میتونه گزینه خوبی باشه که در آموزش بهبود cookie free domains در وردپرس به معرفی یکی از این نمونهها پرداختم. برای بهینه سازی کوکی در سایت میتونید دقیقا مطابق توضیحاتی که تو آموزش رفع خطای Enable gzip compression در GTmetrix توضیح دادم عمل کنید. که در ادامه به معرفی چند راهکار برای بهینه سازی کوکیها در سایت میپردازم.
۱- کاهش حجم و درخواست کوکی با Gzip
همونطور که در بالا هم اشاره کردم کوکیها به صورت درخواستهای HTTP هستند که در Header مرورگر اجرا میشن و ممکنه برای هر درخواستی این کار انجام بگیره و به صورت کوکی ذخیره بشن. این کار میتونه هم روی فایلهای استاتیک انجام بگیره و هم اینکه میتونه روی سایر درخواستها که مربوط به پردازش داده هستند صورت بگیره. اگه درخواستها مربوط به فایلهای استاتیک باشه میتونید به کمک کش کردن این درخواستها و همچنین استفاده از قابلیت فشرده سازی حجم کوکی رو کمتر کنید.
یکی از راههای فشرده سازی استفاده از Gzip هست که میتونید به میزان قابل توجهی حجم کوکی رو کمتر کنید. برای این منظور اگر از هاست سی پنل استفاده میکنید با اضافه کردن کدهای زیر به فایل htaccess. میتونید حجم کوکیهایی که به صورت استاتیک هستند رو کمتر کنید.
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
اما اگر از هاست دایرکت ادمین استفاده میکنید استفاده از کد زیر میتونه برای فعال کرده قابلیت Gzip گزینه بهتری باشه که روی درخواستهای کوکی هم تاثیر گذار هست.
<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>
۲- استفاده از Cookie Free Domains
در این روش برای افزایش سرعت سایت با استفاده از کوکی دامنه، به صورتی عمل میکنیم که کلیه فایلها را از دامنه و یا ساب دامنه دیگه دریافت کنیم تا سرعت بارگذاری فایلهای ثابت افزایش پیدا بکنه. اگر در gtmetrix، وبسایت خودتونو تست کرده باشید، احتمالا به بخش Use cookie-free domains بر خوردید که مشخص میکنه تا چه میزان شما از کوکیها برای رد و بدل کردن دادههای سایت توسط زیر دامنه و یا دامنه دیگه استفاده میکنید.
برای استفاده از cookie-free domains در وردپرس ابتدا باید یک ساب دامنه در سایت خودتون ایجاد کنید. اگر با نحوه ساخت زیر دامنه آشنایی ندارید میتونید از آموزش نحوه ساخت ساب دامین در GTmetrix هاست سی پنل استفاده کنید. بنابراین بعد از ورود به هاست خودتون به منوی ساب دامنهها مراجعه کرده و سپس یک ساب دامنه با نام دلخواه خودتون ایجاد کنید و مسیر اونو روی public_html/wp-content تنظیم کنید. در اینجا من قصد دارم تا از ساب دامنه CDN برای این کار استفاده کنم.
حالا بعد از اینکه ساب دامنه شما برای وردپرس در هاست ساخته شد به مسیر File Manager در هاست خودتون مراجعه کنید و سپس به مسیر public_html در هاست سی پنل مراجعه کنید.
بعد از اینکه وارد مسیر public_html در هاست سی پنل GTmetrix شدید باید به دنبال فایل wp-config.php وردپرس بگردید و بعد از اینکه فایل را پیدا کردید روی اون راست کلیک کرده و گزینه Edit را انتخاب کنید تا به صفحه ویرایش فایل هدایت شده و در نهایت کدهای زیر را در مکان مناسبی از این فایل قرار دهید.