SlideShare a Scribd company logo
1 of 76
Download to read offline
Czas (wczytywania) to
(czasem) pieniądz
Tomasz Dziuda
WordUp Warszawa @ 6.III.2015
Dlaczego?
• 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-
performance/
• 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-
performance/
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
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
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
Jak zbadać szybkość strony?
Źródło: https://developers.google.com/speed/pagespeed/insights/
Źródło: http://yslow.org/
Źródło: http://tools.pingdom.com/
Chrome DevTools
Co wpływa na szybkość strony?
1
1) Szybkość WordPressa
1 2
2) Ilość zapytań do serwera
1) Szybkość WordPressa
1 2
3
2) Ilość zapytań do serwera
3) Rozmiar strony
1) Szybkość WordPressa
1 2
3
4) Szybkość odpowiedzi serwera
4
2) Ilość zapytań do serwera
3) Rozmiar strony
1) Szybkość WordPressa
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
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
6
6) Wydajność strony po załadowaniu
Wersja dla geeków ;-)
https://github.com/alex/what-happens-when
Szybkość WordPressa
• 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
• 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.pdf
• W skrajnych wypadkach: profilowanie kodu

Prezentacja o profilowaniu kodu: https://prezi.com/wlegamdbtc8g/nie-daj-sie-zwolnic/
• 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
• 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.pdf
• W skrajnych wypadkach: profilowanie kodu

Prezentacja o profilowaniu kodu: https://prezi.com/wlegamdbtc8g/nie-daj-sie-zwolnic/
• 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
• 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.pdf
• W skrajnych wypadkach: profilowanie kodu

Prezentacja o profilowaniu kodu: https://prezi.com/wlegamdbtc8g/nie-daj-sie-zwolnic/
• 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
• 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.pdf
• W skrajnych wypadkach: profilowanie kodu

Prezentacja o profilowaniu kodu: https://prezi.com/wlegamdbtc8g/nie-daj-sie-zwolnic/
• 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
• 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.pdf
• W skrajnych wypadkach: profilowanie kodu

Prezentacja o profilowaniu kodu: https://prezi.com/wlegamdbtc8g/nie-daj-sie-zwolnic/
Ilość zapytań do serwera 

i rozmiar strony
Struktura typowej strony
Źródło: http://httparchive.org/interesting.php
Rozmiar grafik
Dobór odpowiedniego formatu
• JPG - większość zdjęć
• PNG24 lub PNG8 - przezroczystość
• GIF - animacje
• SVG - niezależność od rozdzielczości
Dobór odpowiedniego formatu
• JPG - większość zdjęć
• PNG24 lub PNG8 - przezroczystość
• GIF - animacje
• SVG - niezależność od rozdzielczości
Dobór odpowiedniego formatu
• JPG - większość zdjęć
• PNG24 lub PNG8 - przezroczystość
• GIF - animacje
• SVG - niezależność od rozdzielczości
Dobór odpowiedniego formatu
• JPG - większość zdjęć
• PNG24 lub PNG8 - przezroczystość
• GIF - animacje
• SVG - niezależność od rozdzielczości
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
Optymalizacja grafik
• tinypng.com
• tinyjpg.com
• Wtyczka WP smush.it

https://wordpress.org/plugins/wp-smushit/
• kompresja plików SVG - minifikacja kodu,
zmniejszenie dokładności krzywych
Optymalizacja grafik
• tinypng.com
• tinyjpg.com
• Wtyczka WP smush.it

https://wordpress.org/plugins/wp-smushit/
• kompresja plików SVG - minifikacja kodu,
zmniejszenie dokładności krzywych
Optymalizacja grafik
• tinypng.com
• tinyjpg.com
• Wtyczka WP smush.it

https://wordpress.org/plugins/wp-smushit/
• kompresja plików SVG - minifikacja kodu,
zmniejszenie dokładności krzywych
Optymalizacja grafik
• tinypng.com
• tinyjpg.com
• Wtyczka WP smush.it

https://wordpress.org/plugins/wp-smushit/
• kompresja plików SVG - minifikacja kodu,
zmniejszenie dokładności krzywych
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/
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/
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/
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)
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)
Rozmiar HTML/CSS/JS
• Minifikacja - wtyczka Better WordPress Minify i WP
HTML Compression

https://wordpress.org/plugins/bwp-minify/

https://wordpress.org/plugins/wp-html-compression/

• Unikanie zbyt wielu wtyczek (większość ma swoje
pliki CSS i JavaScript)
Rozmiar HTML/CSS/JS
• Minifikacja - wtyczka Better WordPress Minify i WP
HTML Compression

https://wordpress.org/plugins/bwp-minify/

https://wordpress.org/plugins/wp-html-compression/

• Unikanie zbyt wielu wtyczek (większość ma swoje
pliki CSS i JavaScript)
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
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
Szybkość odpowiedzi serwera
GZIP
SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html
Źródło: http://code.garyjones.co.uk/htaccess-tweaks-improve-site-speed
Cache przeglądarki# Patched on: %2013-%05-%02 %07:%May:%51
# Auto-patched by jbetolo
<FilesMatch ".(gif|jpg|jpeg|png|swf|pdf|css|js|html|ico?|xml|txt)$">
FileETag none
</FilesMatch>
<IfModule mod_expires.c>
ExpiresActive on
# Perhaps better to whitelist expires rules? Perhaps.
ExpiresDefault "access plus 1 month"
# cache.appcache needs re-requests in FF 3.6 (thx Remy ~Introducing HTML5)
ExpiresByType text/cache-manifest "access plus 0 seconds"
# Your document html
ExpiresByType text/html "access plus 0 seconds"
# Data
ExpiresByType text/xml "access plus 0 seconds"
ExpiresByType application/xml "access plus 0 seconds"
ExpiresByType application/json "access plus 0 seconds"
# RSS feed
ExpiresByType application/rss+xml "access plus 1 hour"
# Favicon (cannot be renamed)
ExpiresByType image/x-icon "access plus 1 week"
# Media: images, video, audio
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"
# HTC files (css3pie)
ExpiresByType text/x-component "access plus 1 month"
# Webfonts
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"
# CSS and JavaScript
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>
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
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
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
HSTS
• Zmniejsza ilość zapytań DNS

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 MiTM

http://sekurak.pl/hsts-czyli-http-strict-transport-security/
HSTS
• Zmniejsza ilość zapytań DNS

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 MiTM

http://sekurak.pl/hsts-czyli-http-strict-transport-security/
HSTS
• Zmniejsza ilość zapytań DNS

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 MiTM

http://sekurak.pl/hsts-czyli-http-strict-transport-security/
HSTS
• Zmniejsza ilość zapytań DNS

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 MiTM

http://sekurak.pl/hsts-czyli-http-strict-transport-security/
HSTS
• Zmniejsza ilość zapytań DNS

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 MiTM

http://sekurak.pl/hsts-czyli-http-strict-transport-security/
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
Sposób renderowania strony
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/
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/
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/
<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>
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;
     }
}
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;
     }
}
Wydajność strony po
załadowaniu
Wydajność JS i CSS
• Na starszych urządzeniach samo parsowanie jQuery
może zająć kilkaset milisekund

http://timkadlec.com/2014/09/js-parse-and-execution-time/

• Zoptymalizowane selektory CSS też mogą pomóc

http://benfrain.com/css-performance-revisited-selectors-bloat-expensive-styles/

• Warto rozważyć usunięcie nieużywanego kodu JS i CSS
Wydajność JS i CSS
• Na starszych urządzeniach samo parsowanie jQuery
może zająć kilkaset milisekund

http://timkadlec.com/2014/09/js-parse-and-execution-time/

• Zoptymalizowane selektory CSS też mogą pomóc

http://benfrain.com/css-performance-revisited-selectors-bloat-expensive-styles/

Warto rozważyć usunięcie nieużywanego kodu JS i CSS
Wydajność JS i CSS
• Na starszych urządzeniach samo parsowanie jQuery
może zająć kilkaset milisekund

http://timkadlec.com/2014/09/js-parse-and-execution-time/

• Zoptymalizowane selektory CSS też mogą pomóc

http://benfrain.com/css-performance-revisited-selectors-bloat-expensive-styles/

• Warto rozważyć usunięcie nieużywanego kodu JS i CSS
Wydajność JS i CSS
• Wydajność właściwości CSS: http://csstriggers.com/
• FLIP dla animacji: http://aerotwist.com/blog/flip-your-
animations/
Wydajność JS i CSS
• Wydajność właściwości CSS: http://csstriggers.com/
• FLIP dla animacji: http://aerotwist.com/blog/flip-your-
animations/
Optymalizacja struktury DOM
Źródło: http://httparchive.org/interesting.php
Lektura
• http://timkadlec.com/2014/09/js-parse-and-
execution-time/
• http://jankfree.org/
• http://calendar.perfplanet.com/2013/the-runtime-
performance-checklist/
• https://developers.google.com/web/fundamentals/
performance/critical-rendering-path/
Pytania?
Tomasz Dziuda
Lead Developer @
@dziudek
http://dziudek.pl
dziudek@gavick.com

More Related Content

What's hot

Jak tworzyć motywy przyjazne użytkownikom i programistom - WordUp Silesia
Jak tworzyć motywy przyjazne użytkownikom i programistom - WordUp SilesiaJak tworzyć motywy przyjazne użytkownikom i programistom - WordUp Silesia
Jak tworzyć motywy przyjazne użytkownikom i programistom - WordUp SilesiaTomasz Dziuda
 
Statycznie czy dynamicznie - infoMEET Wrocław
Statycznie czy dynamicznie - infoMEET WrocławStatycznie czy dynamicznie - infoMEET Wrocław
Statycznie czy dynamicznie - infoMEET WrocławTomasz Dziuda
 
Statycznie czy dynamicznie?
Statycznie czy dynamicznie?Statycznie czy dynamicznie?
Statycznie czy dynamicznie?Tomasz Dziuda
 
Jak Twoja strona może wygenerować niespodziewane koszta
Jak Twoja strona może wygenerować niespodziewane kosztaJak Twoja strona może wygenerować niespodziewane koszta
Jak Twoja strona może wygenerować niespodziewane kosztaTomasz Dziuda
 
Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa
Motywy dla WordPressa - historia prawdziwa - WordUp WarszawaMotywy dla WordPressa - historia prawdziwa - WordUp Warszawa
Motywy dla WordPressa - historia prawdziwa - WordUp WarszawaTomasz Dziuda
 
Wielomilonowy ruch na wordpressie wordpress wordcamp gdynia 2016
Wielomilonowy ruch na wordpressie   wordpress wordcamp gdynia 2016Wielomilonowy ruch na wordpressie   wordpress wordcamp gdynia 2016
Wielomilonowy ruch na wordpressie wordpress wordcamp gdynia 2016Lukasz Wilczak
 
WP-API - teoria i praktyka - WordUp Łódź #4
WP-API - teoria i praktyka - WordUp Łódź #4WP-API - teoria i praktyka - WordUp Łódź #4
WP-API - teoria i praktyka - WordUp Łódź #4Tomasz Dziuda
 
Motywy dla WordPressa - historia prawdziwa - WordUp Katowice
Motywy dla WordPressa - historia prawdziwa - WordUp KatowiceMotywy dla WordPressa - historia prawdziwa - WordUp Katowice
Motywy dla WordPressa - historia prawdziwa - WordUp KatowiceTomasz Dziuda
 
Unikaj falstartów - o czym warto pamiętać przed uruchomieniem nowego bloga
Unikaj falstartów - o czym warto pamiętać przed uruchomieniem nowego blogaUnikaj falstartów - o czym warto pamiętać przed uruchomieniem nowego bloga
Unikaj falstartów - o czym warto pamiętać przed uruchomieniem nowego blogaBartosz Romanowski
 
Bezpieczna i szybka strona statyczna z funkcjonalnością Wordpressa. Czy to m...
Bezpieczna i szybka strona statyczna  z funkcjonalnością Wordpressa. Czy to m...Bezpieczna i szybka strona statyczna  z funkcjonalnością Wordpressa. Czy to m...
Bezpieczna i szybka strona statyczna z funkcjonalnością Wordpressa. Czy to m...Lukasz Wilczak
 
WordUp Kraków - maj 2015
WordUp Kraków - maj 2015WordUp Kraków - maj 2015
WordUp Kraków - maj 2015Tomasz Dziuda
 
WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom
WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistomWordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom
WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistomTomasz Dziuda
 
REST API - teoria i praktyka - WordUp Trójmiasto
REST API - teoria i praktyka - WordUp TrójmiastoREST API - teoria i praktyka - WordUp Trójmiasto
REST API - teoria i praktyka - WordUp TrójmiastoTomasz Dziuda
 
REST API - teoria i praktyka - WordUp Warszawa
REST API - teoria i praktyka - WordUp WarszawaREST API - teoria i praktyka - WordUp Warszawa
REST API - teoria i praktyka - WordUp WarszawaTomasz Dziuda
 
WordUp Trójmiasto - Sage 9 w praktyce
WordUp Trójmiasto - Sage 9 w praktyceWordUp Trójmiasto - Sage 9 w praktyce
WordUp Trójmiasto - Sage 9 w praktyceDawid Urbański
 
Wtyczkowe kompendium - WordUp Warszawa
Wtyczkowe kompendium - WordUp WarszawaWtyczkowe kompendium - WordUp Warszawa
Wtyczkowe kompendium - WordUp WarszawaTomasz Dziuda
 
Wtyczkowe Kompendium - WordUp Łódź #12
Wtyczkowe Kompendium - WordUp Łódź #12Wtyczkowe Kompendium - WordUp Łódź #12
Wtyczkowe Kompendium - WordUp Łódź #12Tomasz Dziuda
 
SEO na WordPressie - czemu zielone swiatelko w Yoast nie zalatwia sprawy
SEO na WordPressie - czemu zielone swiatelko w Yoast nie zalatwia sprawySEO na WordPressie - czemu zielone swiatelko w Yoast nie zalatwia sprawy
SEO na WordPressie - czemu zielone swiatelko w Yoast nie zalatwia sprawySzymon Słowik
 
Optymalizacja Wordpress jedną wtyczką - SEMURAI on AIR #1
Optymalizacja Wordpress jedną wtyczką - SEMURAI on AIR #1Optymalizacja Wordpress jedną wtyczką - SEMURAI on AIR #1
Optymalizacja Wordpress jedną wtyczką - SEMURAI on AIR #1Tomasz Stopka
 

What's hot (20)

Jak tworzyć motywy przyjazne użytkownikom i programistom - WordUp Silesia
Jak tworzyć motywy przyjazne użytkownikom i programistom - WordUp SilesiaJak tworzyć motywy przyjazne użytkownikom i programistom - WordUp Silesia
Jak tworzyć motywy przyjazne użytkownikom i programistom - WordUp Silesia
 
Statycznie czy dynamicznie - infoMEET Wrocław
Statycznie czy dynamicznie - infoMEET WrocławStatycznie czy dynamicznie - infoMEET Wrocław
Statycznie czy dynamicznie - infoMEET Wrocław
 
Statycznie czy dynamicznie?
Statycznie czy dynamicznie?Statycznie czy dynamicznie?
Statycznie czy dynamicznie?
 
Jak Twoja strona może wygenerować niespodziewane koszta
Jak Twoja strona może wygenerować niespodziewane kosztaJak Twoja strona może wygenerować niespodziewane koszta
Jak Twoja strona może wygenerować niespodziewane koszta
 
Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa
Motywy dla WordPressa - historia prawdziwa - WordUp WarszawaMotywy dla WordPressa - historia prawdziwa - WordUp Warszawa
Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa
 
Wielomilonowy ruch na wordpressie wordpress wordcamp gdynia 2016
Wielomilonowy ruch na wordpressie   wordpress wordcamp gdynia 2016Wielomilonowy ruch na wordpressie   wordpress wordcamp gdynia 2016
Wielomilonowy ruch na wordpressie wordpress wordcamp gdynia 2016
 
WP-API - teoria i praktyka - WordUp Łódź #4
WP-API - teoria i praktyka - WordUp Łódź #4WP-API - teoria i praktyka - WordUp Łódź #4
WP-API - teoria i praktyka - WordUp Łódź #4
 
Motywy dla WordPressa - historia prawdziwa - WordUp Katowice
Motywy dla WordPressa - historia prawdziwa - WordUp KatowiceMotywy dla WordPressa - historia prawdziwa - WordUp Katowice
Motywy dla WordPressa - historia prawdziwa - WordUp Katowice
 
Unikaj falstartów - o czym warto pamiętać przed uruchomieniem nowego bloga
Unikaj falstartów - o czym warto pamiętać przed uruchomieniem nowego blogaUnikaj falstartów - o czym warto pamiętać przed uruchomieniem nowego bloga
Unikaj falstartów - o czym warto pamiętać przed uruchomieniem nowego bloga
 
Bezpieczna i szybka strona statyczna z funkcjonalnością Wordpressa. Czy to m...
Bezpieczna i szybka strona statyczna  z funkcjonalnością Wordpressa. Czy to m...Bezpieczna i szybka strona statyczna  z funkcjonalnością Wordpressa. Czy to m...
Bezpieczna i szybka strona statyczna z funkcjonalnością Wordpressa. Czy to m...
 
WordUp Kraków - maj 2015
WordUp Kraków - maj 2015WordUp Kraków - maj 2015
WordUp Kraków - maj 2015
 
WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom
WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistomWordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom
WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom
 
REST API - teoria i praktyka - WordUp Trójmiasto
REST API - teoria i praktyka - WordUp TrójmiastoREST API - teoria i praktyka - WordUp Trójmiasto
REST API - teoria i praktyka - WordUp Trójmiasto
 
REST API - teoria i praktyka - WordUp Warszawa
REST API - teoria i praktyka - WordUp WarszawaREST API - teoria i praktyka - WordUp Warszawa
REST API - teoria i praktyka - WordUp Warszawa
 
WordUp Trójmiasto - Sage 9 w praktyce
WordUp Trójmiasto - Sage 9 w praktyceWordUp Trójmiasto - Sage 9 w praktyce
WordUp Trójmiasto - Sage 9 w praktyce
 
WordPress dla początkujących
WordPress dla początkującychWordPress dla początkujących
WordPress dla początkujących
 
Wtyczkowe kompendium - WordUp Warszawa
Wtyczkowe kompendium - WordUp WarszawaWtyczkowe kompendium - WordUp Warszawa
Wtyczkowe kompendium - WordUp Warszawa
 
Wtyczkowe Kompendium - WordUp Łódź #12
Wtyczkowe Kompendium - WordUp Łódź #12Wtyczkowe Kompendium - WordUp Łódź #12
Wtyczkowe Kompendium - WordUp Łódź #12
 
SEO na WordPressie - czemu zielone swiatelko w Yoast nie zalatwia sprawy
SEO na WordPressie - czemu zielone swiatelko w Yoast nie zalatwia sprawySEO na WordPressie - czemu zielone swiatelko w Yoast nie zalatwia sprawy
SEO na WordPressie - czemu zielone swiatelko w Yoast nie zalatwia sprawy
 
Optymalizacja Wordpress jedną wtyczką - SEMURAI on AIR #1
Optymalizacja Wordpress jedną wtyczką - SEMURAI on AIR #1Optymalizacja Wordpress jedną wtyczką - SEMURAI on AIR #1
Optymalizacja Wordpress jedną wtyczką - SEMURAI on AIR #1
 

Viewers also liked

Statycznie czy dynamicznie? v.2.0
Statycznie czy dynamicznie? v.2.0Statycznie czy dynamicznie? v.2.0
Statycznie czy dynamicznie? v.2.0Tomasz Dziuda
 
Presentacion
PresentacionPresentacion
PresentacionG Garcia
 
Diari del 22 de juliol de 2015
Diari del 22 de juliol de 2015Diari del 22 de juliol de 2015
Diari del 22 de juliol de 2015diarimes
 
Franquicias Hoy, número 168. Enero 2011
Franquicias Hoy, número 168. Enero 2011Franquicias Hoy, número 168. Enero 2011
Franquicias Hoy, número 168. Enero 2011Franquicias Hoy
 
Aleksandra Łączek – Niezbędnik Admina
Aleksandra Łączek – Niezbędnik AdminaAleksandra Łączek – Niezbędnik Admina
Aleksandra Łączek – Niezbędnik AdminaArkadiusz Stęplowski
 
Optymalizacja Magento pod Page Speed - Google
Optymalizacja Magento pod Page Speed - GoogleOptymalizacja Magento pod Page Speed - Google
Optymalizacja Magento pod Page Speed - GoogleAurora Creation
 
Webinar: 5 Tricks for WordPress web administrators
Webinar: 5 Tricks for WordPress web administratorsWebinar: 5 Tricks for WordPress web administrators
Webinar: 5 Tricks for WordPress web administratorsTomasz Dziuda
 
Za darmo nie umarło - WordCamp Wrocław
Za darmo nie umarło - WordCamp WrocławZa darmo nie umarło - WordCamp Wrocław
Za darmo nie umarło - WordCamp WrocławTomasz Dziuda
 
Wordpress - czyli ponad 17% wszystkich istniejących serwisów www
Wordpress - czyli ponad 17% wszystkich istniejących serwisów wwwWordpress - czyli ponad 17% wszystkich istniejących serwisów www
Wordpress - czyli ponad 17% wszystkich istniejących serwisów wwwB-MIND Software House
 
Najpopularniejsze wtyczki WooCommerce
Najpopularniejsze wtyczki WooCommerceNajpopularniejsze wtyczki WooCommerce
Najpopularniejsze wtyczki WooCommerceMaciej Swoboda
 
Strategic Management Function of Grameenphone
Strategic Management Function of  GrameenphoneStrategic Management Function of  Grameenphone
Strategic Management Function of GrameenphoneMd Saddam Hosen
 
Controle estatístico de processo - CEP
Controle estatístico de processo - CEPControle estatístico de processo - CEP
Controle estatístico de processo - CEPDavid Marcus Mápelli
 
Model-Driven Development of Semantic Mashup Applications with the Open-Source...
Model-Driven Development of Semantic Mashup Applications with the Open-Source...Model-Driven Development of Semantic Mashup Applications with the Open-Source...
Model-Driven Development of Semantic Mashup Applications with the Open-Source...InfoGrid.org
 
Gdzie są umiejscowione polskie wordpressy
Gdzie są umiejscowione polskie wordpressyGdzie są umiejscowione polskie wordpressy
Gdzie są umiejscowione polskie wordpressyArkadiusz Stęplowski
 
Messaging in 2010: New Ways to Talk with Donors about Your Good Cause
Messaging in 2010: New Ways to Talk with Donors about Your Good CauseMessaging in 2010: New Ways to Talk with Donors about Your Good Cause
Messaging in 2010: New Ways to Talk with Donors about Your Good CauseKivi Leroux Miller
 

Viewers also liked (20)

WordCamp Praga 2015
WordCamp Praga 2015WordCamp Praga 2015
WordCamp Praga 2015
 
Daj się wyręczyć
Daj się wyręczyćDaj się wyręczyć
Daj się wyręczyć
 
Statycznie czy dynamicznie? v.2.0
Statycznie czy dynamicznie? v.2.0Statycznie czy dynamicznie? v.2.0
Statycznie czy dynamicznie? v.2.0
 
Presentacion
PresentacionPresentacion
Presentacion
 
Diari del 22 de juliol de 2015
Diari del 22 de juliol de 2015Diari del 22 de juliol de 2015
Diari del 22 de juliol de 2015
 
Franquicias Hoy, número 168. Enero 2011
Franquicias Hoy, número 168. Enero 2011Franquicias Hoy, número 168. Enero 2011
Franquicias Hoy, número 168. Enero 2011
 
Imagebroschüre Kongressallianz
Imagebroschüre Kongressallianz Imagebroschüre Kongressallianz
Imagebroschüre Kongressallianz
 
Aleksandra Łączek – Niezbędnik Admina
Aleksandra Łączek – Niezbędnik AdminaAleksandra Łączek – Niezbędnik Admina
Aleksandra Łączek – Niezbędnik Admina
 
Optymalizacja Magento pod Page Speed - Google
Optymalizacja Magento pod Page Speed - GoogleOptymalizacja Magento pod Page Speed - Google
Optymalizacja Magento pod Page Speed - Google
 
Webinar: 5 Tricks for WordPress web administrators
Webinar: 5 Tricks for WordPress web administratorsWebinar: 5 Tricks for WordPress web administrators
Webinar: 5 Tricks for WordPress web administrators
 
Za darmo nie umarło - WordCamp Wrocław
Za darmo nie umarło - WordCamp WrocławZa darmo nie umarło - WordCamp Wrocław
Za darmo nie umarło - WordCamp Wrocław
 
Wordpress - czyli ponad 17% wszystkich istniejących serwisów www
Wordpress - czyli ponad 17% wszystkich istniejących serwisów wwwWordpress - czyli ponad 17% wszystkich istniejących serwisów www
Wordpress - czyli ponad 17% wszystkich istniejących serwisów www
 
JSztuczki
JSztuczkiJSztuczki
JSztuczki
 
Najpopularniejsze wtyczki WooCommerce
Najpopularniejsze wtyczki WooCommerceNajpopularniejsze wtyczki WooCommerce
Najpopularniejsze wtyczki WooCommerce
 
Strategic Management Function of Grameenphone
Strategic Management Function of  GrameenphoneStrategic Management Function of  Grameenphone
Strategic Management Function of Grameenphone
 
Controle estatístico de processo - CEP
Controle estatístico de processo - CEPControle estatístico de processo - CEP
Controle estatístico de processo - CEP
 
Model-Driven Development of Semantic Mashup Applications with the Open-Source...
Model-Driven Development of Semantic Mashup Applications with the Open-Source...Model-Driven Development of Semantic Mashup Applications with the Open-Source...
Model-Driven Development of Semantic Mashup Applications with the Open-Source...
 
Gdzie są umiejscowione polskie wordpressy
Gdzie są umiejscowione polskie wordpressyGdzie są umiejscowione polskie wordpressy
Gdzie są umiejscowione polskie wordpressy
 
LA UTOPÍA NO ESTÁ ADELANTE
LA UTOPÍA NO ESTÁ ADELANTELA UTOPÍA NO ESTÁ ADELANTE
LA UTOPÍA NO ESTÁ ADELANTE
 
Messaging in 2010: New Ways to Talk with Donors about Your Good Cause
Messaging in 2010: New Ways to Talk with Donors about Your Good CauseMessaging in 2010: New Ways to Talk with Donors about Your Good Cause
Messaging in 2010: New Ways to Talk with Donors about Your Good Cause
 

Similar to Word up warszawa 2015

W3 Total Cache - skuteczne przyśpieszanie WordPressa
W3 Total Cache - skuteczne przyśpieszanie WordPressaW3 Total Cache - skuteczne przyśpieszanie WordPressa
W3 Total Cache - skuteczne przyśpieszanie WordPressaBartosz Romanowski
 
Responsive Web Design - kto mało pyta, nie błądzi
Responsive Web Design - kto mało pyta, nie błądziResponsive Web Design - kto mało pyta, nie błądzi
Responsive Web Design - kto mało pyta, nie błądziJakub Wiśniewski
 
Daj się wyręczyć - Joomla Day Polska 2014
Daj się wyręczyć - Joomla Day Polska 2014Daj się wyręczyć - Joomla Day Polska 2014
Daj się wyręczyć - Joomla Day Polska 2014Tomasz Dziuda
 
Błędy userów, niedoróbki koderów
Błędy userów, niedoróbki koderówBłędy userów, niedoróbki koderów
Błędy userów, niedoróbki koderówArkadiusz Stęplowski
 
Wszystko, co chciałbyś wiedzieć 
o WooCommerce, ale bałeś się zapytać
Wszystko, co chciałbyś wiedzieć 
o WooCommerce, ale bałeś się zapytaćWszystko, co chciałbyś wiedzieć 
o WooCommerce, ale bałeś się zapytać
Wszystko, co chciałbyś wiedzieć 
o WooCommerce, ale bałeś się zapytaćMaciej Swoboda
 
The story of GOG.com Cache - PHPers 2014 ( PL )
 The story of GOG.com Cache - PHPers 2014 ( PL ) The story of GOG.com Cache - PHPers 2014 ( PL )
The story of GOG.com Cache - PHPers 2014 ( PL )GOG.com dev team
 
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegroallegro.tech
 
4Developers 2015: Szybciej niż Struś Pędziwiatr - WebSockets w aplikacjach we...
4Developers 2015: Szybciej niż Struś Pędziwiatr - WebSockets w aplikacjach we...4Developers 2015: Szybciej niż Struś Pędziwiatr - WebSockets w aplikacjach we...
4Developers 2015: Szybciej niż Struś Pędziwiatr - WebSockets w aplikacjach we...PROIDEA
 
The story of GOG.com Cache - 4developers 2014 ( PL )
The story of GOG.com Cache - 4developers 2014 ( PL )The story of GOG.com Cache - 4developers 2014 ( PL )
The story of GOG.com Cache - 4developers 2014 ( PL )GOG.com dev team
 
WP-API - teoria i praktyka - WordUp Trójmiasto #2
WP-API - teoria i praktyka - WordUp Trójmiasto #2WP-API - teoria i praktyka - WordUp Trójmiasto #2
WP-API - teoria i praktyka - WordUp Trójmiasto #2Tomasz Dziuda
 
(node.js) Web development - prościej (pl)
(node.js) Web development - prościej (pl)(node.js) Web development - prościej (pl)
(node.js) Web development - prościej (pl)Mateusz Kwasniewski
 
Zabezpiecz swoją stronę w Joomla!
Zabezpiecz swoją stronę w Joomla!Zabezpiecz swoją stronę w Joomla!
Zabezpiecz swoją stronę w Joomla!Wojciech Klocek
 

Similar to Word up warszawa 2015 (20)

Feo w-joomla
Feo w-joomlaFeo w-joomla
Feo w-joomla
 
Wydajny frontend 2023
Wydajny frontend 2023Wydajny frontend 2023
Wydajny frontend 2023
 
W3 Total Cache - skuteczne przyśpieszanie WordPressa
W3 Total Cache - skuteczne przyśpieszanie WordPressaW3 Total Cache - skuteczne przyśpieszanie WordPressa
W3 Total Cache - skuteczne przyśpieszanie WordPressa
 
Responsive Web Design - kto mało pyta, nie błądzi
Responsive Web Design - kto mało pyta, nie błądziResponsive Web Design - kto mało pyta, nie błądzi
Responsive Web Design - kto mało pyta, nie błądzi
 
Daj się wyręczyć - Joomla Day Polska 2014
Daj się wyręczyć - Joomla Day Polska 2014Daj się wyręczyć - Joomla Day Polska 2014
Daj się wyręczyć - Joomla Day Polska 2014
 
Błędy userów, niedoróbki koderów
Błędy userów, niedoróbki koderówBłędy userów, niedoróbki koderów
Błędy userów, niedoróbki koderów
 
Wszystko, co chciałbyś wiedzieć 
o WooCommerce, ale bałeś się zapytać
Wszystko, co chciałbyś wiedzieć 
o WooCommerce, ale bałeś się zapytaćWszystko, co chciałbyś wiedzieć 
o WooCommerce, ale bałeś się zapytać
Wszystko, co chciałbyś wiedzieć 
o WooCommerce, ale bałeś się zapytać
 
Jaki hosting pod wordpressa
Jaki hosting pod wordpressaJaki hosting pod wordpressa
Jaki hosting pod wordpressa
 
The story of GOG.com Cache - PHPers 2014 ( PL )
 The story of GOG.com Cache - PHPers 2014 ( PL ) The story of GOG.com Cache - PHPers 2014 ( PL )
The story of GOG.com Cache - PHPers 2014 ( PL )
 
Środowisko PWA
Środowisko PWAŚrodowisko PWA
Środowisko PWA
 
JavaScript, Moduły
JavaScript, ModułyJavaScript, Moduły
JavaScript, Moduły
 
W 3 sekundy do setki
W 3 sekundy do setkiW 3 sekundy do setki
W 3 sekundy do setki
 
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
 
Jaki framework wybrać
Jaki framework wybraćJaki framework wybrać
Jaki framework wybrać
 
4Developers 2015: Szybciej niż Struś Pędziwiatr - WebSockets w aplikacjach we...
4Developers 2015: Szybciej niż Struś Pędziwiatr - WebSockets w aplikacjach we...4Developers 2015: Szybciej niż Struś Pędziwiatr - WebSockets w aplikacjach we...
4Developers 2015: Szybciej niż Struś Pędziwiatr - WebSockets w aplikacjach we...
 
The story of GOG.com Cache - 4developers 2014 ( PL )
The story of GOG.com Cache - 4developers 2014 ( PL )The story of GOG.com Cache - 4developers 2014 ( PL )
The story of GOG.com Cache - 4developers 2014 ( PL )
 
WP-API - teoria i praktyka - WordUp Trójmiasto #2
WP-API - teoria i praktyka - WordUp Trójmiasto #2WP-API - teoria i praktyka - WordUp Trójmiasto #2
WP-API - teoria i praktyka - WordUp Trójmiasto #2
 
(node.js) Web development - prościej (pl)
(node.js) Web development - prościej (pl)(node.js) Web development - prościej (pl)
(node.js) Web development - prościej (pl)
 
Zabezpiecz swoją stronę w Joomla!
Zabezpiecz swoją stronę w Joomla!Zabezpiecz swoją stronę w Joomla!
Zabezpiecz swoją stronę w Joomla!
 
Azure 101 warsztat v 1.1
Azure 101 warsztat v 1.1Azure 101 warsztat v 1.1
Azure 101 warsztat v 1.1
 

More from Tomasz Dziuda

Wtyczkowe Kompendium - WordUp Lublin
Wtyczkowe Kompendium - WordUp LublinWtyczkowe Kompendium - WordUp Lublin
Wtyczkowe Kompendium - WordUp LublinTomasz Dziuda
 
Wtyczkowe kompendium
Wtyczkowe kompendiumWtyczkowe kompendium
Wtyczkowe kompendiumTomasz Dziuda
 
Jak Twoja strona moze wygenerować niespodziewane koszta? WordUp Kraków
Jak Twoja strona moze wygenerować niespodziewane koszta? WordUp KrakówJak Twoja strona moze wygenerować niespodziewane koszta? WordUp Kraków
Jak Twoja strona moze wygenerować niespodziewane koszta? WordUp KrakówTomasz Dziuda
 
Jak nadążyć za światem front-endu?
Jak nadążyć za światem front-endu?Jak nadążyć za światem front-endu?
Jak nadążyć za światem front-endu?Tomasz Dziuda
 
WordUp Wrocław #3 2015
WordUp Wrocław #3 2015WordUp Wrocław #3 2015
WordUp Wrocław #3 2015Tomasz Dziuda
 
Jak tworzyć motywy przyjazne użytkownikom i programistom?
Jak tworzyć motywy przyjazne użytkownikom i programistom?Jak tworzyć motywy przyjazne użytkownikom i programistom?
Jak tworzyć motywy przyjazne użytkownikom i programistom?Tomasz Dziuda
 
Introduction to ECMAScript 2015
Introduction to ECMAScript 2015Introduction to ECMAScript 2015
Introduction to ECMAScript 2015Tomasz Dziuda
 

More from Tomasz Dziuda (8)

Trello w praktyce
Trello w praktyceTrello w praktyce
Trello w praktyce
 
Wtyczkowe Kompendium - WordUp Lublin
Wtyczkowe Kompendium - WordUp LublinWtyczkowe Kompendium - WordUp Lublin
Wtyczkowe Kompendium - WordUp Lublin
 
Wtyczkowe kompendium
Wtyczkowe kompendiumWtyczkowe kompendium
Wtyczkowe kompendium
 
Jak Twoja strona moze wygenerować niespodziewane koszta? WordUp Kraków
Jak Twoja strona moze wygenerować niespodziewane koszta? WordUp KrakówJak Twoja strona moze wygenerować niespodziewane koszta? WordUp Kraków
Jak Twoja strona moze wygenerować niespodziewane koszta? WordUp Kraków
 
Jak nadążyć za światem front-endu?
Jak nadążyć za światem front-endu?Jak nadążyć za światem front-endu?
Jak nadążyć za światem front-endu?
 
WordUp Wrocław #3 2015
WordUp Wrocław #3 2015WordUp Wrocław #3 2015
WordUp Wrocław #3 2015
 
Jak tworzyć motywy przyjazne użytkownikom i programistom?
Jak tworzyć motywy przyjazne użytkownikom i programistom?Jak tworzyć motywy przyjazne użytkownikom i programistom?
Jak tworzyć motywy przyjazne użytkownikom i programistom?
 
Introduction to ECMAScript 2015
Introduction to ECMAScript 2015Introduction to ECMAScript 2015
Introduction to ECMAScript 2015
 

Word up warszawa 2015

  • 1. Czas (wczytywania) to (czasem) pieniądz Tomasz Dziuda WordUp Warszawa @ 6.III.2015
  • 3. • 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- performance/
  • 4. • 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- performance/
  • 5. 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
  • 6. 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
  • 7. 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
  • 13. Co wpływa na szybkość strony?
  • 15. 1 2 2) Ilość zapytań do serwera 1) Szybkość WordPressa
  • 16. 1 2 3 2) Ilość zapytań do serwera 3) Rozmiar strony 1) Szybkość WordPressa
  • 17. 1 2 3 4) Szybkość odpowiedzi serwera 4 2) Ilość zapytań do serwera 3) Rozmiar strony 1) Szybkość WordPressa
  • 18. 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
  • 19. 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 6 6) Wydajność strony po załadowaniu
  • 20. Wersja dla geeków ;-) https://github.com/alex/what-happens-when
  • 22. • 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 • 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.pdf • W skrajnych wypadkach: profilowanie kodu
 Prezentacja o profilowaniu kodu: https://prezi.com/wlegamdbtc8g/nie-daj-sie-zwolnic/
  • 23. • 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 • 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.pdf • W skrajnych wypadkach: profilowanie kodu
 Prezentacja o profilowaniu kodu: https://prezi.com/wlegamdbtc8g/nie-daj-sie-zwolnic/
  • 24. • 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 • 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.pdf • W skrajnych wypadkach: profilowanie kodu
 Prezentacja o profilowaniu kodu: https://prezi.com/wlegamdbtc8g/nie-daj-sie-zwolnic/
  • 25. • 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 • 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.pdf • W skrajnych wypadkach: profilowanie kodu
 Prezentacja o profilowaniu kodu: https://prezi.com/wlegamdbtc8g/nie-daj-sie-zwolnic/
  • 26. • 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 • 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.pdf • W skrajnych wypadkach: profilowanie kodu
 Prezentacja o profilowaniu kodu: https://prezi.com/wlegamdbtc8g/nie-daj-sie-zwolnic/
  • 27. Ilość zapytań do serwera 
 i rozmiar strony
  • 28. Struktura typowej strony Źródło: http://httparchive.org/interesting.php
  • 30. Dobór odpowiedniego formatu • JPG - większość zdjęć • PNG24 lub PNG8 - przezroczystość • GIF - animacje • SVG - niezależność od rozdzielczości
  • 31. Dobór odpowiedniego formatu • JPG - większość zdjęć • PNG24 lub PNG8 - przezroczystość • GIF - animacje • SVG - niezależność od rozdzielczości
  • 32. Dobór odpowiedniego formatu • JPG - większość zdjęć • PNG24 lub PNG8 - przezroczystość • GIF - animacje • SVG - niezależność od rozdzielczości
  • 33. Dobór odpowiedniego formatu • JPG - większość zdjęć • PNG24 lub PNG8 - przezroczystość • GIF - animacje • SVG - niezależność od rozdzielczości
  • 34.
  • 35. 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
  • 36. Optymalizacja grafik • tinypng.com • tinyjpg.com • Wtyczka WP smush.it
 https://wordpress.org/plugins/wp-smushit/ • kompresja plików SVG - minifikacja kodu, zmniejszenie dokładności krzywych
  • 37. Optymalizacja grafik • tinypng.com • tinyjpg.com • Wtyczka WP smush.it
 https://wordpress.org/plugins/wp-smushit/ • kompresja plików SVG - minifikacja kodu, zmniejszenie dokładności krzywych
  • 38. Optymalizacja grafik • tinypng.com • tinyjpg.com • Wtyczka WP smush.it
 https://wordpress.org/plugins/wp-smushit/ • kompresja plików SVG - minifikacja kodu, zmniejszenie dokładności krzywych
  • 39. Optymalizacja grafik • tinypng.com • tinyjpg.com • Wtyczka WP smush.it
 https://wordpress.org/plugins/wp-smushit/ • kompresja plików SVG - minifikacja kodu, zmniejszenie dokładności krzywych
  • 40. 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/
  • 41. 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/
  • 42. 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/
  • 43. 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)
  • 44. 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)
  • 45. Rozmiar HTML/CSS/JS • Minifikacja - wtyczka Better WordPress Minify i WP HTML Compression
 https://wordpress.org/plugins/bwp-minify/
 https://wordpress.org/plugins/wp-html-compression/
 • Unikanie zbyt wielu wtyczek (większość ma swoje pliki CSS i JavaScript)
  • 46. Rozmiar HTML/CSS/JS • Minifikacja - wtyczka Better WordPress Minify i WP HTML Compression
 https://wordpress.org/plugins/bwp-minify/
 https://wordpress.org/plugins/wp-html-compression/
 • Unikanie zbyt wielu wtyczek (większość ma swoje pliki CSS i JavaScript)
  • 47. 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
  • 48. 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
  • 50. GZIP SetOutputFilter DEFLATE BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4.0[678] no-gzip BrowserMatch bMSIE !no-gzip !gzip-only-text/html Źródło: http://code.garyjones.co.uk/htaccess-tweaks-improve-site-speed
  • 51. Cache przeglądarki# Patched on: %2013-%05-%02 %07:%May:%51 # Auto-patched by jbetolo <FilesMatch ".(gif|jpg|jpeg|png|swf|pdf|css|js|html|ico?|xml|txt)$"> FileETag none </FilesMatch> <IfModule mod_expires.c> ExpiresActive on # Perhaps better to whitelist expires rules? Perhaps. ExpiresDefault "access plus 1 month" # cache.appcache needs re-requests in FF 3.6 (thx Remy ~Introducing HTML5) ExpiresByType text/cache-manifest "access plus 0 seconds" # Your document html ExpiresByType text/html "access plus 0 seconds" # Data ExpiresByType text/xml "access plus 0 seconds" ExpiresByType application/xml "access plus 0 seconds" ExpiresByType application/json "access plus 0 seconds" # RSS feed ExpiresByType application/rss+xml "access plus 1 hour" # Favicon (cannot be renamed) ExpiresByType image/x-icon "access plus 1 week" # Media: images, video, audio 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" # HTC files (css3pie) ExpiresByType text/x-component "access plus 1 month" # Webfonts 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" # CSS and JavaScript 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>
  • 52. 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
  • 53. 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
  • 54. 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
  • 55. HSTS • Zmniejsza ilość zapytań DNS
 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 MiTM
 http://sekurak.pl/hsts-czyli-http-strict-transport-security/
  • 56. HSTS • Zmniejsza ilość zapytań DNS
 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 MiTM
 http://sekurak.pl/hsts-czyli-http-strict-transport-security/
  • 57. HSTS • Zmniejsza ilość zapytań DNS
 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 MiTM
 http://sekurak.pl/hsts-czyli-http-strict-transport-security/
  • 58. HSTS • Zmniejsza ilość zapytań DNS
 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 MiTM
 http://sekurak.pl/hsts-czyli-http-strict-transport-security/
  • 59. HSTS • Zmniejsza ilość zapytań DNS
 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 MiTM
 http://sekurak.pl/hsts-czyli-http-strict-transport-security/ Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
  • 61. 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/
  • 62. 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/
  • 63. 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/
  • 64. <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>
  • 65. 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;      } }
  • 66. 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;      } }
  • 68. Wydajność JS i CSS • Na starszych urządzeniach samo parsowanie jQuery może zająć kilkaset milisekund
 http://timkadlec.com/2014/09/js-parse-and-execution-time/
 • Zoptymalizowane selektory CSS też mogą pomóc
 http://benfrain.com/css-performance-revisited-selectors-bloat-expensive-styles/
 • Warto rozważyć usunięcie nieużywanego kodu JS i CSS
  • 69. Wydajność JS i CSS • Na starszych urządzeniach samo parsowanie jQuery może zająć kilkaset milisekund
 http://timkadlec.com/2014/09/js-parse-and-execution-time/
 • Zoptymalizowane selektory CSS też mogą pomóc
 http://benfrain.com/css-performance-revisited-selectors-bloat-expensive-styles/
 Warto rozważyć usunięcie nieużywanego kodu JS i CSS
  • 70. Wydajność JS i CSS • Na starszych urządzeniach samo parsowanie jQuery może zająć kilkaset milisekund
 http://timkadlec.com/2014/09/js-parse-and-execution-time/
 • Zoptymalizowane selektory CSS też mogą pomóc
 http://benfrain.com/css-performance-revisited-selectors-bloat-expensive-styles/
 • Warto rozważyć usunięcie nieużywanego kodu JS i CSS
  • 71. Wydajność JS i CSS • Wydajność właściwości CSS: http://csstriggers.com/ • FLIP dla animacji: http://aerotwist.com/blog/flip-your- animations/
  • 72. Wydajność JS i CSS • Wydajność właściwości CSS: http://csstriggers.com/ • FLIP dla animacji: http://aerotwist.com/blog/flip-your- animations/
  • 73. Optymalizacja struktury DOM Źródło: http://httparchive.org/interesting.php
  • 74. Lektura • http://timkadlec.com/2014/09/js-parse-and- execution-time/ • http://jankfree.org/ • http://calendar.perfplanet.com/2013/the-runtime- performance-checklist/ • https://developers.google.com/web/fundamentals/ performance/critical-rendering-path/
  • 76. Tomasz Dziuda Lead Developer @ @dziudek http://dziudek.pl dziudek@gavick.com