Wraz z rozwojem naszego serwisu i wzrostem liczby jego użytkowników możemy zacząć odczuwać, że ładuje się on zdecydowanie wolniej. To normalna sytuacja i WordPress nie jest tutaj wyjątkiem. Nie ma jednak powodów do paniki – ten CMS obsługuje bardzo duże serwisy z olbrzymim ruchem, tak więc poradzi sobie również z naszym. Zobaczmy co możemy zrobić aby przyśpieszyć trochę naszą stronę.
Dowiedz się jak uzyskać wynik 100/100 punktów w teście Google PageSpeed Insights
Włączenie kompresji gzip
Włączenie kompresji spowoduje zmniejszenie ilości danych przesyłanych z serwera do przeglądarki użytkownika. Działa to w ten sposób, że wybrane typy plików (najczęściej HTML, CSS, JavaScript czy XML) są kompresowane przez serwer, a następnie dekompresowane przez przeglądarkę. Kompresja pozwala na zmniejszenie objętości plików tekstowych o nawet 80 procent, tak więc jest o co walczyć.
Włączenie kompresji gzip odbywa się w sposób zależny od serwera. W niektórych przypadkach wystarczy do pliku .htaccess
(znajduje się on w katalogu, w którym zainstalowaliśmy WordPressa) dodać następujący kod (najlepiej na samym początku pliku):
AddOutputFilterByType DEFLATE text/css application/x-javascript text/x-component text/html text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon
Są również serwery, na których kompresję włącza się w panelu administracyjnym serwera lub na których jest ona zawsze włączona. Najlepiej zerknąć do dokumentacji udostępnianej przez firmę hostingową lub po prostu spytać. Warto pamiętać, że włączenie kompresji może spowodować niewielki wzrost obciążenia serwera – niestety, nie ma nic za darmo.
Jeśli chcemy sprawdzić czy nasza strona jest poprawnie kompresowana, możemy skorzystać z tego narzędzia. Wystarczy w polu Web Page URL wpisać adres URL naszej strony i nacisnąć przycisk Check.
Złączenie i minifikacja skryptów JavaScript i arkuszy CSS
Minifikacja (to takie trochę nieudolnie spolszczone słowo „minification”) polega na usunięciu ze skryptów JavaScript i arkuszy stylów CSS komentarzy oraz niepotrzebnych znaków, takich jak znaki końca wiersza czy spacje. Ma to na celu zmniejszenie objętości plików i jest ogólnie rzecz biorąc dobrym pomysłem.
Złączenie plików JS i CSS polega z kolei na zrobieniu z wielu małych plików jednego większego, dzięki czemu przeglądarka wyśle do naszego serwera tylko jedno żądanie zamiast kilku.
Obie te czynności może wykonać za nas wtyczka JS & CSS Script Optimizer. Po jej aktywacji wszystko powinno od razu funkcjonować jak trzeba, ale jeśli coś na naszej stronie przestało działać, to musimy przejść do sekcji Script Optimizer znajdującej się w menu Ustawienia i dokonać kilku poprawek w konfiguracji rozszerzenia. Ponieważ w większości przypadków problemy dotyczą skryptów JavaScript, zacznijmy od wyłączenia opcji Pack scripts using Dean Edwards’s JavaScript Packer. Jeśli nic to nie da, włączmy ją z powrotem, po czym w sekcji niżej wybierzmy opcję Do not combine JavaScripts. Jeśli problemy ze skryptami zniknęły, to oznacza to, że któryś z nich nie działa po minifikacji i/lub złączeniu i należy go wykluczyć poprzez wpisanie jego nazwy w polu Ignore next JavaScripts.
Optymalizacja obrazków
Obrazki to zwykle jedne z największych elementów strony. Jeśli mamy ich w naszym serwisie dość dużo, to warto pokusić się o ich optymalizację celem zmniejszenia rozmiaru. Jeśli nie wiemy jak to zrobić, z pomocą może nam przyjść darmowa usługa Smush.it – wystarczy zainstalować wtyczkę WP Smush.it, która pracuje w tle i nie wymaga od nas żadnych dodatkowych działań. Każdy obrazek, który przesyłamy na nasz serwer, jest optymalizowany przez serwery Smush.it, co w praktyce powoduje jego zmniejszenie o 10-15 procent (czasem trochę więcej). Jeśli chcemy zoptymalizować obrazki już istniejące w naszej bibliotece, możemy skorzystać z opcji Bulk Smush.it, znajdującej się w menu Media.
Usunięcie zbędnych wtyczek
Jak już pisałem w tym tekście, duża ilość zainstalowanych wtyczek niekoniecznie musi spowalniać naszego WordPressa, ale źle napisane rozszerzenia mogą to robić. Dlatego też warto sprawdzić która (o ile jakakolwiek) z używanych przez nas wtyczek opóźnia ładowanie naszej strony i ją usunąć. Nie zaszkodzi również pozbyć się nieużywanych rozszerzeń.
Sprzątanie WordPressa
Z czasem na naszej stronie gromadzi się cała masa śmieci w postaci wpisów i stron leżących w koszu, niepotrzebnych wersji wpisów czy nie usuniętych komentarzy oznaczonych jako spam. Warto raz na jakiś czas posprzątać ten bałagan, aby nieco odchudzić bazę danych naszego serwisu.
Zmniejszenie ilości zewnętrznych skryptów
Na stronach internetowych możemy spotkać całą masę skryptów pochodzących z zewnętrznych źródeł, takich jak różnego rodzaju sieci reklamowe czy systemy statystyk. Każdy taki skrypt to dodatkowy czas potrzebny na załadowanie pliku. Na dodatek pliki te są często pobierane z zewnętrznych serwerów, które zwykle znajdują się za granicami naszego kraju. Warto więc zastanowić się, czy aby na pewno potrzebujemy kolejnych statystyk albo kolejnego banera reklamowego.
Modyfikacja formatu adresów URL
WordPress pozwala na ustawienie praktycznie dowolnego formatu adresów URL w serwisie (Ustawienia → Bezpośrednie odnośniki). Niestety, nie wszystkie z nich są tak samo wydajne. Najlepszymi formatami linków są te, które zawierają liczbowy identyfikator wpisu, ale one z kolei nie są najlepsze jeśli chodzi o SEO. Jeśli weźmiemy pod uwagę wszystkie „za” i „przeciw” w kwestiach wydajności i przyjazności dla wyszukiwarek, to najlepszymi formatami są /%postname%/
i /%post_id%/%postname%/
. Najgorszymi z punktu widzenia wydajności formatami adresów są te, które zawierają kategorię, tag lub autora – takich należy zdecydowanie unikać (źródło).
Trzeba pamiętać, że zmiana formatu adresów URL w już działającym serwisie prawie na pewno spowoduje zawirowania w Google (mimo że WordPress całkiem nieźle radzi sobie z przekierowaniami).
Wybór odpowiedniego szablonu
Wybierając szablon dla naszej strony powinniśmy zastanowić się jakich funkcji tak naprawdę potrzebujemy. Jeśli szukamy czegoś darmowego, to wybór mamy dość ograniczony, bo bezpłatne motywy rzadko rozpieszczają nas ilością wodotrysków. Inaczej jest jednak w przypadku płatnych szablonów premium, których autorzy prześcigają się w dodawaniu do swoich produktów coraz większej liczby skryptów i zwiększania liczby dostępnych opcji. Musimy pamiętać, że im bardziej rozbudowany (w sensie ilości dodatków i możliwości konfiguracji) motyw, tym większe problemy z wydajnością możemy (aczkolwiek wcale nie musimy) mieć w przyszłości.
Ocena jakości szablonu jest dość trudna, szczególnie jeśli nie mamy w tym większego doświadczenia. Jeśli więc tworzona przez nas strona ma obsłużyć duży ruch, to warto poradzić się kogoś bardziej doświadczonego. Dobrze jest również pomyśleć o szablonie stworzonym specjalnie dla nas, zawierającym tylko to, czego naprawdę potrzebujemy i działającym dokładnie tak jak chcemy – takie rozwiązanie jest zdecydowanie droższe, ale na pewno lepsze.
Wybór odpowiedniego serwera
Znalezienie dobrej firmy hostingowej jest zadaniem szalenie trudnym. Na naszym rodzimym rynku mniejszych i większych usługodawców jest bardzo wiele, a publikowane w Internecie opinie na ich temat rzadko są wiarygodne. Niestety, wybór największej i/lub najbardziej znanej firmy również nie gwarantuje braku problemów. I znowu – jeśli nie mamy w tym temacie żadnego doświadczenia, to dobrym pomysłem jest zasięgnięcie opinii osoby bardziej zorientowanej.
Na samym początku dla naszej strony powinien wystarczyć zwykły, tani serwer wirtualny. Jednak tego typu usługi mają swoje ograniczenia i gdy nasz serwis stanie się bardzo popularny, to niewykluczone, że będziemy musieli pomyśleć o przeniesieniu go na serwer VPS lub dedykowaną maszynę.
Cache
Zobacz jak przyśpieszyć stronę za pomocą wtyczki WP Super Cache
Skorzystanie z systemu cache w przypadku strony obsługującej duży ruch z reguły przynosi zauważalną poprawę – czyli przyśpieszenie działania strony i zmniejszenie obciążenia serwera. Trzeba jednak pamiętać, że w przypadku serwisów z małą ilością odwiedzających cache wcale nie musi poprawić szybkości ładowania strony, a nawet może (w niewielkim stopniu, ale jednak) zaszkodzić.
Istnieje kilka wtyczek dla WordPressa, które w kompleksowy sposób zarządzają cache’owaniem stron oraz posiadają dodatkowe funkcje związane z wydajnością, takie jak kompresja gzip, minifikacja i złączanie plików JS i CSS oraz wykorzystanie CDN (Content Delivery Network). Najlepszym moim zdaniem wyborem jest W3 Total Cache. Jest to bardzo rozbudowane rozszerzenie z całą masą dostępnych opcji. Jego konfiguracja to temat na osobny tekst, tak więc powiem tylko, że na początek ustawienia domyślne powinny wystarczyć.