To resolve flash of unstyled content (FOUC) in Elementor, enable Page Transitions under Site Settings in the Elementor Editor, apply Fade In entrance animations to hero containers, and configure caching or CDN plugins to exclude Elementor CSS files (/wp-content/plugins/elementor/assets/css/) from asynchronous loading or CSS deferral.
What causes flash of unstyled content in Elementor?
Flash of unstyled content (FOUC) occurs when a web browser renders raw HTML markup before loading and parsing the necessary CSS stylesheets. The primary root causes include:
- Stylesheet loading delays: The web browser finishes downloading the HTML structure prior to fetching external CSS files.
- Deferred CSS execution: Caching and performance optimization plugins force stylesheets to load asynchronously or move them to the document footer.
- Above-the-fold heavy assets: Unoptimized hero images delay critical visual rendering calculations and CSS processing.
How do you resolve FOUC using Elementor settings?
Follow these steps to eliminate visual rendering flickering using built-in controls within the site editor:
Method 1: Enable Page Transitions or Preloader
Enabling either Page Transitions or a Preloader will mask layout rendering delays while your page loads:
- Open any page in the Elementor Editor.
- Select the Hamburger Menu icon in the top-left corner and choose Site Settings.

- Under Settings, select Page Transitions.
- Choose either of the following options:
- Entrance Animation: Under Page Transitions, select an animation (such as Fade In) from the dropdown menu to smooth out page loading.

- Preloader: Expand Preloader, set Type to Animation, and select a style (such as Circle).

- Entrance Animation: Under Page Transitions, select an animation (such as Fade In) from the dropdown menu to smooth out page loading.
- Select Save Changes.
Method 2: Apply Entrance Animations
- Select the flickering hero container.
- Go to Advanced > Motion Effects > Entrance Animation.

- Under Entrance Animation select an animation (such as Fade In) from the dropdown menu.
How do you fix FOUC caused by third-party optimization tools?
If caching plugins or CDNs delay your stylesheets, follow these steps to exclude Elementor CSS and restore proper load order:
- Open your caching plugin dashboard (such as WP Rocket, LiteSpeed Cache, or Autoptimize).
- Locate settings labeled Defer CSS, Load CSS Asynchronously, or Remove Unused CSS.
- Add the path
/wp-content/plugins/elementor/assets/css/to the Excluded CSS Files text area. - Re-generate Critical CSS within your optimization plugin to include above-the-fold styling rules.
- Access your Cloudflare Dashboard and select the Speed > Optimization tab.
- Locate the Rocket Loader toggle switch and set it to Off.
- Enable Font Preloading in your performance plugin settings to prevent unstyled typography flickering (FOUT).
- Clear all server-side and browser caches to apply updated stylesheet settings.
Which performance tools help diagnose FOUC?
Run your site through these diagnostic tools to pinpoint render-blocking delays and trace stylesheet sequence issues:
- Google PageSpeed Insights: Highlights “Eliminate render-blocking resources” and tracks Largest Contentful Paint (LCP) delays.
- GTmetrix: Displays a visual waterfall chart to trace the exact load order of individual CSS files.
- WebPageTest: Generates frame-by-frame filmstrip views to pinpoint when unstyled content appears.
FAQ
Should you set the CSS Print Method to Internal Embedding to fix FOUC?
No. Setting the CSS Print Method to Internal Embedding can create conflicts with site caching mechanisms and degrade overall performance, particularly on complex websites.
Does Elementor Support configure third-party optimization plugins?
No. Third-party caching plugins, server performance adjustments, and CDN optimization tools fall outside the direct support scope of Elementor.
Why do custom fonts trigger a brief text flicker?
Text flickering (FOUT) happens when the web browser displays system fallback fonts while waiting for custom web font files to download. Enabling font preloading solves this issue.