{"id":27569,"date":"2022-05-17T14:01:11","date_gmt":"2022-05-17T17:01:11","guid":{"rendered":"\/tutoriais\/?p=27569"},"modified":"2025-04-09T04:23:34","modified_gmt":"2025-04-09T07:23:34","slug":"first-input-delay","status":"publish","type":"post","link":"\/br\/tutoriais\/first-input-delay","title":{"rendered":"O que \u00e9 first input delay e como melhor\u00e1-lo"},"content":{"rendered":"<p>O First Input Delay (FID), tamb&eacute;m conhecido como lat&ecirc;ncia de entrada, calcula o tempo de resposta de um site desde a primeira intera&ccedil;&atilde;o do usu&aacute;rio at&eacute; a resposta do navegador.<\/p><p>A rolagem e o zoom n&atilde;o podem ser medidos com o first input delay, pois s&atilde;o classificados como aspectos de anima&ccedil;&atilde;o no&nbsp;<a href=\"https:\/\/web.dev\/rail\/\" target=\"_blank\" rel=\"noopener\"><strong>modelo RAIL<\/strong><\/a>.&nbsp;O FID se concentra apenas na capacidade de resposta de um site, medindo o atraso no processamento das solicita&ccedil;&otilde;es do usu&aacute;rio.<\/p><p>Analisar o atraso de entrada &eacute; essencial, pois afeta a experi&ecirc;ncia do usu&aacute;rio do seu site.&nbsp;At&eacute;&nbsp;<a href=\"https:\/\/www.websitebuilderexpert.com\/building-websites\/website-load-time-statistics\/\" target=\"_blank\" rel=\"noopener\"><strong>25%<\/strong><\/a>&nbsp;dos visitantes deixar&atilde;o um site se demorar mais de 4 segundos para carregar.<\/p><figure class=\"wp-block-image size-large\"><a href=\"https:\/\/assets.hostinger.com\/content\/tutorials\/pdf\/Speed-Up-Your-Website-BR.pdf\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" width=\"1024\" height=\"283\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/eBook_-Speed-Up-your-website-BR.png\/public\" alt=\"\" class=\"wp-image-30339\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/eBook_-Speed-Up-your-website-BR.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/eBook_-Speed-Up-your-website-BR.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/eBook_-Speed-Up-your-website-BR.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/eBook_-Speed-Up-your-website-BR.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/eBook_-Speed-Up-your-website-BR.png\/w=1536,fit=scale-down 1536w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><p>Neste artigo, abordaremos o first input delay, desde sua defini&ccedil;&atilde;o, import&acirc;ncia e otimiza&ccedil;&atilde;o at&eacute; sua rela&ccedil;&atilde;o com outras m&eacute;tricas do&nbsp;<strong>Core Web Vitals<\/strong>.&nbsp;Tamb&eacute;m explicaremos como testar sua pontua&ccedil;&atilde;o FID e por que ela pode ser baixa.<\/p><p>\n\n\n<div class=\"protip\">\n                    <h4 class=\"title\">O que &Eacute; o First Input Delay (FID)?<\/h4>\n                    <p>O First input delay &eacute; uma m&eacute;trica usada para rastrear o tempo de atraso do navegador at&eacute; que ele responda &agrave; entrada do usu&aacute;rio, incluindo cliques e toques.<\/p>\n                <\/div>\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-por-que-o-first-input-delay-e-importante\"><strong>Por Que o First Input Delay &eacute; Importante?<\/strong><\/h2><p>Um dos fatores que podem afetar a impress&atilde;o de um site &eacute; o first input delay.&nbsp;Ele costumava ser uma das m&eacute;tricas-base do Core Web Vitals, juntamente com o&nbsp;<strong>Largest Contentful Paint<\/strong>&nbsp;(LCP) e o&nbsp;<strong>Cumulative Layout Shift<\/strong>&nbsp;(CLS), mas foi substitu&iacute;do pelo <a href=\"\/br\/tutoriais\/interaction-to-next-paint\">Interaction to Next Paint (INP)<\/a>.<\/p><p>Com o Core Web Vitals, voc&ecirc; pode medir o desempenho da sua p&aacute;gina, bem como investigar um relat&oacute;rio fornecido para ajud&aacute;-lo a melhorar o desempenho do seu site.<\/p><p>Al&eacute;m disso, essas m&eacute;tricas afetam a experi&ecirc;ncia do usu&aacute;rio e a classifica&ccedil;&atilde;o de um site, afetando seus&nbsp;esfor&ccedil;os&nbsp;<a href=\"\/br\/tutoriais\/o-que-e-seo\/\"><strong>otimiza&ccedil;&atilde;o para motores de busca (SEO).<\/strong><\/a> A <a href=\"https:\/\/www.seomaster.com.br\/blog\/novo-fator-de-rankeamento-no-google-velocidade-de-carregamento\" target=\"_blank\" rel=\"noopener\"><strong>velocidade da p&aacute;gina<\/strong><\/a>&nbsp;&eacute; um dos principais fatores de classifica&ccedil;&atilde;o do Google.<\/p><p>Se o site demorar muito para responder &agrave;s intera&ccedil;&otilde;es de um usu&aacute;rio, isso far&aacute; com que ele fique frustrado.<\/p><p>Como a maioria dos problemas de responsividade ocorre quando uma p&aacute;gina da Web est&aacute; sendo carregada, &eacute; vital manter a pontua&ccedil;&atilde;o de first input delay baixa.<\/p><figure class=\"wp-block-image size-large\"><a href=\"\/br\/\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-Web-hosting_in-text-banner.png\/public\" alt=\"\" class=\"wp-image-32927\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-Web-hosting_in-text-banner.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-Web-hosting_in-text-banner.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-Web-hosting_in-text-banner.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-Web-hosting_in-text-banner.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-Web-hosting_in-text-banner.png\/w=1536,fit=scale-down 1536w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><h2 class=\"wp-block-heading\" id=\"h-como-testar-seu-first-input-delay\"><strong>Como Testar seu First Input Delay<\/strong><\/h2><p>Tendo explicado por que o first input delay &eacute; importante para sua p&aacute;gina, &eacute; hora de test&aacute;-lo para melhorar o desempenho do seu site para uma melhor intera&ccedil;&atilde;o do usu&aacute;rio.<\/p><p>Ao contr&aacute;rio da mudan&ccedil;a de layout cumulativa e da maior pintura de conte&uacute;do, o first input delay s&oacute; pode ser medido com intera&ccedil;&atilde;o real do usu&aacute;rio na p&aacute;gina.<\/p><p>Aqui est&aacute; a lista de ferramentas que voc&ecirc; pode usar para testar seu first input delay:<\/p><ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/github.com\/GoogleChrome\/web-vitals\" target=\"_blank\" rel=\"noopener\"><strong>Biblioteca JavaScript Web Vitals<\/strong><\/a><strong>&nbsp;<\/strong>&ndash;<strong>&nbsp;<\/strong>criada para monitoramento de front-end, a ferramenta ajuda a analisar todas as m&eacute;tricas em um curto espa&ccedil;o de tempo com alta precis&atilde;o.&nbsp;Cada m&eacute;trica define como uma &uacute;nica fun&ccedil;&atilde;o, o<strong>&nbsp;retorno de chamada onReport<\/strong>.&nbsp;Depois de configurar sua biblioteca de web vitals, a ferramenta informar&aacute; se suas p&aacute;ginas atingiram o limite recomendado.<\/li>\n\n\n\n<li><a href=\"https:\/\/developers.google.com\/web\/tools\/chrome-user-experience-report\" target=\"_blank\" rel=\"noopener\"><strong>Relat&oacute;rio de experi&ecirc;ncia do usu&aacute;rio do Chrome<\/strong><\/a><strong>&nbsp;<\/strong>&ndash; tamb&eacute;m conhecido como<strong>&nbsp;CrUX<\/strong>, essa ferramenta ajuda os desenvolvedores a melhorar a usabilidade do site com os Core Web Vitals e m&eacute;tricas de diagn&oacute;stico com base em dados reais do usu&aacute;rio.&nbsp;O CrUX &eacute; suportado pelas APIs da plataforma web padr&atilde;o, o que significa que voc&ecirc; pode usar as mesmas APIs para coletar os dados do <a href=\"https:\/\/stackify.com\/what-is-real-user-monitoring\/\" target=\"_blank\" rel=\"noopener\"><strong>Real User Monitoring<\/strong><\/a>&nbsp;(RUM).<\/li>\n<\/ul><ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/support.google.com\/webmasters\/answer\/9205520\" target=\"_blank\" rel=\"noopener\"><strong>Relat&oacute;rio dos Principais Web Vitals do Search Console<\/strong><\/a><strong>&nbsp;<\/strong>&ndash; ajuda os desenvolvedores da Web a corrigir a experi&ecirc;ncia ruim do usu&aacute;rio.&nbsp;Ele avalia o desempenho do seu site com base em dados de campo ao longo de 90 dias por status de URL, grupo e tipo de m&eacute;trica.&nbsp;Observe que o relat&oacute;rio &eacute; apenas para URLs indexados e &eacute; baseado em Core Web Vitals.&nbsp;Assim, se uma URL n&atilde;o tiver informa&ccedil;&otilde;es suficientes para nenhuma das m&eacute;tricas, ela ser&aacute; omitida do relat&oacute;rio.<\/li>\n\n\n\n<li><a href=\"https:\/\/pagespeed.web.dev\/\" target=\"_blank\" rel=\"noopener\"><strong>Page Speed &#8203;&#8203;Insights<\/strong><\/a><strong>&nbsp;<\/strong>&ndash;<strong>&nbsp;<\/strong>verifica rapidamente o desempenho mais recente do site.&nbsp;Divide as informa&ccedil;&otilde;es em usu&aacute;rios de desktop e m&oacute;veis, e dados para corrigir a experi&ecirc;ncia do usu&aacute;rio e problemas de depura&ccedil;&atilde;o.<\/li>\n<\/ul><p>Por exemplo, se voc&ecirc; quiser usar o PageSpeed &#8203;&#8203;Insights para testar seu first input delay, basta inserir um URL na caixa de pesquisa.<\/p><p>Feito isso, voc&ecirc; receber&aacute; uma avalia&ccedil;&atilde;o dos Core Web Vitals da sua p&aacute;gina, assim como sugest&otilde;es para melhor&aacute;-la. Voc&ecirc; tamb&eacute;m pode ver quanto tempo o atraso de entrada tem em sua p&aacute;gina da web.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"977\" height=\"660\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/05\/image.png\/public\" alt=\"teste do pagespeed insights\" class=\"wp-image-27590\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/05\/image.png\/w=977,fit=scale-down 977w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/05\/image.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/05\/image.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/05\/image.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 977px) 100vw, 977px\" \/><\/figure><\/div><h3 class=\"wp-block-heading\"><strong>O que &eacute; uma boa pontua&ccedil;&atilde;o FID?<\/strong><\/h3><p>Geralmente, 0,1 segundo &eacute; o limite para que o usu&aacute;rio sinta que o sistema est&aacute; reagindo instantaneamente.<\/p><p>Portanto, um site precisa de um FID inferior a&nbsp;<strong>100 ms<\/strong> se quiser obter uma boa pontua&ccedil;&atilde;o de first input delay e uma resposta r&aacute;pida para o usu&aacute;rio.&nbsp;Idealmente, o resultado deve ser menor que&nbsp;<strong>100 ms<\/strong>&nbsp;para&nbsp;<strong>75%<\/strong>&nbsp;de todos os carregamentos de p&aacute;gina, incluindo dispositivos m&oacute;veis e desktop.<\/p><p>O gr&aacute;fico abaixo mostra como uma pontua&ccedil;&atilde;o de first input delay pode ser categorizada como boa (good), assim como se precisa de melhorias (needs improvement) ou se &eacute; ruim (poor).<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"997\" height=\"354\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/05\/image-1.png\/public\" alt=\"classifica&ccedil;&otilde;es poss&iacute;veis de first input delay\" class=\"wp-image-27591\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/05\/image-1.png\/w=997,fit=scale-down 997w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/05\/image-1.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/05\/image-1.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/05\/image-1.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 997px) 100vw, 997px\" \/><\/figure><\/div><h3 class=\"wp-block-heading\"><strong>Max Potential First Input Delay<\/strong><\/h3><p>O Max Potential First Input Delay (MPFID) &eacute; a tarefa mais longa de uma p&aacute;gina.&nbsp;O MPFID mede o tempo de resposta de uma p&aacute;gina enquanto a tarefa mais longa est&aacute; em execu&ccedil;&atilde;o.&nbsp;Observe que a medi&ccedil;&atilde;o come&ccedil;a somente ap&oacute;s o c&aacute;lculo da primeira pintura com conte&uacute;do.<\/p><p>Os resultados da pontua&ccedil;&atilde;o s&atilde;o obtidos a partir da compara&ccedil;&atilde;o do tempo m&aacute;ximo de FID potencial com os tempos de FID m&aacute;ximos potenciais em sites reais.&nbsp;Por exemplo, se voc&ecirc; obtiver uma pontua&ccedil;&atilde;o verde no seu MPFID, isso significa que sua p&aacute;gina tem um desempenho melhor do que&nbsp;<strong>90%<\/strong>&nbsp;dos sites reais.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"997\" height=\"461\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/05\/image-2.png\/public\" alt=\"tabela de max potenntial first input delay\" class=\"wp-image-27592\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/05\/image-2.png\/w=997,fit=scale-down 997w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/05\/image-2.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/05\/image-2.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/05\/image-2.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 997px) 100vw, 997px\" \/><\/figure><\/div><h2 class=\"wp-block-heading\" id=\"h-como-encontrar-a-causa-de-uma-baixa-pontuacao-fid\"><strong>Como Encontrar a Causa de Uma Baixa Pontua&ccedil;&atilde;o FID<\/strong><\/h2><p>Quando voc&ecirc; obtiver uma pontua&ccedil;&atilde;o baixa de atraso na primeira entrada, identifique quais partes da p&aacute;gina precisam ser aprimoradas para que ela funcione melhor.<\/p><p>Uma das principais causas que tornam os navegadores incapazes de responder prontamente &agrave;s intera&ccedil;&otilde;es do usu&aacute;rio &eacute; o bloqueio de entradas. Isso ocorre quando o thread principal do navegador est&aacute; ocupado fazendo outras tarefas.<\/p><p>Essas tarefas geralmente incluem lidar com HTML, CSS e JavaScript, tornando-os sobrecarregados.&nbsp;Uma tarefa JavaScript longa &eacute; um erro comum que causa atraso no thread principal, fazendo com que ouvintes de eventos n&atilde;o possam ser executados na p&aacute;gina.<\/p><p>Para encontrar esse problema, use o PageSpeed &#8203;&#8203;&#8203;&#8203;Insights e consulte a se&ccedil;&atilde;o de&nbsp;auditoria&nbsp;de <strong>Evitar tarefas longas da linha de execu&ccedil;&atilde;o principal.<\/strong><\/p><figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"955\" height=\"340\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/05\/image-3.png\/public\" alt=\"Evitar tarefas longas da linha de execu&ccedil;&atilde;o principal no google pagespeed insights\" class=\"wp-image-27593\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/05\/image-3.png\/w=955,fit=scale-down 955w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/05\/image-3.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/05\/image-3.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/05\/image-3.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 955px) 100vw, 955px\" \/><\/figure><h2 class=\"wp-block-heading\" id=\"h-8-maneiras-de-otimizar-seu-first-input-delay-fid\"><strong>8 Maneiras de Otimizar seu First Input Delay (FID)<\/strong><\/h2><p>Depois de aprender a testar sua pontua&ccedil;&atilde;o FID e descobrir as poss&iacute;veis causas, &eacute; hora de otimiz&aacute;-la.<\/p><p>Normalmente, o JavaScript tem o impacto mais significativo na sua pontua&ccedil;&atilde;o FID.&nbsp;Por esse motivo, &eacute; essencial otimizar seu c&oacute;digo JavaScript.<\/p><p>Siga as sugest&otilde;es abaixo para fazer isso:<\/p><h3 class=\"wp-block-heading\"><strong>1. Divida as Tarefas Longas em Tarefas Menores<\/strong><\/h3><p><strong>N&iacute;vel de dificuldade:<\/strong>&nbsp;f&aacute;cil<\/p><p><strong>Impacto:<\/strong>&nbsp;alto<\/p><p>Quando o thread principal do navegador est&aacute; ocupado e bloqueado, as solicita&ccedil;&otilde;es do usu&aacute;rio n&atilde;o podem ser processadas.&nbsp;Isso faz com que a p&aacute;gina n&atilde;o responda.&nbsp;A capacidade de resposta inadequada &eacute; causada por uma tarefa com mais de&nbsp;<strong>50 ms<\/strong>.<\/p><p>As tarefas JavaScript consomem muitos recursos que podem afetar o desempenho da velocidade da sua p&aacute;gina.&nbsp;Para resolver esse problema, as remova ou divida tarefas longas em tarefas menores e ass&iacute;ncronas. Pelo menos uma tarefa deve levar menos de&nbsp;<strong>50 ms<\/strong>.<\/p><p>Voc&ecirc; pode usar a fun&ccedil;&atilde;o&nbsp;<strong>setTimeout<\/strong>&nbsp;para dividir tarefas longas em tarefas menores, pois far&aacute; com que o thread principal responda &agrave;s entradas do usu&aacute;rio sem demora.<\/p><h3 class=\"wp-block-heading\"><strong>2. Implemente o Carregamento Progressivo<\/strong><\/h3><p><strong>N&iacute;vel de dificuldade:<\/strong>&nbsp;m&eacute;dio<\/p><p><strong>Impacto:<\/strong>&nbsp;alto<\/p><p>Ter um site de carregamento r&aacute;pido pode melhorar a experi&ecirc;ncia do usu&aacute;rio.&nbsp;Muitos componentes, como imagens grandes ou tarefas JavaScript, tornam os navegadores mais lentos.<\/p><p>Para resolver esse problema, crie um c&oacute;digo de carregamento progressivo agrupando todos os seus arquivos JavaScript em&nbsp;<strong>bundle.js<\/strong>.&nbsp;Para isso, voc&ecirc; pode usar um&nbsp;<a href=\"https:\/\/webpack.js.org\/\" target=\"_blank\" rel=\"noopener\"><strong>webpack<\/strong><\/a>.<\/p><p>O agrupamento tamb&eacute;m ajuda a minimizar o tamanho da p&aacute;gina e remover c&oacute;digo n&atilde;o utilizado &mdash; ou ao menos minific&aacute;-lo mais facilmente.&nbsp;Al&eacute;m disso, faz com que o navegador carregue apenas componentes da interface do usu&aacute;rio quando necess&aacute;rio.<\/p><h2 class=\"wp-block-heading\" id=\"h-3-mova-a-logica-para-o-lado-do-servidor\"><strong>3. Mova a L&oacute;gica para o Lado do Servidor<\/strong><\/h2><p><strong>N&iacute;vel de dificuldade:<\/strong>&nbsp;dif&iacute;cil<\/p><p><strong>Impacto:<\/strong>&nbsp;alto<\/p><p>O Server-side rendering (SSR) refere-se &agrave; exibi&ccedil;&atilde;o de p&aacute;ginas da Web no servidor.<\/p><p>Com a renderiza&ccedil;&atilde;o do lado do servidor, sua p&aacute;gina &eacute; exibida rapidamente sem ter que esperar que os recursos fiquem dispon&iacute;veis.&nbsp;Isso pode resolver problemas de p&aacute;ginas indexadas e de or&ccedil;amento de rastreamento (tamb&eacute;m conhecido como <em>crawl budget<\/em>), beneficiando seu SEO.<\/p><p>Al&eacute;m disso, a renderiza&ccedil;&atilde;o do lado do servidor pode aumentar a velocidade da primeira pintura de conte&uacute;do e o tempo at&eacute; interatividade (TTI), evitando o envio de grandes arquivos JavaScript para o cliente.&nbsp;Como resultado, o carregamento da sua p&aacute;gina da web ser&aacute; executado mais rapidamente.<\/p><p>Voc&ecirc; pode renderizar a vers&atilde;o do lado do servidor usando estruturas de front-end como&nbsp;<strong>Vue<\/strong>,&nbsp;<a href=\"\/br\/tutoriais\/o-que-e-react-javascript\"><strong>React<\/strong><\/a>&nbsp;ou&nbsp;<strong>Svelte<\/strong>.&nbsp;Antes de usar esses aplicativos, certifique-se de ter instalado o&nbsp;<a href=\"https:\/\/nodejs.org\/pt-br\/\" target=\"_blank\" rel=\"noopener\"><strong>Node.js<\/strong><\/a>&nbsp;para executar o JavaScript no servidor.<\/p><h3 class=\"wp-block-heading\"><strong>4. Gere Conte&uacute;do Est&aacute;tico<\/strong><\/h3><p><strong>N&iacute;vel de dificuldade:<\/strong>&nbsp;m&eacute;dio<\/p><p><strong>Impacto:<\/strong>&nbsp;alto<\/p><p>Ao contr&aacute;rio da renderiza&ccedil;&atilde;o do servidor, a renderiza&ccedil;&atilde;o est&aacute;tica gera uma &uacute;nica p&aacute;gina HTML preparada uma vez no momento da compila&ccedil;&atilde;o.&nbsp;Isso ajuda o usu&aacute;rio a acessar a p&aacute;gina com anteced&ecirc;ncia.<\/p><p>Voc&ecirc; pode usar um gerador de site est&aacute;tico, como&nbsp;<a href=\"https:\/\/www.gatsbyjs.com\/\" target=\"_blank\" rel=\"noopener\"><strong>Gatsby<\/strong><\/a>, para criar p&aacute;ginas HTML est&aacute;ticas a partir de dados, conte&uacute;do e modelos.&nbsp;Em seguida, ele gerar&aacute; uma visualiza&ccedil;&atilde;o de uma p&aacute;gina que pode ser veiculada aos usu&aacute;rios.<\/p><p>Observe que a renderiza&ccedil;&atilde;o est&aacute;tica n&atilde;o &eacute; adequada para sites grandes que cont&ecirc;m muitas p&aacute;ginas ou exigem altera&ccedil;&otilde;es de resposta em cada solicita&ccedil;&atilde;o.&nbsp;Ao gerar todo o seu conte&uacute;do, o site precisa ser implantado e testado, afetando as atualiza&ccedil;&otilde;es em tempo real.&nbsp;Al&eacute;m disso, sua implanta&ccedil;&atilde;o pode se tornar impratic&aacute;vel.<\/p><h3 class=\"wp-block-heading\"><strong>5. Revise a Execu&ccedil;&atilde;o de Script de Terceiros<\/strong><\/h3><p><strong>N&iacute;vel de dificuldade:<\/strong>&nbsp;dif&iacute;cil<\/p><p><strong>Impacto:<\/strong>&nbsp;alto<\/p><p>Um tempo de carregamento lento da p&aacute;gina pode ser causado por um script de terceiros que adiciona funcionalidades aos sites &mdash; como bate-papo ao vivo, an&uacute;ncios e an&aacute;lises.<\/p><p>O c&oacute;digo de terceiros pode causar problemas, como processar muitas solicita&ccedil;&otilde;es de rede para diferentes servidores, enviando grandes tarefas JavaScript ou arquivos de imagens que bloqueiam o thread principal.<\/p><p>Para revisar seus scripts de terceiros, voc&ecirc; pode testar seu site no PageSpeed &#8203;&#8203;Insights.&nbsp;Ele mostrar&aacute; listas dos recursos de terceiros carregados, juntamente do tamanho da transfer&ecirc;ncia e o tempo de bloqueio do encadeamento principal.<\/p><p>Use atributos ass&iacute;ncronos ou adiados para melhorar seus tempos de carregamento nos scripts de terceiros.&nbsp;Isso ajudar&aacute; voc&ecirc; a eliminar o problema de bloqueio de renderiza&ccedil;&atilde;o e acionar um processo de carregamento de p&aacute;gina da Web mais r&aacute;pido.<\/p><p>Scripts importantes, que s&atilde;o vitais para o carregamento da p&aacute;gina, n&atilde;o devem usar atributos ass&iacute;ncronos ou adiados. Isso s&oacute; deve ser feito com scripts externos.<\/p><h3 class=\"wp-block-heading\"><strong>6. Utilize Web Workers<\/strong><\/h3><p><strong>N&iacute;vel de dificuldade:<\/strong>&nbsp;dif&iacute;cil<\/p><p><strong>Impacto:<\/strong>&nbsp;alto<\/p><p><strong>Os <\/strong><a href=\"https:\/\/developer.mozilla.org\/pt-BR\/docs\/Web\/API\/Web_Workers_API\" target=\"_blank\" rel=\"noopener\"><strong>web workers<\/strong><\/a>&nbsp;ajudam a reduzir o tempo de bloqueio do encadeamento principal e a melhorar a pontua&ccedil;&atilde;o FID do seu site.&nbsp;Eles permitem que voc&ecirc; coloque tarefas longas num thread de segundo plano sem interferir na interface do usu&aacute;rio, tornando seu site mais responsivo.<\/p><p>Use o c&oacute;digo&nbsp;<strong>Worker(&ldquo;path\/to\/worker\/script&rdquo;)<\/strong>&nbsp;para criar um worker.&nbsp;Ele pode enviar mensagens para o c&oacute;digo JavaScript. Isso &eacute; feito ao postar para um manipulador de eventos especificado por esse c&oacute;digo, e vice-versa.<\/p><p>Al&eacute;m disso, um web worker pode executar tarefas de entrada ou sa&iacute;da usando&nbsp;<strong><a href=\"https:\/\/developer.mozilla.org\/pt-BR\/docs\/Web\/API\/XMLHTTPRequest\" target=\"_blank\" rel=\"noopener\">XMLHttpRequest<\/a><\/strong>&nbsp;ou um&nbsp;<a href=\"https:\/\/developer.mozilla.org\/pt-BR\/docs\/Web\/API\/Fetch_API\" target=\"_blank\" rel=\"noopener\"><strong>fetch<\/strong><\/a>.<\/p><p>Para ajud&aacute;-lo a usar um web worker, confira as seguintes bibliotecas:<\/p><ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/github.com\/GoogleChromeLabs\/comlink\" target=\"_blank\" rel=\"noopener\"><strong>Comlink<\/strong><\/a>&nbsp;&ndash; uma pequena biblioteca que simplifica o uso de&nbsp;<strong>postMessage\/<\/strong>.<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/WebReflection\/workway\" target=\"_blank\" rel=\"noopener\"><strong>Workway<\/strong><\/a>&nbsp;&ndash; um exportador de web worker.<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/developit\/workerize\" target=\"_blank\" rel=\"noopener\"><strong>Workerize<\/strong><\/a>&nbsp;&ndash; um carregador de webpack que move um m&oacute;dulo para um web worker.<\/li>\n<\/ul><h3 class=\"wp-block-heading\"><strong>7. Otimize JavaScript N&atilde;o Utilizado e N&atilde;o Cr&iacute;tico<\/strong><\/h3><p><strong>N&iacute;vel de dificuldade:<\/strong>&nbsp;dif&iacute;cil<\/p><p><strong>Impacto:<\/strong>&nbsp;alto<\/p><p>Muitas tarefas JavaScript levar&atilde;o um longo tempo para serem analisadas e executadas.&nbsp;Como resultado, o tempo de resposta do navegador ser&aacute; atrasado.<\/p><p>O navegador far&aacute; uma pausa quando encontrar uma tag de script vinculada ao c&oacute;digo JavaScript externo.&nbsp;&Eacute; por isso que &eacute; importante executar apenas o c&oacute;digo necess&aacute;rio.<\/p><p>Existem algumas op&ccedil;&otilde;es para otimizar o JavaScript, como divis&atilde;o de c&oacute;digo e o adiamento de qualquer JavaScript n&atilde;o cr&iacute;tico.&nbsp;Antes disso, voc&ecirc; pode usar a guia&nbsp;<a href=\"https:\/\/developers.google.com\/web\/tools\/chrome-devtools\/coverage\" target=\"_blank\" rel=\"noopener\"><strong>Coverage<\/strong><\/a>&nbsp;no Chrome DevTools para ver quanto JavaScript n&atilde;o utilizado existe em sua p&aacute;gina da web.<\/p><p>A divis&atilde;o de c&oacute;digo permite que voc&ecirc; divida um pacote JavaScript em partes e ajude sua p&aacute;gina a carregar somente quando necess&aacute;rio.&nbsp;Isso tamb&eacute;m &eacute; conhecido como&nbsp;<a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/Performance\/Lazy_loading\" target=\"_blank\" rel=\"noopener\"><strong>lazy loading<\/strong><\/a>.&nbsp;Enquanto isso, para adiar qualquer tarefa JavaScript n&atilde;o cr&iacute;tica, sempre use os recursos&nbsp;<a href=\"https:\/\/javascript.info\/script-async-defer\" target=\"_blank\" rel=\"noopener\"><strong>async ou defer<\/strong><\/a>&nbsp;para scripts que n&atilde;o s&atilde;o vitais para o&nbsp;<a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/Performance\/Critical_rendering_path\" target=\"_blank\" rel=\"noopener\"><strong>caminho de renderiza&ccedil;&atilde;o cr&iacute;tico<\/strong><\/a>&nbsp;ou&nbsp;<a href=\"https:\/\/www.optimizely.com\/optimization-glossary\/above-the-fold\/\" target=\"_blank\" rel=\"noopener\"><strong>acima da dobra<\/strong><\/a>.<\/p><h3 class=\"wp-block-heading\"><strong>8. Revisar o Uso de Polyfills<\/strong><\/h3><p><strong>N&iacute;vel de dificuldade:<\/strong>&nbsp;dif&iacute;cil<\/p><p><strong>Impacto:<\/strong>&nbsp;baixo<\/p><p>Polyfill &eacute; um c&oacute;digo usado para rodar recursos modernos em navegadores mais antigos que n&atilde;o o suportam nativamente.&nbsp;Por exemplo, ao usar a sintaxe JavaScript moderna e APIs de navegador para criar c&oacute;digo, voc&ecirc; precisar&aacute; transpil&aacute;-lo e entregar polyfills para que os recursos modernos sejam executados em navegadores mais antigos.<\/p><p>O uso de polyfills criar&aacute; mais pacotes que levar&atilde;o mais tempo para carregar no navegador.&nbsp;Portanto, &eacute; essencial minimizar os polyfills n&atilde;o utilizados e us&aacute;-los apenas quando necess&aacute;rio.<\/p><p>Para reduzir o tempo de carregamento necess&aacute;rio para sua p&aacute;gina da web, voc&ecirc; pode usar um compilador JavaScript, como Babel. Ent&atilde;o, use&nbsp;<a href=\"https:\/\/babeljs.io\/docs\/en\/babel-preset-env\" target=\"_blank\" rel=\"noopener\"><strong>@babel\/preset-env<\/strong><\/a>&nbsp;para incluir os polyfills necess&aacute;rios para navegadores mais antigos.<\/p><p>Voc&ecirc; tamb&eacute;m pode reduzir polyfills n&atilde;o utilizados ativando a op&ccedil;&atilde;o de corre&ccedil;&atilde;o de bugs para o Babel 7.9. Como alternativa, entregue dois pacotes separados usando&nbsp;<a href=\"https:\/\/3perf.com\/blog\/polyfills\/#modulenomodule\" target=\"_blank\" rel=\"noopener\"><strong>module\/nomodule<\/strong><\/a>&nbsp;para otimizar polyfills.<\/p><h2 class=\"wp-block-heading\" id=\"h-first-input-delay-em-relacao-a-outras-metricas\"><strong>First input delay em rela&ccedil;&atilde;o a outras m&eacute;tricas<\/strong><\/h2><p>O First Input Delay (FID) &eacute; uma m&eacute;trica que deve ser testada com um campo de dados baseado na intera&ccedil;&atilde;o real do usu&aacute;rio.&nbsp;Al&eacute;m disso, voc&ecirc; deve monitorar outras m&eacute;tricas que se correlacionam com o FID.<\/p><p>Vamos analisar em detalhes como as outras m&eacute;tricas se relacionam com as pontua&ccedil;&otilde;es do FID.<\/p><h3 class=\"wp-block-heading\"><strong>First Input Delay X Primeira Pintura de Conte&uacute;do (FCP)<\/strong><\/h3><p>A primeira pintura de conte&uacute;do mede quanto tempo leva para carregar uma p&aacute;gina desde o carregamento inicial at&eacute; que o conte&uacute;do seja exibido na tela.&nbsp;O conte&uacute;do da p&aacute;gina vem do Document Object Model (DOM), incluindo imagens, texto ou gr&aacute;ficos.<\/p><p>Enquanto isso, o first input delay mede quanto tempo leva para um navegador responder.&nbsp;Essas duas coisas afetam significativamente a primeira impress&atilde;o do usu&aacute;rio antes e depois de interagir com a p&aacute;gina.&nbsp;FID e FCP t&ecirc;m uma correla&ccedil;&atilde;o s&oacute;lida para dar aos usu&aacute;rios uma melhor primeira impress&atilde;o.<\/p><p>Al&eacute;m disso, um FCP r&aacute;pido ajuda os usu&aacute;rios a saberem que as informa&ccedil;&otilde;es solicitadas est&atilde;o sendo processadas, fazendo com que permane&ccedil;am no site.<\/p><h3 class=\"wp-block-heading\"><strong>First Input Delay Versus Tempo At&eacute; Interatividade (TTI)<\/strong><\/h3><p>O Tempo Para Intera&ccedil;&atilde;o (TTI) mede quanto tempo leva para uma p&aacute;gina se tornar totalmente interativa.&nbsp;A medi&ccedil;&atilde;o come&ccedil;a depois que o FCP &eacute; executado quando o usu&aacute;rio pode interagir na p&aacute;gina.<\/p><p>Uma p&aacute;gina totalmente interativa responde &agrave; intera&ccedil;&atilde;o do usu&aacute;rio em menos de&nbsp;<strong>50 ms<\/strong>. Al&eacute;m disso, seus manipuladores de eventos s&atilde;o registrados para a maioria dos elementos de p&aacute;gina vis&iacute;veis.<\/p><p>Ao conhecer seu TTI, voc&ecirc; pode identificar se as p&aacute;ginas do seu site s&atilde;o totalmente utiliz&aacute;veis.&nbsp;Junto de um bom FID, suas p&aacute;ginas podem ser totalmente interativas conforme a necessidade do usu&aacute;rio.<\/p><h3 class=\"wp-block-heading\"><strong>First Input Delay Versus Tempo de Bloqueio (TBT)<\/strong><\/h3><p>O Tempo Total de Bloqueio (TBT) e o FID s&atilde;o bastante semelhantes.&nbsp;Ambos medem qu&atilde;o longo &eacute; o tempo de resposta na p&aacute;gina.&nbsp;A diferen&ccedil;a &eacute; que o TBT n&atilde;o usa a entrada do usu&aacute;rio como par&acirc;me.&nbsp;Resumindo, TBT &eacute; a quantidade de tempo durante a qual tarefas longas bloqueiam o encadeamento principal.<\/p><p>Tarefas longas de Javascript em p&aacute;ginas da web podem afetar as avalia&ccedil;&otilde;es FID e TBT.&nbsp;Observando as m&eacute;tricas FID e TBT, voc&ecirc; pode ver qu&atilde;o significativo &eacute; o impacto de tarefas longas na capacidade de resposta do site.<\/p><p>Essas duas m&eacute;tricas criam uma forte correla&ccedil;&atilde;o e influenciam uma &agrave; outra na usabilidade de uma p&aacute;gina.&nbsp;Portanto, aumentar sua pontua&ccedil;&atilde;o TBT pode ser usado para otimizar seu FID.<\/p><h2 class=\"wp-block-heading\" id=\"h-conclusao\"><strong>Conclus&atilde;o<\/strong><\/h2><p>Ter um site responsivo impacta de maneira significativa a experi&ecirc;ncia do usu&aacute;rio do seu site.&nbsp;&Eacute; por isso que testar e analisar os core web vitals &eacute; essencial, e isso inclui o First Input Delay (FID).&nbsp;Ao fazer isso, voc&ecirc; pode melhorar o desempenho das p&aacute;ginas do seu site.<\/p><p>O problema mais comum, e que causa longos atrasos de entrada, &eacute; um thread principal bloqueado.&nbsp;Isso geralmente &eacute; causado por JavaScript n&atilde;o otimizado.&nbsp;Portanto, para melhorar a pontua&ccedil;&atilde;o de first input delay, otimize seu c&oacute;digo JavaScript ao:<\/p><ul class=\"wp-block-list\">\n<li>Quebrar tarefas longas.<\/li>\n\n\n\n<li>Implementar carregamento progressivo.<\/li>\n\n\n\n<li>Usar renderiza&ccedil;&atilde;o do lado do servidor.<\/li>\n\n\n\n<li>Gerar conte&uacute;do estaticamente.<\/li>\n\n\n\n<li>Auditar os scripts de terceiros.<\/li>\n\n\n\n<li>Usar web workers.<\/li>\n\n\n\n<li>Adiar o JavaScript n&atilde;o utilizado e n&atilde;o cr&iacute;tico.<\/li>\n\n\n\n<li>Restringir o uso de polyfills.<\/li>\n<\/ul><p>Depois de modificar uma p&aacute;gina, teste seu navegador e verifique se o site est&aacute; funcionando corretamente.&nbsp;Se voc&ecirc; tiver d&uacute;vidas ou opini&otilde;es sobre como melhorar sua pontua&ccedil;&atilde;o de first input delay, n&atilde;o hesite em compartilh&aacute;-los na se&ccedil;&atilde;o de coment&aacute;rios abaixo.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>O First Input Delay (FID), tamb&eacute;m conhecido como lat&ecirc;ncia de entrada, calcula o tempo de resposta de um site desde a primeira intera&ccedil;&atilde;o do usu&aacute;rio at&eacute; a resposta do navegador. A rolagem e o zoom n&atilde;o podem ser medidos com o first input delay, pois s&atilde;o classificados como aspectos de anima&ccedil;&atilde;o no&nbsp;modelo RAIL.&nbsp;O FID se [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/br\/tutoriais\/first-input-delay\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":125,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rank_math_title":"","rank_math_description":"O First Input Delay mostra o tempo entre o primeiro clique do usu\u00e1rio e a respsota do navegador. Aprenda como melhor\u00e1-lo e otimize seu SEO!","rank_math_focus_keyword":"first input delay","footnotes":""},"categories":[4941],"tags":[7387],"class_list":["post-27569","post","type-post","status-publish","format-standard","hentry","category-desenvolvimento-web","tag-first-input-delay"],"hreflangs":[{"locale":"en-US","link":"https:\/\/www.hostinger.com\/tutorials\/first-input-delay","default":0},{"locale":"pt-BR","link":"https:\/\/www.hostinger.com\/br\/tutoriais\/first-input-delay","default":0},{"locale":"id-ID","link":"https:\/\/www.hostinger.com\/id\/tutorial\/first-input-delay","default":0},{"locale":"en-UK","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/first-input-delay","default":0},{"locale":"en-MY","link":"https:\/\/www.hostinger.com\/my\/tutorials\/what-is-first-input-delay-and-how-to-improve-it","default":0},{"locale":"en-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/what-is-first-input-delay-and-how-to-improve-it","default":0},{"locale":"pt-PT","link":"https:\/\/www.hostinger.com\/pt\/tutoriais\/first-input-delay","default":0},{"locale":"en-IN","link":"https:\/\/www.hostinger.com\/in\/tutorials\/first-input-delay","default":0},{"locale":"en-CA","link":"https:\/\/www.hostinger.com\/ca\/tutorials\/first-input-delay","default":0},{"locale":"en-AU","link":"https:\/\/www.hostinger.com\/au\/tutorials\/first-input-delay","default":0},{"locale":"en-NG","link":"https:\/\/www.hostinger.com\/ng\/tutorials\/first-input-delay","default":0}],"acf":[],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/27569","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/users\/125"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/comments?post=27569"}],"version-history":[{"count":7,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/27569\/revisions"}],"predecessor-version":[{"id":43421,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/27569\/revisions\/43421"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/media?parent=27569"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/categories?post=27569"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/tags?post=27569"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}