خطای Reduce cookie size در GTmetrix چیست؟
کوکیها فایلهای متنی کوچکی هستند که توسط وبسایتها روی مرورگر شما و کاربران ذخیره میشوند. این فایلها شرحاتی مانند تنظیمات کاربر، سابقه بازدیدها و دادهها ورود به سیستم را در خود دارد. برای مثال، زمانی که شما وارد سایتی میشوید و تیک گزینه «مرا به خاطر بسپار» را میزنید، یک کوکی ذخیره میشود تا سری بعد نیازی به وارد کردن رمز عبورتان نباشید.
هرچند این کوکیهای کارراهانداز به تجربه کاربری کمک میکنند اما حجم زیاد آنها، حجم درخواستهای HTTP سرور را بالا میبرد و سرعت سایت نزول پیدا میکند. اینجاست که GTmetrix با نمایش خطای «Reduce cookie size» به شما میگوید حجم کوکیهای سایتتان بیش از حد استاندارد شده است.
برای رفع این خطا، میتوانید از روشهای زیر استفاده کنید:
فقط دادهها ضروری برای نحوه عملکرد سایت را در کوکیها ذخیره کنید. از ذخیره دادههای غیرضروری مانند دادههای تحلیلهای غیر حیاتی یا گزارشها کاربری که در همه درخواستها لازم نیست، خودداری کنید. این دادهها را میتوانید در session یا Local Storage ذخیره کنید.
از نامهای کوتاه برای کوکیها (مانند id بجای userId) و مقادیر کوتاه و فشرده استفاده کنید. به جای رشتههای طولانی، از شناسههای عددی یا روشهای کدگذاری مانند base64 استفاده کنید.
برای کوکیها تاریخ انقضا تعیین کنید. کوکیهایی که تاریخ انقضای آنها گذشته باشد، بهصورت خودکار توسط مرورگر حذف میشوند. در این زمینه میتوانید از Max-Age برای تعیین طول عمر کوکی به ثانیه و از Expires برای تعیین تاریخ دقیق انقضا استفاده کنید؛ برای مثال:
Set-Cookie: id=a3fWa; Expires=Thu, 31 Oct 2021 07:28:00 GMT;
در مثال بالا کوکی با نام id و مقدار a3fWa تا تاریخ پنجشنبه، ۳۱ اکتبر ۲۰۲۱، ساعت ۰۷:۲۸:۰۰ به وقت گرینویچ (GMT) معتبر است و بعد از آن منقضی میشود.
حالا فرض کنید به جای تاریخ میخواهید بگویید این کوکی برای مدت مشخصی مثلا یک ماه اعتبار دارد. مشخصه Max-Age همین کار را انجام میدهد. شما مدت زمان اعتبار کوکی را بر حسب ثانیه مشخص میکنید.
Set-Cookie: id=a3fWa; Max-Age=2592000
عدد ۲۵۹۲۰۰۰ نشان دهنده مدت زمان اعتبار کوکی بر حسب ثانیه است. ۲۵۹۲۰۰۰ ثانیه برابر با ۳۰ روز (۳۰ × ۲۴ × ۶۰ × ۶۰) است. یعنی این کوکی به مدت ۳۰ روز روی مرورگر کاربر باقی میماند و سپس حذف میشود.
اگر چند کوکی دارید که اطلاعات مشابهی را ذخیره میکنند، آنها را در یک کوکی ادغام کنید. درصورتیکه از زبان سمت سرور مانند PHP استفاده میکنید، میتوانید دادهها را بهصورت آرایه درنظر گرفته و با json_encode به JSON تبدیل و در یک کوکی ذخیره کنید.
برای مثال در PHP میتوانید دستور زیر را بهکار ببرید:
$cookie_data = json_encode($data); setcookie("my_cookie", $cookie_data);
- استفاده نکردن از کوکی برای فایلهای استاتیک
فایلهای استاتیک مانند عکسها، CSS و JavaScript نیازی به کوکی ندارند. با تنظیم سرور (Apache یا Nginx) از ارسال کوکی برای این فایلها جلوگیری کنید.
برای مثال در Nginx میتوانید از دستور add_header با مقدار خالی برای Set-Cookie استفاده کنید.
location ~* .(jpg|jpeg|png|gif|css|js|ico)$ { add_header Set-Cookie ""; }
۳. استفاده از Gzip برای فشردهسازی
فشردهسازی Gzip (یا Brotli که بهروزتر و کارآمدتر است) حجم هدرهای HTTP از جمله کوکیها را کمتر میکند. این قابلیت را باید روی سرور فعال کنید.
مثال:
.htaccess
(Apache – استفاده از mod_deflate):
apacheAddOutputFilterByType DEFLATE text/plain text/html text/xml text/css application/xml application/xhtml+xml application/rss+xml application/javascript application/x-javascript application/json
۴. تحلیل و حذف کوکیهای اضافی
از ابزارهای توسعهدهنده مرورگر (Developer Tools) برای مشاهده و حذف کوکیهای ذخیره شده برای سایت خود استفاده کنید. در Chrome DevTools به بخش Application و سپس Cookies بروید.
برای فایلهای استاتیک از ساب دامین جداگانه استفاده کنید. سرور را طوری تنظیم کنید که برای این زیردامنه هیچ کوکی ارسال نشود. این روش بهترین راه برای جلوگیری از ارسال بیمورد کوکیها است. به عنوان مثال، به جای استفاده از www.example.com/image.jpg از static.example.com/image.jpg استفاده کنید. برای تعیین ساب دامنه میتوانید مقاله زیر را بخوانید:
راهنمای قدمبهقدم ساخت ساب دامین در دایرکت ادمین
آیا میخواهید سایتتان مثل جت پرواز کند و کاربران تجربهای بینظیر از سرعت با سرعت سایت داشته باشند؟ استفاده از زیردامنههای بدون کوکی، یک ترفند طلایی است که با CDN ایران سرور عملی میشود. با این فناوری، فایلهای استاتیک شما از نزدیکترین سرور به کاربر ارائه میشوند و سرعت بارگذاری بهشدت بالا میرود. برای اطلاعات بیشتر همین حالا روی لینک زیر کلیک کنید.
سفارش CDN
در این مقاله به تحلیل خطای «Reduce cookie size» در GTmetrix و راهکارهای عملی برای رفع آن پرداختیم. کوکیها، این فایلهای کوچک و به ظاهر بیضرر، با حجم نامناسب خود، سرعت سایت شما را تحت تاثیر قرار میدهند. با رعایت نکاتی که گفته شد، از جمله:
میتوانید این مشکل را بهراحتی برطرف کرده و تجربهای شتابان و لذتبخش را برای کاربران خود رقم بزنید. اگر در این مسیر نیاز به راهنمایی دارید،کارشناسان ایران سرور مشتاق پاسخگویی به شما هستند. همین حالا میتوانید با شماره ۰۲۱۲۲۰۹۲۰۳۷ تماس بگیرید.
۱. حداکثر حجم مجاز برای کوکیها چقدر است؟
محدودیت دقیقی برای حجم هر کوکی وجود ندارد اما محدودیتی برای کل هدرهای درخواست HTTP وجود دارد که کوکیها هم بخشی از آن هستند. توصیه میشود که میانگین حجم کوکیها در هر دامنه زیر ۴۰۰ بایت باشد و از ارسال کوکیهای بسیار بزرگ (بیش از ۱ کیلوبایت) خودداری شود.
۲. منظور از زیردامنههای بدون کوکی (Cookie-free Domains) چیست؟
زیردامنههای بدون کوکی به شما این قابلیت را میدهند که فایلهای استاتیک را از یک آدرس جداگانه (مثل static.example.com) ارائه دهید، بدون اینکه هیچ کوکیای با آنها ارسال شود.
۳. چگونه میتوان خطای «Reduce cookie size» در GTmetrix را برای سایت وردپرسی از بین برد؟
در وردپرس، میتوانید از افزونههای بهینهسازی سرعت مانند WP Rocket، LiteSpeed Cache یا Perfmatters استفاده کنید که قابلیتهایی برای بهینهسازی کوکیها، از جمله تنظیم انقضا و حذف کوکیهای غیرضروری را ارائه میدهند.
منابع
gtmetrix
developer
developer
gtmetrix
