Core Web Vitals: An Advanced Technical SEO Guide

For a better, user-centric experience, technical SEO professionals must diagnose and provide solutions. Here’s what you need to know about increasing your CWV.

Real humans want good web experiences. What does that look like in practice?

According to a recent study cited by Google in a blog post about Core Site Vitals, mobile web users only focus on the phone for 4-8 seconds at a time.

Reread what you just read.

You only have 8 seconds to offer engaging content and persuade a user to complete a mission.

Start with Core Web Vitals (CWV). These three criteria are used to assess how well a site performs in terms of user experience. The metrics were announced by the open-source Chromium project in early May 2020, and they were quickly implemented across Google products.

How do we qualify performance in user-centric measurements?

  1. Is it starting to load?
  2. Is it possible for me to interact?
  3. Is it secure from a visual standpoint?

Core Web Vitals is a metric that measures how long it takes to complete the script functions needed to paint the content above the fold. A 360 x 640 viewport serves as the stage for these Herculean activities. It’s small enough to fit in your pocket!

This war-drum for unpaid tech debt is a boon to many product owners and tech SEO practitioners who have been stymied by new features and flashy baubles.

Is the Page Experience update going to be Mobileggedon 4.0?

Most likely not.

Users are 24 percent less likely to leave page loads when the page passes CWV tests. These activities support both sources and mediums, as well as real people.

The Page Experience Update

Despite the hype, CWV will be used as part of a rating signal. The Page Experience Ranking, which will be phased in from mid-June to August 2021, will be made up of:

  1. The essentials of the internet.
  2. The most contented paint.

Delay between the first and second inputs.

  1. Stability of the eyes.
  2. Mobile-friendly design.
  3. Browsing in a safe manner.
  4. HTTPS is the secure version of HTTP.

There are no intrusive interstitials in this game.

The rollout will be incremental, according to updated documents, and “sites do not expect dramatic changes.”

Important things to know about the update:

  1. Each URL’s Page Experience is assessed.
  2. The page is designed to be viewed on a mobile device.
  3. For Top Stories carousels, AMP is no longer needed.
  4. It is not necessary to pass the CWV in order to appear in the Top Stories carousels.

A New Page Experience Report in Search Console

A Page Experience report has been added to Search Console. The new resource contains data from the previous 90 days.

A URL must meet the following requirements to be considered “good”:

In the Core Web Vitals report, the URL is rated as Good.

According to the Mobile Usability survey, the URL has no issues with mobile usability.

  1. There are no security problems with the website.
  2. HTTPS is used to serve the URL.
  3. There are no problems with the site’s Ad Experience, or the site was not tested for Ad Experience.
  4. High-level widgets refer to reports for each of the five “Good” criteria in the new study.

Workflow for Diagnosing & Actioning CWV Improvements

First and foremost, there is a significant distinction to be made between data collected in the field and data collected in the lab.

Field data is output data gathered from real-world page loads experienced by your users. Field Data is often referred to as Real User Monitoring.

Field Data gathered by the Chrome User Experience Report will be included in Core Web Vitals evaluations and the Page Experience Ranking Signal (Crux).

Which Chrome Users Are Included in the User Experience Report?

Crux data is compiled from users that meet three requirements:

  1. The user agreed to get their browsing history synced.
  2. The user hasn’t created a Sync pass.
  3. The consumer has allowed consumption statistics reporting.

Crux is your source of truth for Core Web Vitals Assessment.

Crux data can be accessed via Google Search Console, PageSpeed Insights (page-level), the Public Google BigQuery project, or a Google Data Studio origin-level dashboard.

What makes you think you’d use something else? CWV Field Data, on the other hand, is a limited collection of parameters with limited debugging capabilities and data availability criteria.

Why Doesn’t My Page Have Data Available From Crux?

“The Chrome User Experience Report does not have adequate real-world speed data for this page,” you can see while checking your page.

Crux data is anonymized, so this is the case. There must be enough page loads to disclose without the risk of identifying an individual user.

Field data is best for identifying Web Core Vitals, and lab data is best for diagnosing and QAing them.

With end-to-end visibility and deep visibility into UX, Lab Data helps you to debug results. This simulated data is collected in a managed environment with predefined computer and network settings, hence the name “lab.”

PageSpeed Insights,, the Lighthouse panel in Chrome DevTools, and Chromium-based crawlers like a local NodeJS Lighthouse or DeepCrawl can all provide lab data.

Let’s take a look at how a workflow works.

1. Use Search Console to find issues with Crux data that are grouped by behaviour patterns.

To identify groups of pages that require attention, start with Search Console’s Core Web Vitals study. This data collection is based on Crux data, and it does you the favour of grouping example URLs together based on behaviour patterns.

If you fix the root problem on one page, you’re likely to fix it on all pages that have the same CWV problem. Typically, a prototype, CMS case, or on-page feature may share these issues. GSC will group your items for you.

Concentrate on mobile data, as Google is transitioning to a Mobile-First Index and CWV would have an effect on mobile SERPs. Prioritize your efforts according to the amount of URLs that have been affected.

2. Combine field data with lab diagnostics using PageSpeed Insights.

Use PageSpeed Insights (powered by Lighthouse and Chrome UX Report) to diagnose lab and field issues on a page once you’ve found pages that need work.

Keep in mind that lab experiments are one-time simulations. One test is not a reliable source of information or a conclusive response. Experiment with a variety of URLs.

Only publicly accessible and indexable URLs can be tested with PageSpeed Insights.

Crux data is available via API or BigQuery if you’re working on noindex or authenticated pages. Lighthouse can be included in lab experiments.

3. Fill out a Ticket form. Carry out the development tasks.

As SEO professionals, I invite you to participate in the ticket refining and QA processes.

Sprints are common in development teams. Each sprint has a collection of tickets. Your development team will be able to better size the initiative to get the ticket into a sprint if you have well-written tickets.

Include the following information in your tickets:

Story of a Consumer

Stick to the following format:

As a user/site/etc., I want to take steps in order to achieve my goal.

For example, in order to achieve the largest contentful paint for this page template in under 2.5 seconds, I want to add inline CSS for node X on page template Y.

Criteria for Acceptance

Define when the objective has been met. What exactly does “over” imply? For example, include any critical-path CSS used for above-the-fold content directly in head>.

In the head>, critical CSS (read: that linked to node X) appears above JS and CSS resource links.

URL/Strategy Testing

Copy the clustered example URLs from Search Console and paste them here. Provide QA engineers with a set of instructions to obey.

Consider the instrument, the metric/marker to search for, and the action that indicates a pass or fail.

Documentation for Developers

Where possible, use first-party documentation. Please don’t write fluffy blogs. Could you please help me? For example,’s Inline Critical CSS.,,,,, Web

4. Using Lighthouse to QA Changes in Staging Environments

Before being moved to production, code is often tested in a staging setting. To measure Core Web Vitals, use Lighthouse (via Chrome DevTools or a local node instance).

If you’re new to Lighthouse research, A Technical SEO Guide to Lighthouse Performance Metrics will teach you how to measure and how to test methodology.

Lower environments usually have less resources and are less performant than output environments.

Use the acceptance criteria to determine if the development work done was adequate for the mission.

Perceived loading experience is represented by the largest contentful paint.

Measurement: When the page’s largest image or text block is visible inside the viewport at the end of the page load timeline.

Key Characteristics: LCP nodes are usually shared by pages that use the same page templates.

The target is for 75% of page loads to reach LCP in less than 2.5 seconds.

Lab and field data are also available.

What Is LCP and How Does It Work?

When the largest text or image element in the viewport is available, the LCP metric is used.

  1. img> elements and image> elements within an svg> tag are examples of possible LCP nodes for a page.
  2. photos of video> elements on a poster
  3. The url() CSS function was used to load the background images.
  4. Inside block-level components, there are text nodes.

In future versions, expect to see elements like svg> and video> added.

How to identify LCP using Chrome DevTools

  1. In Chrome, open the page as if you were using a Moto 4G.
  2. Select the Performance panel in Dev Tools (Mac: Command + Option + I; Windows and Linux: Control + Shift + I).
  3. In the Timings portion, hover over the LCP symbol.
  4. The Related Node field describes the element(s) that correspond to LCP.

What Causes Poor LCP?

  1. Bad LCP is caused by four common issues:
  2. Server response times are slow.
  3. JavaScript and CSS that are render-blocking.
  4. Time to load resources is slow.

Rendering on the client’s end.

At best, the source issues for LCP are depicted in large strokes. Unfortunately, none of the single phrases mentioned above would likely be sufficient to provide your development team with actionable outcomes.

You may, however, offer the issue traction by focusing on which of the four roots is at work.

Improving LCP would be a joint effort. Attending dev updates and following up as a stakeholder is needed to get it fixed.

Diagnosing Poor LCP Because of Slow Server Response Time

Crux Dashboard v2 – Time to First Byte (TTFB) is a good place to start (page 6)

How to Improve the Response Time of a Slow Server

The server response time is determined by a variety of factors unique to the site’s technology stack. There are no silver bullets in this situation. The best thing you can do is create a ticket for your development team.

The following are some suggestions for improving TTFB: Optimize the server.

  1. Users will be guided to a nearby CDN.
  2. Assets can be cached.
  3. Cache-first HTML pages are served.
  4. Make third-party communications as soon as possible.

Diagnosing Poor LCP Because of Render-Blocking JavaScript and CSS

Lighthouse (via, Chrome DevTools, Pagespeed Insights, or a nodeJS instance) is a good place to start. A relevant audit flag is included in each of the solutions mentioned below.

How to Resolve Render-Blocking CSS Issues

CSS is render-blocking by nature and has an effect on vital rendering path efficiency. CSS is handled as a render-blocking resource by default.

Regardless of blocking or non-blocking activity, the browser downloads all CSS tools.

CSS should be compressed.

Find the plugin that will systematically reduce the scripts if your site uses a module bundler or build tool.

CSS that isn’t vital should be deferred.

DevTools’ Code Coverage report will help you figure out which types are used on the website. Delete it completely if it isn’t included on any websites. (Don’t get me wrong: CSS files will easily fill up and end up in the trash.)

Create a separate style sheet for those sites that use it to call whether the styles are used on another website.

CSS that is used inline.

Include the critical-path CSS for above-the-fold content (as defined by the Code Coverage report) in the head> section.

Use Dynamic Media Queries to get the most out of your media.

When applied to CSS styles, media queries separate the styles depending on the types of devices that are rendering the content.

Instead of calculating styles for all viewports, dynamic media queries call and calculate certain values for the requesting viewport.

How to Fix JavaScript That Is Render-Blocking

Compress and minify JavaScript files.

To minify and compress network payloads, you’ll need to collaborate with developers.

Minification is the process of eliminating unnecessary whitespace and code from a document. It’s better to use a JavaScript compression tool to do it in a systematic manner.

For efficient server and client interactions, compression entails algorithmically changing the data format.

JavaScript that isn’t in use should be deferred.

Splitting up big blocks of JS into smaller packages is called code splitting. Then you can prioritise those who matter for above-the-fold material.

Reduce the number of polyfills that aren’t being used.

Remember when Googlebot seemed to be trapped in Chrome 44 for what seemed like an eternity? A polyfill is a piece of code that adds modern features to older browsers that don’t support it by default.

Googlebot is also known as tech debt because it is evergreen.

Legacy polyfills can be removed using built-in functionality in certain compilers.

How to Fix Third-Party Scripts That Block Rendering

It should be postponed.

Using async or defer attributes if the script does not contribute to above-the-fold text.

Let it out.

Delete any iframes from the head of the script. For the most up-to-date implementation process, contact the vendor.

Consolidate the information.

Examine the use of third-party scripts. Who is responsible for the tool? A liability is a third-party instrument that is not managed by anyone.

What kind of benefit does it provide? Is that worth more than the results impact? Is it possible to achieve the desired result by combining tools?

It should be updated.

Another choice is to contact the provider to see whether an improved lean or asynchronous version is accessible. They do this sometimes and don’t let those who are still using their old implementation.

Poor LCP Diagnosis Because of the long times it takes for resources to load

Lighthouse (via, Chrome DevTools, Pagespeed Insights, or a nodeJS instance) is a good place to start. A relevant audit flag is included in each of the solutions mentioned below.

When resources are discovered, browsers fetch and execute them. Our journeys to understanding aren’t always smooth. The tools aren’t always tailored for their on-page interactions.

Here are some suggestions for dealing with the most common causes of slow resource loading times:

Photos should be optimised and compressed.

A 10MB png file is unnecessary. There is almost never a reason to send a big image file. Alternatively, you might use a png.

Relevant tools should be preloaded.

A simple rel=”preload” attribute tells the browser to fetch a resource as soon as possible if it’s part of the critical path.

Text files can be compressed.

Repeat the process of encoding, compressing, and encoding.

Depending on the network link, deliver different properties (adaptive serving).

The loading time of assets ready for an ultra 4K display is unlikely to be required, wanted, or tolerated by a mobile device on a 4G network. Use the Network Information API to give web apps access to information about a user’s network.

Using a service worker, cache assets.

Although Googlebot does not execute service staff, a user’s computer connected to the internet through a thimble’s worth of bandwidth can. Utilize the Cache Storage API for your development team.

Diagnosing Poor LCP Because of Client-Side Rendering

What to look for: View the page source for fast glances. The page is client-side made if there are just a few lines of gibberish.

Client-side rendering is possible for elements on a website. Compare the original page source with the rendered HTML to see which elements are present. Compare the made word count difference if you’re using a crawler.

Core Web Vitals are a metric for assessing the efficacy of our rendering strategies.

Since all rendering options produce the same result (web pages), CWV metrics track how quickly we deliver what matters when it matters.

If the question is, “What improvements went into production at the same time that organic traffic started to plummet?” client-side rendering is rarely the answer.

How to Resolve Client-Side Rendering Issues

Stop isn’t a really useful answer. While accurate, this information is useless. Instead, consider the following:

Reduce the amount of essential JavaScript.

For above-the-fold functionality, use code splitting, tree shaking, and inline functions in the brain. Keep inline scripts under 1kb.

Make use of client-side rendering.

You can return completely rendered HTML by making your servers execute JS components. Since the scripts are executed before your server responds, this will increase your TTFB.

Make use of pre-rendering.

Execute your scripts at build time and have made HTML ready for incoming requests. This alternative has a faster server response time, but it won’t work for sites that have inventory or prices that change frequently.

To be sure, dynamic rendering is not a client-side rendering solution. It alleviates the difficulties of client-side rendering.

First Input Delay (FID) is a metric that measures how quickly a system responds to user input.

Measurement: The time it takes for a user to communicate with a website for the browser to be able to start processing event handlers in response to that interaction.

Key habits include: Only field data is available for FID.

The target is for 75% of page loads to reach FID in less than 100 milliseconds.

Field Data is a type of data that is accessible.

For lab tests, use Total Blocking Time (TBT).

For lab tests, you’ll need to use Total Blocking Time instead of FID because FID is only usable as lab data. With different thresholds, the two obtain the same end result.

TBT stands for “responseness to user feedback.”

TBT is the total amount of time that the main thread is consumed by tasks that take more than 50 milliseconds to complete.

300 milliseconds is the goal.

Lab Data is a type of data that is accessible.

What Causes a Low FID Score?

jsHeavy = true; const jsHeavy = true;

console.log(“FID failure”) while (jsHeavy)

JavaScript is used extensively. That is everything there is to it.

The main thread is occupied by JS, which means your user’s interactions are forced to wait.

What Elements of the Page Are Affected by FID?

FID is a method of determining the operation of the main line. In-progress tasks on the main thread must finish before on-page elements can react to user interaction.

Here are some of the most commonly tapped elements by your user in frustration:

Fields with text.

There are checkboxes.

(input> and textarea>) radio buttons

Pick options from dropdown menus (select>).

A link (a>) is a symbol that represents a connection between two points.

What to look for: Look at Crux Dashboard v2 – First Input Delay (FID) to see if it’s a problem for users (page 3). To find the exact tasks, use Chrome DevTools.

How to See TBT Using Chrome DevTools

  1. Chrome should be used to display the article.
  2. Select the Network panel in Dev Tools (Mac: Command + Option + I; Windows and Linux: Control + Shift + I).
  3. To disable cache, check the box.
  4. Select Web Vitals from the Performance Panel’s drop-down menu.
  5. To begin a performance trace, click the reload button.
  6. In the right-hand corner of tasks, look for the blue blocks labelled Long Tasks or the red right corner markers. These are tasks that took more than 50 milliseconds to complete.
  7. The page’s TBT can be found at the bottom of the summary.

How to Fix Poor FID

Reduce the number of third-party scripts loaded.

Your success is hampered by third-party code, which places you behind another team’s stack.

In order for your side to be considered performant, you must depend on their scripts to run quickly and efficiently.

Breaking up Long Tasks frees up the main thread.

There are a number of functionalities in a large JS package that don’t contribute to the page if you’re shipping one for each page.

JS functions must be downloaded, parsed, assembled, and executed even though they aren’t contributing.

You will free up the main thread by splitting up the big package into smaller chunks and just shipping those who contribute.

Look at your tag manager.

Tag deployment by default fires event listeners, which ties up your key thread.

Tag managers are input handlers that run for a long time and prevent scrolling. Debounce your input handlers with the help of developers.

Make sure your website is ready for interaction.

Ship and run those JS bundles in the correct order.

Is it positioned above the fold? It is given top priority. Use the rel=preload attribute.

Is it critical, but not critical enough to prevent rendering? Add the async attribute to your code.

What’s below the fold? With the defer attribute, you can postpone it.

Make use of a web worker.

Web workers allow JavaScript to run in the background rather than on the main thread where your FID is evaluated.

Reduce the time it takes for JavaScript to run.

There are a number of functionalities in a large JS package that don’t contribute to the page if you’re shipping one for each page.

JS functions must be downloaded, parsed, assembled, and executed even though they aren’t contributing.

You can free up the main thread by breaking up the big package into smaller chunks (code splitting) and only shipping those that contribute (tree shaking).

The Cumulative Layout Shift denotes: Stability of vision.

Measurement: A measure based on the number of frames in which an element(s) visually moves and the total distance travelled in pixels.

CLS is the only Core Web Vital that is not measured in time. CLS, on the other hand, is a measured metric. The exact calculations are being iterated on right now.

The target is to have a CLS measured metric of >0.10 on 75% of page loads.

Lab and field data are also available.

Diagnosing Poor CLS

What to look for: Look at Crux Dashboard v2 – Cumulative Layout Shift (CLS) to see if it’s a problem for users (page 4). To find the bouncing part, use any tool with Lighthouse (s).

How to See CLS Using Chrome DevTools

  1. Chrome should be used to display the article.
  2. Select the Network panel in Dev Tools (Mac: Command + Option + I; Windows and Linux: Control + Shift + I).
  3. To disable cache, check the box.
  4. Select Web Vitals from the Performance Panel’s drop-down menu.
  5. To begin a performance trace, click the reload button.
  6. In the Experience section, click on the red marker(s).
  7. For each time the node is highlighted on the list, look for the name of the node, as well as the coordinates. In CLS, what can be counted?
  8. If an element is visible in the first viewport, it is included in the metric’s calculation.
  9. If your footer loads before your primary content and appears in the viewport, it is included in your (likely poor) CLS ranking.
  10. What Causes a Low CLS Score?
  11. Is this a cookie note from you? It’s most likely a cookie notice.
  12. element has shifted

Alternatively, look for:

  1. Images with no measurements.
  2. Without dimensions, ads, embeds, and iframes.
  3. Content that is injected dynamically.
  4. FOIT/FOUT is caused by web fonts.
  5. For vital resources, there are chains.
  6. Before updating the DOM, actions must wait for a network response.

How to Fix Poor CLS

Photos and video components should always have width and height size attributes.

It’s not quite as straightforward as img src=”stable-layout.jpg” width=”640″ height=”360″ />, but it’s near. The use of height and width statements has decreased in responsive web design. The downside is that pages will reflow until the picture appears on screen.

The best practise is to use user-agent stylesheets to declare measurements systematically based on the image’s aspect ratio.

Make sure there’s enough space for advertising (and don’t collapse it).

If you’re a publisher, you’ll never win an argument about third-party ads’ negative effect on your site’s results.

Instead, determine the largest size ad that can fit in a slot and set aside space for it. Keep the placeholder if the ad doesn’t populate. A distance is preferable to a layout shift.

Inserting new content on top of existing content is not a good idea.

If an element isn’t ready to be counted, it shouldn’t join the war.

When putting non-sticky ads near the top of the viewport, be cautious.

Ads at the top of the page should be avoided as a general rule. Those will most likely be highlighted in the latest GSC Page experience study.

Fonts and essential tools should be downloaded ahead of time.

A full flash and re-write are caused by a font loading late.

Since you are confident that it is necessary for the current tab, preload informs the browser that you want it to be fetched earlier than it would otherwise be discovered.

href=”/assets/Pacifico-Bold.woff2″ as=”font” type=”font/woff2″ crossorigin=”font/woff2″ link rel=”preload” href=”/assets/Pacifico-Bold.woff2″ as=”font” type=”font/woff2″ crossorigin=”font/woff2″ crossorig

When it comes to the tools required to build above-the-fold material, stay away from chains.

When you call a resource that calls another resource, you get a chain. If a script calls a vital asset, it cannot be called until the script is executed.

Do not use the document.write command ()

Speculative parsing off the main thread is supported by modern browsers.

As follows: They function ahead of schedule as scripts are downloaded and executed, similar to how students read ahead of time in class. document.write() is named, and it modifies the textbook. Reading ahead was no longer useful at work.

Most likely, this isn’t the product of your developers’ efforts. For that “magic” third-party tool, talk to your point of contact.

The Future of CWV Metrics

The Page Experience components will be updated once a year by Google. Future CWV metrics will be recorded in the same way as the initial signal deployment.

Imagine a world where SEO professionals were notified of Panda’s impending arrival a year in advance!

Your Lighthouse v7 score is already 55 percent Core Web Vitals.

Largest Contentful Paint (LCP) and First Input Delay (FID) are currently both weighted at 25%. The cumulative layout shift is just 5%, so we should expect this to even out.

Once the Chromium team has perfected the metric’s measurement, the smart money is on Q4 2021.

We will diagnose and provide solutions for a better user-centric experience as technical SEO experts. The thing is, such investments and enhancements have an effect on all users.

Every medium has a return on investment. Each and every channel.

The overall health of a site is reflected in organic results. Use the status to your advantage as you continue to campaign and iterate.

Need help with getting your business found online? Stridec is a top SEO agency in Singapore that can help you achieve your objectives with a structured and effective SEO programme that will get your more customers and sales. Contact us for a discussion now.