SlideShare uma empresa Scribd logo
1 de 47
CHROME DEVTOOLS
BASI TECNICHE PER COMPRENDERE MEGLIO LA SEO
Giovanni Sacheli
EVE Milano by Searcus Swiss sagl
Email: info@evemilano.com
Skype: Giovanni Sacheli
Office CH: +41 (0)79 8643035
Mobile: +39 3393668879
Website: searcus.ch
Blog: evemilano.com
Linkedin - Newsletter
/about-me
Giovanni Sacheli
NERD, papà di 2 iene, motociclista e videogamer.
Dal 2010 sono appassionato consulente in Search Marketing.
Co-autore del libro "SEO Audit Avanzato".
I <3 Technical SEO
Mio blog: evemilano.com
Mia agenzia: searcus.ch
Strumenti di analisi forniti da Google Chrome,
presenti anche in Firefox e altri browser, che un SEO
dovrebbe conoscere e saper utilizzare all'occorrenza.
Per aprire i Chrome DevTools:
Command+Option+C (Mac)
Control+Shift+C (Windows, Linux, Chrome OS)
Oppure più semplicemente F12
Chrome DevChe?
Tab Elements
–Differenze tra codice HTML e
DOM
–SSR vs CSR
Tab Console
–...
Tab Network
–...
–HTTP Header
–Priority
–Cache control
Tab Lighthouse
Cosa vedremo in 60 minuti
TAB
ELEMENTS
Visualizzare e modificare
in tempo reale DOM e
CSS(OM).
Tab Elements: DOM
Uno dei primi controlli che eseguo su una pagina web è confrontare il
codice HTML con il DOM per capire se sto lavorando su un sito web
generato da un sistema Server Side Rendering (SSR) o Client Side
Rendering (CSR).
Dato che i due sistemi hanno logiche di funzionamento diverse e
necessitano di processi di analisi SEO differenti, è importante saperli
distinguere prima di avviare un SEO audit ed una scansione con
Screaming Frog.
Codice HTML e DOM
Hai mai provato a scansionare un sito web sviluppato in AngularJS
con Screaming Frog impostato su Rendering “Text only”?
Se la tua risposta è affermativa, hai già capito l’importanza della
questione. In caso negativo, ti consiglio di fare alcune prove.
Trova le differenze tra codice HTML e DOM dei seguenti siti web:
https://www.evemilano.com (SSR)
https://www.coopshop.it (CSR)
Crawler: Text only
coopshop.it: il codice HTML contiene solo lo scheletro della pagina
Perché il codice
HTML è ridotto
all'osso e il DOM
è completo?
Perché la pagina
web completa è
stata generata
dal client e non
dal web server.
coopshop.it: il DOM è completo
Codice HTML vs DOM
Cosa cambia?
Come si genera una pagina web?
Come viene generata una pagina web?
Fonte: rubata da Google Images
HyperText Markup Language (HTML) è
un linguaggio utilizzato per creare
pagine sul web.
Il codice HTML è ciò che viene fornito
dal web server in risposta ad una
richiesta HTTP.
Qualsiasi CMS genera codice HTML.
Visualizzando il codice sorgente della
pagina puoi vedere come vengono gestiti
gli elementi come i testi, i percorsi
delle immagini o delle dipendenze della
pagina.
Cos'è il Codice HTML
GSC - Statistiche di scansione
Le statistiche di
scansione di GSC
monitorano le
richieste di
Googlebot.
Possiamo filtrare le
richieste di sole
pagine HTML.
Il DOM è un modello generato dal
parser HTML dopo aver letto il
codice HTML.
Più precisamente il Document Object
Model (DOM) è un’API di
programmazione per documenti
HTML e XML. Definisce la struttura
logica dei documenti e il modo in cui
un documento è accessibile e può
venire manipolato.
Cos'è il DOM?
DOM = interfaccia
di programmazione,
una
rappresentazione
dei dati, degli
oggetti e della
struttura di una
pagina HTML.
Cos'è il DOM?
JavaScript può modificare tutti gli elementi HTML nella pagina.
JavaScript può modificare tutti gli attributi HTML nella pagina.
JavaScript può rimuovere elementi e attributi HTML esistenti.
JavaScript può aggiungere nuovi elementi e attributi HTML.
JavaScript può cambiare tutti gli stili CSS nella pagina.
JavaScript può reagire a tutti gli eventi HTML esistenti nella pagina.
JavaScript può creare nuovi eventi HTML nella pagina.
Manipolare un documento HTML? Si, con JavaScript
Siti web CSR
Differentemente, con lo scripting lato client, il
web server invia al client uno scheletro HTML
generalmente incompleto e molto leggero, che
richiama alcuni file JS.
Guardando il codice HTML si nota la mancanza di
tutti o buona parte degli elementi visibili in pagina.
Sarà JavaScript che, una volta eseguito dalla Java
Virtual Machine presente nel browser, riempirà i tag
HTML e genererà la pagina web completa.
Lo scripting lato server racchiude numerosi
framework JavaScript:
–AngularJS, VueJS, ReactJS, ...
Siti web SSR
Lo scripting lato server è una tecnica utilizzata
nello sviluppo web che prevede l’utilizzo di script su
un server web che producono una pagina web
completa e personalizzata per la richiesta di ciascun
client. L’alternativa è che il web server stesso
fornisca una pagina web statica.
Lo scripting lato server racchiude numerosi linguaggi
noti:
–Static HTML (i famosi siti web "fatti a mano")
–PHP (WordPress, Joomla, Drupal, Prestashop, ...)
–ASP, Dot.net
–Python, ...
SSR vs CSR
C’è sempre qualche differenza più o meno evidente.
Se nel codice HTML vengono richiamati script che manipolano la
pagina, il DOM sarà differente.
Un WordPress con tema semplice che non usa JS ha differenze minime
tra codice HTML e DOM.
Un sito web sviluppato con VueJS, o altri framework JavaScript, ha
differenze evidenti tra codice HTML e DOM (a meno che il sito web
non utilizzi una funzione di pre-render).
Codice HTML e DOM non sono uguali
Codice HTML DOM
<div>ciao <div>ciao</div>
Il DOM è sempre un HTML valido
Estensione Chrome
https://chrome.google.co
m/webstore/detail/view-
rendered-
source/ejgngohbdedoaba
nmclafpkoogegdpob
SSR: puoi usare spider
text only
CSR: devi usare uno
spider con JavaScript
Engine
Come visualizzare le differenze tra Codice HTML e DOM?
Il tab Elements mostra il DOM.
Non confondere DOM e codice HTML, anzi analizza le differenze.
Il DOM include le modifiche apportate da JS.
Con il DOM puoi studiare la struttura e le gerarchie della pagina HTML.
Con il DOM puoi modificare in tempo reale i singoli elementi della pagina web.
Ricapitolando
TAB
CONSOLE
Con la Console puoi leggere i messaggi ed eseguire
Javascript. I messaggi possono essere errori di script,
avvisi oppure semplici messaggi lasciati dal developer.
Gli sviluppatori web registrano i messaggi
principalmente per 3 motivi:
–Debug
–Assicurarsi che il codice sia eseguito nell’ordine
giusto
–Ispezionare i valori delle variabili in un determinato
momento
Console
TAB
NETWORK
Visualizza le attività di rete, tutte le
chiamate HTTP necessarie al browser per
disegnare la pagina.
Il pannello Network si utilizza per assicurarsi
che le risorse necessarie al rendering della
pagina HTML vengano scaricate come previsto.
I casi d’uso più comuni sono:
Verificate come e se vengono scaricate le
risorse.
Ispezionare le proprietà di una singola risorsa,
ad esempio intestazioni HTTP, protocollo
utilizzato, tipologia di contenuto, dimensioni, ...
A cosa serve il tab Network?
Tabella delle chiamate HTTP
Cliccando su ciascun
elemento si apre un
tab secondario con
alcune informazioni
sulla chiamata HTTP
Per prima cosa ci
mostra l'intestazione
HTTP.
Dettagli della specifica chiamata HTTP
HTTP Header o Intestazione HTTP
Client > Request headers
–Cosa vuole
–Cosa può interpretare
Server > Response
headers
–Conferma
–Altro
Cache-control
Expire
Priority tips
Security
Dettagli della specifica chiamata HTTP
Quanto tempo è stato necessario per soddisfare la richiesta?
Posso Migliorare i Core Web Vitals con la sola intestazione HTTP?
Cosa posso "spingere"
in tutte le pagine?
Cosa devo "spingere"
in determinate
pagine?
Come gestisco le
pageview successive?
But...
server {
# Abilita http2 server push
http2_push_preload on;
# cookie sessione per server push
add_header Set-Cookie "server_push_session=1";
add_header Link $resources;
# mappatura risorse http2 server push
map $http_cookie $resources {
"~*server_push_session=1" "";
default "</wp-content/themes/metro-pro/style.css>; as=style; rel=preload";
}
Nginx + HTTP/2 PUSH
L'intestazione HTTP Cache-Control contiene direttive per la memorizzazione nella cache delle
dipendenze della pagina (Immagini, Font, CSS, JS, ...).
Direttive Cache request
Direttive Cache-Control standard che possono essere utilizzate dal client in una richiesta HTTP.
--> Direttive Cache response <--
Direttive Cache-Control standard che possono essere utilizzate dal server in una risposta HTTP.
–Cache-Control: public (cache non legata all'utente)
–Cache-Control: private (cache legata all'utente)
–Cache-Control: max-age (tempo in cui una risorsa sarà considerata fresca)
–...
Direttiva Cache-Control
Cache-Control
Il tab Network mostra le caratteristiche di tutte le chiamate HTTP necessarie al browser per
disegnare la pagina web.
Per capire se la pagina ha margini di ottimizzazione possiamo
–Analizzare l'insieme delle chiamate:
Possiamo ridurre le chiamate HTTP?
Possiamo aggiornare il protocollo ad uno più veloce?
Possiamo richiamare le dipendenze in ordine diverso?
–Analizzare le singole chiamate:
Quali intestazioni HTTP possiamo usare per velocizzare il rendering?
Quali intestazioni HTTP possiamo usare per velocizzare le visualizzazioni
successive?
Cache-control viene usato sulle dipendenze?
La risorsa è lenta da scaricare?
Ricapitolando
TAB
LIGHTHOUS
E
Lighthouse is an open-
source, automated tool
for improving the quality
of web pages. You can
run it against any web
page, public or requiring
authentication. It has
audits for performance,
accessibility, progressive
web apps, SEO and more.
https://developers.google.
com/web/tools/lighthouse
Lighthouse
Per certi controlli è più comodo di PageSpeed
Lighthouse Scoring
Calculator
https://googlechrome.githu
b.io/lighthouse/scorecalc/
Come dare un peso a ciascun intervento
Il tab di Lighthouse permette di fare diagnosi
con il motore di PageSpeed utilizzando la
propria rete e device.
Utile perché è interattivo con la pagina web:
posso evidenziare l'elemento LCP o CLS, ad
esempio.
Ha qualche funzionalità in più di PageSpeed,
come la checklist della PWA e test di usabilità.
Prima di mettere mano al sito verifica che
impatto può avere ciascuna modifica sui CWV
con Lighthouse Scoring Calculator.
Ricapitolando
Grazie, alla prossima!
Newsletter:
evemilano.com/contatti/newsletter/

Mais conteúdo relacionado

Mais procurados

Mais procurados (19)

Analisi SEO con Screaming Frog e Google Search Console
Analisi SEO con Screaming Frog e Google Search ConsoleAnalisi SEO con Screaming Frog e Google Search Console
Analisi SEO con Screaming Frog e Google Search Console
 
Checklist: 18 passi per fare SEO Audit nel 2021 | Meta Line Digital Agency
Checklist: 18 passi per fare SEO Audit nel 2021 | Meta Line Digital AgencyChecklist: 18 passi per fare SEO Audit nel 2021 | Meta Line Digital Agency
Checklist: 18 passi per fare SEO Audit nel 2021 | Meta Line Digital Agency
 
Sviluppare estensioni per google chrome
Sviluppare estensioni per google chromeSviluppare estensioni per google chrome
Sviluppare estensioni per google chrome
 
Seo html russo
Seo html russoSeo html russo
Seo html russo
 
La lista completa degli strumenti gratuiti seo
La lista completa degli strumenti gratuiti seoLa lista completa degli strumenti gratuiti seo
La lista completa degli strumenti gratuiti seo
 
Slide Corso SEO Copywriting Milano 10-2014
Slide Corso SEO Copywriting Milano 10-2014Slide Corso SEO Copywriting Milano 10-2014
Slide Corso SEO Copywriting Milano 10-2014
 
Tracciare le azioni sul sito con Google Analytics e Tag Manager - Web Marketi...
Tracciare le azioni sul sito con Google Analytics e Tag Manager - Web Marketi...Tracciare le azioni sul sito con Google Analytics e Tag Manager - Web Marketi...
Tracciare le azioni sul sito con Google Analytics e Tag Manager - Web Marketi...
 
Black Hat Seo: il Lato Oscuro della SEO
Black Hat Seo: il Lato Oscuro della SEOBlack Hat Seo: il Lato Oscuro della SEO
Black Hat Seo: il Lato Oscuro della SEO
 
Dal Click Al Web Server
Dal Click Al Web ServerDal Click Al Web Server
Dal Click Al Web Server
 
Slide corso SEO Copy Novembre 2015
Slide corso SEO Copy Novembre 2015Slide corso SEO Copy Novembre 2015
Slide corso SEO Copy Novembre 2015
 
I link interni sono fattori di rank? Scopriamolo!
I link interni sono fattori di rank? Scopriamolo!I link interni sono fattori di rank? Scopriamolo!
I link interni sono fattori di rank? Scopriamolo!
 
Come scrivere un contenuto che piace a Google
Come scrivere un contenuto che piace a GoogleCome scrivere un contenuto che piace a Google
Come scrivere un contenuto che piace a Google
 
SEMrush WebStudy Marathon - SEO Tecnico - CMS in ottica SEO per i contenuti
SEMrush WebStudy Marathon - SEO Tecnico - CMS in ottica SEO per i contenutiSEMrush WebStudy Marathon - SEO Tecnico - CMS in ottica SEO per i contenuti
SEMrush WebStudy Marathon - SEO Tecnico - CMS in ottica SEO per i contenuti
 
Come eseguire correttamente una migrazione SEO
Come eseguire correttamente una migrazione SEOCome eseguire correttamente una migrazione SEO
Come eseguire correttamente una migrazione SEO
 
Non sono solo semplici URL, ottimizziamole al meglio!
Non sono solo semplici URL, ottimizziamole al meglio!Non sono solo semplici URL, ottimizziamole al meglio!
Non sono solo semplici URL, ottimizziamole al meglio!
 
SEMrush WebStudy Marathon - SEO Tecnico - Robots Exclusion Protocol
SEMrush WebStudy Marathon - SEO Tecnico - Robots Exclusion ProtocolSEMrush WebStudy Marathon - SEO Tecnico - Robots Exclusion Protocol
SEMrush WebStudy Marathon - SEO Tecnico - Robots Exclusion Protocol
 
Scansioni avanzate con Screaming Frog - Advanced SEO Tools 2016
Scansioni avanzate con Screaming Frog - Advanced SEO Tools 2016Scansioni avanzate con Screaming Frog - Advanced SEO Tools 2016
Scansioni avanzate con Screaming Frog - Advanced SEO Tools 2016
 
Motori di ricerca, SEO e PPC per traduttori e interpreti. Come farsi pubblici...
Motori di ricerca, SEO e PPC per traduttori e interpreti. Come farsi pubblici...Motori di ricerca, SEO e PPC per traduttori e interpreti. Come farsi pubblici...
Motori di ricerca, SEO e PPC per traduttori e interpreti. Come farsi pubblici...
 
Le Penalizzazioni Di Google
Le Penalizzazioni Di GoogleLe Penalizzazioni Di Google
Le Penalizzazioni Di Google
 

Semelhante a Chrome DevTools: le basi tecniche per comprendere meglio la SEO

Come funziona la navigazione Web
Come funziona la navigazione WebCome funziona la navigazione Web
Come funziona la navigazione Web
extrategy
 
II modulo – come gestire
II modulo – come gestireII modulo – come gestire
II modulo – come gestire
Beesolution
 

Semelhante a Chrome DevTools: le basi tecniche per comprendere meglio la SEO (20)

programmare sito web.ppt
programmare sito web.pptprogrammare sito web.ppt
programmare sito web.ppt
 
Spa with Blazor
Spa with BlazorSpa with Blazor
Spa with Blazor
 
Lamp Ld2008
Lamp Ld2008Lamp Ld2008
Lamp Ld2008
 
Christmas greetings cards with blazor
Christmas greetings cards with blazorChristmas greetings cards with blazor
Christmas greetings cards with blazor
 
Come funziona la navigazione Web
Come funziona la navigazione WebCome funziona la navigazione Web
Come funziona la navigazione Web
 
Progettato per specialisti del web
Progettato per specialisti del webProgettato per specialisti del web
Progettato per specialisti del web
 
Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0
 
Velocità sito web
Velocità sito webVelocità sito web
Velocità sito web
 
Html e Css - 1 | WebMaster & WebDesigner
Html e Css - 1 | WebMaster & WebDesignerHtml e Css - 1 | WebMaster & WebDesigner
Html e Css - 1 | WebMaster & WebDesigner
 
Javascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesignerJavascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesigner
 
Seo e Web Marketing - 1 | WebMaster & WebDesigner
Seo e Web Marketing - 1 | WebMaster & WebDesignerSeo e Web Marketing - 1 | WebMaster & WebDesigner
Seo e Web Marketing - 1 | WebMaster & WebDesigner
 
Applicazioni HTML5 Superveloci - Salvatore Romeo
Applicazioni HTML5 Superveloci - Salvatore RomeoApplicazioni HTML5 Superveloci - Salvatore Romeo
Applicazioni HTML5 Superveloci - Salvatore Romeo
 
07 - Web apps e CMS
07 - Web apps e CMS07 - Web apps e CMS
07 - Web apps e CMS
 
II modulo – come gestire
II modulo – come gestireII modulo – come gestire
II modulo – come gestire
 
Ddive Xpage852
Ddive Xpage852Ddive Xpage852
Ddive Xpage852
 
Introduzione a Internet
Introduzione a InternetIntroduzione a Internet
Introduzione a Internet
 
Guida introduttiva al codice HTML
Guida introduttiva al codice HTMLGuida introduttiva al codice HTML
Guida introduttiva al codice HTML
 
Html e Css - 1 | WebMaster & WebDesigner
Html e Css - 1 | WebMaster & WebDesigner Html e Css - 1 | WebMaster & WebDesigner
Html e Css - 1 | WebMaster & WebDesigner
 
Seo e Web Marketing - 1 | WebMaster & WebDesigner
Seo e Web Marketing - 1 | WebMaster & WebDesignerSeo e Web Marketing - 1 | WebMaster & WebDesigner
Seo e Web Marketing - 1 | WebMaster & WebDesigner
 
Fabrizio Leo - Il rapporto tra la velocità di un sito e-commerce ed il suo fa...
Fabrizio Leo - Il rapporto tra la velocità di un sito e-commerce ed il suo fa...Fabrizio Leo - Il rapporto tra la velocità di un sito e-commerce ed il suo fa...
Fabrizio Leo - Il rapporto tra la velocità di un sito e-commerce ed il suo fa...
 

Mais de Giovanni Sacheli

Mais de Giovanni Sacheli (7)

202211 SMXL Sacheli: PageRank, cos'è e come funzionava
202211 SMXL Sacheli: PageRank, cos'è e come funzionava202211 SMXL Sacheli: PageRank, cos'è e come funzionava
202211 SMXL Sacheli: PageRank, cos'è e come funzionava
 
Come trovare nuovi clienti con Facebook
Come trovare nuovi clienti con FacebookCome trovare nuovi clienti con Facebook
Come trovare nuovi clienti con Facebook
 
Come creare una PWA Progressive Web App @ Inbound Strategies 2018
Come creare una PWA Progressive Web App @ Inbound Strategies 2018Come creare una PWA Progressive Web App @ Inbound Strategies 2018
Come creare una PWA Progressive Web App @ Inbound Strategies 2018
 
Slide corso SEO Copy Marzo 2017
Slide corso SEO Copy Marzo 2017Slide corso SEO Copy Marzo 2017
Slide corso SEO Copy Marzo 2017
 
Deep Linking delle immagini
Deep Linking delle immaginiDeep Linking delle immagini
Deep Linking delle immagini
 
Seo e prestashop
Seo e prestashopSeo e prestashop
Seo e prestashop
 
English google webmaster central: Internationalization
English google webmaster central: InternationalizationEnglish google webmaster central: Internationalization
English google webmaster central: Internationalization
 

Chrome DevTools: le basi tecniche per comprendere meglio la SEO

  • 1. CHROME DEVTOOLS BASI TECNICHE PER COMPRENDERE MEGLIO LA SEO Giovanni Sacheli EVE Milano by Searcus Swiss sagl Email: info@evemilano.com Skype: Giovanni Sacheli Office CH: +41 (0)79 8643035 Mobile: +39 3393668879 Website: searcus.ch Blog: evemilano.com Linkedin - Newsletter
  • 2. /about-me Giovanni Sacheli NERD, papà di 2 iene, motociclista e videogamer. Dal 2010 sono appassionato consulente in Search Marketing. Co-autore del libro "SEO Audit Avanzato". I <3 Technical SEO Mio blog: evemilano.com Mia agenzia: searcus.ch
  • 3. Strumenti di analisi forniti da Google Chrome, presenti anche in Firefox e altri browser, che un SEO dovrebbe conoscere e saper utilizzare all'occorrenza. Per aprire i Chrome DevTools: Command+Option+C (Mac) Control+Shift+C (Windows, Linux, Chrome OS) Oppure più semplicemente F12 Chrome DevChe?
  • 4.
  • 5. Tab Elements –Differenze tra codice HTML e DOM –SSR vs CSR Tab Console –... Tab Network –... –HTTP Header –Priority –Cache control Tab Lighthouse Cosa vedremo in 60 minuti
  • 7. Visualizzare e modificare in tempo reale DOM e CSS(OM). Tab Elements: DOM
  • 8. Uno dei primi controlli che eseguo su una pagina web è confrontare il codice HTML con il DOM per capire se sto lavorando su un sito web generato da un sistema Server Side Rendering (SSR) o Client Side Rendering (CSR). Dato che i due sistemi hanno logiche di funzionamento diverse e necessitano di processi di analisi SEO differenti, è importante saperli distinguere prima di avviare un SEO audit ed una scansione con Screaming Frog. Codice HTML e DOM
  • 9. Hai mai provato a scansionare un sito web sviluppato in AngularJS con Screaming Frog impostato su Rendering “Text only”? Se la tua risposta è affermativa, hai già capito l’importanza della questione. In caso negativo, ti consiglio di fare alcune prove. Trova le differenze tra codice HTML e DOM dei seguenti siti web: https://www.evemilano.com (SSR) https://www.coopshop.it (CSR) Crawler: Text only
  • 10. coopshop.it: il codice HTML contiene solo lo scheletro della pagina
  • 11. Perché il codice HTML è ridotto all'osso e il DOM è completo? Perché la pagina web completa è stata generata dal client e non dal web server. coopshop.it: il DOM è completo
  • 12. Codice HTML vs DOM Cosa cambia?
  • 13. Come si genera una pagina web?
  • 14. Come viene generata una pagina web? Fonte: rubata da Google Images
  • 15. HyperText Markup Language (HTML) è un linguaggio utilizzato per creare pagine sul web. Il codice HTML è ciò che viene fornito dal web server in risposta ad una richiesta HTTP. Qualsiasi CMS genera codice HTML. Visualizzando il codice sorgente della pagina puoi vedere come vengono gestiti gli elementi come i testi, i percorsi delle immagini o delle dipendenze della pagina. Cos'è il Codice HTML
  • 16. GSC - Statistiche di scansione Le statistiche di scansione di GSC monitorano le richieste di Googlebot. Possiamo filtrare le richieste di sole pagine HTML.
  • 17. Il DOM è un modello generato dal parser HTML dopo aver letto il codice HTML. Più precisamente il Document Object Model (DOM) è un’API di programmazione per documenti HTML e XML. Definisce la struttura logica dei documenti e il modo in cui un documento è accessibile e può venire manipolato. Cos'è il DOM?
  • 18. DOM = interfaccia di programmazione, una rappresentazione dei dati, degli oggetti e della struttura di una pagina HTML. Cos'è il DOM?
  • 19. JavaScript può modificare tutti gli elementi HTML nella pagina. JavaScript può modificare tutti gli attributi HTML nella pagina. JavaScript può rimuovere elementi e attributi HTML esistenti. JavaScript può aggiungere nuovi elementi e attributi HTML. JavaScript può cambiare tutti gli stili CSS nella pagina. JavaScript può reagire a tutti gli eventi HTML esistenti nella pagina. JavaScript può creare nuovi eventi HTML nella pagina. Manipolare un documento HTML? Si, con JavaScript
  • 20. Siti web CSR Differentemente, con lo scripting lato client, il web server invia al client uno scheletro HTML generalmente incompleto e molto leggero, che richiama alcuni file JS. Guardando il codice HTML si nota la mancanza di tutti o buona parte degli elementi visibili in pagina. Sarà JavaScript che, una volta eseguito dalla Java Virtual Machine presente nel browser, riempirà i tag HTML e genererà la pagina web completa. Lo scripting lato server racchiude numerosi framework JavaScript: –AngularJS, VueJS, ReactJS, ... Siti web SSR Lo scripting lato server è una tecnica utilizzata nello sviluppo web che prevede l’utilizzo di script su un server web che producono una pagina web completa e personalizzata per la richiesta di ciascun client. L’alternativa è che il web server stesso fornisca una pagina web statica. Lo scripting lato server racchiude numerosi linguaggi noti: –Static HTML (i famosi siti web "fatti a mano") –PHP (WordPress, Joomla, Drupal, Prestashop, ...) –ASP, Dot.net –Python, ... SSR vs CSR
  • 21. C’è sempre qualche differenza più o meno evidente. Se nel codice HTML vengono richiamati script che manipolano la pagina, il DOM sarà differente. Un WordPress con tema semplice che non usa JS ha differenze minime tra codice HTML e DOM. Un sito web sviluppato con VueJS, o altri framework JavaScript, ha differenze evidenti tra codice HTML e DOM (a meno che il sito web non utilizzi una funzione di pre-render). Codice HTML e DOM non sono uguali
  • 22. Codice HTML DOM <div>ciao <div>ciao</div> Il DOM è sempre un HTML valido
  • 23. Estensione Chrome https://chrome.google.co m/webstore/detail/view- rendered- source/ejgngohbdedoaba nmclafpkoogegdpob SSR: puoi usare spider text only CSR: devi usare uno spider con JavaScript Engine Come visualizzare le differenze tra Codice HTML e DOM?
  • 24. Il tab Elements mostra il DOM. Non confondere DOM e codice HTML, anzi analizza le differenze. Il DOM include le modifiche apportate da JS. Con il DOM puoi studiare la struttura e le gerarchie della pagina HTML. Con il DOM puoi modificare in tempo reale i singoli elementi della pagina web. Ricapitolando
  • 26. Con la Console puoi leggere i messaggi ed eseguire Javascript. I messaggi possono essere errori di script, avvisi oppure semplici messaggi lasciati dal developer. Gli sviluppatori web registrano i messaggi principalmente per 3 motivi: –Debug –Assicurarsi che il codice sia eseguito nell’ordine giusto –Ispezionare i valori delle variabili in un determinato momento Console
  • 28.
  • 29. Visualizza le attività di rete, tutte le chiamate HTTP necessarie al browser per disegnare la pagina. Il pannello Network si utilizza per assicurarsi che le risorse necessarie al rendering della pagina HTML vengano scaricate come previsto. I casi d’uso più comuni sono: Verificate come e se vengono scaricate le risorse. Ispezionare le proprietà di una singola risorsa, ad esempio intestazioni HTTP, protocollo utilizzato, tipologia di contenuto, dimensioni, ... A cosa serve il tab Network?
  • 31. Cliccando su ciascun elemento si apre un tab secondario con alcune informazioni sulla chiamata HTTP Per prima cosa ci mostra l'intestazione HTTP. Dettagli della specifica chiamata HTTP
  • 32. HTTP Header o Intestazione HTTP
  • 33. Client > Request headers –Cosa vuole –Cosa può interpretare Server > Response headers –Conferma –Altro Cache-control Expire Priority tips Security Dettagli della specifica chiamata HTTP
  • 34. Quanto tempo è stato necessario per soddisfare la richiesta?
  • 35. Posso Migliorare i Core Web Vitals con la sola intestazione HTTP?
  • 36.
  • 37. Cosa posso "spingere" in tutte le pagine? Cosa devo "spingere" in determinate pagine? Come gestisco le pageview successive? But...
  • 38. server { # Abilita http2 server push http2_push_preload on; # cookie sessione per server push add_header Set-Cookie "server_push_session=1"; add_header Link $resources; # mappatura risorse http2 server push map $http_cookie $resources { "~*server_push_session=1" ""; default "</wp-content/themes/metro-pro/style.css>; as=style; rel=preload"; } Nginx + HTTP/2 PUSH
  • 39. L'intestazione HTTP Cache-Control contiene direttive per la memorizzazione nella cache delle dipendenze della pagina (Immagini, Font, CSS, JS, ...). Direttive Cache request Direttive Cache-Control standard che possono essere utilizzate dal client in una richiesta HTTP. --> Direttive Cache response <-- Direttive Cache-Control standard che possono essere utilizzate dal server in una risposta HTTP. –Cache-Control: public (cache non legata all'utente) –Cache-Control: private (cache legata all'utente) –Cache-Control: max-age (tempo in cui una risorsa sarà considerata fresca) –... Direttiva Cache-Control
  • 41. Il tab Network mostra le caratteristiche di tutte le chiamate HTTP necessarie al browser per disegnare la pagina web. Per capire se la pagina ha margini di ottimizzazione possiamo –Analizzare l'insieme delle chiamate: Possiamo ridurre le chiamate HTTP? Possiamo aggiornare il protocollo ad uno più veloce? Possiamo richiamare le dipendenze in ordine diverso? –Analizzare le singole chiamate: Quali intestazioni HTTP possiamo usare per velocizzare il rendering? Quali intestazioni HTTP possiamo usare per velocizzare le visualizzazioni successive? Cache-control viene usato sulle dipendenze? La risorsa è lenta da scaricare? Ricapitolando
  • 43. Lighthouse is an open- source, automated tool for improving the quality of web pages. You can run it against any web page, public or requiring authentication. It has audits for performance, accessibility, progressive web apps, SEO and more. https://developers.google. com/web/tools/lighthouse Lighthouse
  • 44. Per certi controlli è più comodo di PageSpeed
  • 46. Il tab di Lighthouse permette di fare diagnosi con il motore di PageSpeed utilizzando la propria rete e device. Utile perché è interattivo con la pagina web: posso evidenziare l'elemento LCP o CLS, ad esempio. Ha qualche funzionalità in più di PageSpeed, come la checklist della PWA e test di usabilità. Prima di mettere mano al sito verifica che impatto può avere ciascuna modifica sui CWV con Lighthouse Scoring Calculator. Ricapitolando