Optymalizacja bloga WordPress pod kątem wydajności
|Dobra strona powinna zawsze dawać zadowolenie użytkownikom, którzy ją odwiedzają. Oprócz dobrej i ciekawej treści witryna powinna być zoptymalizowana pod kątem wydajności, czyli ładować się w możliwie najkrótszym czasie i nie obciążać zasobów serwera. Kto lubi odwiedzać strony, które powoli się ładują? Większość normalnych użytkowników opuści stronę, chyba, że czytający jest mocno zdeterminowany i zainteresowany treścią.
Optymalizacja WordPress-a nie jest łatwą czynnością, wymaga zastosowania łącznie kilku metod. Skrypt obładowany zbędnymi wtyczkami, niezoptymalizowany motyw, zalegające śmieci w bazie danych – to tylko niektóre elementy obciążające i obniżające wydajność.
Metody przyspieszania WordPress-a
Wybór odpowiedniego hostingu
Od stabilności hostingu zależy szybkość działania postawionej na nim strony. Dobry hosting gwarantuje szybką obsługę strony, przez co już na starcie mamy przewagę nad stronami znajdującymi się na niestabilnych serwerach.
Do monitorowania strony można skorzystać ze strony www.siteuptime.com
Mniejszy rozmiar strony = szybsza strona
Strona o większej pojemności i o dużej ilości elementów potrzebuje więcej czasu, aby załadować się do przeglądarki. Idealnym rozwiązaniem było by zamieszczenie tylko samego tekstu, bez obrazków i skryptów. Ale taka strona nie będzie atrakcyjna dla odwiedzających, więc coś za coś.
Zmniejszenie rozmiarów obrazków
Obrazy w dużej rozdzielczości wstawiane do wpisów znacznie spowalniają ładowanie się strony, z uwagi na ich duży rozmiar. Dlatego ważna jest optymalizacja obrazków np. stosowanie bezstratnej kompresji.
Optymalizacja bazy danych
Baza danych działa podobnie jak rejestr Windows >>> zapisuje i przechowuje wszystko co robimy na blogu. Po usunięciu np. wtyczki czy rewizji postów pozostają w bazie nadmiarowe, nieaktualne informacje. Aby je usunąć wykonujemy optymalizację tabel, która dokona ich kompaktowania.
Usuwanie zbędnych i nieaktywnych wtyczek
Przejrzyjmy listę zainstalowanych wtyczek i określmy, które są naprawdę niezbędne. Niepotrzebne i nieaktywne, wyłączone wtyczki usuwamy. Należy o tym pamiętać, bo często po wyłączeniu wtyczki ją pozostawiamy, a powinniśmy ją usunąć.
Aktualizacja skryptu do najnowszej wersji
Każda wydawana nowa wersja skryptu zawiera poprawki wydajności i nowe funkcje. Dlatego ważna jest regularna aktualizacja do najnowszej wersji.
Przechowywanie elementów w cache przeglądarek
W czasie przeglądania danej strony, poszczególne jej elementy są zapisywane na dysku komputera w katalogu pamięci podręcznej przeglądarki (cache). Przeglądarka może w późniejszym terminie pobierać pliki z buforu, bez potrzeby pobierania ich z serwera. Aby optymalnie wykorzystać tą możliwość określamy czas ważności elementów wykorzystując nagłówki ETag i Expires. Metoda pozwala zmniejszyć liczbę żądań do serwera, zmniejszyć zużycie transferu i szybsze ładowanie się strony.
Zapobieganie hotlinkowaniu
Hotlinkowanie to używanie obrazków z naszego serwera na innych, nie należących do nas stronach. Proces taki powoduje utratę transferu, ponieważ zasoby są pobierane z naszego serwera. Metodą ochraniającą przed tym procesem jest wklejenie kodu do pliku .htaccess:
Blokada hotlinkowania, bez wyświetlania obrazków
RewriteEngine On
RewriteCond %{https_REFERER} !^https://(.+.)?traxter-online.net/ [NC]
RewriteCond %{https_REFERER} !^$
RewriteRule .*.(jpe?g|gif|bmp|png)$ – [F,NC,L]
Blokada hotlinkowania, z wyświetleniem obrazka z serwisu hostingowego
RewriteEngine On
RewriteCond %{https_REFERER} !^https://(.+.)?traxter-online.net/ [NC]
RewriteCond %{https_REFERER} !^$
RewriteRule .*.(jpe?g|gif|bmp|png)$ https://img148.imageshack.us/img148/237/hotlinkp.gif [L]
Blokada hotlinkowania, z wyświetleniem obrazka z głównego katalogu naszego serwera
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/hotlink.gif$
RewriteCond %{https_REFERER} !^https://(.+.)?traxter-online.net/ [NC]
RewriteCond %{https_REFERER} !^$
RewriteRule .*.(jpe?g|gif|bmp|png)$ hotlink.gif [L]
NC: ignoruj wielkie znaki, F: wyślij error 403, L:poinformuj silnik by przestał interpretować plik, uniemożliwiając tym samym zastosowanie jakichkolwiek innych reguł.
Jeżeli chcemy dodać inną domenę, która może hotlinkować obrazki, to powielamy linijkę z wpisem domeny.
Reguły działają również na wszystkie sub-domeny oraz podkatalogi.
Wtyczki:
WP-Optimize – plugin do optymalizacji bazy danych. Umożliwia usuwanie archiwalnych wersji wpisów – rewizji, spamerskich i niezaakceptowanych komentarzy oraz optymalizację bazy danych. Dodatkowo można zmienić nazwę użytkownika. Na dole wyświetlany jest raport bazy danych – liczba tabel i ich rozmiar, status optymalizacji oraz ilość danych, która może być usunięta z poszczególnych tael.
DB Cache Reloaded Fix – wtyczka buforuje zapytania do bazy danych, zmniejsza się liczba zapytań do bazy danych, co oznacza, że obciążenie procesora serwera WWW maleje, a blog może obsłużyć znacznie więcej odwiedzających w jednej chwili. DB Cache Reloaded Fix buforuje zapytania do bazy danych, przez co strona może obsłużyć więcej odwiedzających w jednym momencie. Zapytania cachowane są przez 5 minut. Wtyczka nie wpływa na pracę pluginów generujących statystyki odwiedzin.
Hyper Cache – wtyczka do optymalizacji bloga pod kątem wydajności. Działa na podstawie serializacji, czyli najpierw zapisu stanu, a następnie odtworzenia go. Technicznie wygląda to tak, że na każde żądanie wywoływana jest funkcja cache WordPress, która sprawdza, czy w cache znajduje się ważny, zapisany plik html. Jeżeli tak, strona jest wyświetlana z tego pliku, bez potrzeby połączenia z bazą danych. Jeżeli pliku nie ma lub jest nie ważny, silnik cache robi „zrzut” strony do pliku html. W opcjach ustawiamy czas ważności plików oraz kiedy mają być odświeżane (domyślnie w momencie modyfikacji wpisu). Wtyczka znacząco odciąża serwer. Wtyczka Hyper Cache pozwala na znaczne zmniejszenie obciążenia serwera oraz powoduje szybsze wczytywanie się strony. Działanie polega na generowaniu statycznych plików HTML o ważności 24 godzin, odświeżanych po upłynięciu ustalonego czasu lub w momencie edycji wpisów. Wtyczka (i inne tego typu) nie współpracuje z wtyczkami generującymi statystyki odwiedzin.
Plugin Organizer – wtyczka pozwala wyłączyć inne zainstalowane wtyczki w sposób globalny lub selektywny dla każdego wpisu / strony. Po wyłączeniu danej wtyczki w sposób globalny możemy aktywować ją w oknie edycji pojedynczych wpisów, na których faktycznie będzie wykorzystywana. Pozwala to zmniejszyć obciążenie bloga wtyczkami, które są ładowane na wszystkich stronach, a wykorzystywane tylko na nielicznych. Przydatne rozwiązanie także w przypadku konfliktu między wtyczkami.
WP Minify – wtyczka przyspieszająca ładowanie się bloga. Działanie pluginu polega na łączeniu i kompresowaniu elementów JavaScript, CSS i HTML.
Auto Highslide – wtyczka wprowadza podczas otwierania grafiki efekt Highslide, czyli płynne rozwinięcie ramki ze zdjęciem podczas powiększenia. Download: auto-highslide.zip
Poradnik bardzo dobry choć brakuje kilku metod ale przyda się każdemu kto poważnie myśli o optymalizacji. Paradoksalnie WP Minify powoduje zwiększenie użycia procesora, dodatkowo plugin często gryzie się z innymi. Odradzam, lepiej samemu zrobić optymalizację plików css/js, tylko niestety przy ręcznym grzebaniu w plikach trzeba mieć tą świadomość, że z każdą aktualizacją będzie trzeba to robić, czyli na ścisłość nieopłacalne.
Witam!
Po wrzuceniu kodu to pliku htaccess zdjęcia znikają nawet z mojej własnej strony 😀
Dobre!! 😀
Prawdopodobnie jak zwykle coś zmajstrowałam nie tak, jeśli mogę prosić o wyjaśnienie, który kod mogę, czy wszystkie trzy, lub którego nie należy łączyć z innymi.
Pozdrawiam.
Korzystasz tylko z jednego kodu, nic nie łączysz np. w przypadku pierwszego kodu zmieniasz tylko linijkę wpisując swoją domenę:
W razie problemów napisz wiadomość e-mail poprzez formularz kontaktowy, podając kod którego używasz.
Nie mogę nigdzie znaleźć wspomnianej wtyczki Auto Highslide 🙁
Wygląda na to, że wtyczka została usunięta z bazy, nie jest dalej aktualizowana. Dodałem link do pobrania.
Bardzo dobry poradnik, szkoda ze trafiłem tu tak późno, gdyż dzisiaj zablokowali mi bloga po przekroczeniu limitu transferu.
Niestety muszę potwierdzić wypowiedź Mariusza z pierwszego komentarza. Wtyczki takie jak WP Minify, czy W3TC mogą narobić więcej szkód niż pożytku. Połączenie nieodpowiednich plików spowoduje wykrzaczenie się wszystkiego (nadal nie wiem dlaczego tak się dzieje).
Cachowanie ma sens tylko wtedy kiedy wiemy co robimy. Tutaj też może pójść sygnał do RSS i newsletter o nowych wiadomościach, a na stronie ani widu ani słychu po nowym wpisie 😉 jednak dobre ustawienie cachowania strony, razem z obrazkami przyniesie bardzo dobre efekty, strona przyspiesza mocno odczuwalnie.
Nie wiem jednak jakim sposobem znalazła się w tym zestawieniu wtyczka Auto Highslide – przecież to dodatkowy skrypt, który trzeba dołączyć do strony. A to raczej nie pomoże w uzyskaniu lepszej optymalizacji 😉
Ja u siebie korzystam z nieco innego zestawu, który jak na razie przynosi dobre efekty. Kluczem jest stosowanie jak najmniejszej ilości wtyczek – lepiej dołączyć coś samemu niż ciągnąć za sobą dodatkowe wpisy do bazy i nadmiarowy kod.
Artykuł opisuje wszystko ogólnikowo. Najlepiej byłoby jeszcze opisać coś dokładniej, a mianowicie informację o optymalizacja za pomocą .htaccess, łączenie plików css ,js w jeden, cachowanie obrazków, zmiana adresów ciężkich plików do pobierania z serwera na serwery Google (chodzi o biblioteki). A na sam koniec warto napisać o sposobach bezstratnych kompresjach zdjęć.
Jeżeli auto bloga się zgodzi, to podaję link do firmy, która wykonuje takie optymalizacje – optymalizacja stron Word Press
Hmm a nie lepiej zamiast Hyper Cache i już leciwego DB Cache Reloaded Fix użyć wordfence ? lub nawet w3 total cache który dodatkowo posiada również Minify ?
Walczę właśnie z przyspieszeniem WordPressa w https://developers.google.com/speed/. Wgrałem już chyba 7 wtyczkę i nadal wszystko stoi w miejscu. Mimo instalacji WP-Optimize, WP Minify i w3 total cache punkty nawet nie drgnęły. Ktoś wie co może pomóc? Strona stoi na Biznes-host
Dzięki za wpis, wyciągne z niego Plugin Organizer. Od siebie dodałbym Image Cleanup do usuwania zbędnej grafiki.
Super strona, dziękuję za wartościowe informacje. Kiss
Dzięki za kod dotyczący hotlinkowania. Nawet nie wiedziałem że takie sztuczki można robić.