learn

فعال کردن Gzip در وردپرس؛ تشخیص فشرده‌سازی و تنظیم درست

ابتدا پاسخ واقعی سایت را بررسی کنید؛ ممکن است فشرده‌سازی از قبل در وب‌سرور یا CDN فعال باشد و افزونهٔ تازه لازم نباشد.

Gzip در وردپرس معمولاً در وب‌سرور، پراکسی یا CDN روی پاسخ‌های متنی اعمال می‌شود. مرورگر دادهٔ فشرده را دریافت و باز می‌کند؛ بنابراین هدف، کاهش حجم انتقال HTML، CSS و JavaScript است، نه تغییر ظاهر یا کیفیت تصویر.

Gzip در وردپرس چه چیزی را بهتر می‌کند؟

میزان کاهش حجم به نوع و اندازهٔ محتوا بستگی دارد و درصد ثابتی برای همهٔ سایت‌ها ندارد. فشرده‌سازی می‌تواند زمان انتقال را کم کند، اما کوئری کند پایگاه‌داده یا پردازش سنگین PHP را به‌تنهایی اصلاح نمی‌کند.

طبق راهنمای فشرده‌سازی HTTP، فایل‌هایی که از قبل فشرده‌اند معمولاً هدف مناسبی برای فشرده‌سازی دوباره نیستند. JPEG، WebP، ویدئو و ZIP را با بهینه‌سازی متن یکسان ندانید؛ SVG متنی وضعیت متفاوتی دارد.

اول بررسی کنید آیا فشرده‌سازی فعال است

  1. ابزار توسعهٔ مرورگر و بخش Network را باز کنید.
  2. صفحه را با ثبت درخواست تازه بارگذاری کنید.
  3. درخواست سند HTML را انتخاب کنید، نه فقط تصویر یا ریدایرکت.
  4. هدر پاسخ Content-Encoding را بخوانید.
  5. همین بررسی را برای یک CSS و JavaScript اصلی تکرار کنید.

Content-Encoding: gzip نشانهٔ استفاده از Gzip برای همان پاسخ است. مقدار br به Brotli اشاره می‌کند؛ نبود کلمهٔ gzip در این حالت به معنی نبود فشرده‌سازی نیست. مرجع Content-Encoding تفاوت هدر درخواست Accept-Encoding و هدر پاسخ را توضیح می‌دهد.

نتیجهٔ یک URL را به همهٔ منابع تعمیم ندهید. پاسخ برگشتی از کش مرورگر یا پاسخ ۳۰۴ نیز برای این آزمایش با انتقال کامل تازه یکسان نیست. اگر سایت پشت CDN است، نتیجهٔ مرورگر لایهٔ نهایی تحویل محتوا را نشان می‌دهد.

روش Apache و LiteSpeed

در Apache، ماژول mod_deflate می‌تواند پاسخ را فشرده کند. مدیر سرور باید پشتیبانی و مجوز قواعد را تأیید کند. اگر .htaccess مجاز و ماژول مربوط فعال است، نمونهٔ محدود زیر برای چند نوع محتوای متنی قابل‌استفاده است:

<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE text/html text/plain text/css application/javascript application/json image/svg+xml
</IfModule>

این نمونه جای تنظیمات اختصاصی سرویس را نمی‌گیرد. فایل موجود را بازنویسی کامل نکنید و قواعد وردپرس را پاک نکنید. اگر خطای ۵۰۰ ایجاد شد، تغییر تازه را برگردانید و گزارش سرور را بررسی کنید. جزئیات در مستند mod_deflate آمده است.

در LiteSpeed، تنظیمات خود وب‌سرور و سازگاری قواعد Apache اهمیت دارد؛ پیش از افزودن کد، فشرده‌سازی فعلی سرویس را بررسی کنید. صرف نام سرور، مجوز تغییر هر دستور را تضمین نمی‌کند.

روش Nginx

Nginx فایل .htaccess را برای این تنظیمات نمی‌خواند. فشرده‌سازی باید در پیکربندی وب‌سرور با دستورهای مناسب، مانند gzip و gzip_types، توسط مدیر دارای دسترسی تنظیم شود. مرجع رسمی ماژول Gzip نوع محتوا، حداقل اندازه و رفتار پراکسی را شرح می‌دهد.

در هاست مدیریت‌شده، از میزبان بخواهید وضعیت فشرده‌سازی پاسخ‌های متنی را بررسی کند. نصب افزونهٔ وردپرس جای دسترسی به پیکربندی Nginx را نمی‌گیرد.

اگر از افزونهٔ کش استفاده می‌کنید

طبق مستند WP Rocket، این ابزار در Apache و LiteSpeed قواعد Gzip را به .htaccess اضافه می‌کند. در محیط دیگر باید پیکربندی متناسب با سرور انجام شود؛ خرید افزونه فقط برای فعال‌کردن Gzip معمولاً اولین قدم لازم نیست.

WP Super Cache نیز قابلیت فشرده‌سازی محتوای کش‌شده دارد. اگر سرور یا PHP قبلاً فشرده‌سازی انجام می‌دهد، فعال‌کردن لایهٔ ناسازگار دیگر می‌تواند خروجی خراب ایجاد کند. تنظیم Browser Cache در یک ابزار هم به‌تنهایی اثبات فعال‌بودن Gzip برای همهٔ پاسخ‌ها نیست.

تأیید نتیجه و رفع ایراد

پس از تغییر، کش لازم را تازه و هدرها و حجم منتقل‌شده را دوباره مقایسه کنید. اگر فشرده‌سازی دیده نمی‌شود، نوع MIME، اندازهٔ پاسخ، تنظیم پراکسی و Accept-Encoding را بررسی کنید. متن ناخوانا یا خطای decoding نشانه‌ای برای بررسی فشرده‌سازی تکراری یا هدر ناسازگار است؛ با افزودن افزونه‌های بیشتر مسئله را پیچیده نکنید.

مطالعهٔ مرتبط

بازبینی فنی: ۱۳ آبان ۱۴۰۵. تاریخ انتشار اولیه و نشانی قبلی حفظ شده‌اند.

مطالب مرتبط

ارسال نظر

فهرست مطالب