SlideShare ist ein Scribd-Unternehmen logo
1 von 46
50 tips su Web Performance
Optimization per siti ad alto traffico
                      di ANDREA CARDINALI




              WORDCAMP BOLOGNA - 9 FEBBRAIO 2013
                  @WORDCAMPBOLOGNA # WPCAMPBO13
“If it is fast and ugly, they will use it
                     and curse you;
         if it is slow, they will not use it”
                                     David Cheriton
                                     (Docente Univ.Stanford)




WORDCAMP BOLOGNA - 9 FEBBRAIO 2013               @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION

 PERCHE’ LA VELOCITA’ E’ IMPORTANTE?
 •   Migliora la User Experience
 •   Diminuisce il bounce rate (tasso d’abbandono)
 •   Aumentano le pageviews ( a parità di tempo speso sul sito)
 •   Aumentano le conversioni (soprattutto negli ecommerce)
 •   Diminuiscono i costi (hardware e banda)

 Inoltre…
 E’ un fattore di ranking



  “You may have heard that here at Google we're obsessed with speed, in our
  products and on the web. As part of that effort, today we're including a new
  signal in our search ranking algorithms: site speed.”

                                                       Amit Singhal & Matt Cuts - 09 Aprile 2010



 http://googlewebmastercentral.blogspot.it/2010/04/using-site-speed-in-web-search-ranking.html
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013                                                   @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION

 QUANTO VELOCE?
 LA RISPOSTA E’ NELLA PSICOLOGIA UMANA.
 L’utente arriva sul nostro sito con un intento ben preciso.

 Memoria a breve termine limitata: più aspettiamo, più il compito da eseguire risulta
 difficile.
 Bisogno di controllo: l’attesa e l’impossibilità di controllare la situazione genera
 frustrazione e ansia.

 3 LIMITI PER I TEMPI DI RISPOSTA:

 0.1 secondi – risposta istantanea
 1 secondo – l’utente percepisce un ritardo e sa che è dovuto al computer che sta
 elaborando le informazioni e quindi il flusso dei pensieri non viene interrotto.
 10 secondi – Tempo massimo per mantenere l’attenzione dell’utente. L’utente non ha il
 controllo su quello che sta accadendo e inizia a crescere il senso di frustrazione.
 ABBANDONO DEL SITO


  Fonte: Jackob Nielsen http://www.nngroup.com/articles/website-response-times/
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013                                                @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION

 QUANTO VELOCE? (NEL MONDO REALE)

                                                                                        GLOBALE:
                                                                                        DESKTOP: 2,8 sec
                                                                                        MOBILE: 4,5 sec

                                                                                        ITALIA:
                                                                                        DESKTOP: 3,4 sec
                                                                                        MOBILE: 5,6 sec




                                                                                        DESKTOP: <15% 1sec




   Fonte: http://analytics.blogspot.it/2012/04/global-site-speed-overview-how-fast-are.html
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013                                                     @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION

 DA COSA DIPENDE LA VELOCITA’?

   Potenza dell’hardware?

   Velocità del database?

   Velocità del codice?




 http://www.stevesouders.com/blog/2012/02/10/the-performance-golden-rule/
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013                             @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION




       NO
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013   @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION


   90 % DEL TEMPO DI CARICAMENTO
   È UTILIZZATO PER LE RISORSE ESTERNE




WORDCAMP BOLOGNA - 9 FEBBRAIO 2013   @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION




 http://www.stevesouders.com/blog/2012/02/10/the-performance-golden-rule/
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013                                          @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION




 http://www.stevesouders.com/blog/2012/02/10/the-performance-golden-rule/
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013                                          @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION




WORDCAMP BOLOGNA - 9 FEBBRAIO 2013   @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION

 COME VELOCIZZARE IL SITO?
 1. Ridurre il peso della pagina e delle risorse che la compongono
     • Minify
     • Immagini ottimizzate
     • Compressione gzip
 2. Ridurre il n° di richieste http
 3. Parallelizzare il download
 4. Caching
 5. Lazy Loading (principalmente immagini)
 6. Ritardare l’esecuzione degli script non fondamentali (es. social buttons)




WORDCAMP BOLOGNA - 9 FEBBRAIO 2013                                    @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION

 ELABORAZIONE PAGINA HTML




WORDCAMP BOLOGNA - 9 FEBBRAIO 2013   @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION

 ANALISI PERFORMANCE
                                     Metrica                 Valore
                                     Load time               3,62 sec
                                     Peso                    560kb
                                     N° richieste http 25




WORDCAMP BOLOGNA - 9 FEBBRAIO 2013          @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION

DIMINUIRE PESO DELLA PAGINA
 •   Minify html
 •   Minify js
 •   Minify css
 •   immagini ottimizzate (Yahoo smush.it)
 •   non scalare immagini con html




  RISORSE UTILI:
  http://www.minifycss.com/css-compressor/
  http://refresh-sf.com/yui/ (YUI Compressor)
  http://jscompress.com/



WORDCAMP BOLOGNA - 9 FEBBRAIO 2013              @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION

 RIDURRE RICHESTE HTTP
 • combine dei files
     • combine intelligente
 • css sprites
 • utilizzare @media print invece di un foglio di stile per la stampa
 • image inline (data uri)
 • css3 per sfondi con gradient


 ATTENZIONE: Immagini inline non supportate da <IE7




WORDCAMP BOLOGNA - 9 FEBBRAIO 2013                                      @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION

 VELOCIZZARE IL RENDERING DELLA PAGINA
 •   Css nell’header
 •   Script nel footer
 •   Diminuire il numero di elementi del DOM
 •   Script eseguiti al .load() invece che al .ready().
 •   Lazy load Immagini
 •   Script che interagiscono con il DOM devono utilizzare selettori efficienti
 •   Script asincroni
 •   Regole css efficienti




WORDCAMP BOLOGNA - 9 FEBBRAIO 2013                                       @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION

 ANALISI PERFORMANCE
                                     Metrica                 Valore
                                     Load time               3,60 sec
                                     Peso                    546kb
                                     N° richieste http 16



                                       Diminuito # richieste




WORDCAMP BOLOGNA - 9 FEBBRAIO 2013          @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION

PARALLELIZZARE DOWNLOAD
 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 ed eseguiti
 • caricarli solo dove necessario


 add_action(‘wp_enqueue_scripts’,’crd_registra_js’);
 function crd_registra_js()
 {
     $path=get_template_directory_uri().'/assets/js/’;
     wp_register_script(‘myscript’,‘script.min.js', array('jquery'),null, true);
     //5 parametro per caricare lo script nel footer
     if(is_page())
     {
     wp_enqueue_script(‘myscript’);
     }
 }

WORDCAMP BOLOGNA - 9 FEBBRAIO 2013                                 @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION

 PARALLELIZZARE DOWNLOAD - 2
 • Utilizzare domini diversi                                      Browser N° max per host *
 • Utilizzare librerie ospitate su domini esterni
                                                                  IE <8                    2
 • Utilizzare Fake CDN [link a post]
                                                                  IE 8 -9                  6
  ATTENZIONE: numero max di connessioni /host                     IE 10                    8
                                                                  Chrome                   6
                                                                  FF                       6
 Non utilizzare più di 3-4 domini differenti

 add_action('wp_enqueue_scripts',’crd_inizializza_js'));

 function crd_inizializza_js()
 {
 wp_deregister_script('jquery‘);
 wp_register_script('jquery', 'https://ajax.googleapis.com/ajax/libs/j
 query/1.8.3/jquery.min.js',null,null,true);
 }


 Elenco completo: http://www.browserscope.org/?category=network
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013                                          @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION

 ABILITARE COMPRESSIONE GZIP
 • Riduce notevolmente il peso della pagina (anche del 80%)
 • Vantaggi maggiori sui files con contenuto testuale

    Abilitare compressione su Apache: [link]

 ABILITARE SU APACHE
 Inserire nel .htaccess
 Meglio se in httpd.conf (più performante)


 <IfModule mod_deflate.c>
 AddOutputFilterByType DEFLATE text/text text/html text/plain
 text/xml text/css application/x-javascript
 application/javascript
 </IfModule>




WORDCAMP BOLOGNA - 9 FEBBRAIO 2013                            @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION

 ANALISI PERFORMANCE
                                     Metrica                 Valore
                                     Load time               2,9 sec
                                     Peso                    228kb
                                     N° richieste http 13



                                     Metrica                Valore
                                     Load time              -17 %
                                     Peso                   -43 %




WORDCAMP BOLOGNA - 9 FEBBRAIO 2013          @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION

 ABILITARE KeepAlive
 • Creare una nuova connessione http è dispendioso (tempo e risorse)
 • Una singola connessione http viene utilizzata per rispondere a più richieste


 Abilitare KeepAlive su Apache (httpd.conf)
 KeepAlive On
 KeepAliveTimeout 5
 MaxKeepAliveRequests 30




WORDCAMP BOLOGNA - 9 FEBBRAIO 2013                                    @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION

 ANALISI PERFORMANCE -KEEPALIVE
                                     Metrica                 Valore
                                     Load time               2,79 sec
                                     Peso                    228kb
                                     N° richieste http 13



                                     Metrica                Valore
                                     Load time              -9,6 %
                                     Peso                   -




WORDCAMP BOLOGNA - 9 FEBBRAIO 2013          @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION

DOMINI COOKIELESS PER RISORSE STATICHE




  Nel caso utilizziate una fake cdn, mpostare in wp-config il solo dominio principale.

  define ('COOKIE_DOMAIN', 'www.domain.com');




WORDCAMP BOLOGNA - 9 FEBBRAIO 2013                                      @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION

 CACHING DELLE RISORSE STATICHE
 VANTAGGI
 • Caricamenti successivi della pagina (o del sito) molto più veloci
 • Si risparmia banda




                                          -98 %

WORDCAMP BOLOGNA - 9 FEBBRAIO 2013                                     @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION

IMPOSTARE IL CACHING
 • La query string nell’url della risorsa impedisce il caching

ERRATO (NON CORRETTO):
 wp_enqueue_script (‘myscript’,$path.’script.js’);


 <script src='/wp-content/themes/test/script.js?ver=3.5.1'></script>


 CORRETTO:
 wp_enqueue_script (‘myscript’,$path.’script.js’,false,null);


 <script src='/wp-content/themes/test/script.js'></script>




WORDCAMP BOLOGNA - 9 FEBBRAIO 2013                               @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION


 ABILITARE CACHING APACHE
 • Con Apache, necessario mod_header e mod_expires




  <IfModule mod_headers.c>
  <FilesMatch ".(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf|cur)$">
      Header unset ETag
      FileETag None
      #caching per un mese
      Header set Cache-Control "max-age=2678400, public"
  </FilesMatch>
  </IfModule>


  Se il vostro sito utilizza un solo server si possono abilitare gli ETAG




WORDCAMP BOLOGNA - 9 FEBBRAIO 2013                                          @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION


DEFER JAVASCRIPT (SOCIAL BUTTONS)

    non caricarli al document ready
    Soluzioni:
    • setTimeout
    • immagine statica sostituita all’hover dai widget (mashable.com)
    • cambio viewport
    • mia con getScript




WORDCAMP BOLOGNA - 9 FEBBRAIO 2013                                  @WORDCAMPBOLOGNA # WPCAMPBO13
SERVER TUNING




WORDCAMP BOLOGNA - 9 FEBBRAIO 2013           @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION




      CHE COSA CAUSA IL RALLENTAMENTO?




WORDCAMP BOLOGNA - 9 FEBBRAIO 2013   @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION




WORDCAMP BOLOGNA - 9 FEBBRAIO 2013   @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION

 CACHING IN WORDPRESS
 TRANSIENT API
 • Utile per salvare il risultato di elaborazioni lunghe (richieste http, query complesse)
 • Persistente: viene salvato in wp_options come array serializzato


 set_transient(‘nome_valore’, $valore, $scadenza)
 get_transient (‘nome_valore’)


 WP_Object_Cache
 • Non persistente di default (viene eliminato alla fine del ciclo di vita della pagina)
 • Diversi plugin (W3TC, APC Object Cache, WP File Cache) la rendono persistente

 wp_cache_*



 http://codex.wordpress.org/Transients_API http://codex.wordpress.org/Class_Reference/WP_Object_Cache
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013                                                @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION

 APC (ADVANCED PHP CACHING)
 •    Php è un linguaggio interpretato
 •    APC salva l’opcode in RAM
 •    WP supporta APC a livello di Object Cache (http://wordpress.org/extend/plugins/apc/)
 •    W3TC supporta APC a tutti i livelli (Db,Page,Object)




     http://pecl.php.net/package/APC
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013                                   @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION

 APC




 PARAMETRI FONDAMENTALI
 • apc.enabled=1
 • apc.shm_size
 • apc.ttl
 • apc.user_ttl



   http://pecl.php.net/package/APC
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013   @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION

 APC (BENCHMARK)

                                     1




                                                                    3
                                                              2




  Configurazione                         Req/sec.   Aumento
  Default (Apache + php)                 3,37       -
  APC On (solo opcode)                   8          +237%
  APC + Object Cache                     65         +2000%
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013                                @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION

 ANALISI PERFORMANCE - APC
                                                                                    Metrica                 Valore
                                                                                    Load time               1,97 sec
                                                                                    Peso                    277kb *
                                                                                    N° richieste http 13



                                                                                    Metrica                Valore
                                                                                    Load time              -7,5 %
                                                                                    Peso                   -
                                                                                    Response time          -57%




 * Il peso è aumentato perché è stata aggiunta un immagine. Ininfluente ai fini del test
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013                                                         @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION


 CONFRONTO RESPONSE TIME

                                     APC OFF: 902 ms




                                         -57 %

                                     APC OFF: 396ms




WORDCAMP BOLOGNA - 9 FEBBRAIO 2013         @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION

 MYSQLND
 •   Disponibile a partire da php 5.3
 •   Default per php 5.4
 •   Ottimizzata per php (non è general purpose come mysqlibclient)
 •   Utilizza la il 50% in meno di memoria rispetto a php-mysql
 •   Su PECL c’è un estensione (mysqlnd_qc) per il caching delle query tramite apc




  http://dev.mysql.com/downloads/connector/php-mysqlnd/
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013                                    @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION




    • Di default (ovvero senza tuning) è in grado di gestire 10k connessioni simultanee con
      circa 2M di RAM (chiedete di fare lo stesso ad Apache)
    • Può essere utilizzato come reverse proxy, web server o entrambi
    • Utilizzato da wordpress.com, gravatar. com, cloudflare,pinterest, andreacardinali.it :)



   http://nginx.com/cs/nginx-automattic.html
   http://codex.wordpress.org/Nginx
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013                                     @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION – STRUMENTI BENCHMARKING


  PLUGIN BROWSER
  • Yslow
  • Google Page Speed


  SERVIZI ONLINE
  • http://www.loadimpact.com (test di carico con connessione contemporanee)
  • http://www.gtmetrix.com (confronta i risultati di Yslow e Google Page Speed)
  • http://tools.pingdom.com



  JAVASCRIPT
  • Google Analytics (_trackPageSpeed)
  • New Relic (RUA: Real User Monitoring: aggiunge un file js in fondo ad ogni pagina)




WORDCAMP BOLOGNA - 9 FEBBRAIO 2013                                   @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION – NEW RELIC




 •   Installazione in 5 minuti
 •   Real time
 •   Pagine più lente
 •   Query più dispendiose
 •   Storico
 http://newrelic.com
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013         @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION – CLOUD FLARE




    •   cdn automatico per pagine e contenuti statici con data center in 23 stati
    •   Dns anycast
    •   Threats protection
    •   Caching automatico
    •   Implementazione tutte le best practices esposte
          • Combine, minify,gzip ecc..



http://www.cloudflare.com/
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013                                      @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION – MOD PAGE SPEED




• Fa tutto lui 
• Modulo x Apache ed Nginx
• 40 filtri configurabili




https://developers.google.com/speed/pagespeed/mod?hl=it
http://seoblog.giorgiotave.it/sito-veloce-mod-pagespeed/2770
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013                             @WORDCAMPBOLOGNA # WPCAMPBO13
WEB PERFORMANCE OPTIMIZATION




                                     DOMANDE?




WORDCAMP BOLOGNA - 9 FEBBRAIO 2013              @WORDCAMPBOLOGNA # WPCAMPBO13
RELATORE




                              GRAZIE!
                              Andrea Cardinali
                              Web: www.andreacardinali.it



                              Twitter: @andreacardinali
                              Google + : Andrea Cardinali

WORDCAMP BOLOGNA - 9 FEBBRAIO 2013                          @WORDCAMPBOLOGNA # WPCAMPBO13

Weitere ähnliche Inhalte

Was ist angesagt?

Reactjs workshop
Reactjs workshop Reactjs workshop
Reactjs workshop Ahmed rebai
 
Server side rendering with React and Symfony
Server side rendering with React and SymfonyServer side rendering with React and Symfony
Server side rendering with React and SymfonyIgnacio Martín
 
Dev112 let's calendar that
Dev112   let's calendar thatDev112   let's calendar that
Dev112 let's calendar thatHoward Greenberg
 
DDD Framework for Java: JdonFramework
DDD Framework for Java: JdonFrameworkDDD Framework for Java: JdonFramework
DDD Framework for Java: JdonFrameworkbanq jdon
 
Build single page applications using AngularJS on AEM
Build single page applications using AngularJS on AEMBuild single page applications using AngularJS on AEM
Build single page applications using AngularJS on AEMAdobeMarketingCloud
 

Was ist angesagt? (8)

Xampp installation
Xampp installation Xampp installation
Xampp installation
 
Ch03 Protecting Systems
Ch03 Protecting SystemsCh03 Protecting Systems
Ch03 Protecting Systems
 
Reactjs workshop
Reactjs workshop Reactjs workshop
Reactjs workshop
 
Server side rendering with React and Symfony
Server side rendering with React and SymfonyServer side rendering with React and Symfony
Server side rendering with React and Symfony
 
Dev112 let's calendar that
Dev112   let's calendar thatDev112   let's calendar that
Dev112 let's calendar that
 
Micro serviços ppt
Micro serviços pptMicro serviços ppt
Micro serviços ppt
 
DDD Framework for Java: JdonFramework
DDD Framework for Java: JdonFrameworkDDD Framework for Java: JdonFramework
DDD Framework for Java: JdonFramework
 
Build single page applications using AngularJS on AEM
Build single page applications using AngularJS on AEMBuild single page applications using AngularJS on AEM
Build single page applications using AngularJS on AEM
 

Ähnlich wie 50 tips su Web  Performance Optimization per siti ad alto traffico @ WpCamp Bologna 2013

Wordpress e la gestione di progetti complessi
Wordpress e la gestione di progetti complessiWordpress e la gestione di progetti complessi
Wordpress e la gestione di progetti complessiMaurizio Pelizzone
 
Creare temi custom con _s, Bootstrap e LESS
Creare temi custom con _s, Bootstrap e LESSCreare temi custom con _s, Bootstrap e LESS
Creare temi custom con _s, Bootstrap e LESSPiero Bellomo
 
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
 
Webperformance, come ottimizzare il tempo di caricamento di una pagina web!
Webperformance, come ottimizzare il tempo di caricamento di una pagina web!Webperformance, come ottimizzare il tempo di caricamento di una pagina web!
Webperformance, come ottimizzare il tempo di caricamento di una pagina web!Stefano Marchisio
 
Eseguire test sintetici delle Web Performance con webpagetest.org
Eseguire test sintetici delle Web Performance con webpagetest.orgEseguire test sintetici delle Web Performance con webpagetest.org
Eseguire test sintetici delle Web Performance con webpagetest.orgOlegs Belousovs
 
Ottimizzare WordPress non solo per i motori di ricerca
Ottimizzare WordPress non solo per i motori di ricercaOttimizzare WordPress non solo per i motori di ricerca
Ottimizzare WordPress non solo per i motori di ricercaTiziano Fogliata
 
Expertise 2013 - Potenziare le prestazioni di apache con mod page speed
Expertise 2013 - Potenziare le prestazioni di apache con mod page speedExpertise 2013 - Potenziare le prestazioni di apache con mod page speed
Expertise 2013 - Potenziare le prestazioni di apache con mod page speedAndrea Mauro
 
Sviluppare plugin per WordPress: Best Practice e Silver Bullet
Sviluppare plugin per WordPress: Best Practice e Silver BulletSviluppare plugin per WordPress: Best Practice e Silver Bullet
Sviluppare plugin per WordPress: Best Practice e Silver BulletLuca Bartoli
 
WPO: Ottimizzazione step-by-step del front-end di un e-commerce
WPO: Ottimizzazione step-by-step del front-end di un e-commerceWPO: Ottimizzazione step-by-step del front-end di un e-commerce
WPO: Ottimizzazione step-by-step del front-end di un e-commerceFrancesco Terenzani
 
Session isolation e rendering delle pagine web
Session isolation e rendering delle pagine webSession isolation e rendering delle pagine web
Session isolation e rendering delle pagine webGiacomo Zecchini
 
Come sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTMLCome sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTMLSinergia Totale
 
WordCamp Bari Maggio 2019
WordCamp Bari Maggio 2019WordCamp Bari Maggio 2019
WordCamp Bari Maggio 2019Alice Orrù
 
Il sito veloce senza codice, versione originale WordCamp 2020
Il sito veloce senza codice, versione originale WordCamp 2020Il sito veloce senza codice, versione originale WordCamp 2020
Il sito veloce senza codice, versione originale WordCamp 2020Stefania Massenza
 
Presentazione Corso - Parte 3
Presentazione Corso - Parte 3Presentazione Corso - Parte 3
Presentazione Corso - Parte 3Giorgio Carpoca
 
I linguaggi del web - seconda edizione (3° giornata)
I linguaggi del web - seconda edizione (3° giornata)I linguaggi del web - seconda edizione (3° giornata)
I linguaggi del web - seconda edizione (3° giornata)Diego La Monica
 
Introduzione alla localizzazione web
Introduzione alla localizzazione webIntroduzione alla localizzazione web
Introduzione alla localizzazione webQabiria
 
Come e perché ($) migliorare le prestazioni web - Aprile 2023.pptx
Come e perché ($) migliorare le prestazioni web - Aprile 2023.pptxCome e perché ($) migliorare le prestazioni web - Aprile 2023.pptx
Come e perché ($) migliorare le prestazioni web - Aprile 2023.pptxAndrea Verlicchi
 

Ähnlich wie 50 tips su Web  Performance Optimization per siti ad alto traffico @ WpCamp Bologna 2013 (20)

Wordpress e la gestione di progetti complessi
Wordpress e la gestione di progetti complessiWordpress e la gestione di progetti complessi
Wordpress e la gestione di progetti complessi
 
Creare temi custom con _s, Bootstrap e LESS
Creare temi custom con _s, Bootstrap e LESSCreare temi custom con _s, Bootstrap e LESS
Creare temi custom con _s, Bootstrap e LESS
 
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...
 
Performance e Drupal
Performance e DrupalPerformance e Drupal
Performance e Drupal
 
Webperformance, come ottimizzare il tempo di caricamento di una pagina web!
Webperformance, come ottimizzare il tempo di caricamento di una pagina web!Webperformance, come ottimizzare il tempo di caricamento di una pagina web!
Webperformance, come ottimizzare il tempo di caricamento di una pagina web!
 
Eseguire test sintetici delle Web Performance con webpagetest.org
Eseguire test sintetici delle Web Performance con webpagetest.orgEseguire test sintetici delle Web Performance con webpagetest.org
Eseguire test sintetici delle Web Performance con webpagetest.org
 
Ottimizzare WordPress non solo per i motori di ricerca
Ottimizzare WordPress non solo per i motori di ricercaOttimizzare WordPress non solo per i motori di ricerca
Ottimizzare WordPress non solo per i motori di ricerca
 
Expertise 2013 - Potenziare le prestazioni di apache con mod page speed
Expertise 2013 - Potenziare le prestazioni di apache con mod page speedExpertise 2013 - Potenziare le prestazioni di apache con mod page speed
Expertise 2013 - Potenziare le prestazioni di apache con mod page speed
 
Madaudo
MadaudoMadaudo
Madaudo
 
Sviluppare plugin per WordPress: Best Practice e Silver Bullet
Sviluppare plugin per WordPress: Best Practice e Silver BulletSviluppare plugin per WordPress: Best Practice e Silver Bullet
Sviluppare plugin per WordPress: Best Practice e Silver Bullet
 
WPO: Ottimizzazione step-by-step del front-end di un e-commerce
WPO: Ottimizzazione step-by-step del front-end di un e-commerceWPO: Ottimizzazione step-by-step del front-end di un e-commerce
WPO: Ottimizzazione step-by-step del front-end di un e-commerce
 
Session isolation e rendering delle pagine web
Session isolation e rendering delle pagine webSession isolation e rendering delle pagine web
Session isolation e rendering delle pagine web
 
Come sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTMLCome sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTML
 
WordCamp Bari Maggio 2019
WordCamp Bari Maggio 2019WordCamp Bari Maggio 2019
WordCamp Bari Maggio 2019
 
Il sito veloce senza codice, versione originale WordCamp 2020
Il sito veloce senza codice, versione originale WordCamp 2020Il sito veloce senza codice, versione originale WordCamp 2020
Il sito veloce senza codice, versione originale WordCamp 2020
 
Presentazione Corso - Parte 3
Presentazione Corso - Parte 3Presentazione Corso - Parte 3
Presentazione Corso - Parte 3
 
I linguaggi del web - seconda edizione (3° giornata)
I linguaggi del web - seconda edizione (3° giornata)I linguaggi del web - seconda edizione (3° giornata)
I linguaggi del web - seconda edizione (3° giornata)
 
Introduzione alla localizzazione web
Introduzione alla localizzazione webIntroduzione alla localizzazione web
Introduzione alla localizzazione web
 
Come e perché ($) migliorare le prestazioni web - Aprile 2023.pptx
Come e perché ($) migliorare le prestazioni web - Aprile 2023.pptxCome e perché ($) migliorare le prestazioni web - Aprile 2023.pptx
Come e perché ($) migliorare le prestazioni web - Aprile 2023.pptx
 
Grasso
GrassoGrasso
Grasso
 

Mehr von Andrea Cardinali

5 falsi miti su Woocommerce - Andrea Cardinali - WordCamp Catania 2019
5 falsi miti su Woocommerce - Andrea Cardinali - WordCamp Catania 20195 falsi miti su Woocommerce - Andrea Cardinali - WordCamp Catania 2019
5 falsi miti su Woocommerce - Andrea Cardinali - WordCamp Catania 2019Andrea 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
 
4+1 Errori SEO Fatali per il tuo sito WordPress
4+1 Errori SEO Fatali per il tuo sito WordPress4+1 Errori SEO Fatali per il tuo sito WordPress
4+1 Errori SEO Fatali per il tuo sito WordPressAndrea Cardinali
 
Andrea Cardinali - WordPress Performance Optimization Cos'è cambiato con HTTP/2
Andrea Cardinali - WordPress Performance Optimization Cos'è cambiato con HTTP/2Andrea Cardinali - WordPress Performance Optimization Cos'è cambiato con HTTP/2
Andrea Cardinali - WordPress Performance Optimization Cos'è cambiato con HTTP/2Andrea Cardinali
 
Andrea Cardinali - SEO on Site e WordPress Errori da Evitare
Andrea Cardinali - SEO on Site e WordPress Errori da Evitare Andrea Cardinali - SEO on Site e WordPress Errori da Evitare
Andrea Cardinali - SEO on Site e WordPress Errori da Evitare Andrea Cardinali
 
Rivoluziona il tuo sito con le WP REST API - Andrea Cardinali
Rivoluziona il tuo sito con le WP REST API - Andrea CardinaliRivoluziona il tuo sito con le WP REST API - Andrea Cardinali
Rivoluziona il tuo sito con le WP REST API - 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
 
WordPress - 9 Falsi miti smascherati - Andrea Cardinali - WordPress Romagna M...
WordPress - 9 Falsi miti smascherati - Andrea Cardinali - WordPress Romagna M...WordPress - 9 Falsi miti smascherati - Andrea Cardinali - WordPress Romagna M...
WordPress - 9 Falsi miti smascherati - Andrea Cardinali - WordPress Romagna M...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
 
5 Errori Seo Da Non Commettere Sul Tuo E-Commerce
5 Errori Seo Da Non Commettere Sul Tuo E-Commerce5 Errori Seo Da Non Commettere Sul Tuo E-Commerce
5 Errori Seo Da Non Commettere Sul Tuo E-CommerceAndrea 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
 

Mehr von Andrea Cardinali (19)

5 falsi miti su Woocommerce - Andrea Cardinali - WordCamp Catania 2019
5 falsi miti su Woocommerce - Andrea Cardinali - WordCamp Catania 20195 falsi miti su Woocommerce - Andrea Cardinali - WordCamp Catania 2019
5 falsi miti su Woocommerce - Andrea Cardinali - WordCamp Catania 2019
 
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
 
4+1 Errori SEO Fatali per il tuo sito WordPress
4+1 Errori SEO Fatali per il tuo sito WordPress4+1 Errori SEO Fatali per il tuo sito WordPress
4+1 Errori SEO Fatali per il tuo sito WordPress
 
Andrea Cardinali - WordPress Performance Optimization Cos'è cambiato con HTTP/2
Andrea Cardinali - WordPress Performance Optimization Cos'è cambiato con HTTP/2Andrea Cardinali - WordPress Performance Optimization Cos'è cambiato con HTTP/2
Andrea Cardinali - WordPress Performance Optimization Cos'è cambiato con HTTP/2
 
Andrea Cardinali - SEO on Site e WordPress Errori da Evitare
Andrea Cardinali - SEO on Site e WordPress Errori da Evitare Andrea Cardinali - SEO on Site e WordPress Errori da Evitare
Andrea Cardinali - SEO on Site e WordPress Errori da Evitare
 
Rivoluziona il tuo sito con le WP REST API - Andrea Cardinali
Rivoluziona il tuo sito con le WP REST API - Andrea CardinaliRivoluziona il tuo sito con le WP REST API - Andrea Cardinali
Rivoluziona il tuo sito con le WP REST API - 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...
 
WordPress - 9 Falsi miti smascherati - Andrea Cardinali - WordPress Romagna M...
WordPress - 9 Falsi miti smascherati - Andrea Cardinali - WordPress Romagna M...WordPress - 9 Falsi miti smascherati - Andrea Cardinali - WordPress Romagna M...
WordPress - 9 Falsi miti smascherati - Andrea Cardinali - WordPress Romagna M...
 
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...
 
5 Errori Seo Da Non Commettere Sul Tuo E-Commerce
5 Errori Seo Da Non Commettere Sul Tuo E-Commerce5 Errori Seo Da Non Commettere Sul Tuo E-Commerce
5 Errori Seo Da Non Commettere Sul Tuo E-Commerce
 
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 Bologna 2013

  • 1. 50 tips su Web Performance Optimization per siti ad alto traffico di ANDREA CARDINALI WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 2. “If it is fast and ugly, they will use it and curse you; if it is slow, they will not use it” David Cheriton (Docente Univ.Stanford) WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 3. WEB PERFORMANCE OPTIMIZATION PERCHE’ LA VELOCITA’ E’ IMPORTANTE? • Migliora la User Experience • Diminuisce il bounce rate (tasso d’abbandono) • Aumentano le pageviews ( a parità di tempo speso sul sito) • Aumentano le conversioni (soprattutto negli ecommerce) • Diminuiscono i costi (hardware e banda) Inoltre… E’ un fattore di ranking “You may have heard that here at Google we're obsessed with speed, in our products and on the web. As part of that effort, today we're including a new signal in our search ranking algorithms: site speed.” Amit Singhal & Matt Cuts - 09 Aprile 2010 http://googlewebmastercentral.blogspot.it/2010/04/using-site-speed-in-web-search-ranking.html WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 4. WEB PERFORMANCE OPTIMIZATION QUANTO VELOCE? LA RISPOSTA E’ NELLA PSICOLOGIA UMANA. L’utente arriva sul nostro sito con un intento ben preciso. Memoria a breve termine limitata: più aspettiamo, più il compito da eseguire risulta difficile. Bisogno di controllo: l’attesa e l’impossibilità di controllare la situazione genera frustrazione e ansia. 3 LIMITI PER I TEMPI DI RISPOSTA: 0.1 secondi – risposta istantanea 1 secondo – l’utente percepisce un ritardo e sa che è dovuto al computer che sta elaborando le informazioni e quindi il flusso dei pensieri non viene interrotto. 10 secondi – Tempo massimo per mantenere l’attenzione dell’utente. L’utente non ha il controllo su quello che sta accadendo e inizia a crescere il senso di frustrazione. ABBANDONO DEL SITO Fonte: Jackob Nielsen http://www.nngroup.com/articles/website-response-times/ WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 5. WEB PERFORMANCE OPTIMIZATION QUANTO VELOCE? (NEL MONDO REALE) GLOBALE: DESKTOP: 2,8 sec MOBILE: 4,5 sec ITALIA: DESKTOP: 3,4 sec MOBILE: 5,6 sec DESKTOP: <15% 1sec Fonte: http://analytics.blogspot.it/2012/04/global-site-speed-overview-how-fast-are.html WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 6. WEB PERFORMANCE OPTIMIZATION DA COSA DIPENDE LA VELOCITA’? Potenza dell’hardware? Velocità del database? Velocità del codice? http://www.stevesouders.com/blog/2012/02/10/the-performance-golden-rule/ WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 7. WEB PERFORMANCE OPTIMIZATION NO WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 8. WEB PERFORMANCE OPTIMIZATION 90 % DEL TEMPO DI CARICAMENTO È UTILIZZATO PER LE RISORSE ESTERNE WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 9. WEB PERFORMANCE OPTIMIZATION http://www.stevesouders.com/blog/2012/02/10/the-performance-golden-rule/ WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 10. WEB PERFORMANCE OPTIMIZATION http://www.stevesouders.com/blog/2012/02/10/the-performance-golden-rule/ WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 11. WEB PERFORMANCE OPTIMIZATION WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 12. WEB PERFORMANCE OPTIMIZATION COME VELOCIZZARE IL SITO? 1. Ridurre il peso della pagina e delle risorse che la compongono • Minify • Immagini ottimizzate • Compressione gzip 2. Ridurre il n° di richieste http 3. Parallelizzare il download 4. Caching 5. Lazy Loading (principalmente immagini) 6. Ritardare l’esecuzione degli script non fondamentali (es. social buttons) WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 13. WEB PERFORMANCE OPTIMIZATION ELABORAZIONE PAGINA HTML WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 14. WEB PERFORMANCE OPTIMIZATION ANALISI PERFORMANCE Metrica Valore Load time 3,62 sec Peso 560kb N° richieste http 25 WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 15. WEB PERFORMANCE OPTIMIZATION DIMINUIRE PESO DELLA PAGINA • Minify html • Minify js • Minify css • immagini ottimizzate (Yahoo smush.it) • non scalare immagini con html RISORSE UTILI: http://www.minifycss.com/css-compressor/ http://refresh-sf.com/yui/ (YUI Compressor) http://jscompress.com/ WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 16. WEB PERFORMANCE OPTIMIZATION RIDURRE RICHESTE HTTP • combine dei files • combine intelligente • css sprites • utilizzare @media print invece di un foglio di stile per la stampa • image inline (data uri) • css3 per sfondi con gradient ATTENZIONE: Immagini inline non supportate da <IE7 WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 17. WEB PERFORMANCE OPTIMIZATION VELOCIZZARE IL RENDERING DELLA PAGINA • Css nell’header • Script nel footer • Diminuire il numero di elementi del DOM • Script eseguiti al .load() invece che al .ready(). • Lazy load Immagini • Script che interagiscono con il DOM devono utilizzare selettori efficienti • Script asincroni • Regole css efficienti WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 18. WEB PERFORMANCE OPTIMIZATION ANALISI PERFORMANCE Metrica Valore Load time 3,60 sec Peso 546kb N° richieste http 16 Diminuito # richieste WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 19. WEB PERFORMANCE OPTIMIZATION PARALLELIZZARE DOWNLOAD 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 ed eseguiti • caricarli solo dove necessario add_action(‘wp_enqueue_scripts’,’crd_registra_js’); function crd_registra_js() { $path=get_template_directory_uri().'/assets/js/’; wp_register_script(‘myscript’,‘script.min.js', array('jquery'),null, true); //5 parametro per caricare lo script nel footer if(is_page()) { wp_enqueue_script(‘myscript’); } } WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 20. WEB PERFORMANCE OPTIMIZATION PARALLELIZZARE DOWNLOAD - 2 • Utilizzare domini diversi Browser N° max per host * • Utilizzare librerie ospitate su domini esterni IE <8 2 • Utilizzare Fake CDN [link a post] IE 8 -9 6 ATTENZIONE: numero max di connessioni /host IE 10 8 Chrome 6 FF 6 Non utilizzare più di 3-4 domini differenti add_action('wp_enqueue_scripts',’crd_inizializza_js')); function crd_inizializza_js() { wp_deregister_script('jquery‘); wp_register_script('jquery', 'https://ajax.googleapis.com/ajax/libs/j query/1.8.3/jquery.min.js',null,null,true); } Elenco completo: http://www.browserscope.org/?category=network WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 21. WEB PERFORMANCE OPTIMIZATION ABILITARE COMPRESSIONE GZIP • Riduce notevolmente il peso della pagina (anche del 80%) • Vantaggi maggiori sui files con contenuto testuale Abilitare compressione su Apache: [link] ABILITARE SU APACHE Inserire nel .htaccess Meglio se in httpd.conf (più performante) <IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript </IfModule> WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 22. WEB PERFORMANCE OPTIMIZATION ANALISI PERFORMANCE Metrica Valore Load time 2,9 sec Peso 228kb N° richieste http 13 Metrica Valore Load time -17 % Peso -43 % WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 23. WEB PERFORMANCE OPTIMIZATION ABILITARE KeepAlive • Creare una nuova connessione http è dispendioso (tempo e risorse) • Una singola connessione http viene utilizzata per rispondere a più richieste Abilitare KeepAlive su Apache (httpd.conf) KeepAlive On KeepAliveTimeout 5 MaxKeepAliveRequests 30 WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 24. WEB PERFORMANCE OPTIMIZATION ANALISI PERFORMANCE -KEEPALIVE Metrica Valore Load time 2,79 sec Peso 228kb N° richieste http 13 Metrica Valore Load time -9,6 % Peso - WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 25. WEB PERFORMANCE OPTIMIZATION DOMINI COOKIELESS PER RISORSE STATICHE Nel caso utilizziate una fake cdn, mpostare in wp-config il solo dominio principale. define ('COOKIE_DOMAIN', 'www.domain.com'); WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 26. WEB PERFORMANCE OPTIMIZATION CACHING DELLE RISORSE STATICHE VANTAGGI • Caricamenti successivi della pagina (o del sito) molto più veloci • Si risparmia banda -98 % WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 27. WEB PERFORMANCE OPTIMIZATION IMPOSTARE IL CACHING • La query string nell’url della risorsa impedisce il caching ERRATO (NON CORRETTO): wp_enqueue_script (‘myscript’,$path.’script.js’); <script src='/wp-content/themes/test/script.js?ver=3.5.1'></script> CORRETTO: wp_enqueue_script (‘myscript’,$path.’script.js’,false,null); <script src='/wp-content/themes/test/script.js'></script> WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 28. WEB PERFORMANCE OPTIMIZATION ABILITARE CACHING APACHE • Con Apache, necessario mod_header e mod_expires <IfModule mod_headers.c> <FilesMatch ".(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf|cur)$"> Header unset ETag FileETag None #caching per un mese Header set Cache-Control "max-age=2678400, public" </FilesMatch> </IfModule> Se il vostro sito utilizza un solo server si possono abilitare gli ETAG WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 29. WEB PERFORMANCE OPTIMIZATION DEFER JAVASCRIPT (SOCIAL BUTTONS) non caricarli al document ready Soluzioni: • setTimeout • immagine statica sostituita all’hover dai widget (mashable.com) • cambio viewport • mia con getScript WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 30. SERVER TUNING WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 31. WEB PERFORMANCE OPTIMIZATION CHE COSA CAUSA IL RALLENTAMENTO? WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 32. WEB PERFORMANCE OPTIMIZATION WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 33. WEB PERFORMANCE OPTIMIZATION CACHING IN WORDPRESS TRANSIENT API • Utile per salvare il risultato di elaborazioni lunghe (richieste http, query complesse) • Persistente: viene salvato in wp_options come array serializzato set_transient(‘nome_valore’, $valore, $scadenza) get_transient (‘nome_valore’) WP_Object_Cache • Non persistente di default (viene eliminato alla fine del ciclo di vita della pagina) • Diversi plugin (W3TC, APC Object Cache, WP File Cache) la rendono persistente wp_cache_* http://codex.wordpress.org/Transients_API http://codex.wordpress.org/Class_Reference/WP_Object_Cache WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 34. WEB PERFORMANCE OPTIMIZATION APC (ADVANCED PHP CACHING) • Php è un linguaggio interpretato • APC salva l’opcode in RAM • WP supporta APC a livello di Object Cache (http://wordpress.org/extend/plugins/apc/) • W3TC supporta APC a tutti i livelli (Db,Page,Object) http://pecl.php.net/package/APC WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 35. WEB PERFORMANCE OPTIMIZATION APC PARAMETRI FONDAMENTALI • apc.enabled=1 • apc.shm_size • apc.ttl • apc.user_ttl http://pecl.php.net/package/APC WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 36. WEB PERFORMANCE OPTIMIZATION APC (BENCHMARK) 1 3 2 Configurazione Req/sec. Aumento Default (Apache + php) 3,37 - APC On (solo opcode) 8 +237% APC + Object Cache 65 +2000% WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 37. WEB PERFORMANCE OPTIMIZATION ANALISI PERFORMANCE - APC Metrica Valore Load time 1,97 sec Peso 277kb * N° richieste http 13 Metrica Valore Load time -7,5 % Peso - Response time -57% * Il peso è aumentato perché è stata aggiunta un immagine. Ininfluente ai fini del test WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 38. WEB PERFORMANCE OPTIMIZATION CONFRONTO RESPONSE TIME APC OFF: 902 ms -57 % APC OFF: 396ms WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 39. WEB PERFORMANCE OPTIMIZATION MYSQLND • Disponibile a partire da php 5.3 • Default per php 5.4 • Ottimizzata per php (non è general purpose come mysqlibclient) • Utilizza la il 50% in meno di memoria rispetto a php-mysql • Su PECL c’è un estensione (mysqlnd_qc) per il caching delle query tramite apc http://dev.mysql.com/downloads/connector/php-mysqlnd/ WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 40. WEB PERFORMANCE OPTIMIZATION • Di default (ovvero senza tuning) è in grado di gestire 10k connessioni simultanee con circa 2M di RAM (chiedete di fare lo stesso ad Apache) • Può essere utilizzato come reverse proxy, web server o entrambi • Utilizzato da wordpress.com, gravatar. com, cloudflare,pinterest, andreacardinali.it :) http://nginx.com/cs/nginx-automattic.html http://codex.wordpress.org/Nginx WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 41. WEB PERFORMANCE OPTIMIZATION – STRUMENTI BENCHMARKING PLUGIN BROWSER • Yslow • Google Page Speed SERVIZI ONLINE • http://www.loadimpact.com (test di carico con connessione contemporanee) • http://www.gtmetrix.com (confronta i risultati di Yslow e Google Page Speed) • http://tools.pingdom.com JAVASCRIPT • Google Analytics (_trackPageSpeed) • New Relic (RUA: Real User Monitoring: aggiunge un file js in fondo ad ogni pagina) WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 42. WEB PERFORMANCE OPTIMIZATION – NEW RELIC • Installazione in 5 minuti • Real time • Pagine più lente • Query più dispendiose • Storico http://newrelic.com WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 43. WEB PERFORMANCE OPTIMIZATION – CLOUD FLARE • cdn automatico per pagine e contenuti statici con data center in 23 stati • Dns anycast • Threats protection • Caching automatico • Implementazione tutte le best practices esposte • Combine, minify,gzip ecc.. http://www.cloudflare.com/ WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 44. WEB PERFORMANCE OPTIMIZATION – MOD PAGE SPEED • Fa tutto lui  • Modulo x Apache ed Nginx • 40 filtri configurabili https://developers.google.com/speed/pagespeed/mod?hl=it http://seoblog.giorgiotave.it/sito-veloce-mod-pagespeed/2770 WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 45. WEB PERFORMANCE OPTIMIZATION DOMANDE? WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
  • 46. RELATORE GRAZIE! Andrea Cardinali Web: www.andreacardinali.it Twitter: @andreacardinali Google + : Andrea Cardinali WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13