To, że od 2010 roku szybkość strony jest jednym z czynników rankingowych w Google większość z nas wie. Jednak Google kładzie coraz większy nacisk na ten aspekt dokładając kolejne czynniki, tym razem jakościowe. Nieco więcej na ten temat przeczytasz w artykule “Google planuje dodać jakość strony do sygnałów rankingowych“. Co możesz zrobić żeby Twoja strona na WordPressie działała szybko? W tym artykule postaram się podać kilka wskazówek, na temat tego jak przyspieszyć stronę WordPress.

Dlaczego strona powinna być szybka?

Jest wiele powodów, dla których powinieneś poświęcić sporo uwagi wydajności Twojej strony. Kilka najważniejszych:

  • Wspomniałem o tym już na wstępie. Google bierze pod uwagę szybkość stron, co przekłada się na pozycje w wynikach wyszukiwania. Jeśli więc zależy Ci na tym, aby w wynikach organicznych być zauważalnym, to szybkość strony powinna być jednym z priorytetów Twoich działań.
  • Szybsza strona, to także większe zaangażowanie osób na nią trafiających. Strony, które ładują się dłużej niż 2-3 sekundy zazwyczaj mają wysokie wskaźniki odrzuceń. To przekłada się na zainteresowanie tym co oferujesz i w konsekwencji na niższe lub wyższe współczynniki konwersji.
  • Grupą najbardziej niecierpliwych są niestety osoby, które szukają produktów lub usług jakie chcą kupić. Oczekują, że informacje o otrzymają błyskawicznie. Jeśli tak się nie dzieje odbija się to negatywnie na decyzjach zakupowych. W efekcie wolna strona generuje mniejszą sprzedaż.

Jak sprawdzić czy moja strona jest wolna albo szybka?

Aby stwierdzić czy strona jest wolna lub szybka musisz to przetestować. Nie jesteś w stanie tego stwierdzić po prostu klikając po niej, chyba że ewidentnie czas jej ładowania jest bardzo długi, ale również wówczas musisz przyjrzeć się temu co tak naprawdę powoduje ten stan rzeczy żebyś wiedział nad czym trzeba popracować.

Ogólnie rzecz biorąc na szybkość strony ma wpływ wiele różnych czynników, przykładowo:

  • Rozmiar strony (jej ciężar)
  • Ilość zapytań jakie generuje
  • Czy wykorzystuje mechanizmy buforujące czy nie
  • Czy jest to strona statyczna, czy generowana dynamicznie
  • Jak jest skonstruowana

Narzędzia do testowania szybkości i jakości strony

W praktyce na oko, nawet jeśli widzisz, że strona działa wolno wiele nie wywnioskujesz, a nawet jeśli spróbujesz, to zapewne wnioski będą błędne. Osoby początkujące widząc, że ich strona działa wolno w pierwszym odruchu sądzą, że to kwestia serwera na którym działa, ale w praktyce nie jest to problem zerojedynkowy. Zmiana w takiej sytuacji konta hostingowego na jakiś wyższy plan z większa ilością zasobów obliczeniowych, może nie przynieść żadnych rezultatów, lub będą znikome.

Żeby precyzyjnie zdiagnozować, które elementy strony szwankują warto posłużyć się narzędziami, które zostały zaprojektowane w tym celu. Kilka z nich:

Zawracaj uwagę nie tylko na ogólny czas ładowania się strony, ale także czynniki opisane we wspomnianym artykule “Google planuje dodać jakość strony do sygnałów rankingowych“.

Wybierz dobrą usługę hostingową

Ważnym czynnikiem wpływającym na szybkość witryny jest hosting na którym działa Twoja strona WordPress. W większości przypadków decydujemy się na usługi współdzielone, z prozaicznego powodu. Są tanie. Jednak takie usługi często nie zapewniają dobrych czasów reakcji i ładowania, a wiele z nich nie zapewnia 99% czasu dostępności strony w miesiącu.

Prawda jest taka, że hosting współdzielony zwykle zapewnia gorszą wydajność, ponieważ współdzielisz tę samą przestrzeń na serwerze z wieloma innymi witrynami, a więc do swojej dyspozycji masz ograniczone zasoby, zwłaszcza zasoby obliczeniowe. Nie sugeruj się pojemnością, ilością kont email, baz danych, poziomem transferu itp… to są parametry trzeciorzędne.

Na szczęście branża hostingowa rozwinęła się dzięki współczesnym technologiom, a ceny usług w chmurze spadły. Dziś możesz kupić dedykowane serwery np. DigitalOcean, Linode, Amazon Web Services czy nasze serwery cloud w przyzwoitej cenie. Jednak konfiguracja takich usług może być trudnym orzechem do zgryzienia, ponieważ musisz skonfigurować je od zera i zrobić to samodzielnie lub z pomocą kogoś kto wie jak to zrobić. Istnieją dostawcy usług, tacy jak Cloudways, gdzie te procesy są uproszczone jednak mimo wszystko są to usługi wymagające od Ciebie większego zaangażowania lub większych kosztów administracyjnych niż w przypadku hostingu współdzielonego.

Jeśli masz budżet na taki hosting zainwestuj w niego, jeśli nie wybierz hosting, który da WordPressowi możliwie najwięcej “przestrzeni” do działania. Sprawdź Hosting WordPress z wieloma wbudowanymi mechanizmami, które nie tylko ułatwią Ci pracę z WordPressem i podniosą jego bezpieczeństwo, ale także zwiększą wydajność.

Używaj PHP 7 lub wyższej wersji

Sprawdź na swoim hostingu jaką wersję PHP masz do dyspozycji. PHP to język programowania open source po stronie serwera, który jest używany przez programistów głównie do tworzenia stron i aplikacji internetowych. Większość podstawowego oprogramowania WordPress jest napisana w języku PHP, wraz z wtyczkami i motywami, co sprawia, że PHP jest bardzo ważnym językiem dla społeczności WordPress. Twój hosting powinien mieć przynajmniej PHP w wersji 7.x. Rekomendacja to minimum PHP w wersji 7.3, ponieważ oferuje znaczne ulepszenia wydajności w stosunku do poprzednich. Na hostingu WordPress masz do dyspozycji PHP 7.4, a nawet 8.0 choć z 8.0 na początku 2021 roku jeszcze uważaj, ponieważ wiele wtyczek i motywów nie jest w pełni kompatybilna z tą wersją PHP.

Użyj dobrego motywu

To jedno z trudniejszych zadań. Zazwyczaj jest tak, że wybierając motyw kierujemy się tym co widać na jego wersjach demo. Patrzymy na to jak motyw się prezentuje, czy nam się podoba czy nie i to determinuje nasz wybór. Swoim kursantom powtarzam na okrągło, żeby nie kierowali się wyglądem. Wygląd zawsze można zmienić. Jeśli motyw jest dobry to na polu jego dostosowania da nam spory wachlarz możliwości. Kieruj się jakością motywu i realnymi jego możliwościami, a nie atrakcyjnością stron demo!

Motywy, które rekomenduję znajdziesz w artykule “3 Najlepsze Darmowe Szablony WordPress“. Każdy z wymienionych jest motywem rozwijanym przez doświadczonych programistów, dobrze zoptymalizowany, szybki i elastyczny. Nawet jeśli wśród stron startowych do importu nie znajdziesz czegoś co Ci się podoba, to tak jak już wspomniałem możesz stworzyć coś własnego co będzie odpowiadało na Twoje potrzeby.

Rozważnie dobieraj wtyczki

Trochę tak jak z motywami. Spory wybór więc hulajdusza 🙂 Sęk w tym, że instalując kolejne wtyczki Twój WordPress dostaje szereg kolejnych zadań do wykonania. Im będzie ich więcej tym będzie mu coraz ciężej. Pamiętaj też, że wtyczki podobnie jak motywy są pisane przez programistów o różnych poziomie doświadczenia. Będą więc wtyczki świetnie zoptymalizowane, mające minimalny wpływ na wydajność, a będą i takie, które na witalność strony będą miały kolosalny wpływ.

Zasada im mniej tym lepiej ma tu zastosowanie. Dąż do minimalizmu, koncentrując się na treściach jakie chcesz przekazać i swoich celach biznesowych. Strona z masą gadżetów wcale nie będzie sprzedawała więcej, a wręcz przeciwnie. Większość osób, które trafią na Twoją stronę szuka informacji, produktów, usług, a nie wodotrysków. Daj więc tym osobom dokładnie to czego szukają bez “upiększaczy”, a swój cel szybciej zrealizujesz.

Pozbądź się zbędnych wtyczek

Mógłbyś powiedzieć. To mnie nie dotyczy, bo wszystkie wtyczki jakie mam są mi potrzebne. Ale czy na pewno? Podobnie jak w przypadku powyższego punktu dąż do minimalizmu. W większości przypadków (nie twierdzę, że w Twoim tak jest) na stronie są zainstalowane wtyczki bez których śmiało mogłaby się obejść.

Wykorzystuj mechanizmy cache

Wielu administratorów stron i to nie tylko na WordPressi’e, całkowicie zapomina o tym istotnym w odniesieniu do wydajności czynniku.

O co chodzi w cachowaniu/buforowaniu? Gdy wysyłamy za pośrednictwem przeglądarki WWW zapytanie do serwera, np. prosząc go o wyświetlenie strony X, to serwer WWW zanim prześle do naszej przeglądarki dane musi wykonać olbrzymią pracę. Kompiluje kod PHP, wykonuje masę operacji, obliczeń i zapytań np. do bazy danych i dopiero po tych czynnościach ich wynik jest przekazywany do nas. Możemy zobaczyć stronę.

Gdy korzystamy z mechanizmów cache możemy w znaczny sposób zmniejszyć ilość pracy po stronie serwera ponieważ raz wykonana operacja może być przez określony czas przechowywana w pamięci podręcznej. Gdy w tym czasie serwer otrzyma identyczne zapytanie nie będzie ponawiał wszystkich operacji tylko zwróci wynik z pamięci. Na tym właśnie w dużym uproszczeniu polegają korzyści jakie z mechanizmów buforowania czerpie strona i pośrednio jej użytkownicy oraz Ty jako jej właściciel.

WordPress w standardzie ni oferuje tego typu mechanizmów dlatego koniecznym jest skorzystanie z wtyczek, które w tym zadaniu pomogą. Osobiście bardzo lubię i stosuję w większości swoich projektów wtyczkę WP Rocket. Niestety jest to wtyczka dostępna tylko w wersji płatnej. Jeśli nie chcesz w nią inwestować, możesz rozejrzeć się za bezpłatnymi alternatywami takimi jak WP Fastest Cache, WP Super Cache oraz W3 Total Cache itp. Jest ich całkiem sporo.

Bardzo dobrym narzędziem, które zadba o wszystko, lącznie z optymalizacją grafik i CDN jest NitroPack. Nie jest to narzędzie bezpłatne, ale warte zainteresowania. Potrafi w 5 minut zoptymalizować wydajność i wyniki jakości strony w zaskakująco dobry sposób. Moi Klienci i Czytelnicy JZS mogą aktywować NitroPack z 5% rabatem. Wystarczy, że zamawiając usługę użyjesz kodu POZNAJWP lub dokonasz zakupu klikając w poniższy przycisk:

Przechowuj pliki strony w pamięci przeglądarki WWW

To kolejny element mający wpływ na szybkość ładowania się strony w przeglądarce użytkownika oraz zmniejszający ilość zapytań kierowanych do serwera WWW, a tym samym obciążenia. Cache po stronie przeglądarki www polega na tym, że zapamiętuje ona raz otworzoną stronę i jej elementy składowe, np. pliki CSS, JS, pliki graficzne itd… Dane te zapisywane są na dysku osoby odwiedzającej stronę, dzięki czemu kolejne wywołanie tego samego elementu np. obrazka nie spowoduje przesłania zapytania do serwera, ale jego załadowanie z pamięci podręcznej przeglądarki.

Jeśli korzystasz z wtyczki WP Rocket, W3 Total Cache, LiteSpeed Cache czy WP Fastest Cache, możesz tę opcję w prosty sposób aktywować w ustawieniach wtyczki, dzięki czemu do przeglądarki zostaną przekazane odpowiednie nagłówki z informacjami o tym jak długo dany rodzaj plików ma być przechowywany w pamięci. Jeśli nie korzystasz z wtyczki oferującej taką opcję pod jednym kliknięciem możesz np. umieścić w pliku .htaccess przykładowe reguły:

<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 14 days"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresByType image/gif "access plus 14 days"
ExpiresByType image/png "access plus 14 days"
ExpiresByType image/jpg "access plus 14 days"
ExpiresByType image/jpeg "access plus 14 days"
ExpiresByType text/css "access plus 14 days"
ExpiresByType application/javascript "access plus 14 days"
</IfModule>

Warto z tego mechanizmu korzystać.

Włącz kompresję gzip

Kompresja sprawia, że serwer przesyła skompresowane, czyli zdecydowanie mniejsze pliki do przeglądarki, która przeprowadza ich dekompresję. Dzięki temu przesył danych jest szybszy co przy okazji zmniejsza zużycie transferu danych na koncie. W przypadku wtyczki W3 Total Cache, Litepeed Cache czy WP Fastest Cache mamy możliwość włączenia kompresji gzip dla plików tekstowych, natomiast jeśli nie korzystamy z wtyczki z taką funkcjonalnością można włączyć tę opcję na koncie hostingowym. Często jest też tak, że kompresja jest już domyślnie aktywna.

Optymalizuj obrazy

Jeśli wrzucasz zdjęcia bezpośrednio z telefony lub aparatu nie są one w żaden sposób zoptymalizowane. Oznacza to, że będą znacznie cięższe a więc będą wymagały dłuższego czasu na załadowanie. Każda grafika jaką umieszczasz na swojej stronie bez względu na to czy jest to element wystroju graficznego strony, czy ilustracja wewnątrz artykułu powinna być odpowiednio zoptymalizowana.

Do tematu można podejść na kilka sposobów:

  • Optymalizacja przed wrzuceniem na stronę – odchudzasz obraz poprzez zastosowanie odpowiedniego formatu i kompresji w programie graficznym, które takie możliwości Ci daje.
  • Optymalizacja wtyczkami – Instalujesz odpowiednią wtyczkę, np. Smush, Short Pixel lub podobną i to ona wykonuje za Ciebie optymalizację.
  • Optymalizacja po stronie usługi CDN – niektórzy dostawcy usług CDN np. BunnyCDN oferują usługę optymalizacji obrazów.

Włącz leniwe ładowanie obrazów (lazy load)

Jeśli masz sporo obrazów na swojej stronie rozważ ich ładowanie z opóźnieniem (lazy load). Jest to technika optymalizacji, która wczytuje widoczną zawartość strony, ale opóźnia pobieranie i renderowanie treści w części strony niewidocznej. Obrazy załadują się dopiero gdy przewinie się stronę do miejsca w którym dany obraz ma się wyświetlić (pojawi się w widoku ekranu).

Optymalizuj pliki CSS / JS

Jeśli analizujesz jakość i szybkość strony korzystając z narzędzi o których wspomniałem wcześniej, prawdopodobnie otrzymasz powiadomienie o tym, że powinieneś zmniejszyć rozmiary plików CSS/JS oraz ich ilość. Jesli to zrobisz wyniki jakości i szybkości z pewnością się poprawią.

Ponadto, jeśli znasz się na motywach WordPress, możesz zapoznać się z przewodnikami dostarczonymi przez Google i wykonać ręczne poprawki. jednak w sytuacji gdy nie jesteś programistą z pomocą przyjdą kolejne wtyczki takie jak Autoptimize, która może pomóc w optymalizacji CSS, JS, a także HTML Twojej strony WordPress. Wiele wtyczek buforujących, o których wspomniałem wcześniej również takie możliwości posiada. Zanim więc sięgniesz po instalację kolejnych dodatków sprawdź najpierw co na tym polu oferuje Ci wtyczka cache z której korzystasz.

Wykorzystaj sieć CDN

Jak to działa. Sieć CDN to zazwyczaj wiele rozsianych po świecie serwerów, na których przechowywane są pliki Twojej strony. Chodzi tu o pliki statyczne takie jak pliki CSS, pliki JS i im podobne, a nawet filmy. Po co? Załóżmy ze serwer na którym działa Twoja strona jest w Polsce. Osoby zaglądające na nią z polski mają dobre czasy reakcji i strona ładuje się im szybko. Jeśli jednak na Twoja stronę zajrzy ktoś z odległych zakątków naszego globu np. ktoś z USA, Australii… wówczas odległość zrobi swoje. Owszem to nie będzie tak, że komuś w polce strona załaduje sie w 2 sekundy a komuś z USA w 20 sekund, te różnice nie będą duże, niemniej będą.

Jeśli wykorzystasz sieć CDN pliki statyczne strony załadują się z lokalizacji najbliższej osobie, która na stronę zagląda. Jeśli więc odwiedzającym będzie ktoś z USA dostanie pliki z serwera w USA, jeśli będzie to ktoś z Australii dostanie pliki serwowane z centrum danych w Australii itd. W ten sposób Twoje strona będzie szybka bez względu na to z jakiej lokalizacji geograficznej będzie uruchamiana.

Osobiście najczęściej korzystam z BunnyCDN z uwagi na stosunek jakości do ceny. Polecam Ci przyjrzeć się tej sieci.

Dbaj o higienę bazy danych

WordPress działa w oparciu o bazę danych. Gromadzi się w niej wiele rozmaitych informacji zarówno związanych z konfiguracją, ale także aktywnością. Usunięcie niechcianych danych zmniejszy jej rozmiar i sprawi, że będzie wydajna. Usuwaj spam z komentarzy, fałszywych użytkowników, stare wersje robocze treści, czy nadmiar ich wersjonizacji.

Ograniczenie ilości wersji treści strony

Jak chodzi o ilość wersji jaka ma być przechowywana w bazie dla każdego tekstu, możesz ograniczyć ich ilość dodając do pliku wp-config.php jeden wiersz:

define('WP_POST_REVISIONS', 5);

Powyższy przykład ograniczy ilość przechowywanych wersji stron/wpisów do 5. Domyślnie nie ma takiego ograniczenia, a więc baza może rosnąć i rosnąć w nieskończoność. O co chodzi z wersjami? Jeśli wprowadzasz modyfikacje np. artykułu na blogu WordPress po zapisaniu zmian zachowuje w bazie poprzednią jego wersję, po to aby w razie potrzeby można było do niej wrócić. Każda zmiana w artykule generuje kolejną wersje przechowywaną w bazie. Jestem pewien, że nie potrzebujesz ich zbyt wielu. Możesz je także całkowicie wyłączyć.

Całkowite wyłączenie przechowywania starszych wersji treści strony

Jeśli w Twoim przypadku nie widzisz potrzeby przechowywania starszych wersji artykułów/stron czy innych rodzajów zawartości w bazie WordPressa możesz całkowicie wyłączyć ten mechanizm. Aby to zrobić dopisz do pliku wp-config.php poniższą linijkę:

define('WP_POST_REVISIONS', false);

Minimalizuj ilość zewnętrznych skryptów

Wykorzystywanie zewnętrznych skryptów zazwyczaj mocno uderza w podstawowe metryki szybkości i jakości strony i to nawet w sytuacji gdy jako zewnętrznych skryptów użyjesz narzędzi Google, np. Google Analytics lub innych. To samo dotyczy wszelkiej maści pixeli, kodów śledzących, widgetów wyświetlających np. aktualne kursy walut, fotki z Instargama, opinie itp, itd.

Zrób prosty test. Przygotuj stronę bez żadnych zewnętrznych dodatków. Sprawdź jej wyniki jakości i szybkości. Następnie wstaw choćby korzystając z bloku Gutenberga jakikolwiek film z YouTube. Opublikuj i porównaj dane.

W przypadku GA czy pixela Facebooka można użyć wtyczek, które pozwolą przechowywać te skrypty lokalnie i tym samym wyeliminować problem. Jednak z wszystkimi pozostałymi musisz poradzić sobie samodzielnie lub po prostu rozważyć rezygnację z nich jeśli nie są ważnym elementem Twojej strategii działania.

Wyłącz pingback i trackback

Pingbacki i trackbacki to dwa komponenty WordPressa, które informują Cię za każdym razem, gdy Twój blog lub strona pozyska link z innego bloga. Może się to wydawać przydatne, ale w praktyce narzędzia takie jak Google Search Console i inne usługi do kontrolowania linków przychodzących z o wiele większym wachlarzem możliwości analitycznych.

Włączone pingbacki i trackbacki mogą powodować niepożądane obciążenie zasobów Twojego serwera. Te funkcje są również powszechnie nadużywana podczas kierowania na witrynę ataków DDoS.

Możesz to wyłączyć w panelu administracyjnym przechodząc do Ustawienia → Dyskusja i odznaczając opcję zezwalającą na powiadomienia o linkach z innych blogów (pingbacki i trackbacki). Pomoże Ci to jeszcze bardziej przyspieszyć stronę WordPress.

Testuj nowe wtyczki lub nowy motyw na klonie strony

Zdecydowanie warto to robić. Jeśli instalujesz nowe wtyczki i sprawdzasz co potrafią na stronie produkcyjnej z jednej strony ryzykujesz, że coś przestanie działać w momencie gdy na stronie jest ruch, ale ważniejsze może się okazać coś co przyniesie negatywne skutki w przyszłości.

Gdy testujesz wtyczkę, to najpierw ją instalujesz, potem sprawdzasz jakie ma możliwości, jak sprawuje się z zestawem wtyczek jakie już masz, jak radzi sobie z nią motyw. Gdy okazuje się, że wtyczka nie spełnia jednak pokładanych w niej oczekiwań lub wykrywasz, że generuje konflikt z innym komponentem Twojej strony odinstalowujesz ją i szukasz kolejnej. Całość wydaje się niewinna, ale…

Jednym z większych problemów związanym z wtyczkami WordPress jest proces ich odinstalowywania. Za każdym razem, gdy instalujesz wtyczkę lub motyw, WordPress przechowuje dane w bazie danych. Kłopot polega na tym, że kiedy usuwasz wtyczkę za pomocą jednej ze standardowych metod, zazwyczaj pozostawia ona tabele i swoje rekordy w bazie danych. Z biegiem czasu może to spowodować dodanie dużej ilości zupełnie niepotrzebnych danych, a nawet spowolnienie witryny.

Dlatego testuj wtyczki czy kolejne motywy na klonie strony, a nie na jej wersji produkcyjnej. Jeśli na klonie widzisz, że wszystko jest OK, znalazłeś wtyczkę lub motyw, który faktycznie chcesz zastosować, to dopiero wtedy instalujesz to na wersji produkcyjnej. Klon swojej strony utworzysz jednym kliknięciem na koncie hostingowym WordPress, nie zajmie Ci to więc dużo czasu, a dzięki temu Twoja strona będzie wydajniejsza.

Dlaczego wtyczki zostawiają ślad po sobie

Możesz się zastanawiać dlaczego instalując i potem usuwając wtyczkę zostawia ona po sobie rekordy w bazie danych. Najczęściej gdy usuwasz wtyczkę zapewne zakładasz, że skoro ją usunąłeś, to jej nie ma. Nie do końca tak jest. To czy wtyczka usunie swoje dane w procesie jej usunięcia zależy przede wszystkim od jej twórcy. Skoro tak, to dlaczego autor nie implementuje takiej możliwości? Kilka powodów:

  • Autor chce ułatwić Ci, życie zachowując ustawienia wtyczki. Jeśli po pewnym czasie od jej usunięcia zdecydujesz się na ponowną instalację wszystkie wcześniej wprowadzone konfiguracje zostaną zachowane. To oczywiście wygodne, ale z punktu widzenia optymalizacji WordPressa nie jest to specjalnie efektywne.
  • Autor nie dba o optymalizację wydajności. Niestety to bardzo częste zjawisko, a niektórzy programiści uważają, że pozostawienia konfiguracji w bazie danych nie ma wpływu na wydajność strony. Wyobraź sobie jednak sytuację w której Twoja strona ma już ładnym parę lat i przez ten czasu zainstalowałeś setki rozmaitych wtyczek, które łącznie dołożyły do Twojej bazy nowe tabele i tysiące rekordów. Prędzej czy poźniej zacznie się to odbijać na wydajności.
    Podam prosty przykład. JZS działa od 2009 roku czyli strona ma już kilkanaście lat. Pod koniec 2020 roku zdecydowałem o gruntownych porządkach. Przed działaniami baza danych strony ważyła blisko 1 GB, a po zakończeniu porządków jej wielkość nie przekraczała 40 MB. Dodam, że nie usunąłem żadnego artykułu czy podstrony opublikowanej na JZS. Wniosek? Około 95% bazy WordPressa stanowiły dane starych wtyczek, które na przestrzeni lat instalowałem.
  • Autor popełnił błąd. Błądzić rzecz ludzka. Każdy z nas popełnia błędy, programiści również. Ślady pozostawione przez wtyczkę nawet jeśli posiada opcję ich usunięcia w procesie odinstalowania może wynikać z niezamierzonego błędu programisty.

Zmień ilość wpisów bloga / produktów na stronach archiwów

Jeśli np. prowadzisz bloga, to nie musisz od razu serwować osobom odwiedzającym stronę dużą ilość wpisów. Im mniej żądań i ładowanych mediów na stronie tym lepiej. Zmień więc ilość wyświetlanych wpisów na pojedynczej stronie jeśli ich ilość jest spora. Moja sugestia: oscyluj w okolicach 10.

Zadbaj o optymalizację zadań Cron

Zadania WP-CRON służą do planowania i uruchamiania powtarzalnych zadań na stronie WordPress. Jednak z biegiem czasu mogą one wymknąć się spod kontroli i powodować problemy z wydajnością. Możesz użyć bezpłatnej wtyczki WP Crontrol, aby sprawdzić wszystkie zadania Cron, które działają na Twojej stronie.

Częste są również problemy z wydajnością związane z WP-CRON. Jeśli witryna nie ma wystarczającej liczby procesów PHP uruchamianych jednocześnie, to czasami zadania muszą czekać w kolejne na zwolnienie procesów. W pewnym momencie może to mieć negatywny wpływ na wydajność strony. Dlatego to co sugeruję wyłącz WP-CRON i zamiast niego użyj systemowego crona. To praktyka wręcz sugerowana w oficjalnej dokumentacji wtyczek.

Jak wyłączyć wbudowanego crona WordPress?

Wystarczy, że dopiszesz do pliku wp-config.php poniższą linijkę kodu:

define('DISABLE_WP_CRON', true);

Po zapisaniu zmian WP-CRON przestanie wykonywać zadania, ale na tym nie możesz poprzestać, bo zadania muszą być wykonywane aby Twoja strona działała poprawnie. W kolejnym kroku musisz skonfigurować na swoim koncie hostingowym systemowe zadanie cron, które będzie wykonywane np. raz na pół godziny.

Korzystając z kont hostingowych WordPress całość skonfigurujesz jednym prostym kliknięciem. Wystarczy że pozwolisz przejąć zadania cron usłudze hostingowej i nie musisz nic więcej robić.

Przejęcie zadań WordPressa przez konto hostingowe

Automatycznie zostanie dodany wpis do pliku konfiguracyjnego i utworzone systemowe zadanie cron.

Limit pamięci

Jeśli orientujesz się czym jest limit pamięci w konfiguracji PHP, to wiesz, że definiuje ona maksymalną ilość jaką może wykorzystać PHP przetwarzając Twoją stronę.

Możesz spojrzeć na limity dostępne na Twoim koncie hostingowym i zobaczysz, że masz je na poziomie 128MB albo 256MB (jeśli Twój hosting oferuje mniej i nie masz możliwości zwiększenia tego parametru rozejrzyj się za innym dostawcą). Jest więc ok, ale okazuje się, że w pewnych sytuacjach WordPress generuje błędy, a Ty widzisz, że brakuje mu do wykonania takiej lub innej operacji pamięci. Dlaczego?

Domyślnie WordPress będzie próbował zwiększyć pamięć dla PHP do 40 MB dla pojedynczej witryny i 64 MB dla instalacji multisite. Gdzie więc te 256MB? Wykorzystanie pamięci przez WordPressa, a pamięć ustawiona w konfiguracji PHP na serwerze to w praktyce dwie różne rzeczy. Dlatego jeśli napotkasz błąd związany z pamięcią możesz spróbować zwiększyć jej limit w WordPressie.

Aby to zrobić dopisz do pliku wp-config.php poniższą linijkę:

define( 'WP_MEMORY_LIMIT', '256M' );

Podsumowanie

Sporo tego, prawda? A to jeszcze nie wszystko, bo moglibyśmy wykorzystać dodatkowe mechanizmy takie jak Redis czy Memcached do przechowywania w pamięci operacyjnej danych obiektowych zapytań SQL, co zmniejsza ilość zapytań do bazy i w konsekwencji ma pozytywny wpływ na wydajność.

Po kolei zastosuj wymienione konfiguracje i sprawdzaj jaki przyniosą efekt dla Twojej strony. W przypadku WordPressa najbardziej widoczne efekty przynosi zastosowanie dobrych mechanizmów buforujących (cache), ale pozostałe także przyczyniają się do poprawy wyników.

Udostępnij

Zobacz również

Publikacje prosto na Twój email!

Zapisz się i obserwuj co dzieje się na Wooj, Uczymyjak i PoznajWP

W każdej chwili możesz zrezygnować z subskrypcji. Twój adres jest bezpieczny.

Polecane Oferty LifeTime!

WooLentor Lifetime Deal

WooLentor

Builder dla WooCommerce. Zaprojektujesz strony koszyka, zamówienia, konta klienta, produktów itd… Do tego ogrom innych funkcji, pozwalających zwiększyć konwersję.

6 komentarzy

  1. Radosław pisze:

    Ja mam inny problem, i nie wiem, czy jest to wina wtyczki WP Fastest cache. Kiedyś analizowałem szybkość ładowania strony i do dziś wyszukiwarka te wyniki pokazuje. Na wszelki wypadek wyłączyłem wtyczkę i zobaczę. Z drugiej strony, wspomniana wtyczka, też bywa problematyczna.

    1. Radosławie usunąłem z Twojego komentarza adres strony którą robiłeś kiedyś testy, ponieważ nie istnieje. Generalnie sugeruję testować takimi narzędziami jak GTMetrix, WebPageTest, Google Page Speed, a na dokładkę Lighthousem w narzędziach dla twórców stron przeglądarki Chrome.

      Pamiętaj jednak że wszystkie te narzędzia wykonują testy laboratoryjne, które nie koniecznie będą odzwierciedlały realną szybkość strony. W Google Page Speed po pewnym czasie powinny pojawiać się ogólne dane na temat wydajności, które oparte są o informacje zbierane od użytkowników przeglądarki Chrome. To właśnie te dane od czerwca 2021 Google dołoży do listy czynników mających wpływ na pozycje w wynikach wyszukiwania. To nie będą dane laboratoryjne!
      Może się okazać, że wartości metryk pochodzące od realnych użytkowników będą lepsze lub gorsze. Dlatego pracując nad optymalizacją techniczną SEO związaną z szybkością strony WordPress, nie można ignorować informacji na temat tego jakiego sprzętu używają odwiedzający.
      Prosty przykład: większość trafiających na stronę korzysta ze starych nie specjalnie wydajnych smartfonów. Efekt będzie taki, że wyniki Web Vitals nie koniecznie będą dobre, nawet jeśli w testach laboratoryjnych są OK. Inny przypadek. Większość użytkowników Twojej strony ma szybki sprzęt, strona renderuje się błyskawicznie. Efektem tego będą lepsze wyniki dotyczące wskaźników Web Vitals i mogą one być korzystniejsze od tych laboratoryjnych.
      Wiedza na ten temat powinna mieć odzwierciedlenie w budowie strony zwłaszcza jeśli spora rzesza odwiedzających ma starszy, wolniejszy sprzęt. W takiej sytuacji powinieneś zbudować stronę tak, aby na takich urządzeniach ładowała się szybko, a więc rezygnujesz z wszelkich gadżetów i „ulepszaczy” po to żeby kod był możliwie najlżejszy. To sprawi, że na słabszych urządzeniach strona wyrenderuje się szybciej, a to poprawi jej realne wyniki jakości/wydajności.

      Co do wtyczki WP Fastest Cache, to bardzo prosta, ale też skuteczna wtyczka. Szczerze mówiąc nie miałem z nią nigdy problemów tam gdzie ją wdrażałem. Jeśli w Twoim przypadku się nie sprawdza, to użyj innej. Jest tego trochę 🙂

  2. Szymon Samuel pisze:

    Ciekawe porady, dzięki 🙂

  3. Damian pisze:

    W3total Cache dla WordPressa dla mnie jest zdecydowanie lepszy niż Total Cache, ale trzeba uważać przy konfiguracji. Wtyczka udostepnia środowisko testowe przed włączeniem na stałe danej modyfikacji co całkowicie zabezpiecza zmiany.

  4. Prowital pisze:

    Polecam wtyczkę Plugin Organizer – pozwala decydować, które wtyczki mają działać, a które zaś można na podstronie wyłączyć co daje nam w efekcie nie wgrywanie zbędnych plików .css .jscript. Niejedna wtyczka jak zauważyłeś potrafi spowolnić WP i zrobić z niego muła, ta wtyczka zaś pozwala nam cieszyć si e i szybkim WP i pluginami. To tak jak zjeść ciastko i mieć ciastko:)

  5. Szymon pisze:

    Obszernie opisana kwestia cache’owania, lecz mało poświęciłeś tematyce samych wtyczek i optymalizacji samego kodu. Warto testować szybkość i wpływ wtyczek na wydajność strony. Można skorzystać z rozwiązań, które ponadto kompresują kod HTML (usuwają zbędne komentarze, spacje, etc.). Przechowywanie grafiki w pamięci przeglądarki to w 99 proc. konieczna sprawa, ale warto (z myślą o nowych użytkownikach lub często czyszczących cookies, tudzież korzystających z trybu incognito) także skompresować same obrazy. To jedna z głównych sugestii proponowanych przez PageSpeed Insights od Google, gdy audytuję strony. Rzuć okiem na tekst podlinkowany pod moim imieniem (nie będę dublował linka, aby nie zaśmiecać Ci tu już za bardzo) – myślę, że znajdziesz parę ciekawych wskazówek. A może i sam dodasz 3 grosze w komentarzu 🙂 Pozdrawiam

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *