General Guide: See Global CLS Guide for universal concepts and fixes.
What is CLS?
Cumulative Layout Shift measures visual stability. Google recommends CLS under 0.1. Simvoly generates CLS from its drag-and-drop builder framework injecting layout CSS after initial render, Google Fonts loading causing text reflow, popup and form widget animations, and section background images loading without reserved space.
Simvoly-Specific CLS Causes
- Builder framework CSS injection -- Simvoly's layout engine applies responsive styles after the initial HTML renders, causing elements to reposition
- Google Fonts FOUT -- custom font selections load asynchronously, causing text to reflow when fonts swap
- Popup and notification bars -- exit-intent popups, cookie banners, and promotional bars push page content when they appear
- Countdown timer rendering -- countdown widgets calculate and render their display after page load
- Image sections without aspect ratios -- full-width image sections resize as images load
Fixes
1. Optimize Image Sections
In the Simvoly editor:
- Set explicit section heights in the section settings rather than relying on auto-height from image content
- Use the Fixed Height option on hero sections to prevent resizing during image load
- Crop images to consistent aspect ratios (16:9 for hero, 1:1 for profile photos) before uploading
- Avoid using "auto" height on image-heavy sections
2. Configure Popups and Bars Properly
- Set notification bars to overlay mode instead of pushing content down
- Configure popups to trigger on scroll or after delay rather than on page load
- Use Simvoly's built-in cookie consent with the bottom fixed position option
If using custom code for banners:
/* Add via Simvoly Custom Code > Custom CSS */
.notification-bar, .cookie-banner {
position: fixed;
bottom: 0;
left: 0;
right: 0;
z-index: 9999;
}
3. Minimize Font-Related Shifts
- Limit to 2 font families in Simvoly's design settings
- Choose fonts with metrics close to system fonts (e.g., Open Sans is close to Arial)
- If using custom fonts via Custom Code, add
font-display: swap:
<!-- Add to Simvoly Custom Code > Header -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
4. Stabilize Dynamic Elements
For countdown timers, forms, and interactive widgets:
- Place dynamic elements (countdown timers, animated counters) in their own dedicated sections
- Set minimum heights on sections containing forms or interactive elements
- Avoid placing dynamic widgets adjacent to text content that could shift
/* Add via Custom CSS */
.countdown-section {
min-height: 150px;
}
.form-section {
min-height: 400px;
}
5. Test Mobile Layout Separately
- Simvoly's responsive mode rearranges columns to stack vertically on mobile
- Check that stacked sections have consistent heights
- Use the mobile preview to verify that hero sections maintain proper aspect ratios
- Reduce the number of sections visible above the fold on mobile
Measuring CLS on Simvoly
- PageSpeed Insights -- test both desktop and mobile, compare CLS scores
- Chrome DevTools Performance tab -- record page load and look for layout-shift entries
- Test funnel pages vs. standard pages -- funnel pages with forms and countdown timers typically have higher CLS
- Popup testing -- trigger popups/notification bars during recording to see their CLS impact
Analytics Script Impact
- Add analytics via Settings > Custom Code in the Footer section to avoid blocking render
- Avoid analytics scripts that inject visible elements (survey widgets, NPS popups)
- Heatmap tools that add feedback buttons should use fixed positioning
- Simvoly's built-in analytics cause no CLS since they are server-side