بررسی خطای Reduce cookie size در GTmetrix و نحوه حل آن

خطای Reduce cookie size در GTmetrix
Avatar
نویسنده: درسا والامقام
سه‌شنبه 17 شهریور 1405
مطالعه: ۶ دقیقه ۰ نظر ۶ بازدید

احتمالا برای شما هم پیش آمده که تصاویر و کدهای سایت را کاملا بهینه کرده‌اید، اما GTmetrix همچنان هشدار افت سرعت می‌دهد. در چنین شرایطی، کوکی‌های سنگینی که همراه با هر درخواست مرورگر بین کاربر و سرور جابه‌جا می‌شوند می‌توانند از دلایل کاهش سرعت باشند.
خطای Reduce cookie size در GTmetrix دقیقا به همین مشکل اشاره دارد. وقتی حجم کوکی‌ها از حد استاندارد فراتر برود، پهنای باند بیهوده اشغال شده و زمان پاسخ‌دهی سرور بالا می‌رود. در این مقاله از بخش آموزش سئو در بلاگ پارس‌پک، دلایل وقوع این خطا را بررسی می‌کنیم و فرایند رفع آن را با راهکارهای فنی و سرراست آموزش می‌دهیم تا سرعت سایت خود را به حداکثر برسانید.

خطای Reduce cookie size در GTmetrix چرا رخ می‌دهد؟

برای درک این خطا، کافی است بدانید کوکی‌ها فایل‌های متنی کوچکی هستند که اطلاعات کاربر را در مرورگر ذخیره می‌کنند. زمانی که کاربر سایت شما را باز می‌کند، مرورگر این کوکی‌ها را همراه با درخواست‌های شبکه به سمت سرور می‌فرستد.
بر اساس استانداردهای وب، مجموع حجم این کوکی‌ها نباید بیشتر از ۴ کیلوبایت باشد. وقتی حجم کوکی‌ها از این مقدار فراتر برود، درخواست‌ها سنگین شده، زمان پاسخ‌دهی سرور بالا می‌رود و خطای Reduce cookie size روی صفحه جی‌تی‌متریکس ظاهر می‌شود. اما چه چیزی باعث این افزایش حجم غیرطبیعی می‌شود؟ دلایل اصلی شامل موارد زیر است:

  • ذخیره اطلاعات بیش از حد: برخی توسعه‌دهندگان به جای ذخیره یک شناسه کوتاه (Session ID)، تمام اطلاعات کاربر را مستقیما درون کوکی ذخیره می‌کنند.
  • محدود نکردن دامنه کوکی (Cookie Scope): اگر کوکی‌ها به درستی محدود نشوند، مرورگر مجبور است آن‌ها را همراه با فایل‌های استاتیک، مثل تصاویر و فونت‌ها نیز به سرور بفرستد.
  • افزونه‌ها و اسکریپت‌های جانبی: نصب افزونه‌های متعدد در وردپرس، کوکی‌های تکراری و سنگینی را به سایت تحمیل می‌کند.
  • انباشت کوکی‌های مرده: تنظیم نکردن زمان انقضا باعث می‌شود که کوکی‌های قدیمی و بی‌استفاده در مرورگر کاربر باقی بمانند و مدام ارسال شوند.

اگر هنوز به‌طور دقیق نمی‌دانید که GTMetrix چیست و چه کاربردی دارد، مقاله زیر را بخوانید:

GTMetrix چیست؟

روش‌های حل خطای Reduce cookie size در GTmetrix

برای رفع این هشدار و کاهش حجم هدر درخواست‌های HTTP، پنج راهکار تخصصی و مرحله‌به‌مرحله وجود دارد که بر اساس ساختار وب‌سایت خود می‌توانید آن‌ها را پیاده‌سازی کنید.

۱. پاک‌سازی و حذف کوکی‌های غیرضروری

پیش از هر اقدام پیچیده‌ای، باید کوکی‌های فعال وب‌سایت را پایش کرده و موارد اضافه را حذف کنید:
وب‌سایت خود را در مرورگر باز کرده و کلید F12 را فشار دهید تا ابزار Developer Tools باز شود.
به تب Application در مرورگر کروم یا Storage در فایرفاکس بروید.
از منوی سمت چپ، بخش Cookies را باز کرده و دامنه وب‌سایت خود را انتخاب کنید.

انتخاب دامنه در بخش Cookies
انتخاب کردن دامنه در بخش Cookies

جدول کوکی‌ها شامل نام، مقدار و حجم را بررسی کنید. کوکی‌های سنگین یا مواردی که توسط افزونه‌های بلااستفاده ایجاد شده‌اند را شناسایی کنید.
کدهای مربوط به این کوکی‌ها را در سمت سرور غیرفعال کرده یا افزونه‌های اضافه را حذف کنید.

۲. استفاده از دامنه بدون کوکی (Cookie-free Domain)

یکی از معتبرترین راهکارها برای جلوگیری از ارسال کوکی‌ها همراه فایل‌های رسانه‌ای، ایجاد یک دامنه یا ساب‌دامنه مجزا است:
در پنل مدیریت هاست مانند cPanel یا DirectAdmin، یک ساب‌دامنه جدید ایجاد کنید.
مسیر این ساب‌دامنه را به پوشه فایل‌های رسانه‌ای وب‌سایت مانند پوشه wp-content/uploads در وردپرس متصل کنید.

استفاده از دامنه بدون کوکی
استفاده از دامنه بدون کوکی

کدهای زیر را به فایل wp-config.php اضافه کنید تا دامنه اصلی از ساب‌دامنه استاتیک تفکیک شود:

define('COOKIE_DOMAIN', 'www.example.com');
define('WP_CONTENT_URL', 'http://static.example.com/wp-content');

نکته:

کاربرانی که از CDN استفاده می‌نمایند، باید تنظیمات Strip Cookies را فعال کنند تا سرورهای لبه (Edge Servers) به صورت خودکار هدر کوکی را از فایل‌های استاتیک حذف کنند.

۳. انتقال داده‌ها به LocalStorage

داده‌های ذخیره‌شده در LocalStorage برخلاف کوکی‌ها، همراه درخواست‌های HTTP به سرور ارسال نمی‌شوند و پهنای باند شبکه را اشغال نمی‌کنند.
کدهای جاوا اسکریپت سایت که از document.cookie برای ذخیره اطلاعات موقت استفاده می‌کنند را پیدا کنید.
ساختار کد را به LocalStorage تغییر دهید:

// روش قدیمی با استفاده از کوکی
document.cookie = "user_theme=dark; path=/";

// روش بهینه با استفاده از LocalStorage
localStorage.setItem('user_theme', 'dark');

هنگام نیاز به این داده‌ها در کلاینت، مقدار را مستقیما از حافظه محلی مرورگر بخوانید.

بررسی حافظه محلی مرورگر
بررسی حافظه محلی مرورگر

اگر با خطاهای دیگری در GTmetrix مواجه می‌شوید، مقاله زیر را بخوانید:

رفع خطای Leverage Browser Caching در GTmetrix

۴. بهینه‌سازی دامنه و مسیر کوکی‌ها

تنظیم نامناسب پارامترهای Domain و Path باعث می‌شود مرورگر، کوکی‌ها را در صفحاتی ارسال کند که اصلا نیازی به آن‌ها نیست.

  • محدودسازی دامنه: هنگام ست کردن کوکی در PHP، از گذاشتن علامت نقطه قبل از دامنه، مثل .example.com پرهیز کنید، زیرا این کار کوکی را به تمام ساب‌دامنه‌ها تعمیم می‌دهد.
  • محدودسازی مسیر (Path): مسیر کوکی را فقط به بخش‌های مورد نیاز محدود کنید. مثلا اگر کوکی مربوط به پنل کاربری است، آن را این‌گونه تنظیم کنید:
setcookie("user_session", "data_value", [
'expires' => time() + 3600,
'path' => '/account/',
'domain' => 'example.com',
'secure' => true,
'httponly' => true,
'samesite' => 'Lax'
]);

۵. مدیریت نشست‌ها (Session Management)

بهترین راه‌کار این است که داده‌های کاربر در سرور ذخیره شوند و تنها یک شناسه (ID) کوتاه در کوکی مرورگر قرار گیرد.

ذخیره داده‌های کاربر در سرور
ذخیره داده‌های کاربر در سرور
  • انتقال به دیتابیس یا رم: مدیریت نشست‌ها را طوری تنظیم کنید که داده‌های متنی حجیم درون دیتابیس یا حافظه‌های موقت سرور ذخیره شوند.
  • کاهش زمان انقضا: مقادیر طولانی‌مدت کوکی‌ها را کاهش دهید تا مرورگر، کوکی‌های منقضی‌شده را فورا پاک کند.
  • استفاده از کوکی‌های موقت: کوکی‌های مربوط به یک جلسه را بدون تاریخ انقضا ست کنید تا با بستن تب مرورگر به صورت خودکار حذف شوند.

برای آشنایی با سایر ابزارهای کاربردی برای تست سرعت وب‌سایت، مقاله زیر را بخوانید:

ابزارهای تست سرعت سایت

جمع‌بندی

رفع خطای Reduce cookie size نقش مهمی در کاهش حجم درخواست‌های شبکه و افزایش چشمگیر سرعت بارگذاری وب‌سایت دارد. با ایجاد دامنه بدون کوکی برای فایل‌های استاتیک، انتقال داده‌ها به LocalStorage و محدود کردن مسیر کوکی‌ها، می‌توانید امتیاز جی‌تی‌متریکس سایت خود را ارتقا دهید.

سوالات متداول

خطای Reduce cookie size در GTmetrix چیست؟

این خطا زمانی رخ می‌دهد که مجموع حجم کوکی‌های ارسال‌شده در هدر درخواست HTTP بیش از حد مجاز (معمولا بالای ۴ کیلوبایت) باشد و باعث کندی پاسخ‌دهی سرور شود.

آیا ارسال کوکی روی فایل‌های تصویری باعث افت سرعت می‌شود؟

بله، فایل‌های استاتیک (مثل عکس‌ها و فونت‌ها) نیازی به احراز هویت ندارند. ارسال کوکی همراه آن‌ها فقط باعث مصرف پهنای باند و افزایش تاخیر می‌شود.

چگونه دامنه بدون کوکی (Cookie-free Domain) در وردپرس بسازیم؟

کافی است یک ساب‌دامنه برای فایل‌های رسانه‌ای خود بسازید و با تعریف ثابت COOKIE_DOMAIN روی دامنه اصلی در فایل wp-config.php، جلوی ارسال کوکی‌ها به ساب‌دامنه را بگیرید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *


ارسال دیدگاه در وبلاگ پارس‌پک را مطالعه کرده و آن‌ها را می‌پذیرم.