הגדרת מטמון אוטומטי של רכיבי 1C-Bitrix: האצה פי 2-5
אנו נתקלים בפרויקטים שבהם, לאחר עדכונים משמעותיים או פיתוח על ידי צוותים חיצוניים, דפים נטענים תוך 5–10 שניות. סיבה אופיינית היא פרמטרים שגויים של מטמון אוטומטי של רכיבים. הגדרת מטמון אוטומטי של רכיבי 1C-Bitrix יכולה להפחית drastically את זמן התגובה.
הבה נצלול כיצד זה עובד וכיצד להגדיר זאת. לדוגמה, בפרויקט אחד עם קטלוג של 10,000 פריטים, דפים נטענו תוך 7 שניות. לאחר הגדרת מטמון אוטומטי, TTFB ירד ל-0.2 שניות, מה שהוביל לחיסכון משמעותי במשאבי השרת. מטמון אוטומטי נכון הופך את האתר לפי 2-5 מהיר יותר בהשוואה לאתר לא ממוטב.
Autocaching כבסיס לביצועים של Bitrix
Autocaching ב-Bitrix הוא מנגנון מובנה של מערכת הקומפוננטות שבו הפלט של הקומפוננטה (HTML או נתונים) נשמר למטמון קבצים ונעשה בו שימוש חוזר בבקשות עוקבות. בפרויקט מוגדר כראוי, 70–90% מקריאות הקומפוננטות מוגשות מהמטמון ללא שאילתות למסד הנתונים. ללא זה, כל בקשה מעמיסה על מסד הנתונים, דבר שהוא קריטי בעומס גבוה.
כיצד נוצר מפתח המטמון ומדוע זה חשוב
Bitrix יוצר את מפתח המטמון מפרמטרי הרכיב, כתובת ה-URL ומשתנים נוספים. הבעיה מתעוררת כאשר נתונים מיותרים נכנסים למפתח: מזהה הפעלה, פרמטרי GET אקראיים כמו תגי UTM (utm_source, utm_campaign), פרמטרי עימוד.
רכיב עם CACHE_FILTER = Y ייצור מטמון נפרד עבור כל שילוב של פרמטרי GET — בתעבורת UTM, המטמון לעולם לא ישמש מחדש. פתרון: להגדיר CACHE_FILTER = N ולהעביר במפורש רק פרמטרים משמעותיים דרך arAdditionalCacheId, או לסנן פרמטרי UTM ברמת nginx לפני העברת הבקשה ל-PHP.
מדוע CACHE_GROUPS = Y עלול להוות בעיה
הפרמטר CACHE_GROUPS = Y יוצר מטמון נפרד עבור כל קבוצת משתמשים. הדבר נחוץ עבור רכיבים עם תוכן שתלוי בהרשאות. אך עבור קטלוג ציבורי או חדשות, CACHE_GROUPS = Y מכפיל את מספר ערכי המטמון במספר קבוצות המשתמשים.
בפרויקטים עם 20+ קבוצות (שותפים, סיטונאים, מנהלים וכו'), המטמון לעולם לא "מתחמם" עד לרמה של שימוש אפקטיבי. הזמינו ביקורת — נזהה ונחסל בעיות כאלה.
השוואת מצבי מטמון
| מצב | תיאור | מתי להשתמש |
|---|---|---|
| CACHE_TYPE = A | אוטומטי — יורש את המצב הגלובלי | ברירת מחדל לכל הרכיבים |
| CACHE_TYPE = Y | תמיד לשמור במטמון | עבור שאילתות כבדות, נתונים שמשתנים לעיתים רחוקות |
| CACHE_TYPE = N | לעולם לא לשמור במטמון | רק עבור רכיבים בזמן אמת (חיפוש, סל קניות) |
מקרה בוחן מהפרקטיקה שלנו
אתר Bitrix "Standard" של חברת ייצור. הלקוח התלונן: האתר היה מהיר, אך לאחר עדכון תבנית הכל הפך לאיטי. ביצענו ביקורת באמצעות פאנל הביצועים — כל הרכיבים פעלו ללא מטמון.
הסיבה: המפתח, לנוחות הדיבוג, הגדיר את הקבוע BX_CACHE_TYPE כ-N בקובץ bitrix/php_interface/dbconn.php ושכח להסיר אותו. שורת קוד אחת — וכל האתר פעל ללא מטמון. התיקון ארך 15 דקות, וה-TTFB חזר לנורמה.
מצבים כאלה אינם נדירים, והבדיקה שלנו של עשרות פרויקטים מראה שב-80% מהמקרים הבעיה נפתרת באמצעות הגדרת קבועים פשוטה. נתונים אלה מבוססים על ביקורות של למעלה מ-500 פרויקטים.
איך אנחנו מגדירים Autocaching: התהליך
לצוות שלנו יש יותר מ-10 שנות ניסיון ב-Bitrix ויותר מ-500 פרויקטים מוצלחים. ההמלצות מבוססות על יותר מ-10 שנות עבודה עם Bitrix. התהליך כולל שלבים:
- ביקורת — איסוף מדדים, ניתוח רכיבים באמצעות פאנל הביצועים.
- תכנון — קביעת TTL לכל בלוק, הגדרת מפתחות.
- יישום — עריכת קריאות לרכיבים, הוספת מטמון מתויג.
- בדיקות — השוואת זמני תגובה לפני/אחרי (למשל, מ-7 שניות ל-0.2).
- פריסה — העברה לשרת הייצור, ניטור.
אנחנו מבטיחים האצה של לפחות פי 2–3 בטעינת העמוד. החיסכון במשאבי השרת יכול להיות משמעותי בפרויקטים בעומס גבוה. הניסיון של מומחים מוסמכים מאפשר לנו לזהות אפילו בעיות נסתרות.
מה כלול בהגדרת Autocaching ב-Turnkey?
- עדכון מלא של כל קריאות הרכיבים באתר.
- תיקון פרמטרים שגויים של caching.
- הגדרת tagged cache עבור רכיבים מותאמים אישית.
- אופטימיזציה של מפתחות cache על ידי הסרת פרמטרים מיותרים.
- תיעוד השינויים והמלצות תחזוקה.
לוח זמנים: בין 1 ל-3 ימים בהתאם לגודל הפרויקט. העלות מחושבת באופן אישי בהתאם להיקף. קבלו ייעוץ בנוגע להגדרת autocaching — צרו קשר.
TTL מומלץ עבור רכיבים טיפוסיים
| סוג רכיב | TTL מומלץ |
|---|---|
| חדשות, רשימת מאמרים | 3600–7200 שנ׳ (1–2 שעות) |
| קטלוג מוצרים | 86400 שנ׳ (יום אחד) |
| תפריט, סרגל צד | 86400 שנ׳ |
| חיפוש | 0 שנ׳ (ללא מטמון) |
טעויות אופייניות בהגדרת מטמון:
- שימוש ב-CACHE_GROUPS = Y עבור תוכן ציבורי.
- מפתחות מטמון שגויים עם פרמטרי UTM.
- היעדר ביטול תוקף (invalidation) עבור רכיבים מותאמים אישית.
ביטול מטמון
מטמון הרכיב מבוטל אוטומטית כאשר הנתונים של בלוק המידע שאליו הוא מקושר משתנים, באמצעות תגים כמו IBLOCK_N_ELEMENTS.
עבור רכיבים מותאמים אישית שעובדים עם טבלאות משלהם, יש ליישם את הביטול באופן מפורש באמצעות BXClearCache() או \Bitrix\Main\Application::getInstance()->getTaggedCache()->clearByTag().
פרטים נוספים ניתן למצוא בתיעוד הרשמי של 1C-Bitrix. הגדרת מטמון אוטומטי היא בחינה מחדש של כל פרמטרי הרכיב באתר, זיהוי מפתחות מטמון שגויים והגדרת TTL מתאימים. אם ברצונך להאיץ את הפרויקט שלך, הזמן ביקורת — אנו נאבחן ונתקן את הבעיות.

