SlideShare a Scribd company logo
1 of 53
Download to read offline
FEO w Joomla!, czyli jak przyspieszyć swoją stronę
                       Dominik Kucharski
     Lead Front-end Developer w CloudAccess.net




          email: dom@cloudaccess.net | prywatny blog: blog.mino.pl | twitter: @minopl
PLAN PREZENTACJI


• Przyczyny   oraz zalety stosowania optymalizacji

• Dlaczego    optymalizacja jest taka fajna? :-)

• Przydatne   narzędzia

• Wprowadzenie      do optymalizacji stron WWW
PLAN PREZENTACJI


•I     część optymalizacji - zmniejszanie wielkości strony

• II    część optymalizacji - zmniejszanie ilości żądań do serwera

• III   część optymalizacji - przydatne porady
PRZYCZYNY ORAZ ZALETY
       STOSOWANIA

• użytkownicy   częściej zostają na stronie, co przekłada się na
 zysk

• oszczędność   transferu

• wyższe   pozycje w wyszukiwarkach
DLACZEGO OPTYMALIZACJA
    JEST TAKA FAJNA?
 Małym nakładem pracy możemy uzyskać
            świetne efekty
PRZYDATNE NARZĘDZIA -
       YSLOW
PRZYDATNE NARZĘDZIA -
       YSLOW
  Ocena punktowa strony i podpowiedzi
PRZYDATNE NARZĘDZIA -
        YSLOW
Szczegółowe przedstawienie elementów strony WWW
PRZYDATNE NARZĘDZIA -
         YSLOW
Wykresy kołowe z procentowym rozkładem elementów
PRZYDATNE NARZĘDZIA -
STRONA WEBPAGETEST.ORG
PRZYDATNE NARZĘDZIA - ZAKŁADKA
    NETWORK W CHROME WEB
          INSPECTOR
WPROWADZENIE DO
       OPTYMALIZACJI STRON
       WWW - ZASADA 80/20
Średnio 80% czasu wczytywania strony przeznaczone jest na
                       frontend.
WPROWADZENIE DO
       OPTYMALIZACJI STRON

 Większość zasad optymalizacji opiera się na prostych
 wnioskach:

1.Mniejszy plik kopiuje się szybciej niż większy
2.Duży plik kopiuje się szybciej niż wiele mniejszych
I CZĘŚĆ OPTYMALIZACJI -
ZMNIEJSZANIE WIELKOŚCI
        STRONY
BEZSTRATNA KOMPRESJA
         OBRAZÓW
Dobre narzędzia do kompresji:

Dla Mac OS:

    •ImageOptim
    •CodeKit
Dla Windows:

    •PNGGauntlet
BEZSTRATNA KOMPRESJA
     OBRAZÓW - JOOMLA!


Skompresuj wszystkie pliki w katalogach:

•   /templates/twój_szablon/images/

• /images/
BEZSTRATNA KOMPRESJA
 OBRAZÓW - JOOMLA!
KOMPRESJA GZIP

Kompresja gzip zmniejsza przesyłane pliki nawet o          70%
                   100


                    75


                    50


                    25


                     0



                         1 - bez gzip   2 - po kompresji
KOMPRESJA GZIP - ZASADA
      DZIAŁANIA
KOMPRESJA GZIP - ZASADA
      DZIAŁANIA
KOMPRESJA GZIP -
 IMPLEMENTACJA W JOOMLA!

1.Ściągamy HTML5 Boilerplate z html5boilerplate.com
2.Kopiujemy z pliku .htacces część kodu odpowiedzialną za
 kompresję gzip do pliku .htaccess w Joomla! (domyślnie to
 htaccess.txt)
KOMPRESJA GZIP -
IMPLEMENTACJA W JOOMLA!
ZMNIEJSZANIE OBJĘTOŚCI
    KODU JAVASCRIPT I CSS
Kompresja kodu polega na usunięciu zbędnych znaków z kodu
(spacje, tabulacje, przejścia do nowej linii).



Najlepsze efekty daje kombinacja kompresji gzip wraz ze
zmniejszeniem objętości kodu.
ZMNIEJSZANIE OBJĘTOŚCI
           KODU W JOOMLA!
•   Opcje we frameworku wykorzystanym do stworzenia szablonu
    (Warp, Gantry itd.)

•   Osobne rozszerzenie dla Joomla!:

    •   JCH Optimize

    •   jbetolo

    •   JS CSS Control

    •   RokBooster
ZMNIEJSZANIE OBJĘTOŚCI
 KODU W JOOMLA! - JCH
II CZĘŚĆ OPTYMALIZACJI -
   ZMNIEJSZANIE ILOŚCI
   ŻĄDAŃ DO SERWERA
ZMNIEJSZANIE ILOŚCI ŻĄDAŃ
       DO SERWERA
ŁĄCZENIE PLIKÓW
JAVASCRIPT ORAZ CSS
      JCH Optimize
CSS SPRITES


• CSSSprites to technika zapisywania wielu elementów
 graficznych strony w jednym pliku i wyświetlanie przez
 manipulacje parametrami background-position.

 Przykładowy kod:
 #logo { background: url(/images/sprite.png) 0 -100px no-
 repeat; }
CSS SPRITES - PRZYKŁAD
CSS SPRITES W JOOMLA!
       JCH Optimize
OSADZANIE OBRAZÓW


  Osadzanie obrazów polega na wykorzystaniu kodu w formacie
  base64 zamiast standardowego pliku graficznego.


background:"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAZCAIAAAB/
8tMoAAAACXBIWXMAABv9AAAb/QGX0Qc2AAAAMUlEQVR42kWLuREAIAzDdN6JRZiE/YuIgnCpLH+sfYJGeKqRGtZY31dno3T/
t/R/mAtRMDvkNuHCUwAAAABJRU5ErkJggg==)"repeatbx;
III CZĘŚĆ OPTYMALIZACJI -
    PRZYDATNE PORADY
UŻYWANIE NAGŁÓWKA
EXPIRES ORAZ USUNIĘCIE ETAG

• NagłówekExpires informuje przeglądarkę internetową jak
 długo może trzymać element strony na dysku twardym
 komputera i wykorzystywać go, zamiast pobierać go z serwera.

• ETagjest mechanizmem do weryfikacji buforowanych
 elementów strony. ETag niestety jest zawodny, dlatego lepiej go
 wyłączyć i polegać tylko na Expires
EXPIRES I ETAG W PRAKTYCE
    Wystarczy ponownie skopiować odpowiedni kod z
    pliku .htaccess z HTML5 Boilerplate do pliku .htaccess w
    Joomla!

•   Kod dla Expires zaczyna się od:
    # ----------------------------------------------------------------------
    # Expires headers (for better cache control)
    # ----------------------------------------------------------------------

•   Kod dla ETag zaczyna się od:
    # ----------------------------------------------------------------------
    # ETag removal
    # ----------------------------------------------------------------------
EXPIRES I ETAG W PRAKTYCE
UMIESZCZANIE SKRYPTÓW
 NA KOŃCU DOKUMENTU


Podczas wczytywania przez przeglądarkę plików JavaScript
zatrzymywane jest pobieranie innych plików z serwera, przez
co strona ładuje się wyraźnie wolniej.
UMIESZCZANIE SKRYPTÓW
NA KOŃCU DOKUMENTU
 Skrypt na końcu   Skrypt w środku
UMIESZCZANIE SKRYPTÓW
NA KOŃCU DOKUMENTU
       JCH Optimize
USUWANIE NIEPOTRZEBNYCH
 I ZDUBLOWANYCH PLIKÓW

W zależności od projektu część wczytywanych przez Joomla!
plików może nam się nie przydać.

Gdy strona korzysta z podstawowych możliwości Mootools
możemy usunąć plik mootools-more.js (227KB).

Czasami możemy polegać tylko na jQuery i całkowicie usunąć
Mootools.
USUWANIE NIEPOTRZEBNYCH
 I ZDUBLOWANYCH PLIKÓW
  Idealnym rozszerzeniem do tego celu jest InterEXT.
UMIESZCZANIE ARKUSZY STYLÓW
 NA POCZĄTKU DOMUMENTU


Przeglądarka nie formatuje wyglądu strony do czasu, aż
ściągnie wszystkie załączone pliki CSS.

Jeśli plik został załączony na końcu dokumentu przeglądarka w
trakcie ładowania pokaże niesformatowaną treść strony.
CONTENT DELIVERY
           NETWORK


Content Delivery Network jest zbiorem serwerów WWW
umieszczonych w wielu lokalizacjach, których celem jest
efektywaniejsze dostarczanie treści użytkownikowi.
CONTENT DELIVERY
   NETWORK
  Przykład sieci firmy MaxCDN
CONTENT DELIVERY
              NETWORK


• Integracja
           CDN z Joomla! jest bardzo prosta dzięki
 rozszerzeniu „CDN for Joomla!”

• Wystarczy wykupić usługę CDN i wypełnić kilka pól w
 rozszerzeniu Joomla!
CONTENT DELIVERY
   NETWORK
  Część konfiguracji pluginu
PODZIAŁ PLIKÓW POMIĘDZY
    KILKA SERWRÓW
Podział plików pomiędzy kilka serwerów pozwala przeglądarce
na jednoczesne pobieranie wiekszej ilości plików.
PODZIAŁ PLIKÓW POMIĘDZY
    KILKA SERWRÓW


• Wedługbadań przeprowadzonych przez Yahoo najlepsza ilość
 serwerów to 2 do 4.

• Większa ilość sprawia opóźnienia związane ze zbyt dużą ilością
 zapytań do serwerów DNS.
PODSUMOWANIE

 Jeśli chcemy uzyskać bardzo dobre rezultaty przy małym
 nakładzie pracy (maksymalnie kilka godzin):

•kompresujemy obrazy
•włączamy gzip, włączamy nagłówki Expires i wyłączamy ETag
 kopiując część pliku .htaccess do Joomla!

•za pomocą rozszerzenia Joomla! włączamy kompresję plików
 JavaScript i CSS
PODSUMOWANIE



  Jeśli mamy większe ambicje polecam próby z resztą
zaprezentowanych porad ze szczególnym naciskiem na
               zmniejszenie ilości żądań.
PODSUMOWANIE

 Materiały:

• Książka„Wydajne witryny internetowe. Przyspieszenie
 działania serwisów WWW”, Steve Saunders

• stevesaunders.com   - blog guru optymalizacji

• zoompf.com/blog

• webperformancetoday.com
PYTANIA?
GORĄCO DZIĘKUJĘ ZA
    UWAGĘ :-)

More Related Content

What's hot

Programowanie stron internetowych 1 (w)
Programowanie stron internetowych 1 (w) Programowanie stron internetowych 1 (w)
Programowanie stron internetowych 1 (w) TomaszWoniakowski1
 
Wordpress dla początkujących szkolenie / warsztat 09/10 migracje, backup, mul...
Wordpress dla początkujących szkolenie / warsztat 09/10 migracje, backup, mul...Wordpress dla początkujących szkolenie / warsztat 09/10 migracje, backup, mul...
Wordpress dla początkujących szkolenie / warsztat 09/10 migracje, backup, mul...Mariusz Szatkowski
 
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
 
Contributor Day - WordCamp Lublin 2017 - przegląd motywów
Contributor Day - WordCamp Lublin 2017 - przegląd motywówContributor Day - WordCamp Lublin 2017 - przegląd motywów
Contributor Day - WordCamp Lublin 2017 - przegląd motywówTomasz Dziuda
 
Statycznie czy dynamicznie?
Statycznie czy dynamicznie?Statycznie czy dynamicznie?
Statycznie czy dynamicznie?Tomasz Dziuda
 
Optymalizacja stron internetowych - zrób to sam - Semanticad
Optymalizacja stron internetowych - zrób to sam - SemanticadOptymalizacja stron internetowych - zrób to sam - Semanticad
Optymalizacja stron internetowych - zrób to sam - SemanticadCzajkowski.Consulting
 
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
 
Wordpress dla początkujących szkolenie / warsztat 08/10 Wtyczki
Wordpress dla początkujących szkolenie / warsztat 08/10 WtyczkiWordpress dla początkujących szkolenie / warsztat 08/10 Wtyczki
Wordpress dla początkujących szkolenie / warsztat 08/10 WtyczkiMariusz Szatkowski
 
WordPress 2015 - Wróżby, kabały, przepowiednie - WordUp Trójmiasto #1
WordPress 2015 - Wróżby, kabały, przepowiednie - WordUp Trójmiasto #1WordPress 2015 - Wróżby, kabały, przepowiednie - WordUp Trójmiasto #1
WordPress 2015 - Wróżby, kabały, przepowiednie - WordUp Trójmiasto #1Mariusz Szatkowski
 
multi-tier cache at gog.com - 4developers
multi-tier cache at gog.com -  4developersmulti-tier cache at gog.com -  4developers
multi-tier cache at gog.com - 4developersMaciej Włodarkiewicz
 
WordCamp 2011 Magdalena bród
WordCamp 2011 Magdalena bródWordCamp 2011 Magdalena bród
WordCamp 2011 Magdalena bródbunitas
 
Dokąd zmierza WordPress?
Dokąd zmierza WordPress?Dokąd zmierza WordPress?
Dokąd zmierza WordPress?Tomasz Dziuda
 

What's hot (13)

Programowanie stron internetowych 1 (w)
Programowanie stron internetowych 1 (w) Programowanie stron internetowych 1 (w)
Programowanie stron internetowych 1 (w)
 
Wordpress dla początkujących szkolenie / warsztat 09/10 migracje, backup, mul...
Wordpress dla początkujących szkolenie / warsztat 09/10 migracje, backup, mul...Wordpress dla początkujących szkolenie / warsztat 09/10 migracje, backup, mul...
Wordpress dla początkujących szkolenie / warsztat 09/10 migracje, backup, mul...
 
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
 
Contributor Day - WordCamp Lublin 2017 - przegląd motywów
Contributor Day - WordCamp Lublin 2017 - przegląd motywówContributor Day - WordCamp Lublin 2017 - przegląd motywów
Contributor Day - WordCamp Lublin 2017 - przegląd motywów
 
Statycznie czy dynamicznie?
Statycznie czy dynamicznie?Statycznie czy dynamicznie?
Statycznie czy dynamicznie?
 
Optymalizacja stron internetowych - zrób to sam - Semanticad
Optymalizacja stron internetowych - zrób to sam - SemanticadOptymalizacja stron internetowych - zrób to sam - Semanticad
Optymalizacja stron internetowych - zrób to sam - Semanticad
 
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
 
Wordpress dla początkujących szkolenie / warsztat 08/10 Wtyczki
Wordpress dla początkujących szkolenie / warsztat 08/10 WtyczkiWordpress dla początkujących szkolenie / warsztat 08/10 Wtyczki
Wordpress dla początkujących szkolenie / warsztat 08/10 Wtyczki
 
WordPress 2015 - Wróżby, kabały, przepowiednie - WordUp Trójmiasto #1
WordPress 2015 - Wróżby, kabały, przepowiednie - WordUp Trójmiasto #1WordPress 2015 - Wróżby, kabały, przepowiednie - WordUp Trójmiasto #1
WordPress 2015 - Wróżby, kabały, przepowiednie - WordUp Trójmiasto #1
 
Potęga pliku .htaccess
Potęga pliku .htaccessPotęga pliku .htaccess
Potęga pliku .htaccess
 
multi-tier cache at gog.com - 4developers
multi-tier cache at gog.com -  4developersmulti-tier cache at gog.com -  4developers
multi-tier cache at gog.com - 4developers
 
WordCamp 2011 Magdalena bród
WordCamp 2011 Magdalena bródWordCamp 2011 Magdalena bród
WordCamp 2011 Magdalena bród
 
Dokąd zmierza WordPress?
Dokąd zmierza WordPress?Dokąd zmierza WordPress?
Dokąd zmierza WordPress?
 

Viewers also liked

Rain soul srbija
Rain soul srbijaRain soul srbija
Rain soul srbijaveselinsoul
 
Testing world selenium_start_chapter1 (1)
Testing world selenium_start_chapter1 (1)Testing world selenium_start_chapter1 (1)
Testing world selenium_start_chapter1 (1)Testing World
 
Complicaciones torácicas del absceso hepático amebiano
Complicaciones torácicas del absceso hepático amebianoComplicaciones torácicas del absceso hepático amebiano
Complicaciones torácicas del absceso hepático amebianoHoracio Peña
 
Webservices testing using SoapUI
Webservices testing using SoapUIWebservices testing using SoapUI
Webservices testing using SoapUITesting World
 

Viewers also liked (7)

High tech republic
High tech republicHigh tech republic
High tech republic
 
Fibrosis quística
Fibrosis quísticaFibrosis quística
Fibrosis quística
 
feoenglish
feoenglishfeoenglish
feoenglish
 
Rain soul srbija
Rain soul srbijaRain soul srbija
Rain soul srbija
 
Testing world selenium_start_chapter1 (1)
Testing world selenium_start_chapter1 (1)Testing world selenium_start_chapter1 (1)
Testing world selenium_start_chapter1 (1)
 
Complicaciones torácicas del absceso hepático amebiano
Complicaciones torácicas del absceso hepático amebianoComplicaciones torácicas del absceso hepático amebiano
Complicaciones torácicas del absceso hepático amebiano
 
Webservices testing using SoapUI
Webservices testing using SoapUIWebservices testing using SoapUI
Webservices testing using SoapUI
 

Similar to Feo w-joomla

Lets Flex the WEB 4
Lets Flex the WEB 4Lets Flex the WEB 4
Lets Flex the WEB 4MediaFrame
 
PSD2WP: kodowanie dedykowanych motywów dla WordPressa w modelu komponentowym
PSD2WP: kodowanie dedykowanych motywów dla WordPressa w modelu komponentowymPSD2WP: kodowanie dedykowanych motywów dla WordPressa w modelu komponentowym
PSD2WP: kodowanie dedykowanych motywów dla WordPressa w modelu komponentowymKrzysztof Łęcki
 
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
 
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
 
OSGi, deklaratywnie
OSGi, deklaratywnieOSGi, deklaratywnie
OSGi, deklaratywnieCode-House
 
Kompresja stron internetowych, Tech 3 Camp, Patryk yarpo Jar
Kompresja stron internetowych, Tech 3 Camp, Patryk yarpo JarKompresja stron internetowych, Tech 3 Camp, Patryk yarpo Jar
Kompresja stron internetowych, Tech 3 Camp, Patryk yarpo JarPatryk Jar
 
Kompresja stron internetowych – omówienie technik redukujących rozmiar serwis...
Kompresja stron internetowych – omówienie technik redukujących rozmiar serwis...Kompresja stron internetowych – omówienie technik redukujących rozmiar serwis...
Kompresja stron internetowych – omówienie technik redukujących rozmiar serwis...3camp
 
Zwiększ szybkość! Optymalizacja serwisów internetowych
Zwiększ szybkość! Optymalizacja serwisów internetowychZwiększ szybkość! Optymalizacja serwisów internetowych
Zwiększ szybkość! Optymalizacja serwisów internetowychWydawnictwo Helion
 
Jak sprawić aby google i twoja strona się polubiły ebiznes festiwal
Jak sprawić aby google i twoja strona się polubiły ebiznes festiwalJak sprawić aby google i twoja strona się polubiły ebiznes festiwal
Jak sprawić aby google i twoja strona się polubiły ebiznes festiwalRobert Stolarczyk
 
Zbyszek Rzepka: GameDev od zaplecza
Zbyszek Rzepka: GameDev od zapleczaZbyszek Rzepka: GameDev od zaplecza
Zbyszek Rzepka: GameDev od zapleczaGameDesire Academy
 
Django - webowy framework dla wymagających
Django - webowy framework dla wymagającychDjango - webowy framework dla wymagających
Django - webowy framework dla wymagającychKrzysztof Kreczko
 
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
 
Websites vs Cloud Services - OLMUG
Websites vs Cloud Services - OLMUGWebsites vs Cloud Services - OLMUG
Websites vs Cloud Services - OLMUGBart Zaremba
 
Tomasz Głogosz: SharePoint Framework - nowa jakość w client-side development
Tomasz Głogosz: SharePoint Framework - nowa jakość w client-side developmentTomasz Głogosz: SharePoint Framework - nowa jakość w client-side development
Tomasz Głogosz: SharePoint Framework - nowa jakość w client-side developmentSharePoint Saturday Warsaw
 
Optymalizacja Serwisów WWW
Optymalizacja Serwisów WWWOptymalizacja Serwisów WWW
Optymalizacja Serwisów WWWPaweł Harajda
 
Jak wydaliśmy wiedźmina, GOG.com IT
Jak wydaliśmy wiedźmina, GOG.com ITJak wydaliśmy wiedźmina, GOG.com IT
Jak wydaliśmy wiedźmina, GOG.com ITGOG.com dev team
 
SEO Surgery Polska #1 by Łukasz Rogala
SEO Surgery Polska #1 by Łukasz RogalaSEO Surgery Polska #1 by Łukasz Rogala
SEO Surgery Polska #1 by Łukasz RogalaAnton Shulke
 
Łukasz Trześniewski Optymalizacja on page seo
Łukasz Trześniewski Optymalizacja on page seoŁukasz Trześniewski Optymalizacja on page seo
Łukasz Trześniewski Optymalizacja on page seoŁukasz Trześniewski
 

Similar to Feo w-joomla (20)

Wydajny frontend 2023
Wydajny frontend 2023Wydajny frontend 2023
Wydajny frontend 2023
 
Lets Flex the WEB 4
Lets Flex the WEB 4Lets Flex the WEB 4
Lets Flex the WEB 4
 
PSD2WP: kodowanie dedykowanych motywów dla WordPressa w modelu komponentowym
PSD2WP: kodowanie dedykowanych motywów dla WordPressa w modelu komponentowymPSD2WP: kodowanie dedykowanych motywów dla WordPressa w modelu komponentowym
PSD2WP: kodowanie dedykowanych motywów dla WordPressa w modelu komponentowym
 
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
 
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 )
 
OSGi, deklaratywnie
OSGi, deklaratywnieOSGi, deklaratywnie
OSGi, deklaratywnie
 
Kompresja stron internetowych, Tech 3 Camp, Patryk yarpo Jar
Kompresja stron internetowych, Tech 3 Camp, Patryk yarpo JarKompresja stron internetowych, Tech 3 Camp, Patryk yarpo Jar
Kompresja stron internetowych, Tech 3 Camp, Patryk yarpo Jar
 
Kompresja stron internetowych – omówienie technik redukujących rozmiar serwis...
Kompresja stron internetowych – omówienie technik redukujących rozmiar serwis...Kompresja stron internetowych – omówienie technik redukujących rozmiar serwis...
Kompresja stron internetowych – omówienie technik redukujących rozmiar serwis...
 
Zwiększ szybkość! Optymalizacja serwisów internetowych
Zwiększ szybkość! Optymalizacja serwisów internetowychZwiększ szybkość! Optymalizacja serwisów internetowych
Zwiększ szybkość! Optymalizacja serwisów internetowych
 
Jak sprawić aby google i twoja strona się polubiły ebiznes festiwal
Jak sprawić aby google i twoja strona się polubiły ebiznes festiwalJak sprawić aby google i twoja strona się polubiły ebiznes festiwal
Jak sprawić aby google i twoja strona się polubiły ebiznes festiwal
 
Zbyszek Rzepka: GameDev od zaplecza
Zbyszek Rzepka: GameDev od zapleczaZbyszek Rzepka: GameDev od zaplecza
Zbyszek Rzepka: GameDev od zaplecza
 
Django - webowy framework dla wymagających
Django - webowy framework dla wymagającychDjango - webowy framework dla wymagających
Django - webowy framework dla wymagających
 
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 )
 
Websites vs Cloud Services - OLMUG
Websites vs Cloud Services - OLMUGWebsites vs Cloud Services - OLMUG
Websites vs Cloud Services - OLMUG
 
Tomasz Głogosz: SharePoint Framework - nowa jakość w client-side development
Tomasz Głogosz: SharePoint Framework - nowa jakość w client-side developmentTomasz Głogosz: SharePoint Framework - nowa jakość w client-side development
Tomasz Głogosz: SharePoint Framework - nowa jakość w client-side development
 
GCP & Wordpress
GCP & WordpressGCP & Wordpress
GCP & Wordpress
 
Optymalizacja Serwisów WWW
Optymalizacja Serwisów WWWOptymalizacja Serwisów WWW
Optymalizacja Serwisów WWW
 
Jak wydaliśmy wiedźmina, GOG.com IT
Jak wydaliśmy wiedźmina, GOG.com ITJak wydaliśmy wiedźmina, GOG.com IT
Jak wydaliśmy wiedźmina, GOG.com IT
 
SEO Surgery Polska #1 by Łukasz Rogala
SEO Surgery Polska #1 by Łukasz RogalaSEO Surgery Polska #1 by Łukasz Rogala
SEO Surgery Polska #1 by Łukasz Rogala
 
Łukasz Trześniewski Optymalizacja on page seo
Łukasz Trześniewski Optymalizacja on page seoŁukasz Trześniewski Optymalizacja on page seo
Łukasz Trześniewski Optymalizacja on page seo
 

Feo w-joomla

  • 1. FEO w Joomla!, czyli jak przyspieszyć swoją stronę Dominik Kucharski Lead Front-end Developer w CloudAccess.net email: dom@cloudaccess.net | prywatny blog: blog.mino.pl | twitter: @minopl
  • 2. PLAN PREZENTACJI • Przyczyny oraz zalety stosowania optymalizacji • Dlaczego optymalizacja jest taka fajna? :-) • Przydatne narzędzia • Wprowadzenie do optymalizacji stron WWW
  • 3. PLAN PREZENTACJI •I część optymalizacji - zmniejszanie wielkości strony • II część optymalizacji - zmniejszanie ilości żądań do serwera • III część optymalizacji - przydatne porady
  • 4. PRZYCZYNY ORAZ ZALETY STOSOWANIA • użytkownicy częściej zostają na stronie, co przekłada się na zysk • oszczędność transferu • wyższe pozycje w wyszukiwarkach
  • 5. DLACZEGO OPTYMALIZACJA JEST TAKA FAJNA? Małym nakładem pracy możemy uzyskać świetne efekty
  • 7. PRZYDATNE NARZĘDZIA - YSLOW Ocena punktowa strony i podpowiedzi
  • 8. PRZYDATNE NARZĘDZIA - YSLOW Szczegółowe przedstawienie elementów strony WWW
  • 9. PRZYDATNE NARZĘDZIA - YSLOW Wykresy kołowe z procentowym rozkładem elementów
  • 10. PRZYDATNE NARZĘDZIA - STRONA WEBPAGETEST.ORG
  • 11. PRZYDATNE NARZĘDZIA - ZAKŁADKA NETWORK W CHROME WEB INSPECTOR
  • 12. WPROWADZENIE DO OPTYMALIZACJI STRON WWW - ZASADA 80/20 Średnio 80% czasu wczytywania strony przeznaczone jest na frontend.
  • 13. WPROWADZENIE DO OPTYMALIZACJI STRON Większość zasad optymalizacji opiera się na prostych wnioskach: 1.Mniejszy plik kopiuje się szybciej niż większy 2.Duży plik kopiuje się szybciej niż wiele mniejszych
  • 14. I CZĘŚĆ OPTYMALIZACJI - ZMNIEJSZANIE WIELKOŚCI STRONY
  • 15. BEZSTRATNA KOMPRESJA OBRAZÓW Dobre narzędzia do kompresji: Dla Mac OS: •ImageOptim •CodeKit Dla Windows: •PNGGauntlet
  • 16. BEZSTRATNA KOMPRESJA OBRAZÓW - JOOMLA! Skompresuj wszystkie pliki w katalogach: • /templates/twój_szablon/images/ • /images/
  • 18. KOMPRESJA GZIP Kompresja gzip zmniejsza przesyłane pliki nawet o 70% 100 75 50 25 0 1 - bez gzip 2 - po kompresji
  • 19. KOMPRESJA GZIP - ZASADA DZIAŁANIA
  • 20. KOMPRESJA GZIP - ZASADA DZIAŁANIA
  • 21. KOMPRESJA GZIP - IMPLEMENTACJA W JOOMLA! 1.Ściągamy HTML5 Boilerplate z html5boilerplate.com 2.Kopiujemy z pliku .htacces część kodu odpowiedzialną za kompresję gzip do pliku .htaccess w Joomla! (domyślnie to htaccess.txt)
  • 23. ZMNIEJSZANIE OBJĘTOŚCI KODU JAVASCRIPT I CSS Kompresja kodu polega na usunięciu zbędnych znaków z kodu (spacje, tabulacje, przejścia do nowej linii). Najlepsze efekty daje kombinacja kompresji gzip wraz ze zmniejszeniem objętości kodu.
  • 24. ZMNIEJSZANIE OBJĘTOŚCI KODU W JOOMLA! • Opcje we frameworku wykorzystanym do stworzenia szablonu (Warp, Gantry itd.) • Osobne rozszerzenie dla Joomla!: • JCH Optimize • jbetolo • JS CSS Control • RokBooster
  • 25. ZMNIEJSZANIE OBJĘTOŚCI KODU W JOOMLA! - JCH
  • 26. II CZĘŚĆ OPTYMALIZACJI - ZMNIEJSZANIE ILOŚCI ŻĄDAŃ DO SERWERA
  • 29. CSS SPRITES • CSSSprites to technika zapisywania wielu elementów graficznych strony w jednym pliku i wyświetlanie przez manipulacje parametrami background-position. Przykładowy kod: #logo { background: url(/images/sprite.png) 0 -100px no- repeat; }
  • 30. CSS SPRITES - PRZYKŁAD
  • 31. CSS SPRITES W JOOMLA! JCH Optimize
  • 32. OSADZANIE OBRAZÓW Osadzanie obrazów polega na wykorzystaniu kodu w formacie base64 zamiast standardowego pliku graficznego. background:"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAZCAIAAAB/ 8tMoAAAACXBIWXMAABv9AAAb/QGX0Qc2AAAAMUlEQVR42kWLuREAIAzDdN6JRZiE/YuIgnCpLH+sfYJGeKqRGtZY31dno3T/ t/R/mAtRMDvkNuHCUwAAAABJRU5ErkJggg==)"repeatbx;
  • 33. III CZĘŚĆ OPTYMALIZACJI - PRZYDATNE PORADY
  • 34. UŻYWANIE NAGŁÓWKA EXPIRES ORAZ USUNIĘCIE ETAG • NagłówekExpires informuje przeglądarkę internetową jak długo może trzymać element strony na dysku twardym komputera i wykorzystywać go, zamiast pobierać go z serwera. • ETagjest mechanizmem do weryfikacji buforowanych elementów strony. ETag niestety jest zawodny, dlatego lepiej go wyłączyć i polegać tylko na Expires
  • 35. EXPIRES I ETAG W PRAKTYCE Wystarczy ponownie skopiować odpowiedni kod z pliku .htaccess z HTML5 Boilerplate do pliku .htaccess w Joomla! • Kod dla Expires zaczyna się od: # ---------------------------------------------------------------------- # Expires headers (for better cache control) # ---------------------------------------------------------------------- • Kod dla ETag zaczyna się od: # ---------------------------------------------------------------------- # ETag removal # ----------------------------------------------------------------------
  • 36. EXPIRES I ETAG W PRAKTYCE
  • 37. UMIESZCZANIE SKRYPTÓW NA KOŃCU DOKUMENTU Podczas wczytywania przez przeglądarkę plików JavaScript zatrzymywane jest pobieranie innych plików z serwera, przez co strona ładuje się wyraźnie wolniej.
  • 38. UMIESZCZANIE SKRYPTÓW NA KOŃCU DOKUMENTU Skrypt na końcu Skrypt w środku
  • 39. UMIESZCZANIE SKRYPTÓW NA KOŃCU DOKUMENTU JCH Optimize
  • 40. USUWANIE NIEPOTRZEBNYCH I ZDUBLOWANYCH PLIKÓW W zależności od projektu część wczytywanych przez Joomla! plików może nam się nie przydać. Gdy strona korzysta z podstawowych możliwości Mootools możemy usunąć plik mootools-more.js (227KB). Czasami możemy polegać tylko na jQuery i całkowicie usunąć Mootools.
  • 41. USUWANIE NIEPOTRZEBNYCH I ZDUBLOWANYCH PLIKÓW Idealnym rozszerzeniem do tego celu jest InterEXT.
  • 42. UMIESZCZANIE ARKUSZY STYLÓW NA POCZĄTKU DOMUMENTU Przeglądarka nie formatuje wyglądu strony do czasu, aż ściągnie wszystkie załączone pliki CSS. Jeśli plik został załączony na końcu dokumentu przeglądarka w trakcie ładowania pokaże niesformatowaną treść strony.
  • 43. CONTENT DELIVERY NETWORK Content Delivery Network jest zbiorem serwerów WWW umieszczonych w wielu lokalizacjach, których celem jest efektywaniejsze dostarczanie treści użytkownikowi.
  • 44. CONTENT DELIVERY NETWORK Przykład sieci firmy MaxCDN
  • 45. CONTENT DELIVERY NETWORK • Integracja CDN z Joomla! jest bardzo prosta dzięki rozszerzeniu „CDN for Joomla!” • Wystarczy wykupić usługę CDN i wypełnić kilka pól w rozszerzeniu Joomla!
  • 46. CONTENT DELIVERY NETWORK Część konfiguracji pluginu
  • 47. PODZIAŁ PLIKÓW POMIĘDZY KILKA SERWRÓW Podział plików pomiędzy kilka serwerów pozwala przeglądarce na jednoczesne pobieranie wiekszej ilości plików.
  • 48. PODZIAŁ PLIKÓW POMIĘDZY KILKA SERWRÓW • Wedługbadań przeprowadzonych przez Yahoo najlepsza ilość serwerów to 2 do 4. • Większa ilość sprawia opóźnienia związane ze zbyt dużą ilością zapytań do serwerów DNS.
  • 49. PODSUMOWANIE Jeśli chcemy uzyskać bardzo dobre rezultaty przy małym nakładzie pracy (maksymalnie kilka godzin): •kompresujemy obrazy •włączamy gzip, włączamy nagłówki Expires i wyłączamy ETag kopiując część pliku .htaccess do Joomla! •za pomocą rozszerzenia Joomla! włączamy kompresję plików JavaScript i CSS
  • 50. PODSUMOWANIE Jeśli mamy większe ambicje polecam próby z resztą zaprezentowanych porad ze szczególnym naciskiem na zmniejszenie ilości żądań.
  • 51. PODSUMOWANIE Materiały: • Książka„Wydajne witryny internetowe. Przyspieszenie działania serwisów WWW”, Steve Saunders • stevesaunders.com - blog guru optymalizacji • zoompf.com/blog • webperformancetoday.com
  • 53. GORĄCO DZIĘKUJĘ ZA UWAGĘ :-)