what is First Input Delay and how to improve First Input Delay

What is First Input Delay and How to Optimize It?

Every site visitor wants a superior Experience on a website. Also, the user’s first interaction should respond faster.

First Input Delay is how long it takes the user’s first interaction with a page.

In this article, we will learn what is First Input Delay, Why it is important, and How to Optimize First Input Delay for passing Core Web Vitals.

First let’s know what is First Input Delay (FID)?

What is First Input Delay (FID)?

FID core web vitals

“First input delay” is an important Core Web Vitals metric because it measures user experience errors that plague everyone who has ever used the internet.

First Input Delay is the time calculated from the time the user first interacts with the page until the time the browser can actually start processing the response to that interaction.

The first time this interaction is meant is when the user clicks on a link, taps a button, or uses other JavaScript-enabled controls.

You know when you click the submit button on the form, and nothing seems to be happening, so you end up clicking it aggressively over and over again?

The first input delay measures the time between the user initiating an action (such as clicking “send”) and the website moving to that action (sending them to the next page).

This is like counting the time from ringing someone’s doorbell to that person responding.

Long first input delays can be frustrating for users, resulting in leaving your page and looking elsewhere for information.

What is a Good First Input Delay Score?

Like all metrics in Core Web Vitals, these metrics also have specific criteria.

There are three criteria for this First Input Delay (FID) metric, which are as follows.

  • Good: less than 100 milliseconds.
  • Needs Improvement: between 100 milliseconds to 300 milliseconds.
  • Poor: equal to 300 milliseconds or more.

How to Check the First Input Delay Score?

The FID is a fielding metric and cannot be simulated in a lab environment. The requirement to be able to measure FID is the existence of real user interaction.

This means that all tools that use lab data cannot measure FID metrics.

Google Core Web Vital

Here are Google’s recommendations for measuring FID:

  • Using PageSpeed ​​Insights
  • Search Console (Core Web Vitals report)
  • Chrome User Experience Report (requires Google account and Google Cloud Project).

Why is First Input Delay Important?

There are several reasons why you should pay more attention to this FID metric.

Core Web Vitals

You need to know that First Input Delay is one of the three metrics that are part of Core Web Vitals.

Meanwhile, Core Web Vitals itself is a metric that is the part of Web Vitals that is considered the most important and affects the user experience the most.

And on 28 May 2020 Google has announced that Core Web Vitals will be a factor ranking Google in 2021.

Therefore this metric is very important in Search Engine Optimization (SEO).

User Experience (UX)

We know how important first impressions are. First impressions can determine the continuity of your relationship :). The same is true of the website.

If the first impression is bad, the user may even move directly to another website that can be the cause of a high Bounce Rate.

Then, how to make a good first impression on a website? This is where this metric comes into play.

The First Input Delay (FID) metric helps measure the user’s first impression of your website’s responsiveness.

How to Improve FID?

How to Optimize First Input Delay

There are several ways you can do this, including the following:

1. Reduce JavaScript execution time 

Because the main cause is javascript, to solve the FID problem you can reduce the amount of javascript used.

Re-evaluate its usefulness. Is it really necessary?

By default, all JavaScript will block rendering. When the browser finds a script tag linked to an external JavaScript file, the browser pauses.

The browser pauses what it’s doing and downloads, parses, compiles and runs that JavaScript. Therefore, you should only load the essential JavaScript. 

Let’s tell you solutions to reduce Time Execution, here are some things that cause Javascript to slow down the loading of your website pages. Let’s check it out:

  • Network costs. More bytes affect download time.
  • Parsing and compilation costs. JavaScript is parsed and compiled in the main thread. When the main thread is busy, the page cannot respond to client input.
  • Execution fee. JavaScript is also executed on the main thread. If your website pages run a lot of code before it’s really needed, it also delays your interaction time with website visitors which is one of the key metrics related to how your website visitors perceive the speed of access to your website.
  • Memory costs. If your JavaScript stores a lot of references, this can potentially consume a lot of memory. Access to your website pages will be slow when they take up a lot of memory. Memory leaks can cause your website pages to be inaccessible or lagging, friend.

Here is a recommendation from Google to reduce the too-high Javascript execution time:

  • Only send the code that the user needs.
  • Minify (simplify) or make effective the code script you use.
  • Compress your website code so that the size is smaller so that it loads faster.
  • Remove unused script code.
  • Use the cache in the code to reduce network trips to make it faster.

2. Defer

Defer is an HTML attribute. The defer attribute tells the browser that the browser does not need to pause, the browser can continue working on the web page and load scripts in the background.

Here’s an example:

<script defer src="https://javascript.info/article/script-async-defer/satu.js"></script>
<script defer src="https://javascript.info/article/script-async-defer/dua.js"></script>

This defer attribute is only for assets of external origin. And the defer attribute will maintain the load order.

3. Async

Similar to defer, async is also an HTML attribute. The async attribute tells the browser that the script is completely independent.

The browser also will not wait for scripts that have the async attribute. Other scripts don’t wait for async scripts. This is what is meant by independent.

Here’s an example:

<script async src="https://javascript.info/article/script-async-defer/satu.js"></script>
<script async src="https://javascript.info/article/script-async-defer/dua.js"></script>

Even fellow async scripts don’t wait for each other. This has an impact on the load order of the script. Please look at the example above.

The dua.js script can be loaded earlier than the one.js script. So you have to be wise in choosing between deferring and async.

4. Code-splitting

Code-splitting is the concept of dividing a large JavaScript bundle into smaller chunks that can be loaded at different times (not simultaneously).

See below given image for better understanding of Code-splitting:

Code splitting

If your website has a large amount of JS, Code-splitting can improve your website speed.

Code-splitting is a little bit tricky, so do it properly and safely. It can break your website if you do not do it in the right way.


I have discussed what is First Input Delay (FID) and how to optimize it for better website performance and user experience.

First Input Delay is all about code, so the process of Optimising First Input Delay can be time taking and tricky. If you think you can’t do it then don’t worry, Our professional developers are here for your help. 

We have a development team that fixes CWV (Core Web Vitals) errors significantly for our clients. So drop us a message or see our Affordable Pricing if you’re struggling with Core Web Vitals stuff, and we’ll fix all Core Web Vitals errors for you.

If you enjoyed this article, Don’t forget to share it.

Leave a Comment

Your email address will not be published. Required fields are marked *