Gzip הוא הדבר הראשון שבודק מבקר PageSpeed לאחר התקנת Bitrix. לעיתים קרובות אנו רואים שהוא או מושבת לחלוטין או מוגדר באופן שגוי. HTML נדחס, אך JS ו-CSS לא, או שרמת הדחיסה מוגדרת למקסימום, מה שמעמיס על המעבד ללא תועלת ניכרת. דף קטלוג טיפוסי ב-HTML הוא 80–200 KB; לאחר gzip ברמה 6, הוא יורד ל-15–35 KB. זה חיסכון של 75–80% בתעבורה על כל בקשת HTML שאינה במטמון. עבור חנות עם 10,000 מבקרים יומיים, זה מפחית משמעותית את עומס השרת ומשפר את LCP. סי�נו ליותר מ-500 פרויקטים בהגדרת דחיסה — עם ניסיון של יותר מ-10 שנים.
רוצים להגדיר gzip כראוי? הזמינו בדיקה והתקנה — פרויקט טיפוסי לוקח 2–4 שעות, והעלות מחושבת באופן אישי.
כיצד Gzip משפיע על מהירות הטעינה
דחיסה מפחיתה את כמות הנתונים המועברים. עבור HTML — פי 4–6 קטן יותר, עבור CSS/JS — פי 3–5. לדוגמה, דף קטלוג ללא דחיסה שוקל 180 KB, עם דחיסה — 25 KB. באינטרנט סלולרי, זה חוסך 3–5 שניות מזמן הטעינה. Gzip נתמך על ידי כל הדפדפנים המודרניים, ומנועי החיפוש רואים במהירות גורם דירוג.
השוואה: gzip_static לעומת דחיסה דינמית
דחיסה סטטית מראש (gzip_static) מעמיסה פי 3 פחות על המעבד מאשר דחיסה דינמית, מכיוון שהקבצים נדחסים פעם אחת בזמן הפריסה. דחיסה דינמית מעבדת כל בקשה; ברמה 6, היא מציעה דחיסה מצוינת אך מעמיסה על המעבד. עבור משאבים סטטיים (CSS, JS), gzip_static עדיף. הנה טבלת השוואה:
| פרמטר | gzip_static | Gzip דינמי |
|---|---|---|
| עומס על המעבד | אין (הגשת קבצים מוכנים מראש) | פי 3 ברמה 6 |
| מהירות הגשה | מקסימלית | קצת איטית יותר |
| עדכוני קבצים | דורש יצירה מחדש של .gz | אוטומטי |
| תמיכה | nginx בלבד | כל השרתים |
יעילות דחיסה לפי סוג תוכן
| סוג תוכן | גודל ללא דחיסה | גודל עם דחיסה (gzip 6) | חיסכון |
|---|---|---|---|
| דף קטלוג ב-HTML | 180 KB | 25 KB | 86% |
| קובץ CSS (bootstrap) | 150 KB | 35 KB | 77% |
| JavaScript (jquery) | 85 KB | 20 KB | 76% |
| תגובת JSON API | 50 KB | 10 KB | 80% |
למה gzip_static עדיף לפרויקטים בעלי עומס גבוה
בפרויקטים עם מיליוני בקשות לקבצים סטטיים, עומס המעבד מדחיסה דינמית יכול להיות 10–15% מכלל המשאבים. gzip_static מסיר אותו לחלוטין. באחד הפרויקטים שלנו (קטלוג עם מיליון מוצרים), מעבר ל-gzip_static הפחית את עומס המעבד מ-60% ל-35%, וזמן התגובה לקבצים סטטיים ירד ב-200 אלפיות השנייה. קבלו ייעוץ אם אתם רוצים ליישם gzip_static בפרויקט שלכם.
כיצד להגדיר Gzip ב-nginx: מדריך שלב אחר שלב
התקנת Bitrix הסטנדרטית דרך setup.sh מגדירה gzip בסיסי, אך לעיתים קרובות מפספסת סוגי MIME חשובים ואינה מפעילה gzip_vary.
שלב 1: הגדרה בסיסית
הגדרה מלאה בבלוק http או server:
gzip on; gzip_disable "msie6"; gzip_vary on; gzip_proxied any; gzip_comp_level 6; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_min_length 1024; gzip_types text/plain text/css text/xml text/javascript application/javascript application/x-javascript application/json application/xml application/xml+rss application/rss+xml application/atom+xml image/svg+xml font/ttf font/otf application/vnd.ms-fontobject; gzip on; gzip_disable "msie6"; gzip_vary on; gzip_proxied any; gzip_comp_level 6; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_min_length 1024; gzip_types text/plain text/css text/xml text/javascript application/javascript application/x-javascript application/json application/xml application/xml+rss application/rss+xml application/atom+xml image/svg+xml font/ttf font/otf application/vnd.ms-fontobject; — קריטי בעת שימוש ב-CDN או פרוקסי. מוסיף את הכותרת gzip_vary on כך שמטמונים לא מגישים תוכן דחוס לדפדפנים ללא תמיכה ב-gzip.
gzip_min_length 1024 — אל תדחסו קבצים קטנים מ-1 KB. העלות של כותרות gzip והמעבד אינה מוצדקת עבור תגובות קטנות.
gzip_comp_level 6 — רמות 7–9 נותנות פחות מ-2% דחיסה נוספת בעלות של פי 2–3 במעבד. רמות 1–2 מהירות אך דוחסות גרוע ב-15–20%. לפי בדיקות, רמה 6 מציעה את היחס הטוב ביותר בין דחיסה לביצועים.
שלב 2: הפעלת gzip_static
gzip_static on; — בעת בקשת app.js, nginx מחפש app.js.gz. אם נמצא, הוא מגיש אותו ללא עלות מעבד לדחיסה.
יצירת קבצי .gz בסקריפט הפריסה:
find /var/www/site/public/build -name "*.js" -o -name "*.css" | xargs -P4 -I{} gzip -k -6 {} שלב 3: בדיקת דחיסה כפולה
Bitrix יכול לדחוס תגובות דרך PHP (find /var/www/site/public/build -name "*.js" -o -name "*.css" | xargs -P4 -I{} gzip -k -6 {} ). אם גם דחיסת PHP וגם דחיסת nginx מופעלות, הדפדפן מקבל תוכן דחוס פעמיים. בדקו את ob_gzhandler או php.ini — bitrix/php_interface/dbconn.php צריך להיות Off. בהגדרות Bitrix: "הגדרות → הגדרות מוצר → דחיסת עמודים" צריך להיות מושבת אם nginx מטפל בדחיסה.
מה לבחור: gzip_static או דחיסה דינמית ב-Apache?
בשרתים עם nginx (ההמלצה של Bitrix), ההגדרה פשוטה ויעילה יותר — דחיסה חד-פעמית, דחיסה סטטית מראש. Apache דורש את המודול mod_deflate, שמשתמש ביותר מעבד. באירוח משותף, הבחירה בדרך כלל מוגבלת. בכל מקרה, יש להפעיל gzip ברמת שרת האינטרנט, לא דרך PHP.
הגדרת Apache
עבור שרתי Bitrix על Apache (bitrix-env משתמש ב-nginx כפרונטאנד, אך באירוח משותף לעיתים קרובות Apache טהור):
<IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/xml AddOutputFilterByType DEFLATE text/css application/javascript AddOutputFilterByType DEFLATE application/json application/xml AddOutputFilterByType DEFLATE image/svg+xml font/ttf DeflateCompressionLevel 6 # Не сжимать уже сжатые форматы SetEnvIfNoCase Request_URI \.(?:gif|jpg|jpeg|png|zip|gz|br)$ no-gzip dont-vary Header append Vary Accept-Encoding </IfModule> שגיאות הגדרה נפוצות ב-Bitrix
דחיסה כפולה דרך PHP ו-nginx. כבר הזכרנו זאת — השביתו את zlib.output_compression.
חסר <IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/xml AddOutputFilterByType DEFLATE text/css application/javascript AddOutputFilterByType DEFLATE application/json application/xml AddOutputFilterByType DEFLATE image/svg+xml font/ttf DeflateCompressionLevel 6 # Не сжимать уже сжатые форматы SetEnvIfNoCase Request_URI \.(?:gif|jpg|jpeg|png|zip|gz|br)$ no-gzip dont-vary Header append Vary Accept-Encoding </IfModule> — אם האתר נמצא מאחורי מאזן עומסים או CDN, nginx ללא הוראה זו אינו דוחס תגובות לבקשות פרוקסי (קיים כותרת Via).
application/json לא ברשימה. תגובות API של Bitrix (רכיבים שעובדים במצב AJAX) מחזירות JSON. ללא דחיסה, תגובות JSON לקטלוג עם 50 פריטים שוקלות 40–80 KB; עם דחיסה, 8–15 KB.
בדיקת דחיסה
# Проверяем сжатие ответа curl -sI -H "Accept-Encoding: gzip" https://site.ru/ | grep -i content-encoding # Content-Encoding: gzip # Сравниваем размеры curl -s --compressed https://site.ru/ | wc -c curl -s -H "Accept-Encoding: identity" https://site.ru/ | wc -c הכלי Check GZIP compression ב-GiftOfSpeed מציג דחיסה עבור כל כתובת URL יחד עם חיסכון בבתים.
מה כלול בשירות הגדרת ה-Gzip שלנו
- בדיקת תצורת השרת וה-Bitrix הנוכחית.
- הגדרת Gzip על nginx או Apache עם אימות של כל סוגי MIME.
- אופטימיזציה של רמת הדחיסה והמטמון.
- הגדרת gzip_static עבור משאבים סטטיים.
- בדיקת דחיסה כפולה, התאמת PHP ו-Bitrix.
- בדיקה דרך PageSpeed, GTmetrix ו-curl.
- תיעוד השינויים שבוצעו.
- ייעוץ ותמיכה למשך שבוע לאחר ההגדרה.
אנו מבטיחים תוצאות: שיפור בזמן הטעינה בבדיקות ב-30-400% (תלוי במצב הנוכחי). אם אינכם בטוחים בתצורה שלכם, צרו קשר להערכת פרויקט חינמית. קבלו ייעוץ על הגדרת gzip לפרויקט Bitrix שלכם.







