כיצד לתקן תזוזת פריסה מצטברת (CLS) באתרי 1С-Битрикс

כיצד לתקן תזוזת פריסה מצטברת (CLS) באתרי 1С-Битрикс הצוות שלנו עוזר לאתרים על 1С-Битрикс לעבור את Core Web Vitals כבר שנים. מדד מרכזי אחד הוא **CLS** (Cumulative Layout Shift), המודד יציבות חזותית. כאשר דף קופץ במהלך הטעינה - המשתמשים לא יכולים לקרוא או ללחוץ בנוחות
השירותים שאנו מציעים
מציג 1 מתוך 1כל 1626 השירותים
כיצד לתקן תזוזת פריסה מצטברת (CLS) באתרי 1С-Битрикс
בינוני
~1-2 שבועות

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • image_website-b2b-advance_0.webp
    פיתוח אתר חברה B2B ADVANCE
    1456
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    פיתוח אתר לחברת FIXPER
    1018
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    פיתוח מבוסס Bitrix, Bitrix24, 1C לחברה פיתוח ווידג'ט להזמנת תורים אונליין למרכז רפואי
    760
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    פיתוח על בסיס 1C Enterprise עבור MIRSANBEL
    879
  • image_crm_dolbimby_434_0.webp
    פיתוח אתר על CRM Bitrix24 עבור DOLBIMBY
    804
  • image_crm_technotorgcomplex_453_0.webp
    פיתוח על בסיס Bitrix24 עבור חברת TECHNOTORGKOMPLEKS
    1162

כיצד לתקן Cumulative Layout Shift (CLS) באתרי 1С-ביטריקס

הצוות שלנו עוזר לאתרים על 1С-ביטריקס לעבור את Core Web Vitals כבר שנים. מדד מרכזי אחד הוא CLS (Cumulative Layout Shift), המודד יציבות חזותית. כאשר עמוד קופץ במהלך הטעינה — משתמשים לא יכולים לקרוא או ללחוץ בנוחות, וגוגל מורידה דירוגים. הורדנו את CLS מ-0.6 ל-0.05 בקטלוג עם 50,000 מוצרים. בואו נפרק איך לעשות זאת באופן שיטתי.

CLS מודד חוסר יציבות חזותית: כמה אלמנטים זזים במהלך הטעינה. הסף של גוגל הוא CLS < 0.1. תזוזות שגורמות למשתמשים לפספס כפתור או לאבד את מקום הקריאה פוגעות בחוויית המשתמש ובדירוגים. Cumulative Layout Shift — ויקיפדיה

באתרי 1С-ביטריקס, CLS בדרך כלל נע בין 0.2–0.6. האשמים צפויים וניתנים לתיקון באופן שיטתי.

מדוע CLS הוא בעיה ספציפית עבור 1С-ביטריקס

בפתרונות ביטריקס סטנדרטיים, תמונות לעיתים קרובות חסרות מאפייני גודל, בלוקים דינמיים (עגלה, מונים, מועדפים) נטענים באופן אסינכרוני, וגופני אינטרנט מוגדרים ללא font-display. כל זה גורם ל-CLS גבוה. בנוסף, ווידג'טים של פרסומות וצ'אטבוטים המוכנסים דרך JS דוחפים תוכן מסביב.

תיקון אלה ידנית בכל תבנית הוא עבודה מאומצת. אנו הופכים את הבדיקה לאוטומטית ומיישמים שינויים בכל הרכיבים בבת אחת.

כיצד למדוד CLS באתר ביטריקס

CLS = סכום (חלק ההשפעה × חלק המרחק) עבור כל תזוזה. חלק ההשפעה הוא החלק של אזור התצוגה המושפע. חלק המרחק הוא כמה רחוק האלמנט זז ביחס לאזור התצוגה. תמונה בגובה 30% הזזה למטה ב-20% נותנת 0.06 לכל אירוע.

מדידה: Chrome DevTools → Performance → הקלטה + גלילה. הקטע Layout Shift מציג כל תזוזה עם האלמנט.

מה גורם ל-CLS בתבניות ביטריקס סטנדרטיות

בואו נסתכל על המקורות העיקריים:

  • תמונות ללא רוחב וגובה — הסיבה הנפוצה ביותר. כאשר הדפדפן מנתח <img src="..."> ללא מידות, הוא לא יודע כמה מקום לשמור. תוכן מתחת מוצג ללא פער, ואז זז למטה כאשר התמונה נטענת.

תבניות רכיבים סטנדרטיות של ביטריקס לעיתים קרובות מציגות תמונות ללא מאפייני גודל. תיקון תבנית הרכיב:

// Получить размеры изображения при рендеринге $imgFile = \CFile::GetByID($arItem['PREVIEW_PICTURE'])->Fetch(); $width = $imgFile['WIDTH'] ?: 300; $height = $imgFile['HEIGHT'] ?: 300; echo '<img src="' . \CFile::GetPath($arItem['PREVIEW_PICTURE']) . '"' . ' width="' . (int)$width . '"' . ' height="' . (int)$height . '"' . ' loading="lazy"' . ' alt="' . htmlspecialchars($arItem['NAME']) . '">'; 

CSS // Получить размеры изображения при рендеринге $imgFile = \CFile::GetByID($arItem['PREVIEW_PICTURE'])->Fetch(); $width = $imgFile['WIDTH'] ?: 300; $height = $imgFile['HEIGHT'] ?: 300; echo '<img src="' . \CFile::GetPath($arItem['PREVIEW_PICTURE']) . '"' . ' width="' . (int)$width . '"' . ' height="' . (int)$height . '"' . ' loading="lazy"' . ' alt="' . htmlspecialchars($arItem['NAME']) . '">'; כחלופה — כאשר המידות ידועות וקבועות:

.product-card__image-wrapper { aspect-ratio: 4 / 3; overflow: hidden; } .product-card__image-wrapper img { width: 100%; height: 100%; object-fit: cover; } 

זה שומר מקום דרך CSS, כך שאין צורך במידות HTML מפורשות. גדלי תמונות קבועים מפחיתים CLS פי 10 יותר ביעילות מטריקות CSS.

  • בלוקים דינמיים: עגלה, מונים, באנרים — אתרי ביטריקס לעיתים קרובות כוללים אלמנטים דינמיים בכותרת: מספר פריטים בעגלה, סה"כ, מספר התראות. אלה נטענים דרך AJAX לאחר הרינדור. אם יש תוכן מתחת לעגלה, הוא זז כאשר נתוני העגלה נטענים.

שמירת מקום דרך CSS:

.header__cart-count { min-width: 24px; min-height: 24px; display: inline-flex; align-items: center; justify-content: center; } 

הגדרת מידות קבועות לכל האלמנטים הדינמיים בכותרת ובסרגל הצד. האלמנט הריק תופס מקום; לאחר טעינת הנתונים, גודלו לא משתנה.

  • בלוקי פרסומות ובאנרים — מקור קלאסי ל-CLS. הבלוק נטען דרך JS, מוכנס ל-DOM, ודוחף תוכן. פתרון: תמיד לשמור מקום לפרסומות עם aspect-ratio.

  • גופנים ו-FOIT/FOUT — ללא .product-card__image-wrapper { aspect-ratio: 4 / 3; overflow: hidden; } .product-card__image-wrapper img { width: 100%; height: 100%; object-fit: cover; } , גופני אינטרנט גורמים ל-FOIT (טקסט מוסתר עד שהגופן נטען) או ל-FOUT (טקסט תחילה בגופן מערכת, ואז מצויר מחדש עם גופן מותאם אישית). FOUT גורם ל-CLS אם לשני הגופנים יש מדדים שונים.

@font-face { font-family: 'SiteFont'; src: url('/bitrix/fonts/sitefont.woff2') format('woff2'); font-display: swap; font-style: normal; font-weight: 400; } @font-face { font-family: 'SiteFontFallback'; src: local('Arial'); size-adjust: 105%; ascent-override: 90%; } 
  • אנימציות וטרנספורמציות — אנימציות המשתמשות ב-.header__cart-count { min-width: 24px; min-height: 24px; display: inline-flex; align-items: center; justify-content: center; } , min-height, font-display משנות גיאומטריה וגורמות ל-reflow. השתמשו רק ב-@font-face { font-family: 'SiteFont'; src: url('/bitrix/fonts/sitefont.woff2') format('woff2'); font-display: swap; font-style: normal; font-weight: 400; } @font-face { font-family: 'SiteFontFallback'; src: local('Arial'); size-adjust: 105%; ascent-override: 90%; } ו-top:
/* Не вызывает CLS — только compositing */ .banner { transition: transform 0.3s; } .banner.hidden { transform: translateY(-100%); } 

תהליך אופטימיזציית CLS שלב אחר שלב

  1. בדיקה: הרצת PageSpeed Insights ו-CrUX, זיהוי מקורות CLS.
  2. תיקון תמונות: הוספת רוחב/גובה לכל תגי img בתבניות רכיבים.
  3. שמירת מקום: הגדרת min-height/min-width לבלוקים דינמיים.
  4. הגדרת גופנים: הוספת font-display:swap ומדדי fallback.
  5. תיקון פרסומות: הגדרת min-height למכלי פרסומות.
  6. המרת אנימציות: החלפת מאפיינים הגורמים ל-layout ב-transform/opacity.
  7. אימות: בדיקה חוזרת עם DevTools ו-PageSpeed Insights.

ציר זמן ועלות אופטימיזציית CLS

משימה ציר זמן השפעה עלות אופיינית
הוספת רוחב/גובה לתמונות בתבניות רכיבים 1–3 ימים CLS −0.1–0.3 $200–$500
שמירת מקום לבלוקים דינמיים יום אחד CLS −0.05–0.15 $100–$300
הגדרת font-display 0.5 יום CLS −0.02–0.1 $50–$150
תיקון בלוקי פרסומות עם min-height 0.5 יום CLS −0.05–0.2 $50–$200
המרת אנימציות ל-transform 1–2 ימים CLS → 0 מאנימציות $200–$400

לאחר התיקונים, יש לאמת עם PageSpeed Insights באמצעות נתונים אמיתיים. CrUX מתעדכן עם עיכוב של 28 יום — תראו שינויים בתנועה האמיתית לאחר כחודש.

המומחיות שלנו

אנחנו חברת 1С-ביטריקס מוסמכת עם ניסיון של למעלה מ-5 שנים, השלמנו למעלה מ-50 פרויקטים של Core Web Vitals, ושיעור הצלחה של 98% בהפחתת CLS מתחת ל-0.1. השיטה שלנו מהירה פי 2 מתיקונים סטנדרטיים מכיוון שאנו משתמשים בבדיקה אוטומטית ובשינויים בכמות גדולה. ROI אופייני: עלייה של 20% בתנועה אורגנית תוך חודשיים מהאופטימיזציה. אנו מעריכים את הפרויקט שלכם ללא תשלום — צרו קשר.

מה כלול

  • בדיקת CLS נוכחי דרך PageSpeed Insights ו-CrUX
  • תיקון תמונות בכל תבניות הרכיבים (הוספת רוחב/גובה)
  • שמירת מקום לבלוקים דינמיים (עגלה, מונים)
  • הגדרת font-display ובחירת גופני fallback
  • תיקון בלוקי פרסומות עם min-height
  • המרת אנימציות ל-transform
  • תיעוד כל השינויים
  • מדידת CLS סופית ודוח

ציר זמן: 3 עד 10 ימים בהתאם להיקף התבניות. החל מ-$500 לאופטימיזציה בסיסית.