SlideShare a Scribd company logo
1 of 123
Download to read offline
WordPress Performance
Optimization:
cos’è cambiato con http/2
Andrea Cardinali
T.C. Informatica
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
ABOUT ME
▶ DEVELOPER & SEO
▶ C.O.O. @ T.C. INFORMATICA
▶ LAVORO CON WORDPRESS DAL 2009
▶ CO-ORGANIZER @ WORDPRESS MEETUP
ROMAGNA
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
DI COSA PARLERÒ
1. HTTP/2
2. HTTP/2 E WEB PERFORMANCE
3. TECNICHE DI W.P.O. OBSOLETE
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
VUOI VINCERE UNA
CONSULENZA SU WP e
W.P.O. ?
TWEETA CON #wmf17
CITANDO
@andreacardinali
* L’account vincitore verrà estratto al termine dello speech
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
HTTP/2
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
MAGGIO 2015
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
BASATO SU SPDY
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
SPDY AVEVA
L’OBIETTIVO DI
RIDURRE DEL
50% IL PAGE
LOAD TIME
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
EVOLUZIONE
DI
HTTP/1.1
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
HTTP/2 NON
RICHIEDE
MODIFICA AL
CODICE
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
HTTP/2 È
IMPLEMENTATO
DAL WEB
SERVER
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
IL 92% DEI
BROWSER
UTILIZZATI IN
ITA SUPPORTA
HTTP/2
Fonte: https://caniuse.com/#search=HTTP2
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
HTTP/2 È
DIFFERENTE DA
HTTP/1.1
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
HTTP/1.1
TRAFERISCE
UNA RISORSA
PER CONNESSIONE
IN SERIE
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
HTTP/1.1
UTILIZZA PIÚ
CONNESSIONI
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
1 FILE =
1 CONNESSIONE
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
HTTP/1.1- DOWNLOAD IN SERIE
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
HTTP/2
TRASFERISCE
PIÙ RISORSE
IN PARALLELO
(multiplexing)
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
HTTP/2 UTILIZZA
UNA UNICA
CONNESSIONE
(per origine)
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
http/2- MULTIPLEXING
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
DOWNLOAD CON HTTP/2
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
DOWNLOAD CON HTTP/1.1
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
HTTP/1.1vs HTTP/2
http://www.httpvshttps.com/
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
RICAPITOLANDO
•http/2 è retrocompatibile e ampiamente
supportato
•http/2 richiede https
•http/2 riduce il tempo di caricamento della
pagina
•http/2 scarica i file in parallelo utilizzando
un’unica connessione (per host)
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di RiminiAndrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
HTTP/2
E VELOCITÁ
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
LA VELOCITÁ
DIPENDE PER
80% - 90%
DAL FRONTEND
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
IL SERVER
INCIDE PER UN
10% - 20%
(tranne in casiclamorosicon hostingsupercheap)
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
PERCHÉ LA
VELOCITÁ
È COSÌ
IMPORTANTE?
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di RiminiAndrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
L’80% DEGLI UTENTI È
DISPOSTO AD
ASPETTARE AL MASSIMO
3 SECONDI PRIMA DI
ABBANDONARE IL SITO.
Fonte:RadwareFastview2015
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di RiminiAndrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
SITO PIÙ VELOCE
=
MIGLIOR USER
EXPERIENCE
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di RiminiAndrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
MIGLIOR UX
=
MAGGIORI
PROFITTI
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
SITO VELOCE
=
1 SECONDO
32
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
PER APPROFONDIRE
https://www.slideshare.net/AndreaCardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di RiminiAndrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
WEB
PERFOMANCE
OPTIMIZATION
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
PERFORMANCE

PLUGIN
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
PLUGIN INSTALLATI
CODICE
OTTIMIZZATO
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
PERFORMANCE

TEMI
MARKETPLACE
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
TEMA CUSTOM
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
TEMA MARKETPLACE
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
TEMA CUSTOM vs
MARKETPLACE
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
W.P.O.
(EVERGREEN)
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
ABILITA LA
COMPRESSIONE
GZIP
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
COMPRESSIONEGZIP
•Riduce il peso delle risorse testuali (codice
html, js, css) fino all’80/90%
•Deve essere abilitata sul server
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
ABILITARE COMPRESSIONEGZIP
(.HTACCESS)
# Gzip compression
<IfModule mod_deflate.c>
# Active compression
SetOutputFilter DEFLATE
#[…]
</IfModule>
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
EXPIRE
HEADERS
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
EXPIRE HEADERS (.HTACCESS)
•Intestazione http
•Indicano la scadenza del file richiesto
•Se il file è già presente nella cache del
browser viene restituito status code 304
•L’intestazione può essere generata tramite
php o .htaccess (consigliato)
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
EXPIRE HEADERS
<IfModule mod_expires.c>
ExpiresActive on
ExpiresDefault "access plus 1 month“
# Media: images, video, audio
ExpiresByType image/jpeg "access plus 1 month "
</IfModule>
https://httpd.apache.org/docs/current/mod/mod_expires.html
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
TUTTE LE DIRETTIVE
NEL .HTACCESS
VANNO PRIMA DI
# BEGIN WordPress
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
LIMITARE I DNS
LOOKUP
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
PER OGNI HOST
IL BROWSER
EFFETUA UN
DNS LOOKUP
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
ORDINAMENTO
JS E CSS
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
ORDINE DI CARICAMENTOCSS/JS
CSS IN CIMA (NELL’HEAD)
• vengono scaricati in parallelo
• permettono al browser di eseguire più velocemente il rendering della
pagina
JAVASCRIPT IN FONDO (ideale prima di </body> o comunque dopo i css)
• bloccano il rendering della pagina
• vengono scaricati in serie ed eseguiti
52
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
wp_enqueue_script()
wp_enqueue_script(
string $handle,
string $src = '',
array $deps = array(),
string $ver = false,
bool $in_footer = false )
https://developer.wordpress.org/reference/functions/wp_enqueue_script/
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
wp_enqueue_style()
wp_enqueue_style(
string $handle,
string $src = '',
array $deps = array(),
string|bool|null $ver = false,
string $media = 'all' )
https://developer.wordpress.org/reference/functions/wp_enqueue_style/
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
AUMENTARE LA
VELOCITÁ
PERCEPITA
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
PRIORITÁ
AI CONTENUTI
VISIBILI
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
MOSTRARE IL
CONTENUTO
ABOVE THE FOLD
IL PIÚ
VELOCEMENTE
POSSIBILE
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
LAZY LOADING
IMMAGINI
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
57 % DEL PESO
DELLA PAGINA
CAUSATO
DA
IMMAGINIhttp://httparchive.org/interesting.php#bytesperpage
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
LAZY LOAD IMMAGINI
http://httparchive.org/interesting.php#bytesperpage
61
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
LE IMMAGINI
VENGONO
CARICATE SOLO
QUANDO
ENTRANO NEL
VIEWPORT
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
RICHIEDE
JAVASCRIPT +
MODIFICA AL
HTML
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
IMMAGINE CON SEGNAPOSTO
<img src=‘placeholder.png’ data-src=‘original.png’ />
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
<img src=‘wmf17.png’/>
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
ESEMPIO DI LAZY LOAD
<img src=‘placeholder.png’ data-src=‘original.png’ />
<img src=‘wmf17.png’/>
$(window).scroll()
if (immagine è nel viewport)
sostituisci l’attributo data-src con src
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
IMMAGINI
PROGRESSIVE
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
JPEG PROGRESSIVE
68
Immagine sfocataImmagine «bianca»
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
CARICAMENTO
ASINCRONO JS
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
ATTRIBUTOASYNC
<script src="demo_async.js" async></script>
•Lo script viene eseguito appena è disponibile
•Non blocca il caricamento dei file js successivi
•I file più veloci a essere scaricati vengono eseguiti prima (non
viene rispettato l’ordine)
•Utilizzabile solo per script esterni (con l’attributo src)
https://www.w3schools.com/tags/att_script_async.asp
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
CARICAMENTO
DIFFERITO JS
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
ATTRIBUTODEFER
<script src="demo_defer.js" defer></script>
•Lo script viene eseguito dopo il parsing della pagina
•Non blocca il caricamento dei file js successivi
•Gli script vengono eseguiti nell’ordine stabilito
•Utilizzabile solo per script esterni (con l’attributo
src)https://www.w3schools.com/tags/att_script_defer.asp
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
CRITICAL
RENDER PATH
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
CRITICAL RENDER PATH
COSTITUITO DA
CODICE E RISORSE
NECESSARIE A
VISUALIZZARE IL
CONTENUTO
ABOVE THE FOLD
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
https://it.wordpress.org/plugins/above-the-fold-optimization/
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
CSS INLINE
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
wp_add_inline_style()
•Serve per aggiungere CSS in linea
https://codex.wordpress.org/it:Riferimento_funzioni/wp_add_inline_style
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
INLINE CSS E JS
Prevede l’inclusione IN LINEA di css e js
PRO
•Riduce il numero di connessioni http
•Può aumentare la velocità percepita
CONTRO
•Impedisce il caching della risorsa
•Aumenta il peso della pagina
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
INLINE CSS E JS - HTTP/2
•Utilizzalo solo per file di piccole dimensioni
(~3/4kb)
•Meglio utilizzarlo solo con gzip abilitato
•Utilizzalo per il critical render path
•Valuta in alternativa l’utilizzo di file esterni
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
wp_add_inline_script
•Serve per aggiungere js in linea (prima di
</head> o di </body> )
•Sfrutta il sistema di dipendenze di WP
https://developer.wordpress.org/reference/functions/wp_add_inline_script/
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
PRERENDER
PREFETCH
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
DIRETTIVE PRE-*
INTESTAZIONI
HTTP
o
ATTRIBUTI DI
<LINK>
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
IL PRERENDER
PERMETTE DI
CARICARE UNA
PAGINA IN
BACKGROUND
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
PRERENDER
PRO
•Caricamento istantaneo (in caso di visita)
CONTRO
•Potenziale spreco delle risorse hw
http://caniuse.com/#search=pre-render
84
//…
<link rel=‘prerender’ href=‘/secondapagina/’>
</head>
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
IL DNS-PREFETCH
PERMETTE DI
ANTICIPARE IL
DNS LOOKUP
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
PRERENDER
PRO
•Il download delle risorse dall’origine indicato è più
rapido, in quanto il dns lookup è già stato fatto
CONTRO
•Ogni dns lookup richiede tempo extra e se le origini
sono molte, il sito può rallentare
http://caniuse.com/#search=pre-render
86
//…
<link rel=‘dns-prefetch’
href=‘//webmarketingfestival.it’>
</head>
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
WP SUPPORTA
IN AUTOMATICO
DNS-PREFETCH
E PRERENDER
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
AGGIUNGERE ALTRI HOST
function makewp_example_resource_hints( $hints, $relation_type ) {
if ( 'dns-prefetch' === $relation_type ) {
$hints[] = '//make.wordpress.org';
} else if ( 'prerender' === $relation_type ) {
$hints[] = 'https://make.wordpress.org/great-again';
}
return $hints;
}
add_filter( 'wp_resource_hints', 'makewp_example_resource_hints',
10, 2 )
https://make.wordpress.org/core/2016/07/06/resource-hints-in-4-6/
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
SERVER PUSH
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
È IL SERVER A
STABILIRE QUALI
RISORSE HANNO
LA PRIORITÁ
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
LE RISORSE CON
PRIORITÁ PIÚ
ALTA VENGONO
SCARICATE
PER PRIME
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
SERVER PUSH- HTTP/2
PRO
•Utile per prioritizzare le risorse
•Aumenta la velocità percepita
CONTRO
•Soggetto alla same-origin policy
•Può essere disabilitato dal client (la risorsa
verrà comunque scaricata con la priorità
predefinita)
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
SERVER PUSH
<?php
header("Link: </css/vendor.css>; rel=preload; as=style",
false);
header("Link: </css/styles.css>; rel=preload; as=style",
false);
header("Link: </images/site/logo--red.svg>; rel=preload;
as=image", false);
?>
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
RICAPITOLANDO
•La velocità va oltre i concetti di KB e secondi
•Un sito veloce è un sito percepito come tale
•I plugins non sono la soluzione a tutti i
problemi
•Le performance devono far parte dello
sviluppo del sito e non devono essere
considerate come un extra
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
RICAPITOLANDO
•Prioritá ai contenuti above the fold
•Critical render path
•Lazy load per immagini
•Immagini progressive
•Server push
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
W.P.O.
BEST WORST
PRACTICES
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
CONCATENAZIONE
(COMBINE CSS / JS)
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
UNIRE PIÙ FILE
INSIEME PER
RIDURRE IL
NUMERO DI
CONNESSIONI
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
CONCATENAZIONE
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
CONCATENAZIONE - HTTP/1.1:
PRO
•Riduce il numero di connessioni http
•La compressione gzip puó essere maggiore
◦ File ancora più piccoli
•Va utilizzato insieme agli expire headers
CONTRO
•File di grosse dimensioni
•L’aggiornamento di un file comporta l’invalidazione
di tutto il file
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
CONCATENAZIONE -HTTP/2
PRO
•Http/2 puó scaricare più file in parallelo
•Utilizza gli expire headers per invalidare i file
singolarmente
CONTRO
•n.a.
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
IMAGE SPRITES
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
DOMAIN
SHARDING
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
DOMAIN SHARDING
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
DOMAIN SHARDING - HTTP/1.1
PRO
•Parallelizza i download aumentando la
velocità
CONTRO
•Aumenta il dns lookup time
•Aumenta l’overhead tcp
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
DOMAIN SHARDING - HTTP/2
•Utilizza il numero di host minimo
(1 host = 1 connessione)
•Http/2 coalescence
la connessione viene riutilizzata anche per
origini diverse se:
◦ certificato wildcard /EV / SAN (Subject Alternative
Names)
◦ stesso indirizzo IP
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
RICAPITOLANDO
•HTTP/1.1 utilizza una connessione per file
•HTTP/2 utilizza una connessione per host
•Ridurre il numero di connessioni http PER HOST
•Evitare:
◦ combine css / js
◦ image sprite
◦ domain sharding
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
RICAPITOLANDO..
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
The fastest byte is a byte
not sent
Ilya Gregoric
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
W.P.O.OK
•Compressione GZIP
•Expire Headers
•Css in cima e js in fondo (async e defer)
•Utilizzare wp_enqueue_*
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
PLUGIN
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
PLUGIN CONSIGLIATI- 1
CARICAMENTO ASINCRONO / DIFFERITO
•https://it.wordpress.org/plugins/async-javascript/
LAZY LOAD
•https://it.wordpress.org/plugins/bj-lazy-load/
•https://wordpress.org/plugins/rocket-lazy-load/
PERFORMANCE
•https://wp-rocket.me/it/
•https://it.wordpress.org/plugins/w3-total-cache/
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
PLUGIN CONSIGLIATI- 2
OTTIMIZZAZIONE FRONTEND / CRITICAL
RENDER PATH
•https://it.wordpress.org/plugins/above-the-fold-
optimization/
SERVER PUSH
•https://it.wordpress.org/plugins/http2-server-push/
CARICAMENTO CONDIZIONALE JS/CSS
https://wordpress.org/plugins/wp-asset-clean-up/
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
SLIDES E DOMANDE SUL MASTERCLUB
DOMANDE?
11
5
@andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
GRAZIE
▶ E-mail:andrea@tcinformatica.net
▶ Twitter:@andreacardinali
▶ Slideshare:
http://www.slideshare.net/andreacardinali
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
BONUS TRACK
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
SERVONO
ANCORA LE
CDN?
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
DIPENDE
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
VICINANZA
GEOGRAFICA
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
BANDA
UTILIZZATA
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
CARICO DEL
SERVER
Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
VERIFICATE IL
SUPPORTO PER
http/2

More Related Content

More from Andrea Cardinali

WordPress Async 101 - An Introduction to wp-ajax and rest api - WordCamp Bari...
WordPress Async 101 - An Introduction to wp-ajax and rest api - WordCamp Bari...WordPress Async 101 - An Introduction to wp-ajax and rest api - WordCamp Bari...
WordPress Async 101 - An Introduction to wp-ajax and rest api - WordCamp Bari...Andrea Cardinali
 
From Cache to Ca$h - Advanced use of WP Cache - Andrea Cardinali
From Cache to Ca$h - Advanced use of WP Cache - Andrea CardinaliFrom Cache to Ca$h - Advanced use of WP Cache - Andrea Cardinali
From Cache to Ca$h - Advanced use of WP Cache - Andrea CardinaliAndrea Cardinali
 
Realizzare siti velocissimi che si caricano in un secondo - WordCamp Milano 2...
Realizzare siti velocissimi che si caricano in un secondo - WordCamp Milano 2...Realizzare siti velocissimi che si caricano in un secondo - WordCamp Milano 2...
Realizzare siti velocissimi che si caricano in un secondo - WordCamp Milano 2...Andrea Cardinali
 
Gestione avanzata di WordPress con WP-CLI - WordCamp Torino 2017 - Andrea Car...
Gestione avanzata di WordPress con WP-CLI - WordCamp Torino 2017 - Andrea Car...Gestione avanzata di WordPress con WP-CLI - WordCamp Torino 2017 - Andrea Car...
Gestione avanzata di WordPress con WP-CLI - WordCamp Torino 2017 - Andrea Car...Andrea Cardinali
 
I vantaggi di utilizzare un Visual Composer - WordCamp Torino 2017 - Andrea C...
I vantaggi di utilizzare un Visual Composer - WordCamp Torino 2017 - Andrea C...I vantaggi di utilizzare un Visual Composer - WordCamp Torino 2017 - Andrea C...
I vantaggi di utilizzare un Visual Composer - WordCamp Torino 2017 - Andrea C...Andrea Cardinali
 
Professional WordPress Development with Vagrant - Andrea Cardinali - WordCam...
Professional WordPress Development with Vagrant - Andrea Cardinali -  WordCam...Professional WordPress Development with Vagrant - Andrea Cardinali -  WordCam...
Professional WordPress Development with Vagrant - Andrea Cardinali - WordCam...Andrea Cardinali
 
CMS in ottica SEO per i contenuti - SEMrush WebStudy Marathon - SEO Tecnico -...
CMS in ottica SEO per i contenuti - SEMrush WebStudy Marathon - SEO Tecnico -...CMS in ottica SEO per i contenuti - SEMrush WebStudy Marathon - SEO Tecnico -...
CMS in ottica SEO per i contenuti - SEMrush WebStudy Marathon - SEO Tecnico -...Andrea Cardinali
 
My WordPress Toolbox - WordPress Meetup Romagna #13 - 15 Settembre 2016
My WordPress Toolbox - WordPress Meetup Romagna #13 - 15 Settembre 2016My WordPress Toolbox - WordPress Meetup Romagna #13 - 15 Settembre 2016
My WordPress Toolbox - WordPress Meetup Romagna #13 - 15 Settembre 2016Andrea Cardinali
 
SEO On Site & WordPress - Errori da Evitare - #10 WordPress Meetup Romagna C...
SEO On Site & WordPress - Errori da Evitare  - #10 WordPress Meetup Romagna C...SEO On Site & WordPress - Errori da Evitare  - #10 WordPress Meetup Romagna C...
SEO On Site & WordPress - Errori da Evitare - #10 WordPress Meetup Romagna C...Andrea Cardinali
 
WordPress, migrazioni e re-branding: don't try this at home. #wmf15
WordPress, migrazioni e re-branding: don't try this at home. #wmf15WordPress, migrazioni e re-branding: don't try this at home. #wmf15
WordPress, migrazioni e re-branding: don't try this at home. #wmf15Andrea Cardinali
 
WPDay 2015 - WordPress Performance Optimization - Pordenone - 13 Novembre 2015
WPDay 2015 - WordPress Performance Optimization - Pordenone - 13 Novembre 2015WPDay 2015 - WordPress Performance Optimization - Pordenone - 13 Novembre 2015
WPDay 2015 - WordPress Performance Optimization - Pordenone - 13 Novembre 2015Andrea Cardinali
 
Seo on site - La stai facendo nel modo giusto? | GT Conference Torino 2013
Seo on site - La stai facendo nel modo giusto? | GT Conference Torino 2013Seo on site - La stai facendo nel modo giusto? | GT Conference Torino 2013
Seo on site - La stai facendo nel modo giusto? | GT Conference Torino 2013Andrea Cardinali
 
50 tips su Web  Performance Optimization per siti ad alto traffico @ WpCamp B...
50 tips su Web  Performance Optimization per siti ad alto traffico @ WpCamp B...50 tips su Web  Performance Optimization per siti ad alto traffico @ WpCamp B...
50 tips su Web  Performance Optimization per siti ad alto traffico @ WpCamp B...Andrea Cardinali
 
5 consigli SEO da tenere a mente durante lo sviluppo di temi e plugin @ WpCam...
5 consigli SEO da tenere a mente durante lo sviluppo di temi e plugin @ WpCam...5 consigli SEO da tenere a mente durante lo sviluppo di temi e plugin @ WpCam...
5 consigli SEO da tenere a mente durante lo sviluppo di temi e plugin @ WpCam...Andrea Cardinali
 

More from Andrea Cardinali (14)

WordPress Async 101 - An Introduction to wp-ajax and rest api - WordCamp Bari...
WordPress Async 101 - An Introduction to wp-ajax and rest api - WordCamp Bari...WordPress Async 101 - An Introduction to wp-ajax and rest api - WordCamp Bari...
WordPress Async 101 - An Introduction to wp-ajax and rest api - WordCamp Bari...
 
From Cache to Ca$h - Advanced use of WP Cache - Andrea Cardinali
From Cache to Ca$h - Advanced use of WP Cache - Andrea CardinaliFrom Cache to Ca$h - Advanced use of WP Cache - Andrea Cardinali
From Cache to Ca$h - Advanced use of WP Cache - Andrea Cardinali
 
Realizzare siti velocissimi che si caricano in un secondo - WordCamp Milano 2...
Realizzare siti velocissimi che si caricano in un secondo - WordCamp Milano 2...Realizzare siti velocissimi che si caricano in un secondo - WordCamp Milano 2...
Realizzare siti velocissimi che si caricano in un secondo - WordCamp Milano 2...
 
Gestione avanzata di WordPress con WP-CLI - WordCamp Torino 2017 - Andrea Car...
Gestione avanzata di WordPress con WP-CLI - WordCamp Torino 2017 - Andrea Car...Gestione avanzata di WordPress con WP-CLI - WordCamp Torino 2017 - Andrea Car...
Gestione avanzata di WordPress con WP-CLI - WordCamp Torino 2017 - Andrea Car...
 
I vantaggi di utilizzare un Visual Composer - WordCamp Torino 2017 - Andrea C...
I vantaggi di utilizzare un Visual Composer - WordCamp Torino 2017 - Andrea C...I vantaggi di utilizzare un Visual Composer - WordCamp Torino 2017 - Andrea C...
I vantaggi di utilizzare un Visual Composer - WordCamp Torino 2017 - Andrea C...
 
Professional WordPress Development with Vagrant - Andrea Cardinali - WordCam...
Professional WordPress Development with Vagrant - Andrea Cardinali -  WordCam...Professional WordPress Development with Vagrant - Andrea Cardinali -  WordCam...
Professional WordPress Development with Vagrant - Andrea Cardinali - WordCam...
 
CMS in ottica SEO per i contenuti - SEMrush WebStudy Marathon - SEO Tecnico -...
CMS in ottica SEO per i contenuti - SEMrush WebStudy Marathon - SEO Tecnico -...CMS in ottica SEO per i contenuti - SEMrush WebStudy Marathon - SEO Tecnico -...
CMS in ottica SEO per i contenuti - SEMrush WebStudy Marathon - SEO Tecnico -...
 
My WordPress Toolbox - WordPress Meetup Romagna #13 - 15 Settembre 2016
My WordPress Toolbox - WordPress Meetup Romagna #13 - 15 Settembre 2016My WordPress Toolbox - WordPress Meetup Romagna #13 - 15 Settembre 2016
My WordPress Toolbox - WordPress Meetup Romagna #13 - 15 Settembre 2016
 
SEO On Site & WordPress - Errori da Evitare - #10 WordPress Meetup Romagna C...
SEO On Site & WordPress - Errori da Evitare  - #10 WordPress Meetup Romagna C...SEO On Site & WordPress - Errori da Evitare  - #10 WordPress Meetup Romagna C...
SEO On Site & WordPress - Errori da Evitare - #10 WordPress Meetup Romagna C...
 
WordPress, migrazioni e re-branding: don't try this at home. #wmf15
WordPress, migrazioni e re-branding: don't try this at home. #wmf15WordPress, migrazioni e re-branding: don't try this at home. #wmf15
WordPress, migrazioni e re-branding: don't try this at home. #wmf15
 
WPDay 2015 - WordPress Performance Optimization - Pordenone - 13 Novembre 2015
WPDay 2015 - WordPress Performance Optimization - Pordenone - 13 Novembre 2015WPDay 2015 - WordPress Performance Optimization - Pordenone - 13 Novembre 2015
WPDay 2015 - WordPress Performance Optimization - Pordenone - 13 Novembre 2015
 
Seo on site - La stai facendo nel modo giusto? | GT Conference Torino 2013
Seo on site - La stai facendo nel modo giusto? | GT Conference Torino 2013Seo on site - La stai facendo nel modo giusto? | GT Conference Torino 2013
Seo on site - La stai facendo nel modo giusto? | GT Conference Torino 2013
 
50 tips su Web  Performance Optimization per siti ad alto traffico @ WpCamp B...
50 tips su Web  Performance Optimization per siti ad alto traffico @ WpCamp B...50 tips su Web  Performance Optimization per siti ad alto traffico @ WpCamp B...
50 tips su Web  Performance Optimization per siti ad alto traffico @ WpCamp B...
 
5 consigli SEO da tenere a mente durante lo sviluppo di temi e plugin @ WpCam...
5 consigli SEO da tenere a mente durante lo sviluppo di temi e plugin @ WpCam...5 consigli SEO da tenere a mente durante lo sviluppo di temi e plugin @ WpCam...
5 consigli SEO da tenere a mente durante lo sviluppo di temi e plugin @ WpCam...
 

Andrea Cardinali - WordPress Performance Optimization Cos'è cambiato con HTTP/2

  • 1. WordPress Performance Optimization: cos’è cambiato con http/2 Andrea Cardinali T.C. Informatica Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
  • 2. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini ABOUT ME ▶ DEVELOPER & SEO ▶ C.O.O. @ T.C. INFORMATICA ▶ LAVORO CON WORDPRESS DAL 2009 ▶ CO-ORGANIZER @ WORDPRESS MEETUP ROMAGNA
  • 3. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini DI COSA PARLERÒ 1. HTTP/2 2. HTTP/2 E WEB PERFORMANCE 3. TECNICHE DI W.P.O. OBSOLETE
  • 4. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini VUOI VINCERE UNA CONSULENZA SU WP e W.P.O. ? TWEETA CON #wmf17 CITANDO @andreacardinali * L’account vincitore verrà estratto al termine dello speech
  • 5. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini HTTP/2
  • 6. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini MAGGIO 2015
  • 7. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini BASATO SU SPDY
  • 8. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini SPDY AVEVA L’OBIETTIVO DI RIDURRE DEL 50% IL PAGE LOAD TIME
  • 9. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini EVOLUZIONE DI HTTP/1.1
  • 10. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini HTTP/2 NON RICHIEDE MODIFICA AL CODICE
  • 11. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini HTTP/2 È IMPLEMENTATO DAL WEB SERVER
  • 12. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini IL 92% DEI BROWSER UTILIZZATI IN ITA SUPPORTA HTTP/2 Fonte: https://caniuse.com/#search=HTTP2
  • 13. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini HTTP/2 È DIFFERENTE DA HTTP/1.1
  • 14. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini HTTP/1.1 TRAFERISCE UNA RISORSA PER CONNESSIONE IN SERIE
  • 15. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini HTTP/1.1 UTILIZZA PIÚ CONNESSIONI
  • 16. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini 1 FILE = 1 CONNESSIONE
  • 17. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini HTTP/1.1- DOWNLOAD IN SERIE
  • 18. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini HTTP/2 TRASFERISCE PIÙ RISORSE IN PARALLELO (multiplexing)
  • 19. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini HTTP/2 UTILIZZA UNA UNICA CONNESSIONE (per origine)
  • 20. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini http/2- MULTIPLEXING
  • 21. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini DOWNLOAD CON HTTP/2
  • 22. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini DOWNLOAD CON HTTP/1.1
  • 23. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini HTTP/1.1vs HTTP/2 http://www.httpvshttps.com/
  • 24. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini RICAPITOLANDO •http/2 è retrocompatibile e ampiamente supportato •http/2 richiede https •http/2 riduce il tempo di caricamento della pagina •http/2 scarica i file in parallelo utilizzando un’unica connessione (per host)
  • 25. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di RiminiAndrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini HTTP/2 E VELOCITÁ
  • 26. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini LA VELOCITÁ DIPENDE PER 80% - 90% DAL FRONTEND
  • 27. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini IL SERVER INCIDE PER UN 10% - 20% (tranne in casiclamorosicon hostingsupercheap)
  • 28. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini PERCHÉ LA VELOCITÁ È COSÌ IMPORTANTE?
  • 29. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di RiminiAndrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini L’80% DEGLI UTENTI È DISPOSTO AD ASPETTARE AL MASSIMO 3 SECONDI PRIMA DI ABBANDONARE IL SITO. Fonte:RadwareFastview2015
  • 30. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di RiminiAndrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini SITO PIÙ VELOCE = MIGLIOR USER EXPERIENCE
  • 31. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di RiminiAndrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini MIGLIOR UX = MAGGIORI PROFITTI
  • 32. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini SITO VELOCE = 1 SECONDO 32
  • 33. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini PER APPROFONDIRE https://www.slideshare.net/AndreaCardinali
  • 34. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di RiminiAndrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini WEB PERFOMANCE OPTIMIZATION
  • 35. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini PERFORMANCE  PLUGIN
  • 36. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini PLUGIN INSTALLATI CODICE OTTIMIZZATO
  • 37. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini PERFORMANCE  TEMI MARKETPLACE
  • 38. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini TEMA CUSTOM
  • 39. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini TEMA MARKETPLACE
  • 40. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini TEMA CUSTOM vs MARKETPLACE
  • 41. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini W.P.O. (EVERGREEN)
  • 42. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini ABILITA LA COMPRESSIONE GZIP
  • 43. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini COMPRESSIONEGZIP •Riduce il peso delle risorse testuali (codice html, js, css) fino all’80/90% •Deve essere abilitata sul server
  • 44. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini ABILITARE COMPRESSIONEGZIP (.HTACCESS) # Gzip compression <IfModule mod_deflate.c> # Active compression SetOutputFilter DEFLATE #[…] </IfModule>
  • 45. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini EXPIRE HEADERS
  • 46. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini EXPIRE HEADERS (.HTACCESS) •Intestazione http •Indicano la scadenza del file richiesto •Se il file è già presente nella cache del browser viene restituito status code 304 •L’intestazione può essere generata tramite php o .htaccess (consigliato)
  • 47. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini EXPIRE HEADERS <IfModule mod_expires.c> ExpiresActive on ExpiresDefault "access plus 1 month“ # Media: images, video, audio ExpiresByType image/jpeg "access plus 1 month " </IfModule> https://httpd.apache.org/docs/current/mod/mod_expires.html
  • 48. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini TUTTE LE DIRETTIVE NEL .HTACCESS VANNO PRIMA DI # BEGIN WordPress
  • 49. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini LIMITARE I DNS LOOKUP
  • 50. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini PER OGNI HOST IL BROWSER EFFETUA UN DNS LOOKUP
  • 51. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini ORDINAMENTO JS E CSS
  • 52. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini ORDINE DI CARICAMENTOCSS/JS CSS IN CIMA (NELL’HEAD) • vengono scaricati in parallelo • permettono al browser di eseguire più velocemente il rendering della pagina JAVASCRIPT IN FONDO (ideale prima di </body> o comunque dopo i css) • bloccano il rendering della pagina • vengono scaricati in serie ed eseguiti 52
  • 53. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini wp_enqueue_script() wp_enqueue_script( string $handle, string $src = '', array $deps = array(), string $ver = false, bool $in_footer = false ) https://developer.wordpress.org/reference/functions/wp_enqueue_script/
  • 54. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini wp_enqueue_style() wp_enqueue_style( string $handle, string $src = '', array $deps = array(), string|bool|null $ver = false, string $media = 'all' ) https://developer.wordpress.org/reference/functions/wp_enqueue_style/
  • 55. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini AUMENTARE LA VELOCITÁ PERCEPITA
  • 56. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini PRIORITÁ AI CONTENUTI VISIBILI
  • 57. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini
  • 58. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini MOSTRARE IL CONTENUTO ABOVE THE FOLD IL PIÚ VELOCEMENTE POSSIBILE
  • 59. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini LAZY LOADING IMMAGINI
  • 60. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini 57 % DEL PESO DELLA PAGINA CAUSATO DA IMMAGINIhttp://httparchive.org/interesting.php#bytesperpage
  • 61. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini LAZY LOAD IMMAGINI http://httparchive.org/interesting.php#bytesperpage 61
  • 62. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini LE IMMAGINI VENGONO CARICATE SOLO QUANDO ENTRANO NEL VIEWPORT
  • 63. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini RICHIEDE JAVASCRIPT + MODIFICA AL HTML
  • 64. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini IMMAGINE CON SEGNAPOSTO <img src=‘placeholder.png’ data-src=‘original.png’ />
  • 65. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini <img src=‘wmf17.png’/>
  • 66. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini ESEMPIO DI LAZY LOAD <img src=‘placeholder.png’ data-src=‘original.png’ /> <img src=‘wmf17.png’/> $(window).scroll() if (immagine è nel viewport) sostituisci l’attributo data-src con src
  • 67. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini IMMAGINI PROGRESSIVE
  • 68. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini JPEG PROGRESSIVE 68 Immagine sfocataImmagine «bianca»
  • 69. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini CARICAMENTO ASINCRONO JS
  • 70. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini ATTRIBUTOASYNC <script src="demo_async.js" async></script> •Lo script viene eseguito appena è disponibile •Non blocca il caricamento dei file js successivi •I file più veloci a essere scaricati vengono eseguiti prima (non viene rispettato l’ordine) •Utilizzabile solo per script esterni (con l’attributo src) https://www.w3schools.com/tags/att_script_async.asp
  • 71. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini CARICAMENTO DIFFERITO JS
  • 72. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini ATTRIBUTODEFER <script src="demo_defer.js" defer></script> •Lo script viene eseguito dopo il parsing della pagina •Non blocca il caricamento dei file js successivi •Gli script vengono eseguiti nell’ordine stabilito •Utilizzabile solo per script esterni (con l’attributo src)https://www.w3schools.com/tags/att_script_defer.asp
  • 73. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini CRITICAL RENDER PATH
  • 74. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini CRITICAL RENDER PATH COSTITUITO DA CODICE E RISORSE NECESSARIE A VISUALIZZARE IL CONTENUTO ABOVE THE FOLD
  • 75. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini https://it.wordpress.org/plugins/above-the-fold-optimization/
  • 76. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini CSS INLINE
  • 77. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini wp_add_inline_style() •Serve per aggiungere CSS in linea https://codex.wordpress.org/it:Riferimento_funzioni/wp_add_inline_style
  • 78. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini INLINE CSS E JS Prevede l’inclusione IN LINEA di css e js PRO •Riduce il numero di connessioni http •Può aumentare la velocità percepita CONTRO •Impedisce il caching della risorsa •Aumenta il peso della pagina
  • 79. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini INLINE CSS E JS - HTTP/2 •Utilizzalo solo per file di piccole dimensioni (~3/4kb) •Meglio utilizzarlo solo con gzip abilitato •Utilizzalo per il critical render path •Valuta in alternativa l’utilizzo di file esterni
  • 80. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini wp_add_inline_script •Serve per aggiungere js in linea (prima di </head> o di </body> ) •Sfrutta il sistema di dipendenze di WP https://developer.wordpress.org/reference/functions/wp_add_inline_script/
  • 81. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini PRERENDER PREFETCH
  • 82. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini DIRETTIVE PRE-* INTESTAZIONI HTTP o ATTRIBUTI DI <LINK>
  • 83. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini IL PRERENDER PERMETTE DI CARICARE UNA PAGINA IN BACKGROUND
  • 84. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini PRERENDER PRO •Caricamento istantaneo (in caso di visita) CONTRO •Potenziale spreco delle risorse hw http://caniuse.com/#search=pre-render 84 //… <link rel=‘prerender’ href=‘/secondapagina/’> </head>
  • 85. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini IL DNS-PREFETCH PERMETTE DI ANTICIPARE IL DNS LOOKUP
  • 86. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini PRERENDER PRO •Il download delle risorse dall’origine indicato è più rapido, in quanto il dns lookup è già stato fatto CONTRO •Ogni dns lookup richiede tempo extra e se le origini sono molte, il sito può rallentare http://caniuse.com/#search=pre-render 86 //… <link rel=‘dns-prefetch’ href=‘//webmarketingfestival.it’> </head>
  • 87. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini WP SUPPORTA IN AUTOMATICO DNS-PREFETCH E PRERENDER
  • 88. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini AGGIUNGERE ALTRI HOST function makewp_example_resource_hints( $hints, $relation_type ) { if ( 'dns-prefetch' === $relation_type ) { $hints[] = '//make.wordpress.org'; } else if ( 'prerender' === $relation_type ) { $hints[] = 'https://make.wordpress.org/great-again'; } return $hints; } add_filter( 'wp_resource_hints', 'makewp_example_resource_hints', 10, 2 ) https://make.wordpress.org/core/2016/07/06/resource-hints-in-4-6/
  • 89. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini SERVER PUSH
  • 90. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini È IL SERVER A STABILIRE QUALI RISORSE HANNO LA PRIORITÁ
  • 91. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini LE RISORSE CON PRIORITÁ PIÚ ALTA VENGONO SCARICATE PER PRIME
  • 92. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini SERVER PUSH- HTTP/2 PRO •Utile per prioritizzare le risorse •Aumenta la velocità percepita CONTRO •Soggetto alla same-origin policy •Può essere disabilitato dal client (la risorsa verrà comunque scaricata con la priorità predefinita)
  • 93. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini SERVER PUSH <?php header("Link: </css/vendor.css>; rel=preload; as=style", false); header("Link: </css/styles.css>; rel=preload; as=style", false); header("Link: </images/site/logo--red.svg>; rel=preload; as=image", false); ?>
  • 94. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini RICAPITOLANDO •La velocità va oltre i concetti di KB e secondi •Un sito veloce è un sito percepito come tale •I plugins non sono la soluzione a tutti i problemi •Le performance devono far parte dello sviluppo del sito e non devono essere considerate come un extra
  • 95. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini RICAPITOLANDO •Prioritá ai contenuti above the fold •Critical render path •Lazy load per immagini •Immagini progressive •Server push
  • 96. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini W.P.O. BEST WORST PRACTICES
  • 97. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini CONCATENAZIONE (COMBINE CSS / JS)
  • 98. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini UNIRE PIÙ FILE INSIEME PER RIDURRE IL NUMERO DI CONNESSIONI
  • 99. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini CONCATENAZIONE
  • 100. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini CONCATENAZIONE - HTTP/1.1: PRO •Riduce il numero di connessioni http •La compressione gzip puó essere maggiore ◦ File ancora più piccoli •Va utilizzato insieme agli expire headers CONTRO •File di grosse dimensioni •L’aggiornamento di un file comporta l’invalidazione di tutto il file
  • 101. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini CONCATENAZIONE -HTTP/2 PRO •Http/2 puó scaricare più file in parallelo •Utilizza gli expire headers per invalidare i file singolarmente CONTRO •n.a.
  • 102. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini IMAGE SPRITES
  • 103. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini DOMAIN SHARDING
  • 104. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini DOMAIN SHARDING
  • 105. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini DOMAIN SHARDING - HTTP/1.1 PRO •Parallelizza i download aumentando la velocità CONTRO •Aumenta il dns lookup time •Aumenta l’overhead tcp
  • 106. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini DOMAIN SHARDING - HTTP/2 •Utilizza il numero di host minimo (1 host = 1 connessione) •Http/2 coalescence la connessione viene riutilizzata anche per origini diverse se: ◦ certificato wildcard /EV / SAN (Subject Alternative Names) ◦ stesso indirizzo IP
  • 107. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini RICAPITOLANDO •HTTP/1.1 utilizza una connessione per file •HTTP/2 utilizza una connessione per host •Ridurre il numero di connessioni http PER HOST •Evitare: ◦ combine css / js ◦ image sprite ◦ domain sharding
  • 108. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini RICAPITOLANDO..
  • 109. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini The fastest byte is a byte not sent Ilya Gregoric
  • 110. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini W.P.O.OK •Compressione GZIP •Expire Headers •Css in cima e js in fondo (async e defer) •Utilizzare wp_enqueue_*
  • 111. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini PLUGIN
  • 112. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini PLUGIN CONSIGLIATI- 1 CARICAMENTO ASINCRONO / DIFFERITO •https://it.wordpress.org/plugins/async-javascript/ LAZY LOAD •https://it.wordpress.org/plugins/bj-lazy-load/ •https://wordpress.org/plugins/rocket-lazy-load/ PERFORMANCE •https://wp-rocket.me/it/ •https://it.wordpress.org/plugins/w3-total-cache/
  • 113. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini PLUGIN CONSIGLIATI- 2 OTTIMIZZAZIONE FRONTEND / CRITICAL RENDER PATH •https://it.wordpress.org/plugins/above-the-fold- optimization/ SERVER PUSH •https://it.wordpress.org/plugins/http2-server-push/ CARICAMENTO CONDIZIONALE JS/CSS https://wordpress.org/plugins/wp-asset-clean-up/
  • 114. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini SLIDES E DOMANDE SUL MASTERCLUB
  • 116. @andreacardinali Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini GRAZIE ▶ E-mail:andrea@tcinformatica.net ▶ Twitter:@andreacardinali ▶ Slideshare: http://www.slideshare.net/andreacardinali
  • 117. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini BONUS TRACK
  • 118. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini SERVONO ANCORA LE CDN?
  • 119. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini DIPENDE
  • 120. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini VICINANZA GEOGRAFICA
  • 121. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini BANDA UTILIZZATA
  • 122. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini CARICO DEL SERVER
  • 123. Andrea Cardinali - #wmf17 - @andreacardinali - 23 e 24 Giugno 2017 – Palacongressi di Rimini VERIFICATE IL SUPPORTO PER http/2