How to fix Cumulative Layout Shift in WordPress (Core Web Vitals Item) 
                    
	Aug 15, 2023
 
                    
                    How to fix Cumulative Layout Shift in WordPress (Core Web Vitals Item) 
	A simple guide to fixing cumulative layout shift (CLS) in WordPress which is currently 15% of core web vital scores.https://webvitals.dev/cls ). CLS issues are often caused by fonts, asynchronous CSS (i.e. Optimize CSS Delivery in WP Rocket), not setting a fallback critical CSS, elements without specified dimensions, and animations that don’t use transform/translate properties.https://onlinemediamasters.com/cumula …https://wordpress.org/plugins/swap-go …https://wordpress.org/plugins/string- …https://onlinemediamasters.com/go/wp- …https://wordpress.org/plugins/host-we …https://www.malthemilthers.com/font-l …https://wpmudev.com/forums/topic/font …https://www.sitelocity.com/critical-p …https://wordpress.org/plugins/happy-e …https://github.com/soflyy/oxygen-bugs …
                    
    
                    Content 
                    0.24 ->  what's up this is tom and in this video i'm going 
to show you how to fix your cumulative layout  
4.56 ->  shift in wordpress now you can use gtmetrix 
to measure this but i really recommend using  
10.16 ->  the cumulative layout shift debugger on the web 
vitals website i'll leave a link to this in the  
15.6 ->  video description but this actually creates a gif 
showing you all the shifting elements on your site  
21.2 ->  if you load your site in a browser it's 
probably too quick for you to notice  
25.28 ->  but things might be shifting and this can be 
related to fonts asynchronous css animations  
32.16 ->  or things that don't have specified dimensions 
like images iframes or even ads you can also use  
38.56 ->  pagespeed insights to see any elements that have 
large layout shifts or in web page tests they have  
45.2 ->  a cumulative layout shift score and if you click 
this it will also show a gif cls is currently  
51.04 ->  15 of core web vitals it used to be 5 but just in 
the last version 8 they increased it from five to  
59.28 ->  fifteen so just know that there is more weight on 
cls in core web vitals now and to improve it you  
65.92 ->  want to aim for a cls score of .1 or less anything 
over will either need improvement or score as poor  
73.92 ->  i currently have a cls score of zero but if 
you update wp rockets sometimes this can change  
80.8 ->  i feel like there's a lot of issues with cls and 
wp rocket at the moment and they need to figure  
86 ->  things out and i did write an article covering 
cumulative layout shift in wordpress which i'll  
91.36 ->  leave a link to in the video description 
but without further ado let's get into it  
96.96 ->  fonts are a very common issue when it comes to 
cumulative layout shift now if you check your  
101.6 ->  pagespeed insights report and you see you need to 
ensure text remains visible during web font load  
107.44 ->  then chances are they're contributing to your cls 
the first step to optimizing fonts is to make sure  
113.92 ->  they are hosted locally and not being pulled from 
third-party font websites like fonts.gstatic.com  
120.72 ->  if they are you can use plugins like omgf or 
transponder to host your fonts locally and  
127.6 ->  this will make it so your fonts are being served 
from your website mine is onlinemediamasters.com  
135.44 ->  but you'll see that none of my fonts are being 
served from fonts.g static.com the next step to  
141.36 ->  optimizing fonts is to avoid foit and fout flight 
is flash of invisible text and happens when you  
148.56 ->  don't have a fallback font so while your font 
is being loaded you're not gonna see anything  
154.16 ->  it's just gonna be a blank white page but in fout 
flash of unstyled text you're gonna see there's a  
160.88 ->  fallback font and that is loaded until the regular 
font is loaded to fix this you're going to add  
167.68 ->  font display swap so if you ever downloaded google 
fonts from their website you'll notice they add  
174.4 ->  this automatically to the end of the url but if 
you need to do this yourself then you can use the  
181.04 ->  swap google fonts display plugin just note that 
this is only for google fonts and it automatically  
187.28 ->  adds font display swap to those urls if you're 
hosting fonts locally which is what you should be  
193.12 ->  doing then you're going to use the string locator 
plugin to find all your font files what you're  
199.6 ->  going to do is use the gt metrics waterfall chart 
go to the fonts tab click your fonts and then just  
207.84 ->  search for the last part of the url where the font 
is so you're going to go ahead and paste that here  
214.56 ->  and string locator is going to show you where your 
fonts are located so here you can see this is in  
220.88 ->  my style.css and this is where most of my fonts 
are it really depends on your theme and css but in  
228.48 ->  most cases you're going to find the font face and 
add font display swap into the font style sheet  
237.12 ->  now if you're using wp rocket they automatically 
add font display swap in three situations if you  
243.6 ->  enable optimize google fonts minify css or combine 
as well as optimize css delivery they will add  
251.28 ->  font display swap but if you re-test your site and 
still need to ensure text remains visible during  
257.52 ->  web font load then you may be running into issues 
and you need to solve them with font display swap  
264.48 ->  now i'll be the first to admit that i'm not a css 
wizard or anything close to it but there is a nice  
271.12 ->  article i found on wpmu that covers common issues 
when using font display swap and i'll leave a link  
278.8 ->  to this in the video description but adding 
font display swaps should fix the ensure text  
284.8 ->  remains visible during web font load item in page 
speed insights which should also help improve cls  
292.16 ->  another way to fix layout shift issues with fonts 
is to preload them you need to make sure you're  
297.68 ->  hosting fonts locally on your server and they're 
not being pulled from fonts.gstatic.com before  
304.08 ->  you pre-load them once you do that then you can go 
into your waterfall chart and go to the fonts tab  
312.16 ->  and just copy your font urls and paste them into 
the preload tab and wp rocket if you're not using  
319.44 ->  wp rocket you can use plugins like pre-party 
resource hints or perf matters or even do this  
326.24 ->  manually by adding it to your header.php file 
just make sure that you do testing while you're  
332.4 ->  pre-loading fonts because pre-loading too many 
can actually have a negative effect but if they're  
337.76 ->  loading across your entire website then chances 
are you can pre-load them but this will help fix  
343.36 ->  any cls issues related to fonts as well the next 
issue has to do with optimized css delivery in wp  
351.04 ->  rocket or if you're using lightspeed cache 
loading css asynchronously this is a very common  
357.76 ->  issue with cumulative layout shift i personally 
have it disabled but if you do have it enabled  
364.24 ->  sometimes the css delivery causes FOUC flash of 
unstyled content to fix this they have a little  
371.44 ->  article about it but um it is related to the css 
delivery option like i said i personally have it  
377.44 ->  disabled but the other option is you can set a 
fallback critical css and the way to do that is  
383.6 ->  to go to a css generator i'll leave a link to this 
one in the video description and you're going to  
390.08 ->  just enter your site under your home page and 
click generate critical path css copy the css  
397.68 ->  and paste it into the fallback right here you 
should retest your cls after you do this to see if  
403.84 ->  it made an improvement but i would also test your 
cls with optimized css delivery off no matter what  
410.72 ->  i did even sending a fallback and troubleshooting 
making sure optimized css delivery is working  
417.6 ->  by finding this in the source code no matter 
what i did it was causing layout shifts so i  
423.52 ->  ultimately chose to disable it but if you want 
to use it that is how to do it you want to make  
428.48 ->  sure it's working by searching for rocket critical 
css and your source code and also set a fallback  
435.44 ->  critical css if you're using lightspeed or another 
plug-in try disabling load css asynchronously  
443.2 ->  or if you have it on try generating a critical 
css another way to fix cumulative layout shift  
450.32 ->  in wordpress is to make sure that your 
elements have an explicit width and height  
455.68 ->  now if you view your source code you will see that 
every time you add an image it should add a width  
463.04 ->  and a height to the html now if it doesn't you can 
either go into your image html manually and add it  
470.8 ->  or if you're using a plugin like wp rocket the add 
missing image dimensions should fix this this also  
477.76 ->  happens with iframes or even advertisements 
if you're using google ads you need to  
484.48 ->  specify dimensions and reserve space because 
if you don't reserve space for that content  
491.44 ->  then it's going to cause layout shifts animations 
can also cause layout shifts now if you are using  
498.8 ->  animations i recommend at least disabling them 
on mobile specifically just because they can  
505.04 ->  add a lot of load time and google is mobile 
first but if you insist on having animations  
511.04 ->  then you should use the transform and translate 
option now i have this in an elementor demo site  
518 ->  but to add this i actually used the happy add-ons 
for elementor plugin and this actually makes it  
525.28 ->  so there are settings where you can use the css 
transform property and this allows you to animate  
531.52 ->  elements without causing layout shifts the last 
and final tip to reduce cumulative layout shift  
537.68 ->  in wordpress is if you're using oxygen builder 
i personally don't use oxygen although i'm open  
544.56 ->  to it eventually but if you are using it there is 
a github form here basically you have to set the  
552.88 ->  default font or the global font to mulish don't 
ask me why but i just want to include this for  
560.32 ->  those of you using oxygen builder that this may 
be something that reduces layout shifts otherwise  
567.28 ->  i hope this video was helpful and if you have any 
questions leave me a comment otherwise peace out
                    
                        Source: https://www.youtube.com/watch?v=XU7NPNLWm94