Hosting i wtyczki WordPress
Jak sprawić, by WordPress był szybki i bezpieczny: lista kontrolna wydajności i wtyczek
WordPress jest tylko tak szybki i bezpieczny, jak środowisko, na którym działa. Oto praktyczna lista kontrolna, którą stosujemy do każdej hostowanej przez nas witryny WordPress — co buforować, co zabezpieczać i które wtyczki zasługują na swoje miejsce, a które platforma czyni zbędnymi.
WordPress jest tylko tak dobry, jak środowisko, na którym działa
WordPress zasila dużą część sieci, ponieważ jest elastyczny, ale ta elastyczność sprawia również, że staje się powolny i niebezpieczny: domyślna instalacja odpytuje bazę danych dziesiątki razy na stronę, rozgłasza swoją wersję i stos technologiczny każdemu zainteresowanemu oraz zachęca do nakładania wtyczek, dopóki wydajność i powierzchnia ataku po cichu drastycznie nie wzrosną. Żadna z tych kwestii nie jest tyle wadą samego WordPress, ile konsekwencją uruchamiania go na infrastrukturze, która w żaden sposób temu nie zapobiega.
Dobra wiadomość jest taka, że te same nieliczne decyzje rozwiązują większość problemów i dotyczą one stosu technologicznego, a nie treści. Należy agresywnie buforować na właściwej warstwie, trzymać bazę danych z dala od ścieżki krytycznej, używać tylko tych kilku wtyczek, które naprawdę na to zasługują, dbać o aktualność wszystkich elementów i izolować witrynę, aby ewentualny problem pozostał pod kontrolą. Ten wpis stanowi właśnie taką listę kontrolną, przedstawioną w kolejności, w jakiej stosujemy ją do każdej witryny WordPress na naszej platformie.
Pamięć podręczna na serwerze, a nie tylko we wtyczce
Najważniejszym czynnikiem wpływającym na szybkość WordPress jest całkowite niewykonywanie WordPress podczas większości wizyt. Standardowe żądanie uruchamia WordPress, wykonuje Państwa wtyczki i odpytuje bazę danych przed wysłaniem choćby jednego bajta; pamięć podręczna całej strony przy następnym wywołaniu serwuje gotową stronę bezpośrednio z serwera WWW, z pominięciem całego procesu uruchamiania. Miejsce przechowywania tej pamięci podręcznej ma znaczenie: wtyczka buforująca działa wewnątrz PHP, więc PHP i tak się uruchamia, zanim pamięć podręczna zdąży odpowiedzieć, podczas gdy pamięć podręczna na poziomie serwera odpowiada na wcześniejszym etapie żądania i przechowuje strony w formie, którą serwer może natychmiast wyczyścić.
Każda witryna WordPress, którą hostujemy, działa na serwerze LiteSpeed Enterprise z obsługą LSCache na poziomie serwera, a nasza własna wtyczka buforująca od razu poprawnie łączy z nim WordPress — jest preinstalowana i automatycznie aktualizowana, dzięki czemu ma Pan/Pani o jedną rzecz mniej do skonfigurowania lub aktualizowania. Na serwerze źródłowym innym niż LiteSpeed ta sama wtyczka po prostu nie wysyła nagłówków pełnostronicowych i nie ingeruje w działanie, podczas gdy pamięć podręczna obiektów nadal działa, dzięki czemu zmigrowana witryna nigdy nie pozostaje w stanie częściowej konfiguracji. Praktyczna zasada do własnej listy kontrolnej: jedna pamięć podręczna pełnych stron na poziomie serwera i brak nakładania na nią drugiej wtyczki buforującej — powoduje to konflikty.
Pamięć podręczna obiektów i baza danych
Nie każde żądanie może być stroną statyczną. Zalogowane sesje, panel administracyjny, wyszukiwarka, koszyki i wszelkie spersonalizowane fragmenty muszą uruchamiać PHP, a w ich przypadku cel przesuwa się z pominięcia aplikacji na pominięcie bazy danych. Pamięć podręczna obiektów dla pojedynczej witryny — w naszym przypadku Redis — przechowuje wyniki powtarzających się odczytów z bazy danych w pamięci RAM, dzięki czemu te same opcje, wartości transient i odwołania nie są odpytywane w bazie danych przy każdym wywołaniu. Efekt widoczny jest dokładnie tam, gdzie pełne buforowanie stron nie może pomóc: szybszy panel administracyjny, szybsze koszyki i znacznie mniejsze obciążenie bazy danych pod wpływem ruchu.
Kluczowym określeniem jest „na stronę”. Współdzielona pamięć podręczna obiektów oznacza, że jedna obciążona lub źle napisana witryna może wyczyścić dane z pamięci podręcznej wszystkich innych i pozbawić zasobów bazy danych swoich sąsiadów; dedykowana pamięć podręczna na poziomie witryny, w połączeniu z limitami bazy danych na stronę, ogranicza pole rażenia. Na swojej liście kontrolnej należy traktować trwałą pamięć podręczną obiektów jako obowiązkową dla każdej witryny z zalogowanymi użytkownikami lub sklepem i zachować ostrożność w przypadku hostingu, w którym jest ona współdzielona między różnymi najemcami.
Wtyczki, które warto uruchomić — i te, które platforma zastępuje
Każda dodana przez Państwa wtyczka to kod uruchamiany przy żądaniach oraz drzwi, przez które ktoś może kiedyś wejść, dlatego szczerym celem jest posiadanie jak najmniejszej liczby wtyczek robiących jak najwięcej. Dobry hosting eliminuje potrzebę stosowania całej ich kategorii: dzięki buforowaniu na poziomie serwera, zarządzanej pamięci podręcznej obiektów i kopiom zapasowym na poziomie platformy nie potrzebują Państwo wtyczki buforującej, osobnej wtyczki pamięci podręcznej obiektów ani wtyczki do kopii zapasowych — te zadania są wykonywane lepiej poniżej WordPress, a uruchamianie ich na nim powoduje jedynie konflikty i dodatkowe obciążenie.
To, co warto jeszcze uruchamiać, to niewielki zestaw dodający rzeczywiste możliwości: wtyczki, których Państwa witryna rzeczywiście potrzebuje do działania, oraz — na naszej platformie — dwie wtyczki klasy repozytoryjnej, które tworzymy i dostarczamy z każdą witryną. Nasza wtyczka pamięci podręcznej łączy WordPress z pamięcią podręczną serwera i obsługuje inteligentne czyszczenie, dzięki czemu edycja czyści tylko te strony, które powinna. Nasza wtyczka do śladu SEO usuwa przy każdym wdrożeniu sygnały rozpoznawcze rozgłaszane przez domyślną instalację WordPress — wersję i tag generatora, punkty końcowe wykrywania, XML-RPC, pingbacki oraz nagłówek powered-by — dzięki czemu aktualizacja wtyczki lub motywu nie może po cichu ich przywrócić. Obie zostały zbudowane zgodnie ze standardami katalogu wtyczek WordPress.org, są bezpłatne i aktualizują się automatycznie.
Utrzymywanie WordPressa w bezpiecznym i aktualnym stanie
Większość naruszeń bezpieczeństwa WordPress nie jest wyrafinowana; bazuje na starych lukach. Nieaktualny rdzeń, motyw lub wtyczka ze znaną, opublikowaną podatnością to zdecydowanie najczęstsza przyczyna ataków na strony, co sprawia, że dbanie o aktualizacje jest najcenniejszym działaniem w zakresie bezpieczeństwa — a zarazem najbardziej żmudnym, przez co bywa pomijane. Hosting zarządzany powinien zdjąć ten ciężar z Państwa barków: aktualizować środowisko pod WordPress oraz zapewniać bezpieczne wdrażanie aktualizacji rdzenia i wtyczek poprzez udostępnienie kopii roboczej do testów i kopii zapasowej umożliwiającej przywrócenie stanu poprzedniego.
Oprócz aktualności należy oczekiwać, że granice będą egzekwowane na Państwa korzyść: skanowanie w poszukiwaniu złośliwego oprogramowania domyślnie włączone, aby infekcja została wykryta, a nie zauważona przez odwiedzającego, izolacja zapobiegająca przedostaniu się zagrożenia z jednej zainfekowanej witryny do drugiej, ochrona przed atakami DDoS na brzegu sieci oraz TLS w całym środowisku z automatycznie odnawianymi certyfikatami. Żadne z tych rozwiązań nie zastępuje podstawowej higieny — silnych danych uwierzytelniających, dostępu o minimalnych uprawnieniach czy usuwania nieużywanych wtyczek — ale oznacza to, że infrastruktura nie jest najsłabszym ogniwem. Na Państwa liście kontrolnej pytanie do każdego dostawcy hostingu jest proste: czy bezpieczeństwo jest standardem, czy pakietem, który trzeba dokupić?
WooCommerce i strony, których nigdy nie należy buforować
Sklep to miejsce, w którym agresywne buforowanie przynosi największe korzyści, ale i wyrządza najpoważniejsze szkody, jeśli zostanie wdrożone bezmyślnie. Strony katalogu, produktów i kategorii generują największy ruch i najlepiej nadają się do buforowania, a serwowanie ich z pełnostronicowej pamięci podręcznej to najlepsza rzecz, jaką można zrobić dla szybkości sklepu. Jednak strony koszyka, kasy i konta mają charakter osobisty i nigdy nie mogą być serwowane ze współdzielonej pamięci podręcznej — w przeciwnym razie kupujący zobaczy cudzy koszyk, co oznacza zarówno uszkodzony sklep, jak i naruszenie prywatności.
Sposobem na pogodzenie obu kwestii jest buforowanie strony i tworzenie wycięć na dynamiczne elementy. Edge Side Includes renderują fragment koszyka, sumy mini-koszyka oraz stan konta dla każdego żądania, podczas gdy reszta strony jest serwowana z pamięci podręcznej, a strony koszyka, kasy, mojego konta oraz wszelkie strony z tokenami nonce lub sesjami są domyślnie wykluczone. Świeżość danych zapewnia inteligentne automatyczne czyszczenie, uruchamiane przy każdej zmianie produktu, ceny lub zamówienia, dzięki czemu nieaktualna cena nigdy nie pozostaje w pamięci podręcznej. Jeśli korzystają Państwo z WooCommerce, to jest to element listy kontrolnej, który należy wdrożyć bezbłędnie: szybki widok sklepu z pamięci podręcznej, dynamiczny koszyk dla każdego użytkownika oraz brak buforowania jakichkolwiek danych osobowych.
Często zadawane pytania
Czy nadal potrzebuję wtyczki buforującej, takiej jak WP Rocket?
Nie. Buforowanie całych stron jest obsługiwane na poziomie serwera WWW przez LSCache firmy LiteSpeed, nasza własna wtyczka buforująca łączy z nim WordPress i zarządza inteligentnym czyszczeniem pamięci podręcznej, a za wszystkim stoi pamięć podręczna obiektów Redis dla każdej witryny. Dodanie drugiej wtyczki do buforowania całych stron zazwyczaj koliduje z pamięcią podręczną na poziomie serwera, zamiast pomagać, dlatego nie jest to ani potrzebne, ani zalecane.
Z jakich wtyczek platforma pozwala zrezygnować?
Wtyczki buforujące, oddzielne wtyczki object-cache oraz wtyczki do tworzenia kopii zapasowych są tutaj zbędne, ponieważ zadania te są wykonywane poniżej WordPress — buforowanie na poziomie serwera, zarządzana pamięć object cache dla każdej witryny oraz kopie zapasowe na poziomie platformy. Ich usunięcie zmniejsza liczbę konfliktów i powierzchnię ataku. Warto pozostawić jedynie te wtyczki, których Państwa witryna rzeczywiście potrzebuje do swojego działania, a także nasze dwie bezpłatne wtyczki do pamięci podręcznej i footprint, które są dostarczane jako wstępnie zainstalowane.
Czy buforowanie zakłóci działanie mojego koszyka WooCommerce lub stron dla zalogowanych użytkowników?
Nie. Koszyk, kasa, moje konto oraz wszelkie strony nonce lub sesji są domyślnie wykluczone z pamięci podręcznej, a Edge Side Includes utrzymuje fragment koszyka i sumy na bieżąco na stronach buforowanych. Klienci zawsze widzą swój własny koszyk i działający proces finalizacji zakupu, podczas gdy witryna sklepowa nadal ładuje się z pamięci podręcznej, a inteligentne automatyczne czyszczenie czyści zmienione strony, gdy zmienia się produkt, cena lub zamówienie.
W jaki sposób dbają Państwo o bezpieczeństwo WordPress bez konieczności zarządzania nim przeze mnie?
Aktualizujemy stos technologiczny pod WordPress, zapewniamy bezpieczne wdrażanie aktualizacji silnika i wtyczek dzięki środowisku testowemu oraz przywracaniu jednym kliknięciem, domyślnie włączamy skanowanie w poszukiwaniu złośliwego oprogramowania oraz ochronę przed atakami DDoS, izolujemy każdą witrynę, aby pojedyncze naruszenie bezpieczeństwa się nie rozprzestrzeniało, a także automatycznie wydajemy i odnawiamy certyfikaty TLS. Eliminuje to infrastrukturę jako słabe ogniwo; podstawowa higiena, taka jak silne dane uwierzytelniające i usuwanie nieużywanych wtyczek, nadal spoczywa na Państwu.
Powiązane
Wypróbuj bezpłatnie przez 14 dni
Uruchom swoje pierwsze witryny za darmo na 14 dni — bez konieczności podawania karty. Przenosisz istniejącą witrynę lub sieć? Migracje są bezpłatne i bez limitu.
Rozpocznij za darmo