{"id":1361,"date":"2022-07-28T19:09:45","date_gmt":"2022-07-28T19:09:45","guid":{"rendered":"https:\/\/www.bhoost.com\/it\/?p=1361"},"modified":"2023-12-07T17:22:53","modified_gmt":"2023-12-07T17:22:53","slug":"ttfb-time-to-first-byte-tempo-di-caricamento-del-primo-byte","status":"publish","type":"post","link":"https:\/\/www.bhoost.com\/it\/corewebvitals\/ttfb-time-to-first-byte-tempo-di-caricamento-del-primo-byte\/","title":{"rendered":"TTFB &#8211; Time to first byte &#8211; Tempo di caricamento del primo Byte"},"content":{"rendered":"<p><span>Il tempo al primo byte (TTFB) \u00e8 una metrica fondamentale per misurare il tempo di configurazione della connessione e la reattivit\u00e0 del server Web sia in laboratorio che sul campo.\u00a0<\/span><span>Aiuta a identificare quando un server Web \u00e8 troppo lento per rispondere alle richieste.\u00a0<\/span><span>Nel caso delle richieste di navigazione, ovvero richieste di un documento HTML, precede ogni altra metrica significativa delle prestazioni di caricamento.<\/span><\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_83 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Indice dei contenuti<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-6a10a582c0b1c\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6a10a582c0b1c\"  aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.bhoost.com\/it\/corewebvitals\/ttfb-time-to-first-byte-tempo-di-caricamento-del-primo-byte\/#Cose_TTFB\" >Cos&#8217;\u00e8 TTFB?<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.bhoost.com\/it\/corewebvitals\/ttfb-time-to-first-byte-tempo-di-caricamento-del-primo-byte\/#Qual_e_un_buon_punteggio_TTFB\" >Qual \u00e8 un buon punteggio TTFB?\u00a0<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.bhoost.com\/it\/corewebvitals\/ttfb-time-to-first-byte-tempo-di-caricamento-del-primo-byte\/#Come_misurare_TTFB\" >Come misurare TTFB\u00a0<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.bhoost.com\/it\/corewebvitals\/ttfb-time-to-first-byte-tempo-di-caricamento-del-primo-byte\/#Strumenti_sul_campo\" >Strumenti sul campo\u00a0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.bhoost.com\/it\/corewebvitals\/ttfb-time-to-first-byte-tempo-di-caricamento-del-primo-byte\/#Strumenti_di_laboratorio\" >Strumenti di laboratorio\u00a0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.bhoost.com\/it\/corewebvitals\/ttfb-time-to-first-byte-tempo-di-caricamento-del-primo-byte\/#Misura_TTFB_in_JavaScript\" >Misura TTFB in JavaScript\u00a0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.bhoost.com\/it\/corewebvitals\/ttfb-time-to-first-byte-tempo-di-caricamento-del-primo-byte\/#Misurare_le_richieste_di_risorse\" >Misurare le richieste di risorse\u00a0<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.bhoost.com\/it\/corewebvitals\/ttfb-time-to-first-byte-tempo-di-caricamento-del-primo-byte\/#Come_migliorare_TTFB\" >Come migliorare TTFB\u00a0<\/a><\/li><\/ul><\/nav><\/div>\n<h2 id=\"what-is-ttfb\"><span class=\"ez-toc-section\" id=\"Cose_TTFB\"><\/span><span>Cos&#8217;\u00e8 TTFB?<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span>TTFB \u00e8 una metrica che misura il tempo che intercorre tra la richiesta di una risorsa e quando inizia ad arrivare il primo byte di una risposta.<\/span><\/p>\n<p><img decoding=\"async\" class=\"alignnone wp-image-1384 size-full\" src=\"https:\/\/www.bhoost.com\/it\/wp-content\/uploads\/sites\/2\/2022\/07\/TTFB-Timeline.png\" alt=\"\" width=\"952\" height=\"413\" srcset=\"https:\/\/www.bhoost.com\/it\/wp-content\/uploads\/sites\/2\/2022\/07\/TTFB-Timeline.png 952w, https:\/\/www.bhoost.com\/it\/wp-content\/uploads\/sites\/2\/2022\/07\/TTFB-Timeline-300x130.png 300w, https:\/\/www.bhoost.com\/it\/wp-content\/uploads\/sites\/2\/2022\/07\/TTFB-Timeline-768x333.png 768w\" sizes=\"(max-width: 952px) 100vw, 952px\" \/><\/p>\n<p><span>TTFB \u00e8 la somma delle seguenti fasi di richiesta:<\/span><\/p>\n<ul>\n<li><span>Tempo di reindirizzamento<\/span><\/li>\n<li><span>Tempo di avvio dell&#8217;operatore di servizio (se applicabile)<\/span><\/li>\n<li><span>Ricerca DNS<\/span><\/li>\n<li><span>Connessione e negoziazione TLS<\/span><\/li>\n<li><span>Richiesta, fino al punto in cui \u00e8 arrivato il primo byte della risposta<\/span><\/li>\n<\/ul>\n<p><span>La riduzione della latenza nel tempo di configurazione della connessione e sul back-end contribuir\u00e0 a ridurre il TTFB.<\/span><\/p>\n<h3 id=\"what-is-a-good-ttfb-score\"><span class=\"ez-toc-section\" id=\"Qual_e_un_buon_punteggio_TTFB\"><\/span><span>Qual \u00e8 un buon punteggio TTFB?\u00a0<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span>Poich\u00e9 TTFB precede\u00a0<\/span><span>metriche incentrate sull&#8217;utente<\/span><span>\u00a0come\u00a0<\/span><span>First Contentful Paint (FCP)<\/span><span>\u00a0e\u00a0<\/span><span>Largest Contentful Paint (LCP)<\/span><span>\u00a0, \u00e8 consigliabile che il server risponda alle richieste di navigazione abbastanza rapidamente in modo che il\u00a0<\/span><strong><span>75\u00b0 percentile<\/span><\/strong><span>\u00a0degli utenti sperimenti un\u00a0<\/span><span>FCP entro la soglia &#8220;buona&#8221;<\/span><span>\u00a0.\u00a0Come guida approssimativa, la maggior parte dei siti dovrebbe cercare di avere un tempo per il primo byte di\u00a0<\/span><strong><span>0,8 secondi<\/span><\/strong><span>\u00a0o meno.<\/span><\/p>\n<aside class=\"aside flow bg-state-info-bg color-state-info-text\">\n<div class=\"flow\"><span>TTFB non \u00e8 una metrica\u00a0<\/span><a href=\"https:\/\/web.dev\/vitals\"><span>Core Web Vitals<\/span><\/a><span>\u00a0, quindi non \u00e8 assolutamente necessario che i siti soddisfino la soglia &#8220;buona&#8221; TTFB, a condizione che non ostacoli la loro capacit\u00e0 di ottenere un buon punteggio nelle metriche che contano.<\/span><\/div>\n<\/aside>\n<h2 id=\"how-to-measure-ttfb\"><span class=\"ez-toc-section\" id=\"Come_misurare_TTFB\"><\/span><span>Come misurare TTFB\u00a0<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span>Il TTFB pu\u00f2 essere misurato in\u00a0<\/span><a href=\"https:\/\/web.dev\/user-centric-performance-metrics\/#in-the-lab\"><span>laboratorio<\/span><\/a><span>\u00a0o\u00a0<\/span><a href=\"https:\/\/web.dev\/user-centric-performance-metrics\/#in-the-field\"><span>sul campo<\/span><\/a><span>\u00a0nei seguenti modi.<\/span><\/p>\n<h3 id=\"field-tools\"><span class=\"ez-toc-section\" id=\"Strumenti_sul_campo\"><\/span><span>Strumenti sul campo\u00a0<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><span>Rapporto sull&#8217;esperienza utente di Chrome<\/span><\/li>\n<li><code>web-vitals<\/code><span>Libreria JavaScript<\/span><\/li>\n<\/ul>\n<h3 id=\"lab-tools\"><span class=\"ez-toc-section\" id=\"Strumenti_di_laboratorio\"><\/span><span>Strumenti di laboratorio\u00a0<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><span>Nel\u00a0<\/span><span>pannello di rete<\/span><span>\u00a0di DevTools di Chrome<\/span><\/li>\n<li><a href=\"https:\/\/www.webpagetest.org\/\" rel=\"noopener\"><span>Pagina WebTest<\/span><\/a><\/li>\n<\/ul>\n<h3 id=\"measure-ttfb-in-javascript\"><span class=\"ez-toc-section\" id=\"Misura_TTFB_in_JavaScript\"><\/span><span>Misura TTFB in JavaScript\u00a0<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span>Puoi misurare il TTFB delle\u00a0<\/span><span>richieste di navigazione<\/span><span>\u00a0nel browser con l&#8217;\u00a0<\/span><span>API Navigation Timing<\/span><span>\u00a0.\u00a0L&#8217;esempio seguente mostra come creare un\u00a0<\/span><a href=\"https:\/\/developer.mozilla.org\/docs\/Web\/API\/PerformanceObserver\" rel=\"noopener\"><code>PerformanceObserver<\/code><\/a><span>messaggio che ascolti una\u00a0<\/span><code>navigation<\/code><span>voce e la registri sulla console:<\/span><\/p>\n<pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">PerformanceObserver<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">entryList<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">=&gt;<\/span> <span class=\"token punctuation\">{<\/span>\r\n  <span class=\"token keyword\">const<\/span> <span class=\"token punctuation\">[<\/span>pageNav<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">=<\/span> entryList<span class=\"token punctuation\">.<\/span><span class=\"token function\">getEntriesByType<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">'navigation'<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n\r\n  console<span class=\"token punctuation\">.<\/span><span class=\"token function\">log<\/span><span class=\"token punctuation\">(<\/span><span class=\"token template-string\"><span class=\"token template-punctuation string\">`<\/span><span class=\"token string\">TTFB: <\/span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${<\/span>pageNav<span class=\"token punctuation\">.<\/span>responseStart<span class=\"token interpolation-punctuation punctuation\">}<\/span><\/span><span class=\"token template-punctuation string\">`<\/span><\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n<span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">observe<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">{<\/span>\r\n  <span class=\"token literal-property property\">type<\/span><span class=\"token operator\">:<\/span> <span class=\"token string\">'navigation'<\/span><span class=\"token punctuation\">,<\/span>\r\n  <span class=\"token literal-property property\">buffered<\/span><span class=\"token operator\">:<\/span> <span class=\"token boolean\">true<\/span>\r\n<span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/code><\/pre>\n<aside class=\"aside flow bg-state-bad-bg color-state-bad-text\">\n<p class=\"cluster color-state-bad-text\"><strong><span>Attenzione<\/span><\/strong><\/p>\n<div class=\"flow\"><span>Non tutti i browser supportano\u00a0<\/span><code>PerformanceObserver<\/code><span>o il relativo\u00a0<\/span><code>buffered<\/code><span>flag.\u00a0Per ottenere il massimo supporto possibile per il browser, prendi in considerazione l&#8217;adozione del\u00a0<\/span><code>web-vitals<\/code><span>pacchetto, discusso di seguito.<\/span><\/div>\n<\/aside>\n<p><span>La\u00a0<\/span><code>web-vitals<\/code><span>libreria JavaScript<\/span><span>\u00a0pu\u00f2 anche misurare TTFB nel browser con meno complessit\u00e0:<\/span><\/p>\n<pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">import<\/span> <span class=\"token punctuation\">{<\/span>getTTFB<span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">from<\/span> <span class=\"token string\">'web-vitals'<\/span><span class=\"token punctuation\">;<\/span>\r\n\r\n<span class=\"token comment\">\/\/ Measure and log TTFB as soon as it's available.<\/span>\r\n<span class=\"token function\">getTTFB<\/span><span class=\"token punctuation\">(<\/span>console<span class=\"token punctuation\">.<\/span>log<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/code><\/pre>\n<h3 id=\"measuring-resource-requests\"><span class=\"ez-toc-section\" id=\"Misurare_le_richieste_di_risorse\"><\/span><span>Misurare le richieste di risorse\u00a0<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span>TTFB si applica a\u00a0<\/span><em><span>tutte<\/span><\/em><span>\u00a0le richieste, non solo alle richieste di navigazione.\u00a0In particolare, le risorse ospitate su server multiorigine possono introdurre latenza a causa della necessit\u00e0 di impostare connessioni a tali server.\u00a0Per misurare il TTFB per le risorse sul campo, utilizza l&#8217;\u00a0<\/span><span>API Resource Timing<\/span><span>\u00a0all&#8217;interno di\u00a0<\/span><code>PerformanceObserver<\/code><span>:<\/span><\/p>\n<pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">PerformanceObserver<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">entryList<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">=&gt;<\/span> <span class=\"token punctuation\">{<\/span>\r\n  <span class=\"token keyword\">const<\/span> entries <span class=\"token operator\">=<\/span> entryList<span class=\"token punctuation\">.<\/span><span class=\"token function\">getEntries<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n\r\n  <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">const<\/span> entry <span class=\"token keyword\">of<\/span> entries<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\r\n    <span class=\"token comment\">\/\/ Some resources may have a responseStart value of 0, due<\/span>\r\n    <span class=\"token comment\">\/\/ to the resource being cached, or a cross-origin resource<\/span>\r\n    <span class=\"token comment\">\/\/ being served without a Timing-Allow-Origin header set.<\/span>\r\n    <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>entry<span class=\"token punctuation\">.<\/span>responseStart <span class=\"token operator\">&gt;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\r\n      console<span class=\"token punctuation\">.<\/span><span class=\"token function\">log<\/span><span class=\"token punctuation\">(<\/span><span class=\"token template-string\"><span class=\"token template-punctuation string\">`<\/span><span class=\"token string\">TTFB: <\/span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${<\/span>entry<span class=\"token punctuation\">.<\/span>responseStart<span class=\"token interpolation-punctuation punctuation\">}<\/span><\/span><span class=\"token template-punctuation string\">`<\/span><\/span><span class=\"token punctuation\">,<\/span> entry<span class=\"token punctuation\">.<\/span>name<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token punctuation\">}<\/span>\r\n  <span class=\"token punctuation\">}<\/span>\r\n<span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">observe<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">{<\/span>\r\n  <span class=\"token literal-property property\">type<\/span><span class=\"token operator\">:<\/span> <span class=\"token string\">'resource'<\/span><span class=\"token punctuation\">,<\/span>\r\n  <span class=\"token literal-property property\">buffered<\/span><span class=\"token operator\">:<\/span> <span class=\"token boolean\">true<\/span>\r\n<span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/code><\/pre>\n<p><span>Il frammento di codice sopra \u00e8 simile a quello utilizzato per misurare il TTFB per una richiesta di navigazione, tranne per il fatto che invece di eseguire query per\u00a0<\/span><code>'navigation'<\/code><span>le voci, esegui invece una query per le\u00a0<\/span><code>'resource'<\/code><span>voci.\u00a0Tiene inoltre conto del fatto che alcune risorse caricate dall&#8217;origine primaria possono restituire un valore di\u00a0<\/span><code>0<\/code><span>, poich\u00e9 la connessione \u00e8 gi\u00e0 aperta o una risorsa viene recuperata istantaneamente da una cache.<\/span><\/p>\n<aside class=\"aside flow bg-tertiary-box-bg color-tertiary-box-text\">\n<p class=\"cluster\"><strong><span>Trabocchetti<\/span><\/strong><\/p>\n<div class=\"flow\"><span>TTFB per le richieste multiorigine non sar\u00e0 misurabile sul campo se i server multiorigine non riescono a impostare\u00a0<\/span><code>Timing-Allow-Origin<\/code><span>un&#8217;intestazione<\/span><span>\u00a0.<\/span><\/div>\n<\/aside>\n<h2 id=\"how-to-improve-ttfb\"><span class=\"ez-toc-section\" id=\"Come_migliorare_TTFB\"><\/span><span>Come migliorare TTFB\u00a0<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span>Il miglioramento di TTFB dipende in gran parte dal tuo provider di hosting e dallo stack di applicazioni back-end.\u00a0Valori TTFB elevati potrebbero essere dovuti a uno o pi\u00f9 dei seguenti problemi:<\/span><\/p>\n<ul>\n<li><span>Servizi di hosting con infrastruttura inadeguata per gestire carichi di traffico elevati<\/span><\/li>\n<li><span>Server Web con memoria insufficiente che pu\u00f2 causare\u00a0<\/span><span>thrashing<\/span><\/li>\n<li><span>Tabelle di database non ottimizzate<\/span><\/li>\n<li><span>Configurazione del server di database non ottimale<\/span><\/li>\n<\/ul>\n<p><span>La riduzione al minimo di TTFB viene spesso eseguita scegliendo un provider di hosting adatto con un&#8217;infrastruttura per garantire tempi di attivit\u00e0 e reattivit\u00e0 elevati.\u00a0Questo, in combinazione con un CDN, pu\u00f2 aiutare.<\/span><\/p>\n<aside class=\"aside flow bg-state-info-bg color-state-info-text\">\n<div class=\"flow\"><span>Utilizza l&#8217;\u00a0<\/span><span>API di temporizzazione del server<\/span><span>\u00a0per raccogliere dati di campo aggiuntivi sulle prestazioni dei processi di back-end dell&#8217;applicazione.\u00a0Questo pu\u00f2 aiutare a identificare opportunit\u00e0 di miglioramento che altrimenti potrebbero passare inosservate.<\/span><\/div>\n<\/aside>\n<p><span>Altre opportunit\u00e0 per migliorare i tempi TTFB elevati e i relativi ritardi percettivi includono:<\/span><\/p>\n<ul>\n<li><span>Evita reindirizzamenti di pi\u00f9 pagine<\/span><span>\u00a0.<\/span><\/li>\n<li><span>Preconnettersi alle origini richieste<\/span><span>\u00a0per le risorse tra origini diverse.<\/span><\/li>\n<li><span>Invia la tua origine\u00a0<\/span><span>all&#8217;elenco di precaricamento HSTS<\/span><span>\u00a0per eliminare la latenza di reindirizzamento da HTTP a HTTPS.<\/span><\/li>\n<li><span>Usa HTTP\/2<\/span><span>\u00a0o\u00a0<\/span><span>HTTP\/3<\/span><span>\u00a0.<\/span><\/li>\n<li><span>Prendi in considerazione il\u00a0<\/span><span>prelettura predittiva<\/span><span>\u00a0per la navigazione veloce delle pagine per gli utenti che non hanno specificato\u00a0<\/span><span>una preferenza per l&#8217;utilizzo ridotto dei dati<\/span><span>\u00a0.<\/span><\/li>\n<li><span>Utilizzare la generazione lato server (SSG) per il markup anzich\u00e9 SSR ove possibile e appropriato.<\/span><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Il tempo al primo byte (TTFB) \u00e8 una metrica fondamentale per misurare il tempo di configurazione della connessione e la [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1728,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_uag_custom_page_level_css":"","footnotes":""},"categories":[50],"tags":[60],"class_list":["post-1361","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-corewebvitals","tag-corewebvitals"],"acf":[],"jetpack_featured_media_url":"https:\/\/www.bhoost.com\/it\/wp-content\/uploads\/sites\/2\/2022\/07\/TTFB-Core-Web-Vitals.png","uagb_featured_image_src":{"full":["https:\/\/www.bhoost.com\/it\/wp-content\/uploads\/sites\/2\/2022\/07\/TTFB-Core-Web-Vitals.png",1280,720,false],"thumbnail":["https:\/\/www.bhoost.com\/it\/wp-content\/uploads\/sites\/2\/2022\/07\/TTFB-Core-Web-Vitals-150x150.png",150,150,true],"medium":["https:\/\/www.bhoost.com\/it\/wp-content\/uploads\/sites\/2\/2022\/07\/TTFB-Core-Web-Vitals-300x169.png",300,169,true],"medium_large":["https:\/\/www.bhoost.com\/it\/wp-content\/uploads\/sites\/2\/2022\/07\/TTFB-Core-Web-Vitals-768x432.png",768,432,true],"large":["https:\/\/www.bhoost.com\/it\/wp-content\/uploads\/sites\/2\/2022\/07\/TTFB-Core-Web-Vitals-1024x576.png",768,432,true],"1536x1536":["https:\/\/www.bhoost.com\/it\/wp-content\/uploads\/sites\/2\/2022\/07\/TTFB-Core-Web-Vitals.png",1280,720,false],"2048x2048":["https:\/\/www.bhoost.com\/it\/wp-content\/uploads\/sites\/2\/2022\/07\/TTFB-Core-Web-Vitals.png",1280,720,false]},"uagb_author_info":{"display_name":"admin","author_link":"https:\/\/www.bhoost.com\/it\/author\/andreasacca_vd0s1ik8\/"},"uagb_comment_info":0,"uagb_excerpt":"Il tempo al primo byte (TTFB) \u00e8 una metrica fondamentale per misurare il tempo di configurazione della connessione e la [&hellip;]","_links":{"self":[{"href":"https:\/\/www.bhoost.com\/it\/wp-json\/wp\/v2\/posts\/1361","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bhoost.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bhoost.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bhoost.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bhoost.com\/it\/wp-json\/wp\/v2\/comments?post=1361"}],"version-history":[{"count":2,"href":"https:\/\/www.bhoost.com\/it\/wp-json\/wp\/v2\/posts\/1361\/revisions"}],"predecessor-version":[{"id":1385,"href":"https:\/\/www.bhoost.com\/it\/wp-json\/wp\/v2\/posts\/1361\/revisions\/1385"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bhoost.com\/it\/wp-json\/wp\/v2\/media\/1728"}],"wp:attachment":[{"href":"https:\/\/www.bhoost.com\/it\/wp-json\/wp\/v2\/media?parent=1361"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bhoost.com\/it\/wp-json\/wp\/v2\/categories?post=1361"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bhoost.com\/it\/wp-json\/wp\/v2\/tags?post=1361"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}