So you’ve done optimizing your WordPress site, got 100/100 in Google PageSpeed Insights or Lighthouse, and you might still see “Core Web Vitals Assessment: Failed“ under “Discover what your real users are experiencing”.
Sounds familiar? Then this article is for you.
Understanding CrUX Report and Field Data
CrUX report and the field data are essentially a database that provides information on how fast your website is loading for real users. This data is collected from users who browse your website through the Chrome browser.
CrUX stands for Chrome User Experience, which is a tool developed by Google to collect data on how real people experience websites. It looks at various factors that affect the user experience, such as how long it takes for a website to load, how easy it is to use, and how quickly and seamlessly people can interact with it.
This information is then used to generate the Field Data report, which helps website owners understand how their website is performing in the real world. The report looks at how long it takes for the website to load, how quickly users can interact with it, and how stable it is. By understanding this data, website owners can identify areas where their website may be slowing down or not working well and take steps to improve it.
So Why is your Website Slow Despite Good Page Speed Scores?
There are several factors that can affect how quickly your website loads and many of them are not reflected in traditional page speed scores. In this article, we’ll explore 11 common reasons why your website may be slow, including the problem and solution for each.
1. The Server Is Not Close To Your Visitors
Problem: The location of your server can significantly impact your website’s performance, particularly when it comes to the time it takes for your website to respond to user requests. This is known as TTFB – Time To First Byte.
If your server is located far away from your visitors, it can increase the TTFB and make your website slower to load. This is because each user request has to travel longer to reach the server and receive a response. This can result in a poor user experience and negatively impact your CWC.
Solution: Choose a server location close to most of your visitors. For example, if you have many European visitors, it’s best to choose a European server. This can help reduce the TTFB and improve your website’s overall speed and performance. Checkout the point #11 if you have a global audience.
2. Not Ignoring URL Query String from Caching
Problem: When you share links on social media or run ads, the URLs often contain query strings that are used to track user behaviour and performance. For example, Facebook adds a “?fbclid=xxx” at the end of the URL. Similarly, Google Ads adds query strings like “utm_campaign”.
Some server-side caching solutions may not cache URLs with query strings or bypass the cache altogether. This can result in slower loading times and a poorer user experience for your visitors.
Solution: Use a caching plugin designed to handle URLs with query strings. Caching solutions, such as FlyingPress, can ignore specific query strings, so you can exclude the query strings used by social media or ads. Here is a detailed comparison of how popular cache plugins handle query strings.
3. Not Caching Dynamic Pages
Problem: When a user is logged in, or an item is added to a cart in a WooCommerce shop – these are the dynamic pages, and caching them can become challenging because the content on those pages can change frequently based on user behaviour. As a result, many caching solutions bypass the cache completely and load from the server.
Solution: However, properly configured caching plugins can help to mitigate this issue by reducing the overall number of requests to the server. By caching frequently requested pages and objects, the server can respond to requests more quickly, reducing the server’s load and improving the website’s overall performance. This can be particularly important for high-traffic websites that generate many requests.
4. Not Performing Well On Traffic Load (Stress Test)
Problem: Let’s say one of your blog posts went viral. You will probably get an insane amount of traffic to your website every second. Unless you properly load-test your site, you don’t know whether all users can open your site during these spikes.
High traffic load can significantly impact a website’s performance and can ultimately affect the field data that Google uses to evaluate user experience. If a website cannot handle a sudden spike in traffic, it can lead to slow page load times, timeouts, or even website crashes.
Solution: One way to prevent these issues is to perform load testing on your website in advance. Load testing involves simulating high traffic levels on your website to see how it performs under different conditions. This can help you identify potential bottlenecks or issues affecting performance when the site is under heavy load. I have written a detailed article explaining how to load-test your WordPress website using a free load-test tool.
5. Optimizing Only The Home Page
Problem: While the homepage may be the first entry point for some visitors, most of your traffic may be coming in through other pages, such as blog posts or product pages. Your CWC may score poorly if you don’t want to optimize the pages you want to rank for. Why?
Because these are the pages that bring high-quality, purely organic search engine traffic.
Solution: To ensure that all pages on your website are optimized for search engines and user experience, it’s important to thoroughly audit your site and identify areas that could be improved.
As you populate your website with more textual content and graphics, do optimize these pages every now and then. It may be worth noting that SEO or UX optimization is not a one-time task. It should be an ongoing effort done regularly.
6. Not Waiting for 30 days
Problem: If you have optimized your pages lately, they may not reflect immediately in your CWC field data.
Solution: It’s essential to wait at least 30 days before analyzing your website’s field data in Google PageSpeed Insights. This is because Google collects data from real users and real devices over some time, and the field data you see in PageSpeed Insights is an average of that data over the last 30 days. This also lets you see the impact of any optimizations you may have made over time.
7. No Cache Preloading or Warming
Problem: Not preloading or warming your cache can decrease cache ratios for real users.
Without cache preloading, every time you purge the cache, the next visitor to your website will receive an uncached page, which can slow down the page load time and result in a poor user experience. This can eventually increase the load on your server as it has to generate a new page for each user.
Solution: You can use caching plugins that support cache preloading. These plugins will automatically generate a cache for commonly accessed pages and update it periodically. This will ensure that users receive a cached version when they request a page, which will load faster and improve the user experience, thereby improving your CWC score.
8. Poor Real User Network/Device
Problem: The testing tools may not accurately reflect the real-world network and device conditions your website visitors may be experiencing. This can be primarily true for users in developing countries or regions with poor network infrastructure.
Solution: There is no solution to this problem. But, to better understand how your website is performing for real users, you can use field data from analytics tools like Google Analytics or Google Search Console. This data provides insights into the user experience, origin, demographics, and metrics like page load times, bounce rates, and other engagement metrics.
Based on these metrics, you can optimize your WordPress site speed by using caching plugins with a CDN to serve your users worldwide.
9. CSS & JS Files with Version in URL Query Strings
Problem: Most plugin and theme developers add the version number as a query string to CSS and JS files as a standard practice when they update or release a new version – for example, E.g., example.com/wp-content/plugins/app.js?ver=1.0.0. So whenever you update the theme or plugin, the browser and the CDN consider these as new files (even though the content is unchanged) and pull these files again without delivering the previously cached page.
Solution: Add hashed id of the filename (unique id based on the content) or last modified timestamp is a better approach, as it ensures that the file is considered new only when its content has changed. This allows for better caching and can improve website performance.
FlyingPress automatically add hashed ids to files, for example, app.js?ver=xyz. This ensures that the latest version of the file is being used without causing unnecessary cache invalidations.
10. Frequent Purging of CDN
Problem: When you purge the CDN cache, your nearest edge servers no longer have a cached copy of the file and must pull it from the origin server again. This can slow down the page load time and increase the load on your origin server.
Solution: When you use a static file CDN (like FlyingCDN), there is probably never a need to purge CDN. When you combine it with hashing (as mentioned in #9), a new filename will be generated when the contents of a file change (for CSS/JS). Fonts files usually never change. If you want to change an existing image, upload it with a different file name than the previous one.
When using a proxy CDN like Cloudflare and caching pages using APO, you’re purging the entire cache (including static files) whenever you update some content. So using separate static files CDN is highly recommended.
11. Global Audience
Problem: Your server is in a single location. But you’ve visitors from different countries all around the world. This is a similar problem we discussed in point #1.
Cloud-based caching solutions like FlyingProxy or Cloudflare APO can also help serve cached pages from a server closer to the visitor’s location, reducing the time it takes to fetch the page from the origin server. Additionally, a content delivery network like FlyingCDN can help distribute your website’s content across multiple servers globally, reducing latency and improving website speed.