Word up łódź kwiecień 2015

97
Czas (wczytywania) to (czasem) pieniądz Tomasz Dziuda WordUp Łódź @ 22.IV.2015

Transcript of Word up łódź kwiecień 2015

Page 1: Word up łódź   kwiecień 2015

Czas (wczytywania) to (czasem) pieniądz

Tomasz Dziuda

WordUp Łódź @ 22.IV.2015

Page 2: Word up łódź   kwiecień 2015

Dlaczego?

Page 3: Word up łódź   kwiecień 2015

Google coraz bardziej będzie promować strony przyjazne urządzeniom mobilnym Źródło: http://www.engadget.com/2015/02/27/google-page-rank-mobile/

• Google eksperymentuje z oznaczaniem wolno działających stron WWW w wynikach wyszukiwania Źródło: http://www.webperformancetoday.com/2015/02/25/google-new-slow-label-web-

Page 4: Word up łódź   kwiecień 2015

Google eksperymentuje z oznaczaniem wolno działających stron WWW Źródło: http://www.webperformancetoday.com/2015/02/25/google-new-slow-label-web-performance/

Page 5: Word up łódź   kwiecień 2015

Nikt nie lubi czekać

Źródła: http://www.getelastic.com/how-page-load-speed-affects-conversion-infographic/ http://www.shoutmeloud.com/improve-website-loading-speed-seo-usability.html

• Liczba pobrań Firefoksa wzrosła o 15.4% po zmniejszeniu średniego czasu ładowania strony o 2.2 sekundy

• Walmart odnotował wzrost konwersji o 2% na każdą 1 sekundę krótszego czasu ładowania strony

• 47% konsumentów oczekuje załadowania się strony 2 sekundy lub szybciej

Page 6: Word up łódź   kwiecień 2015

Nikt nie lubi czekać

Źródła: http://www.getelastic.com/how-page-load-speed-affects-conversion-infographic/ http://www.shoutmeloud.com/improve-website-loading-speed-seo-usability.html

• Liczba pobrań Firefoksa wzrosła o 15.4% po zmniejszeniu średniego czasu ładowania strony o 2.2 sekundy

• Walmart odnotował wzrost konwersji o 2% na każdą 1 sekundę krótszego czasu ładowania strony

• 47% konsumentów oczekuje załadowania się strony 2 sekundy lub szybciej

Page 7: Word up łódź   kwiecień 2015

Nikt nie lubi czekać

Źródła: http://www.getelastic.com/how-page-load-speed-affects-conversion-infographic/ http://www.shoutmeloud.com/improve-website-loading-speed-seo-usability.html

• Liczba pobrań Firefoksa wzrosła o 15.4% po zmniejszeniu średniego czasu ładowania strony o 2.2 sekundy

• Walmart odnotował wzrost konwersji o 2% na każdą 1 sekundę krótszego czasu ładowania strony

• 47% konsumentów oczekuje załadowania się strony w 2 sekundy lub szybciej

Page 8: Word up łódź   kwiecień 2015

Zanim zaczniemy optymalizować

Page 9: Word up łódź   kwiecień 2015

Pamiętajcie o…

Zasadzie Pareto zwana inaczej zasadą 80/20

Więcej: http://pl.wikipedia.org/wiki/Zasada_Pareto

Page 10: Word up łódź   kwiecień 2015

20% działań optymalizacyjnych

najprawdopodobniej przyniesie 80% efektów

Page 11: Word up łódź   kwiecień 2015

Na pozostałe 20% efektów trzeba będzie poświęcić 80% czasu

Page 12: Word up łódź   kwiecień 2015

Duże firmy mają oddzielne zespoły odpowiedzialne za

optymalizację

https://developer.yahoo.com/performance/

https://developers.google.com/speed/

Page 13: Word up łódź   kwiecień 2015

Pamiętajcie też o…

optymalizacji podstron

Page 14: Word up łódź   kwiecień 2015

oraz pamiętajcie o…

sprawdzaniu czy Page Speed nie zmienił algorytmu

Page 15: Word up łódź   kwiecień 2015

Jak żyć mierzyć?

Page 16: Word up łódź   kwiecień 2015

Powtórka ze statystyki

Page 17: Word up łódź   kwiecień 2015

Powtórka ze statystyki• więcej pomiarów === większa wiarygodność

• średnia arytmetyczna

• mediana i kwartylehttp://pl.wikipedia.org/wiki/Mediana

• wartość minimalna/maksymalna

• odchylenie standardowe http://pl.wikipedia.org/wiki/Odchylenie_standardowe

Page 18: Word up łódź   kwiecień 2015

Powtórka ze statystyki• więcej pomiarów === większa wiarygodność

• średnia arytmetyczna

• mediana i kwartylehttp://pl.wikipedia.org/wiki/Mediana

• wartość minimalna/maksymalna

• odchylenie standardowe http://pl.wikipedia.org/wiki/Odchylenie_standardowe

Page 19: Word up łódź   kwiecień 2015

Powtórka ze statystyki• więcej pomiarów === większa wiarygodność

• średnia arytmetyczna

• mediana i kwartylehttp://pl.wikipedia.org/wiki/Mediana

• wartość minimalna/maksymalna

• odchylenie standardowe http://pl.wikipedia.org/wiki/Odchylenie_standardowe

Page 20: Word up łódź   kwiecień 2015

Powtórka ze statystyki• więcej pomiarów === większa wiarygodność

• średnia arytmetyczna

• mediana i kwartylehttp://pl.wikipedia.org/wiki/Mediana

• wartość minimalna/maksymalna

• odchylenie standardowe http://pl.wikipedia.org/wiki/Odchylenie_standardowe

Page 21: Word up łódź   kwiecień 2015

Powtórka ze statystyki• więcej pomiarów === większa wiarygodność

• średnia arytmetyczna

• mediana i kwartylehttp://pl.wikipedia.org/wiki/Mediana

• wartość minimalna/maksymalna

• odchylenie standardowe http://pl.wikipedia.org/wiki/Odchylenie_standardowe

Page 22: Word up łódź   kwiecień 2015

Źródło: https://developers.google.com/speed/pagespeed/insights/

Page 23: Word up łódź   kwiecień 2015

Why Trying to Get 95+ on Google Page Speed Insights for Your WordPress Site Will Drive You Mad!

http://premium.wpmudev.org/blog/why-trying-to-get-95-on-google-pagespeed-insights-will-drive-you-mad/

Jak koneserzy tematów optymalizacji walczą o 100/100 w Page Speed Insights

http://sourceforge.net/projects/schedule-analytics/ http://diywpblog.com/leverage-browser-cache-optimize-google-analytics/ http://madskristensen.net/post/google-analytics-vs-google-page-speed

Page 24: Word up łódź   kwiecień 2015

Źródło: http://tools.pingdom.com/

Page 25: Word up łódź   kwiecień 2015

Źródło: http://www.webpagetest.org/

Page 26: Word up łódź   kwiecień 2015

Chrome DevTools

Page 27: Word up łódź   kwiecień 2015

Źródło: http://yslow.org/

Page 28: Word up łódź   kwiecień 2015

Co wpływa na szybkość strony?

Page 29: Word up łódź   kwiecień 2015

1

1) Szybkość WordPressa

Page 30: Word up łódź   kwiecień 2015

1 2

2) Ilość zapytań do serwera

1) Szybkość WordPressa

Page 31: Word up łódź   kwiecień 2015

1 2

3

2) Ilość zapytań do serwera

3) Rozmiar strony

1) Szybkość WordPressa

Page 32: Word up łódź   kwiecień 2015

1 2

3

4) Szybkość odpowiedzi serwera

4

2) Ilość zapytań do serwera

3) Rozmiar strony

1) Szybkość WordPressa

Page 33: Word up łódź   kwiecień 2015

1 2

3

5

4) Szybkość odpowiedzi serwera

4

2) Ilość zapytań do serwera

3) Rozmiar strony

1) Szybkość WordPressa

5) Sposób renderowania strony

Page 34: Word up łódź   kwiecień 2015

Wersja dla geeków ;-)

https://github.com/alex/what-happens-when

Page 35: Word up łódź   kwiecień 2015

Szybkość WordPressa

Page 36: Word up łódź   kwiecień 2015

• Opcja dla leniwych: dokupienie wiaderka RAM-u i słoika procesorów ;-)

• Przegląd wtyczek: usunięcie nieużywanych

• Przegląd wtyczek: zastąpienie złożonych wtyczek prostszymi - adekwatnie do wykorzystywanych możliwości

Page 37: Word up łódź   kwiecień 2015

• Opcja dla leniwych: dokupienie wiaderka RAM-u i słoika procesorów ;-)

• Przegląd wtyczek: usunięcie nieużywanych

• Przegląd wtyczek: zastąpienie złożonych wtyczek prostszymi - adekwatnie do wykorzystywanych możliwości

Page 38: Word up łódź   kwiecień 2015

• Opcja dla leniwych: dokupienie wiaderka RAM-u i słoika procesorów ;-)

• Przegląd wtyczek: usunięcie nieużywanych

• Przegląd wtyczek: zastąpienie złożonych wtyczek prostszymi - adekwatnie do wykorzystywanych możliwości

Page 39: Word up łódź   kwiecień 2015

• Zainstalowanie wtyczki od cache Opis WP Super Cache: http://wpzen.pl/przyspieszanie-strony-za-pomoca-wtyczki-wp-super-cache/Opis W3 Total Cache: http://wpzen.pl/wp-content/uploads/2013/09/w3-total-cache-wordcamp-wroclaw-2013.pdfCache Buddy: http://wptavern.com/mark-jaquith-releases-cache-buddy-a-plugin-to-enhance-popular-wordpress-caching-solutions

• Profilowanie kodu i porządki w bazie danych Prezentacja o profilowaniu kodu: https://prezi.com/wlegamdbtc8g/nie-daj-sie-zwolnic/Porządkowanie bazy danych WP: http://wpzen.pl/porzadkowanie-i-optymalizacja-bazy-danych-wordpressa/

Page 40: Word up łódź   kwiecień 2015

• Zainstalowanie wtyczki od cache Opis WP Super Cache: http://wpzen.pl/przyspieszanie-strony-za-pomoca-wtyczki-wp-super-cache/Opis W3 Total Cache: http://wpzen.pl/wp-content/uploads/2013/09/w3-total-cache-wordcamp-wroclaw-2013.pdfCache Buddy: http://wptavern.com/mark-jaquith-releases-cache-buddy-a-plugin-to-enhance-popular-wordpress-caching-solutions

• Profilowanie kodu i porządki w bazie danych Prezentacja o profilowaniu kodu: https://prezi.com/wlegamdbtc8g/nie-daj-sie-zwolnic/Porządkowanie bazy danych WP: http://wpzen.pl/porzadkowanie-i-optymalizacja-bazy-danych-wordpressa/

Page 41: Word up łódź   kwiecień 2015

Ilość zapytań do serwera i rozmiar strony

Page 42: Word up łódź   kwiecień 2015

Struktura typowej strony

Źródło: http://httparchive.org/interesting.php

Page 43: Word up łódź   kwiecień 2015

http://www.wpspeedster.com/

http://wpzen.pl/wp-speedster-ranking-szybkosci-motywow-dla-wordpressa/

Page 44: Word up łódź   kwiecień 2015

GZIP

SetOutputFilter DEFLATE BrowserMatch ^Mozilla/4 gzip-only-text/htmlBrowserMatch ^Mozilla/4\.0[678] no-gzipBrowserMatch \bMSIE !no-gzip !gzip-only-text/html

Źródło: http://code.garyjones.co.uk/htaccess-tweaks-improve-site-speed

Page 45: Word up łódź   kwiecień 2015

Rozmiar grafik

Page 46: Word up łódź   kwiecień 2015

Dobór odpowiedniego formatu

• JPG - większość zdjęć

• PNG24 lub PNG8 - przezroczystość

• GIF - animacje

• SVG - niezależność od rozdzielczości

Page 47: Word up łódź   kwiecień 2015

Dobór odpowiedniego formatu

• JPG - większość zdjęć

• PNG24 lub PNG8 - przezroczystość

• GIF - animacje

• SVG - niezależność od rozdzielczości

Page 48: Word up łódź   kwiecień 2015

Dobór odpowiedniego formatu

• JPG - większość zdjęć

• PNG24 lub PNG8 - przezroczystość

• GIF - animacje

• SVG - niezależność od rozdzielczości

Page 49: Word up łódź   kwiecień 2015

Dobór odpowiedniego formatu

• JPG - większość zdjęć

• PNG24 lub PNG8 - przezroczystość

• GIF - animacje

• SVG - niezależność od rozdzielczości

Page 50: Word up łódź   kwiecień 2015
Page 51: Word up łódź   kwiecień 2015

Odpowiednie wymiary

• Warto sprawdzić czy wymiary grafik są adekwatne do obszaru który zajmują

• W wypadku formatów takich jak PNG, JPG czy GIF wymiary znacząco wpływają na rozmiar pliku

Page 52: Word up łódź   kwiecień 2015

Odpowiednie wymiary

• Warto sprawdzić czy wymiary grafik są adekwatne do obszaru który zajmują

• W wypadku formatów takich jak PNG, JPG czy GIF wymiary znacząco wpływają na rozmiar pliku

Page 53: Word up łódź   kwiecień 2015

Optymalizacja grafik

Page 54: Word up łódź   kwiecień 2015

Optymalizacja grafik• tinypng.com

https://wordpress.org/plugins/tiny-compress-images/

• tinyjpg.com ta sama wtyczka co wyżej ;)

• Wtyczka WP smush.it - stała się płatna :( https://wordpress.org/plugins/wp-smushit/

• kompresja plików SVG - minifikacja kodu, zmniejszenie dokładności krzywych

Page 55: Word up łódź   kwiecień 2015

Optymalizacja grafik• tinypng.com

https://wordpress.org/plugins/tiny-compress-images/

• tinyjpg.com ta sama wtyczka co wyżej ;)

• Wtyczka WP smush.it - stała się płatna :( https://wordpress.org/plugins/wp-smushit/

• kompresja plików SVG - minifikacja kodu, zmniejszenie dokładności krzywych

Page 56: Word up łódź   kwiecień 2015

Optymalizacja grafik• tinypng.com

https://wordpress.org/plugins/tiny-compress-images/

• tinyjpg.com ta sama wtyczka co wyżej ;)

• Wtyczka WP smush.it - stała się płatna :( https://wordpress.org/plugins/wp-smushit/

• kompresja plików SVG - minifikacja kodu, zmniejszenie dokładności krzywych

Page 57: Word up łódź   kwiecień 2015

Optymalizacja grafik• tinypng.com

https://wordpress.org/plugins/tiny-compress-images/

• tinyjpg.com ta sama wtyczka co wyżej ;)

• Wtyczka WP smush.it - stała się płatna :( https://wordpress.org/plugins/wp-smushit/

• kompresja plików SVG - minifikacja kodu, zmniejszenie dokładności krzywych

Page 58: Word up łódź   kwiecień 2015

CSS Sprites• Umieszczamy obrazki w jednym pliku i modyfikując

background-position wyświetlamy odpowiedni fragment dużej grafiki

• Redukują ilość zapytań do serwera

• Można zrobić to samo z SVG: https://css-tricks.com/svg-sprites-use-better-icon-fonts/

Page 59: Word up łódź   kwiecień 2015

CSS Sprites• Umieszczamy obrazki w jednym pliku i modyfikując

background-position wyświetlamy odpowiedni fragment dużej grafiki

• Redukują ilość zapytań do serwera

• Można zrobić to samo z SVG: https://css-tricks.com/svg-sprites-use-better-icon-fonts/

Page 60: Word up łódź   kwiecień 2015

CSS Sprites• Umieszczamy obrazki w jednym pliku i modyfikując

background-position wyświetlamy odpowiedni fragment dużej grafiki

• Redukują ilość zapytań do serwera

• Można zrobić to samo z SVG: https://css-tricks.com/svg-sprites-use-better-icon-fonts/

Page 61: Word up łódź   kwiecień 2015

Zorro SVG

Źródło: http://quasimondo.com/ZorroSVG/

• Pozwala uzyskać przezroczyste grafiki zbliżone rozmiarem do plików JPG

• Wymaga do działania wsparcia dla SVG (IE9+, 93% pokrycia rynku przeglądarek)

Page 62: Word up łódź   kwiecień 2015

Zorro SVG

Źródło: http://quasimondo.com/ZorroSVG/

• Pozwala uzyskać przezroczyste grafiki zbliżone rozmiarem do plików JPG

• Wymaga do działania wsparcia dla SVG (IE9+, 93% pokrycia rynku przeglądarek)

Page 63: Word up łódź   kwiecień 2015

Rozmiar HTML/CSS/JS

• Minifikacja - wtyczka Better WordPress Minify i WP HTML Compressionhttps://wordpress.org/plugins/bwp-minify/ https://wordpress.org/plugins/wp-html-compression/

• Unikanie zbyt wielu wtyczek (większość ma swoje pliki CSS i JavaScript)

Page 64: Word up łódź   kwiecień 2015

Rozmiar HTML/CSS/JS

• Minifikacja - wtyczka Better WordPress Minify i WP HTML Compressionhttps://wordpress.org/plugins/bwp-minify/ https://wordpress.org/plugins/wp-html-compression/

• Unikanie zbyt wielu wtyczek (większość ma swoje pliki CSS i JavaScript)

Page 65: Word up łódź   kwiecień 2015

Rozmiar fontów• Optymalizacja poprzez wspierane zestawy znaków

(parametr subset) https://fonts.googleapis.com/css?family=Lobster&subset=latin,latin-ext

• Optymalizacja poprzez ograniczenie się do wybranych znaków (parametr text) https://fonts.googleapis.com/css?family=Lobster&text=JAVASCRIPT

Page 66: Word up łódź   kwiecień 2015

Rozmiar fontów• Optymalizacja poprzez wspierane zestawy znaków

(parametr subset) https://fonts.googleapis.com/css?family=Lobster&subset=latin,latin-ext

• Optymalizacja poprzez ograniczenie się do wybranych znaków (parametr text) https://fonts.googleapis.com/css?family=Lobster&text=JAVASCRIPT

Page 67: Word up łódź   kwiecień 2015

Rozmiar fontów• Optymalizacja poprzez wspierane zestawy znaków

(parametr subset) https://fonts.googleapis.com/css?family=Lobster&subset=latin,latin-ext

• Optymalizacja poprzez ograniczenie się do wybranych znaków (parametr text) https://fonts.googleapis.com/css?family=Lobster&text=JAVASCRIPT

• Wykorzystanie localStorage do przechowywania fontówhttp://www.sitepoint.com/improving-font-performance-subsetting-local-storage/

Page 68: Word up łódź   kwiecień 2015

Zewnętrzne usługi

• Social mediahttp://www.sitepoint.com/social-sharing-hidden-costs/http://www.sitepoint.com/social-media-button-links/

• Gravatarhttp://www.wpbeginner.com/beginners-guide/how-to-disable-gravatars-in-wordpress/

• Youtube, Vimeo etc.

Page 69: Word up łódź   kwiecień 2015

Zewnętrzne usługi

• Social mediahttp://www.sitepoint.com/social-sharing-hidden-costs/http://www.sitepoint.com/social-media-button-links/

• Gravatarhttp://www.wpbeginner.com/beginners-guide/how-to-disable-gravatars-in-wordpress/

Youtube, Vimeo etc.

Page 70: Word up łódź   kwiecień 2015

Zewnętrzne usługi

• Social mediahttp://www.sitepoint.com/social-sharing-hidden-costs/http://www.sitepoint.com/social-media-button-links/

• Gravatarhttp://www.wpbeginner.com/beginners-guide/how-to-disable-gravatars-in-wordpress/

• Youtube, Vimeo etc. http://www.newmediacampaigns.com/blog/lazyytjs-a-jquery-plugin-to-lazy-load-youtube-videos

Page 71: Word up łódź   kwiecień 2015

Szybkość odpowiedzi serwera

Page 72: Word up łódź   kwiecień 2015

Cache przeglądarki<FilesMatch "\.(gif|jpg|jpeg|png|swf|pdf|css|js|html|ico?|xml|txt)$">

FileETag none</FilesMatch><IfModule mod_expires.c> ExpiresActive on ExpiresDefault "access plus 1 month" ExpiresByType text/cache-manifest "access plus 0 seconds" ExpiresByType text/html "access plus 0 seconds" ExpiresByType text/xml "access plus 0 seconds" ExpiresByType application/xml "access plus 0 seconds" ExpiresByType application/json "access plus 0 seconds" ExpiresByType application/rss+xml "access plus 1 hour" ExpiresByType image/x-icon "access plus 1 week" ExpiresByType image/gif "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType image/jpg "access plus 1 month" ExpiresByType image/jpeg "access plus 1 month" ExpiresByType video/ogg "access plus 1 month" ExpiresByType audio/ogg "access plus 1 month" ExpiresByType video/mp4 "access plus 1 month" ExpiresByType video/webm "access plus 1 month" ExpiresByType text/x-component "access plus 1 month" ExpiresByType font/truetype "access plus 1 month" ExpiresByType font/opentype "access plus 1 month" ExpiresByType application/x-font-woff "access plus 1 month" ExpiresByType image/svg+xml "access plus 1 month" ExpiresByType application/vnd.ms-fontobject "access plus 1 month" ExpiresByType text/css "access plus 1 year" ExpiresByType application/javascript "access plus 1 year" ExpiresByType text/javascript "access plus 1 year" <IfModule mod_headers.c> Header append Cache-Control "public" </IfModule></IfModule>

Page 73: Word up łódź   kwiecień 2015

CDN?• Opłaca się gdy mamy odwiedziny z różnych

rejonów świata

• Należy pamiętać, że kod na serwerze CDN może w wyniku ataku zostać podmieniony - dlatego lepiej korzystać z rozwiązań dużych graczy

• Popularne usługi CDN: Amazon Cloudfront, MaxCDN, Cloudflare

Page 74: Word up łódź   kwiecień 2015

CDN?• Opłaca się gdy mamy odwiedziny z różnych

rejonów świata

• Należy pamiętać, że kod na serwerze CDN może w wyniku ataku zostać podmieniony - dlatego lepiej korzystać z rozwiązań dużych graczy

• Popularne usługi CDN: Amazon Cloudfront, MaxCDN, Cloudflare

Page 75: Word up łódź   kwiecień 2015

CDN?• Opłaca się gdy mamy odwiedziny z różnych

rejonów świata

• Należy pamiętać, że kod na serwerze CDN może w wyniku ataku zostać podmieniony - dlatego lepiej korzystać z rozwiązań dużych graczy

• Popularne usługi CDN: Amazon Cloudfront, MaxCDN, Cloudflare

Page 76: Word up łódź   kwiecień 2015

HSTS

Page 77: Word up łódź   kwiecień 2015

HSTS

HTTP GET /

Page 78: Word up łódź   kwiecień 2015

HSTS

HTTP GET /

HTTP 301Location: https://strona.pl/

Page 79: Word up łódź   kwiecień 2015

HSTS

HTTP GET /

HTTP 301Location: https://strona.pl/

HTTPS GET /

Page 80: Word up łódź   kwiecień 2015

HSTS• Zmniejsza ilość zapytań do serwera

https://www.chromium.org/hsts

• Wymaga pełnego wsparcia SSL na stronie

• Nasza domena może działać tylko po HTTPS po dodaniu domeny na: https://hstspreload.appspot.com/

• Zwiększa bezpieczeństwo chroniąc np. przed atakami typu MiTMhttp://sekurak.pl/hsts-czyli-http-strict-transport-security/

Page 81: Word up łódź   kwiecień 2015

HSTS• Zmniejsza ilość zapytań do serwera

https://www.chromium.org/hsts

• Wymaga pełnego wsparcia SSL na stronie

• Nasza domena może działać tylko po HTTPS po dodaniu domeny na: https://hstspreload.appspot.com/

• Zwiększa bezpieczeństwo chroniąc np. przed atakami typu MiTMhttp://sekurak.pl/hsts-czyli-http-strict-transport-security/

Page 82: Word up łódź   kwiecień 2015

HSTS• Zmniejsza ilość zapytań do serwera

https://www.chromium.org/hsts

• Wymaga pełnego wsparcia SSL na stronie

• Nasza domena może działać tylko po HTTPS po dodaniu domeny na: https://hstspreload.appspot.com/

• Zwiększa bezpieczeństwo chroniąc np. przed atakami typu MiTMhttp://sekurak.pl/hsts-czyli-http-strict-transport-security/

Page 83: Word up łódź   kwiecień 2015

HSTS• Zmniejsza ilość zapytań do serwera

https://www.chromium.org/hsts

• Wymaga pełnego wsparcia SSL na stronie

• Nasza domena może działać tylko po HTTPS po dodaniu domeny na: https://hstspreload.appspot.com/

• Zwiększa bezpieczeństwo chroniąc np. przed atakami typu MiTMhttp://sekurak.pl/hsts-czyli-http-strict-transport-security/

Page 84: Word up łódź   kwiecień 2015

HSTS

Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

Dodajemy w .htaccess:

Page 85: Word up łódź   kwiecień 2015

Sposób renderowania strony

Page 86: Word up łódź   kwiecień 2015

Sposób renderowania strony

• Skrypty powinny być ładowane zawsze na końcu

• Natychmiastowe wyświetlanie fragmentu strony widocznego na ekranie - unikamy FOUC

• Do kompresji kodu CSS w sekcji <head> można użyć np. http://refresh-sf.com/

Page 87: Word up łódź   kwiecień 2015

Sposób renderowania strony

• Skrypty powinny być ładowane zawsze na końcu

• Natychmiastowe wyświetlanie fragmentu strony widocznego na ekranie - unikamy FOUC https://adactio.com/journal/8504 - grunt-criticalcss

• Do kompresji kodu CSS w sekcji <head> można użyć np. http://refresh-sf.com/

Page 88: Word up łódź   kwiecień 2015

Sposób renderowania strony

• Skrypty powinny być ładowane zawsze na końcu

• Natychmiastowe wyświetlanie fragmentu strony widocznego na ekranie - unikamy FOUC https://adactio.com/journal/8504 - grunt-criticalcss

• Do kompresji kodu CSS w sekcji <head> można użyć np. http://refresh-sf.com/

Page 89: Word up łódź   kwiecień 2015

<script>var cb = function() {     var l0 = '<link rel="stylesheet" href=“style1.css”>’;     var l1 = '<link rel="stylesheet" href=“style2.css">';         var l2 = '<link rel="stylesheet" href=“style3.css">';         var h = document.getElementsByTagName('head')[0];     h.innerHTML += l0 + l1 + l2;};var raf = requestAnimationFrame || mozRequestAnimationFrame ||  webkitRequestAnimationFrame || msRequestAnimationFrame;if (raf) raf(cb);else window.addEventListener('load', cb);</script>

Page 90: Word up łódź   kwiecień 2015

<script>var cb = function() {     var l0 = '<link rel="stylesheet" href=“style1.css”>’;     var l1 = '<link rel="stylesheet" href=“style2.css">';         var l2 = '<link rel="stylesheet" href=“style3.css">';         var h = document.getElementsByTagName('head')[0];     h.innerHTML += l0 + l1 + l2;};var raf = requestAnimationFrame || mozRequestAnimationFrame ||  webkitRequestAnimationFrame || msRequestAnimationFrame;if (raf) raf(cb);else window.addEventListener('load', cb);</script>

Page 91: Word up łódź   kwiecień 2015

<script>var cb = function() {     var l0 = '<link rel="stylesheet" href=“style1.css”>’;     var l1 = '<link rel="stylesheet" href=“style2.css">';         var l2 = '<link rel="stylesheet" href=“style3.css">';         var h = document.getElementsByTagName('head')[0];     h.innerHTML += l0 + l1 + l2;};var raf = requestAnimationFrame || mozRequestAnimationFrame ||  webkitRequestAnimationFrame || msRequestAnimationFrame;if (raf) raf(cb);else window.addEventListener('load', cb);</script>

Page 92: Word up łódź   kwiecień 2015

add_filter('style_loader_src', 'td_style_loader_src', 10, 2);

function td_style_loader_src($src, $handle) {     if(!is_admin() && stripos($src, ‘XXXXXX’) === FALSE) {          return false;     } else {          return $src;     }}

Page 93: Word up łódź   kwiecień 2015

add_filter('script_loader_src', 'td_script_loader_src', 10, 2);

function td_script_loader_src($src, $handle) {     if(!is_admin() && stripos($src, ‘XXXXXX’) === FALSE) {          return false;     } else {          return $src;     }}

Page 94: Word up łódź   kwiecień 2015

Można też sprawić, że wolno ładujące się elementy wyglądają na ładujące się szybciej

http://blog.placeit.net/ux-tactics-make-slow-things-seem-faster/

Gdy inne metody zawiodą

Page 95: Word up łódź   kwiecień 2015

Trzeba poczekać na szybsze protokoły transmisji danych ;-)

http://techcrunch.com/2015/04/18/google-wants-to-speed-up-the-web-with-its-quic-protocol/

Gdy inne metody zawiodą

Page 96: Word up łódź   kwiecień 2015

Pytania?

Page 97: Word up łódź   kwiecień 2015

Tomasz Dziuda

Lead Developer @

@dziudek

http://dziudek.pl

[email protected]