Perfomance w Joomla - Jak przyspieszyć działanie strony?

44
PERFORMANCE W JOOMLA! JAK SPRAWIĆ ABY STRONA DZIAŁAŁA SZYBCIEJ? Piotr Nalepa – Joomla Day Polska 2014

description

Prezentacja z JoomlaDay 2014 w Polsce wygłoszona przeze mnie - Piotr Nalepa. W prezentacji omówiłem sposoby na uzyskanie wysokiego wyniku w Google PageSpeed oraz sposób na skrócenie czasu ładowania strony do 1 sekundy.

Transcript of Perfomance w Joomla - Jak przyspieszyć działanie strony?

Page 1: Perfomance w Joomla - Jak przyspieszyć działanie strony?

PERFORMANCE W JOOMLA!

JAK SPRAWIĆ ABY STRONA DZIAŁAŁA SZYBCIEJ?

Piotr Nalepa – Joomla Day Polska 2014

Page 2: Perfomance w Joomla - Jak przyspieszyć działanie strony?

2

Kilka słów o mnie

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

BLOGER I WEBDEVELOPER

SPORTOWIEC AMATOR

Page 3: Perfomance w Joomla - Jak przyspieszyć działanie strony?

3

Perfomance + Joomla = ?

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

Page 4: Perfomance w Joomla - Jak przyspieszyć działanie strony?

4

Google PageSpeed

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

Narzędzie do analizowania wydajności strony internetowej w celu jej optymalizacji i przyspieszenia ładowania.

ur1.pl/pagespeed

Page 5: Perfomance w Joomla - Jak przyspieszyć działanie strony?

5

WebPageTest

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

Darmowe narzędzie do testowania szybkości ładowania strony z wielu lokacji na całym świecie, w różnych przeglądarkach. Przedstawia informacje o prędkości ładowania strony, blokadzie dostępności do treści na stronie. Przedstawia również informacje o możliwych usprawnieniach dla strony.

www.webpagetest.org

Page 6: Perfomance w Joomla - Jak przyspieszyć działanie strony?

6

Grunt.js

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

Javascriptowy menedżer zadań, oparty o node.js, służący do automatyzacji pracy webdevelopera.

www.gruntjs.com

Page 7: Perfomance w Joomla - Jak przyspieszyć działanie strony?

7

Strona którą optymalizowałem

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

Page 8: Perfomance w Joomla - Jak przyspieszyć działanie strony?

8

Przed – wynik w PageSpeed

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

Page 9: Perfomance w Joomla - Jak przyspieszyć działanie strony?

9

Przed – analiza ogólna

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

Page 10: Perfomance w Joomla - Jak przyspieszyć działanie strony?

10

Przed – pliki CSS

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

Page 11: Perfomance w Joomla - Jak przyspieszyć działanie strony?

11

Przed – pliki JS

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

Page 12: Perfomance w Joomla - Jak przyspieszyć działanie strony?

12

Przed – obrazki

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

Page 13: Perfomance w Joomla - Jak przyspieszyć działanie strony?

13

Przed – kod HTML

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

Page 14: Perfomance w Joomla - Jak przyspieszyć działanie strony?

14

Gotowi?

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

Page 15: Perfomance w Joomla - Jak przyspieszyć działanie strony?

15

Optymalizacja CSS #1

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

Gdy korzystamy z frameworków CSS, typu Bootstrap czy Foundation, usuńmy zbędne

reguły CSS.

Page 16: Perfomance w Joomla - Jak przyspieszyć działanie strony?

16

Optymalizacja CSS #2

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

Zredukujmy specificity selektorów CSS dzięki stosowaniu wybranej metodologii pisania kodu CSS: OOCSS, BEM, AMCSS, itp., itd.

Page 17: Perfomance w Joomla - Jak przyspieszyć działanie strony?

17

Optymalizacja CSS #3

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

Optymalizujmy animacje CSS - Composite. Właściwości CSS, które można bezpiecznie

animować:

Aby włączyć wspomaganie GPU dopisujemy: translate3d(0, 0, 0)

Położenie transform: translate(x, y);

Skalowanie transform: scale(n);

Obracanie transform: rotate(deg);

Przezroczystość opacity: 0 … 1

Page 18: Perfomance w Joomla - Jak przyspieszyć działanie strony?

18

Optymalizacja CSS #4

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

Optymalizujmy animacje CSS - Layout. Właściwości CSS, które bardzo źle wpływają

na wydajność:

width, height, padding, margin, display, border-width, border, top, position, font-size, float, text-align, overflow-y, font-weight, overflow, left, font-family, line-height, vertical-align, right, clear, white-space,

bottom, min-height, itd.

Page 19: Perfomance w Joomla - Jak przyspieszyć działanie strony?

19

Optymalizacja CSS #5

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

Optymalizujmy animacje CSS - Paint. Właściwości CSS, które źle wpływają na wydajność:

color, border-style, visibility, background, text-decoration, background-image, background-position, background-repeat, outline-color, outline, outline-style, border-radius, outline-width, box-shadow,

background-size, itd.

Page 20: Perfomance w Joomla - Jak przyspieszyć działanie strony?

20

Optymalizacja CSS #6

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

Optymalizujmy animacje CSS. Pełna lista właściwości CSS i ich wpływ na animacje:

ur1.pl/cssanimacje

Page 21: Perfomance w Joomla - Jak przyspieszyć działanie strony?

21

Optymalizacja JS #1

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

Łączenie wielu plików JS w jeden plik

Page 22: Perfomance w Joomla - Jak przyspieszyć działanie strony?

22

Optymalizacja JS #2

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

Wykorzystanie asynchronicznych modułów JS (AMD)

Page 23: Perfomance w Joomla - Jak przyspieszyć działanie strony?

23

Optymalizacja JS #3

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

Łączenie wielu niezbędnych plików JS w jeden,

a pozostałych w drugi plik JS i ładowanie drugiego pliku po załadowaniu strony.

Page 24: Perfomance w Joomla - Jak przyspieszyć działanie strony?

24

Minifikacja plików CSS i JS

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

• Zmniejszenie wagi plików,• Zmniejszenie opóźnienia ładowania plików,• Obfuskacja plików JS za pomocą Uglify2

lub Google Closure.

Page 25: Perfomance w Joomla - Jak przyspieszyć działanie strony?

25

Optymalizacja obrazków

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

• Zmniejszenie rozmiarów obrazka,• Optymalizowanie jakości obrazka,• Obrazki jako sprite’y,• Ładowanie obrazków pod Retinę (na

żądanie),• Logo strony jako SVG lub Base64.

Page 26: Perfomance w Joomla - Jak przyspieszyć działanie strony?

26

Redukowanie wielkości pliku HTML

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

• Minifikowanie kodu HTML,• Usunięcie zbędnych klas, komentarzy,• Usunięcie stylów CSS wewnątrz HTML.

Page 27: Perfomance w Joomla - Jak przyspieszyć działanie strony?

27

Optymalizacja ładowania czcionek

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

Ładowanie wybranych liter z Google Fonts:

<link href="http://fonts.googleapis.com/css?

family=Alegreya+Sans:300,700&text=JoomlaDayTM" rel="stylesheet" type="text/css">

Page 28: Perfomance w Joomla - Jak przyspieszyć działanie strony?

28

Optymalizacja ładowania czcionek

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

Przed:

Po:

Page 29: Perfomance w Joomla - Jak przyspieszyć działanie strony?

29

Optymalizacja ładowania czcionek

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

Jedno żądanie, wiele czcionek z Google Fonts

<link href="http://fonts.googleapis.com/css?

family=Roboto|Alegreya+Sans" rel="stylesheet">

Page 30: Perfomance w Joomla - Jak przyspieszyć działanie strony?

30

Optymalizacja ładowania czcionek

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

Wykorzystanie localStorage jako systemu cache dla czcionek

Page 31: Perfomance w Joomla - Jak przyspieszyć działanie strony?

31

Po – wynik w PageSpeed

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

Page 32: Perfomance w Joomla - Jak przyspieszyć działanie strony?

32

Po – Analiza ogólna

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

Page 33: Perfomance w Joomla - Jak przyspieszyć działanie strony?

33

Critical render path #1

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

Kod HTML i pliki (JS, CSS) wymagane aby wyświetlić początkowy widok strony.

Page 34: Perfomance w Joomla - Jak przyspieszyć działanie strony?

34

Critical render path #2

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

Zastanów się, jakie elementy są potrzebne, aby wyświetlić widoczny (zaraz po

załadowaniu) kawałek strony?

Page 35: Perfomance w Joomla - Jak przyspieszyć działanie strony?

35

Critical render path #3

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

Oprócz kodu HTML potrzebujemy:• Logo strony,• Główny obrazek artykułu,• Ikony menu,• Style CSS.

Page 36: Perfomance w Joomla - Jak przyspieszyć działanie strony?

36

Critical render path #4

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

Możemy dodać po załadowaniu strony:• Kod JS Google Analytics,• Kod JS sieci społecznościowych,• Pozostałe obrazki,• Pozostałe pliki CSS i JS.

Page 37: Perfomance w Joomla - Jak przyspieszyć działanie strony?

37

Critical render path #5

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

Po optymalizacji:• Niezbędną część kodu CSS wstawiono do

kodu HTML (25kB ze 104kB ogółem),• Przekonwertowanie logo strony do SVG lub

ciągu znaków Base64,• Zoptymalizowano wymagane obrazki,• Doładowywanie pozostałych obrazków,• Doładowywanie pozostałego kodu JS i CSS.

Page 38: Perfomance w Joomla - Jak przyspieszyć działanie strony?

38

Ale po co to robić ręcznie?

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

Page 39: Perfomance w Joomla - Jak przyspieszyć działanie strony?

39

Rozszerzenia Joomla!

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

• Mootools Enabler/Disabler,• JCH Optimize,• Content Optimizer.

Page 40: Perfomance w Joomla - Jak przyspieszyć działanie strony?

40

Po użyciu rozszerzeń Joomla! – wynik w PageSpeed

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

Page 41: Perfomance w Joomla - Jak przyspieszyć działanie strony?

41

Analiza ogólna – po użyciu rozszerzeń Joomla!

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

Page 42: Perfomance w Joomla - Jak przyspieszyć działanie strony?

42

Podsumowanie

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

Mniejszy plik = szybsze ładowanie strony (nie zawsze!)

Liczy się też czas odpowiedzi z serwera.

Najlepsze wyniki osiągniesz, jeśli ręcznie zoptymalizujesz stronę.

Optymalizuj z głową!

Page 43: Perfomance w Joomla - Jak przyspieszyć działanie strony?

43

Pytania?

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

Page 44: Perfomance w Joomla - Jak przyspieszyć działanie strony?

44

Dziękuję za uwagę!

Performance w Joomla! - Piotr Nalepa - Joomla Day 2014 Polska

blog.piotrnalepa.pl

ur1.pl/fanpage@sunpietro