אתר ה-1C-Bitrix שלך איטי: TTFB של 800ms, השרת מתקשה תחת עומס, ותקציב האחסון מזנק? מטמון קומפוזיט פותר זאת באופן קיצוני — הבקשה הראשונה לדף רצה במלואה (PHP + DB), התוצאה נשמרת כ-HTML סטטי ב-/bitrix/cache/html/, ובקשות עוקבות מוגשות ישירות מהקובץ דרך nginx. PHP אפילו לא מופעל. מטמון קומפוזיט הוא הדרך היעילה ביותר להאיץ טעינת דפים ללא שדרוג שרת. TTFB יורד מ-800ms ל-20–50ms, עומס PHP-FPM יורד ב-90% או יותר. בלוקים דינמיים (עגלה, שם משתמש, מלאי) מוחלפים בבקשות AJAX לאחר טעינת הדף.
במשך יותר מ-5 שנים, ביצענו יותר מ-50 הטמעות מוצלחות של מטמון קומפוזיט בפרויקטים בקנה מידה שונה — מחנויות מקוונות ועד פורטלי חדשות עם יותר מ-100,000 מבקרים ייחודיים ביום. מטמון קומפוזיט מאיץ את TTFB פי 10-20 בהשוואה למטמון רגיל ללא HTML סטטי. להלן נסביר כיצד זה עובד ואילו מלכודות יש לשים לב אליהן.
מהן דרישות השרת והרישיון?
כדי שקומפוזיט יעבוד, יש צורך ב:
- רישיון 'Business' ומעלה (לא זמין ב-'Start' ו-'Standard')
- מודול
bitrix.composite(מותקן מ-Marketplace; מובנה בגרסאות ישנות יותר) - תצורת nginx נכונה להגשת מטמון HTML ללא PHP
תצורת nginx היא קריטית. בלעדיה, קומפוזיט עובד 'בחצי דרך': HTML נשמר, אבל PHP עדיין רץ כדי לבדוק את המטמון. יש להוסיף תנאי בבלוק server שבודק את קובץ המטמון ומגיש אותו ישירות:
set $composite_cache "";
if (!-f $document_root/bitrix/cache/html/$host$request_uri/index.html) {
set $composite_cache "no";
}
if ($composite_cache = "") {
rewrite ^ /bitrix/cache/html/$host$request_uri/index.html last;
}התצורה המדויקת תלויה בגרסת Bitrix ובמבנה האתר — התיעוד הרשמי מכיל מספר גרסאות עבור סכמות URL שונות. למידע נוסף על מטמון אינטרנט, ראו ויקיפדיה, והתיעוד הרשמי של Bitrix על מצב קומפוזיט נמצא ב-helpdesk.bitrix24.ru.
כיצד לסמן נכון אזורים דינמיים?
הבעיה העיקרית עם קומפוזיט היא סימון שגוי של אזורים דינמיים. כל מה שלא אמור להיכנס למטמון הסטטי עטוף בתג set $composite_cache ""; if (!-f $document_root/bitrix/cache/html/$host$request_uri/index.html) { set $composite_cache "no"; } if ($composite_cache = "") { rewrite ^ /bitrix/cache/html/$host$request_uri/index.html last; } :
<?
$APPLICATION->IncludeComponent("bitrix:sale.basket.basket", ".default", array("CACHE_TYPE" => "N"), false);
?>בפרויקטים מודרניים, אזורים דינמיים מועברים לנקודות קצה AJAX נפרדות ונטענים דרך bitrix:nocache לאחר טעינת הדף. בלוקים טיפוסיים הדורשים <?$APPLICATION->IncludeComponent("bitrix:sale.basket.basket", ".default", array("CACHE_TYPE" => "N"), false);?> : עגלה ומונה פריטים, בלוק התחברות, ווידג'טים להשוואה, המלצות מותאמות אישית, ומלאי שמשתנה תדיר.
מדוע קומפוזיט לא עובד עבור משתמשים מחוברים?
כברירת מחדל, קומפיזיט מגיש HTML סטטי רק למשתמשים אנונימיים. עבור משתמשים מחוברים, מחזור PHP המלא תמיד רץ כדי להציג תוכן מותאם אישית בצורה נכונה. קיים מצב התאמה אישית אסינכרוני דרך BX.ajax, אך הוא דורש פיתוח נפרד וסימון קפדני. דפים עם פרמטרים של nocache ואלה שברשימת ההחרגה (bitrix:composite.async, POST) גם הם לא נשמרים במטמון.
כיצד מטמון קומפוזיט משפיע על SEO?
גוגל ו-Yandex משתמשות בזמן טעינת הדף כגורם דירוג. TTFB מתחת ל-200ms נחשב מצוין, וקומפוזיט מספק 20–50ms. בנוסף, HTML סטטי עובר אינדוקס מהיר יותר, מה שמשפר את מהירות הסריקה. עבור מנועי חיפוש, זה מאותת על אתר איכותי. ודאו שכל רכיבי ה-SEO (תגי meta, כותרות) מוצגים נכון ב-HTML המטמון — עם סימון נכון, זו לא בעיה.
מקרה מבחן מהפרקטיקה שלנו
פורטל חדשות עם 40,000 מבקרים ייחודיים ביום, רובם אנונימיים. TTFB במאמרים היה 650–900ms, והשרת היה עמוס בשעות השיא. לאחר הגדרת קומפוזיט לדפי מאמרים (רק בלוק 'התגובות האחרונות' נשאר דינמי דרך AJAX), TTFB ירד ל-15–30ms. עומס PHP-FPM ירד כל כך עד שנאלצנו להפחית את מספר העובדים — הם היו בטלים. החיסכון במשאבים הסתכם בכ-$9–13 בחודש על ידי ביטול הצורך בשרתים נוספים. צרו קשר לבדיקה דומה של הפרויקט שלכם.
מה כלול בהגדרת מטמון קומפוזיט
- בדיקת כל הרכיבים בדף: זיהוי אזורים דינמיים שדורשים סימון.
- תצורת nginx: הוספת כללים להגשת מטמון סטטי.
- סימון אזורי
/personal/: עטיפת עגלה, התחברות, השוואה ובלוקים אחרים. - העברת חלק מהבלוקים הדינמיים לטעינת AJAX לעוד מהירות.
- בדיקה בתרחישים שונים: אנונימי, מחובר, נייד.
- ניטור: בדיקת כותרות תגובה ו-TTFB דרך DevTools.
השוואה לפני ואחרי
| פרמטר | לפני קומפוזיט | אחרי קומפוזיט |
|---|---|---|
| TTFB | 600–900 ms | 15–50 ms |
| עומס CPU (PHP-FPM) | 70-90% | 5-15% |
| זמן טעינת דף (אנונימי) | 2-4 שניות | 0.3-0.8 שניות |
| בקשות במקביל | 30-50 | 200+ |
לוחות זמנים טיפוסיים להגדרת מטמון קומפוזיט
| מורכבות הפרויקט | לוח זמנים |
|---|---|
| חנות מקוונת פשוטה (תבנית סטנדרטית) | 1–2 ימים |
| קטלוג מורכב עם בלוקים דינמיים רבים | 2–4 ימים |
| פורטל עם לוגיקה מותאמת אישית | 4–6 ימים |
טעויות נפוצות בהגדרת מטמון קומפוזיט
קומפוזיט לא עובד עבור משתמשים מחוברים כברירת מחדל — הם תמיד מריצים את מחזור ה-PHP המלא. טעות נפוצה היא הפעלת קומפוזיט גלובלית ללא עטיפת /order/ סביב הבלוקים הנדרשים. התוצאה: נתונים של משתמש אחד נכנסים למטמון ומוצגים למשתמש אחר. זה לא מתגלה מיד ויכול ליצור בעיות אבטחה חמורות. טעות נוספת היא התעלמות ממטמון מתויג, מה שמוביל לפסילת מטמון מוגזמת בשינויים קלים.
בדיקת פעולת מטמון קומפוזיט
פתחו את הדף במצב גלישה אנונימית והסתכלו בכותרות התגובה. אם התגובה מכילה nocache או שקוד המקור כולל את ההערה nocache, המטמון פעיל. TTFB מתחת ל-50ms הוא סימן אמין לפעולה תקינה. אנו ממליצים גם לבדוק שהבלוקים הדינמיים (עגלה, התחברות) מתעדכנים דרך AJAX לאחר טעינת הדף.
מוכנים להאיץ את האתר שלכם? הזמינו בדיקת מטמון קומפוזיט וקבלו ייעוץ. אנו מבטיחים האצה פי 10. צרו קשר להערכה ראשונית של הפרויקט שלכם.

