אופטימיזציית טעינה: דחיסת CSS ו-JS ב-1C-Bitrix
האתר שלך נטען תוך 5 שניות, ו-GTmetrix מראה ש-CSS ו-JS מהווים 80% מהנפח. זה אופייני לפרויקט Bitrix ממוצע: קבצי המקור שוקלים 500 KB–2 MB, וללא דחיסה כל מגה-בייט מועבר כפי שהוא. הגדרת דחיסת HTTP (Gzip או Brotli) מפחיתה את כמות הנתונים המועברים פי 3–7 עבור משאבי טקסט—זוהי אחת הדרכים המהירות ביותר להאיץ טעינה ללא שינוי קוד. אנו מגדירים פתרונות כאלה בעשרות פרויקטים, מאתרי תאגידים פשוטים ועד קטלוגים גדולים.
כלי דחיסה מובנים של Bitrix
Bitrix כולל מנגנון משלו למיניפיקציה ומיזוג של CSS/JS, הזמין תחת Настройки → Производительность → Сжатие. הוא עובד ברמת PHP: אוסף קבצים הנכללים דרך CMain::AddCSSLink() ו-CMain::AddHeadScript(), ממזער אותם, ושומר אותם אל /bitrix/cache/css/ ו-/bitrix/cache/js/. הקבצים המתקבלים מקבלים hash בשם הקובץ—דפדפנים מאחסנים אותם במטמון באגרסיביות.
חשוב: מיניפיקציית Bitrix עובדת רק עם קבצים הנכללים דרך ה-API של Bitrix. CSS ו-JS שנוספו ישירות בתבנית דרך <link> ו-<script> אינם מעובדים. בפרויקטים מורשת, לעיתים קרובות חצי מהקבצים נכללים "בעקיפין" מה-API. אנו ממירים הכללות כאלה לשיטות סטנדרטיות—זהו שלב חובה בביקורת שלנו.
למה מיניפיקציה לבדה אינה מספיקה להאצה אמיתית
מיניפיקציה מפחיתה את גודל הקובץ על הדיסק, אך במהלך העברת רשת, הנתונים עדיין עוברים "כפי שהם." ללא דחיסה ברמת HTTP (gzip/Brotli), אתה מפסיד 70–80% מהרווח הפוטנציאלי. לדוגמה, קובץ jQuery UI ממוזער עשוי להיות 150 KB, אך עם gzip רק 40 KB. ההבדל מורגש בכל בקשה.
איך להגדיר gzip על nginx עבור Bitrix?
תצורת nginx דורשת רק כמה הוראות:
gzip on;
gzip_types text/css application/javascript application/json text/javascript;
gzip_min_length 1024;
gzip_comp_level 5;
gzip_vary on;gzip on; gzip_types text/css application/javascript application/json text/javascript; gzip_min_length 1024; gzip_comp_level 5; gzip_vary on; מאזן בין יחס דחיסה לעומס CPU. רמות 6–9 נותנות רווח מינימלי בעומס גבוה משמעותית. gzip_comp_level 5 מוסיף את הכותרת gzip_vary on, הנדרשת לפעולה תקינה של מטמון פרוקסי ו-CDN. Brotli דוחס אפילו טוב יותר—רווח של עד 20% לעומת gzip. התצורה דומה, אך דורשת את המודול Vary: Accept-Encoding.
מה Brotli נותן לעומת gzip?
Brotli יעיל פי 1.2–1.3 מ-gzip ביחס הדחיסה. הוא עדיף לדפדפנים מודרניים אך דורש מודול nginx. תצורה:
brotli on; brotli_types text/css application/javascript application/json text/javascript; brotli_comp_level 6; עדיף לשמור על gzip כגיבוי ללקוחות ישנים יותר. ניתן לשלב בין שתי השיטות: ngx_brotli עבור קבצים דחוסים מראש.
מה לבדוק במהלך ההתקנה
טעות נפוצה: דחיסה כפולה—gzip מופעל ב-nginx, אך PHP-FPM או Bitrix עצמו דוחסים גם הם תגובות. סימפטום: הדפדפן נותן שגיאת פענוח או שהקובץ יורד במקום להתבצע. בדוק עם brotli on; brotli_types text/css application/javascript application/json text/javascript; brotli_comp_level 6; —הכותרת צריכה להכיל gzip_static on.
עבור קבצים ממוזערים עם hash בשם, אנו ממליצים להגדיר דחיסה סטטית (דחוסה מראש) דרך curl -I -H "Accept-Encoding: gzip" https://mysite.ru/bitrix/cache/css/file.css—nginx מגיש קובץ Content-Encoding: gzip דחוס מראש ללא עומס CPU בזמן אמת.
איך לבדוק דחיסה ידנית?
השתמש ב-curl:gzip_static on
חפש את .gz או curl -I -H "Accept-Encoding: gzip, br" https://example.com/bitrix/cache/css/s1/main.css בתגובה. אם הכותרת חסרה, הדחיסה לא עובדת.
מקרה מהפרקטיקה שלנו
אתר תאגידי Bitrix "Standard"—12 קבצי CSS ו-23 קבצי JS הנכללים דרך API. לאחר הפעלת מיניפיקציית Bitrix ו-gzip על nginx: גודל CSS+JS הכולל ירד מ-1.4 MB ל-180 KB (מיניפיקציה) → 48 KB (gzip). בקשות CSS ירדו מ-12 ל-2, JS מ-23 ל-3. זמן Content-Encoding: gzip ירד ב-0.8 שניות בחיבורי 3G ניידים.
| שיטה | גודל (מקורי) | גודל (דחוס) | בקשות |
|---|---|---|---|
| ללא דחיסה | 1.4 MB | — | 35 |
| מיניפיקציה | 180 KB | 48 KB (gzip) | 5 |
| Brotli | 180 KB | 40 KB | 5 |
השוואת אלגוריתמים:
| אלגוריתם | יחס דחיסה | עומס CPU | תמיכת דפדפנים |
|---|---|---|---|
| gzip (רמה 5) | 7–10x | נמוך | 99.9% |
| Brotli (רמה 6) | 8–12x | בינוני | 95% (מודרניים) |
מה כלול בעבודה
- ביקורת הכללת משאבים: זיהוי הכנסות CSS/JS "ישירות" שאינן מעובדות על ידי Bitrix.
- המרת כל הקבצים ל-API:
Content-Encoding: br,DOMContentLoaded. - הפעלת מיניפיקציה ומיזוג מובנים בלוח הניהול.
- הגדרת gzip/Brotli על השרת (nginx/Apache).
- בדיקת דחיסה כפולה ובדיקת כל העמודים.
- הכנת דוח לפני/אחרי.
תהליך עבודה
- ניתוח—לימוד מבנה התבנית, שיטות הכללת משאבים, מחסן השרת הנוכחי.
- תכנון—בחירת הסכמה האופטימלית (מיניפיקציה + gzip או Brotli, דחיסה סטטית).
- יישום—ביצוע שינויים בתצורת nginx, הגדרת Bitrix, שינוי תבניות במידת הצורך.
- בדיקות—בדיקת כותרות HTTP, מהירות טעינה (Lighthouse, WebPageTest), הבטחת היעדר שגיאות.
- פריסה—יישום בסביבת הייצור, ניטור למשך שבוע.
ההתקנה אורכת בין 4 ל-8 שעות בהתאם לנפח קוד המורשת. הזמן ביקורת מהירות—נזהה צווארי בקבוק ונגדיר דחיסה במפתח פתוח. אנו מבטיחים פעולה יציבה—כל השינויים הפיכים. יש לנו ניסיון של למעלה מ-5 שנים באופטימיזציית פרויקטי Bitrix.
קישורים שימושיים:

