S Sitario
Zamów stronę
Wszystkie artykuły

WordPress czy strona statyczna? Bezpieczeństwo, szybkość, koszty

porownaniatechnologia

WordPress napędza mniej więcej 40% wszystkich stron w internecie. To imponująca liczba i zarazem główny powód, dla którego prawie każda agencja proponuje go w ciemno — niezależnie od tego, czy budujesz portal z tysiącami artykułów, czy pięciostronicową wizytówkę firmy hydraulicznej. Problem w tym, że te dwa przypadki nie mają ze sobą prawie nic wspólnego. Portal potrzebuje bazy danych, panelu redakcyjnego i systemu uprawnień. Wizytówka potrzebuje pięciu podstron, które się nie zmieniają miesiącami.

Dla tej drugiej sytuacji WordPress to armata na wróbla. I to armata, którą trzeba regularnie czyścić, oliwić i pilnować, żeby nie wystrzeliła we własną stronę.

W tym artykule rozkładam obie architektury na części: jak działają, gdzie leżą ryzyka, ile naprawdę kosztuje ich utrzymanie i — uczciwie — kiedy WordPress mimo wszystko wygrywa.

Jak działa WordPress, czyli co się dzieje po wpisaniu adresu

Kiedy ktoś otwiera stronę na WordPressie, serwer nie wysyła gotowego pliku. Zamiast tego uruchamia się cały łańcuch: serwer WWW przekazuje żądanie do interpretera PHP, PHP ładuje rdzeń WordPressa, motyw i wszystkie aktywne wtyczki, odpytuje bazę danych MySQL o treść, składa z tego dokument HTML i dopiero wtedy odsyła go do przeglądarki.

Ten proces powtarza się przy każdym wejściu na stronę (wtyczki cache’ujące go skracają, ale nie eliminują — i same są kolejnym elementem do utrzymania). Każde ogniwo tego łańcucha to kod, który musi być aktualny, poprawnie skonfigurowany i wolny od luk. A ogniw jest sporo:

  • rdzeń WordPressa — aktualizowany co kilka tygodni,
  • motyw — często kupiony raz, aktualizowany rzadko albo wcale,
  • wtyczki — typowa strona firmowa ma ich kilkanaście: formularz, SEO, cache, galeria, backup, ciasteczka…,
  • PHP na serwerze — kolejne wersje tracą wsparcie co kilka lat,
  • MySQL i sam serwer WWW.

To nie jest architektura zła sama w sobie. Ona po prostu rozwiązuje problem, którego prosta strona firmowa nie ma: dynamiczne składanie treści z bazy danych na żądanie.

Bezpieczeństwo WordPressa: powierzchnia ataku, nie pojedyncza luka

Fraza „WordPress bezpieczeństwo” ma miliony wyników nie dlatego, że sam rdzeń jest dziurawy. Rdzeń jest rozwijany przez duży zespół i łatany szybko. Problemem jest wszystko dookoła.

Wtyczki — główny wektor włamań

Raporty firm zajmujących się bezpieczeństwem WordPressa od lat pokazują ten sam obraz: zdecydowana większość skutecznych włamań przechodzi przez podatne wtyczki — najczęściej nieaktualne, czasem porzucone przez autora, czasem z luką typu zero-day, na którą łatki jeszcze nie ma. Logika jest prosta: wtyczkę pisze często jedna osoba, audytu bezpieczeństwa nikt nie robi, a instaluje ją potem pół miliona stron. Dla atakującego to loteria, w której każdy los wygrywa — wystarczy zeskanować internet w poszukiwaniu konkretnej wersji konkretnej wtyczki.

I tu dochodzimy do sedna: bezpieczeństwo strony na WordPressie to nie stan, tylko proces. Ktoś musi logować się do panelu, sprawdzać aktualizacje, instalować je, weryfikować czy nic się nie wysypało (bo aktualizacja wtyczki potrafi położyć stronę), robić kopie zapasowe przed każdą zmianą. Co tydzień, co dwa. Latami.

Panel administracyjny wystawiony na świat

Każdy WordPress ma stronę logowania pod przewidywalnym adresem — /wp-admin lub /wp-login.php. Boty odpytują te ścieżki masowo i próbują haseł metodą słownikową, dzień i noc. Można się bronić: zmiana adresu logowania, dwuskładnikowe uwierzytelnianie, limity prób, firewall aplikacyjny. Ale każde z tych zabezpieczeń to zwykle… kolejna wtyczka. Powierzchnia ataku rośnie po to, żeby bronić powierzchni ataku.

Co się dzieje po włamaniu

Przejęta strona firmowa rzadko zostaje po prostu skasowana — to byłoby mało opłacalne. Częściej zaczyna po cichu rozsyłać spam, hostować strony phishingowe albo doklejać odwiedzającym złośliwe przekierowania. Właściciel dowiaduje się ostatni: od Google (ostrzeżenie „ta witryna może być niebezpieczna” w wynikach wyszukiwania), od hostingodawcy (blokada konta) albo od klienta, któremu antywirus zablokował wejście. Sprzątanie po takim incydencie to godziny pracy specjalisty i realna strata zaufania.

Strona statyczna: nie ma czego zhakować

Strona statyczna to zestaw gotowych plików — HTML, CSS, trochę JavaScriptu, obrazki — leżących na serwerze i wysyłanych do przeglądarki dokładnie w takiej postaci, w jakiej zostały zapisane. Nic się nie wykonuje po stronie serwera. Nie ma PHP. Nie ma bazy danych. Nie ma panelu logowania pod publicznym adresem.

Konsekwencje dla bezpieczeństwa są fundamentalne:

  • Brak bazy danych — odpada cała klasa ataków SQL injection, bo nie istnieje baza, do której można wstrzyknąć zapytanie.
  • Brak kodu wykonywanego na serwerze — odpada zdalne wykonanie kodu, najgroźniejszy typ podatności.
  • Brak panelu admina — boty nie mają czego brute-force’ować. Zarządzanie stroną odbywa się poza nią (o tym za chwilę).
  • Brak wtyczek — nie ma łańcucha zależności, w którym jedno przeterminowane ogniwo otwiera drzwi.

Żeby podmienić treść takiej strony, atakujący musiałby przejąć dostęp do samej infrastruktury hostingowej — czyli np. do konta AWS zabezpieczonego kluczami i dwuskładnikowym uwierzytelnianiem. To zupełnie inna liga trudności niż znalezienie strony z nieaktualną wtyczką galerii.

Efekt uboczny, który właściciel firmy doceni najbardziej: strona statyczna nie wymaga cotygodniowej opieki. Nie ma aktualizacji do instalowania, bo nie ma oprogramowania, które się starzeje na serwerze. Zbudowana raz, działa tak samo za rok i za pięć lat.

Czym jest generator stron statycznych (i po co tu Astro)

Ktoś mógłby zapytać: skoro strona to gotowe pliki HTML, to czy trzeba je pisać ręcznie jak w latach 90.? Nie — i tu wchodzą generatory stron statycznych.

Generator to narzędzie, które działa przed publikacją, a nie przy każdym wejściu użytkownika. Programista pisze stronę w wygodnych, nowoczesnych komponentach (nagłówek raz, stopka raz, szablon podstrony raz), treść trzyma w osobnych plikach, a generator w procesie zwanym buildem składa z tego komplet gotowych plików HTML. Ten build uruchamia się raz — przy każdej zmianie treści — a nie milion razy, przy każdym odwiedzającym.

To dokładnie ta sama praca, którą WordPress wykonuje w kółko na żywo, tylko wykonana jednorazowo i z wyprzedzeniem.

Astro to obecnie jeden z najdojrzalszych generatorów i nasz wybór w Sitario. Jego wyróżnik: domyślnie wysyła do przeglądarki zero JavaScriptu. Większość frameworków dokleja do strony swój kod, nawet gdy strona go nie potrzebuje; Astro odwraca logikę — JavaScript trafia tylko tam, gdzie faktycznie coś robi (np. obsługuje formularz). Dla strony firmowej oznacza to lżejsze pliki i szybsze ładowanie, bez żadnej dodatkowej pracy.

Architektura AWS: S3 + CloudFront w trzech akapitach

Gotowe pliki trzeba gdzieś położyć. Klasyczny hosting współdzielony by wystarczył, ale skoro strona to tylko pliki, można sięgnąć po infrastrukturę klasy enterprise za ułamek jej zwykłej ceny.

Amazon S3 to magazyn plików w chmurze AWS — tej samej, na której działa spora część znanych serwisów internetowych. Pliki strony lądują w tzw. buckecie i S3 potrafi je serwować z niezawodnością, o której zwykły hosting może pomarzyć. Koszt przechowywania kilkumegabajtowej strony: grosze miesięcznie, dosłownie.

CloudFront to CDN, czyli sieć serwerów rozsianych po całym świecie — w tym w Warszawie i kilku innych lokalizacjach w Europie. CloudFront trzyma kopię plików strony na tych serwerach brzegowych i serwuje je odwiedzającemu z punktu położonego najbliżej niego. Użytkownik z Polski dostaje stronę z Polski, nie z serwera za oceanem. Do tego dochodzi certyfikat SSL (kłódka w przeglądarce) i automatyczna kompresja.

Ta architektura skaluje się sama. Nagły ruch — artykuł podlinkowany w popularnym serwisie, kampania reklamowa, sezonowy szczyt — nie powoduje różnicy w działaniu. CDN jest zaprojektowany na ruch o rzędy wielkości większy, niż jakakolwiek strona firmowa kiedykolwiek zobaczy. Na hostingu współdzielonym ten sam scenariusz często kończy się komunikatem o przekroczeniu limitu zasobów, i to akurat w dniu, w którym strona miała najwięcej do zarobienia.

Szybkość: TTFB i Core Web Vitals

Różnicę architektur widać najlepiej w metryce TTFB (time to first byte) — czasie od wysłania żądania do otrzymania pierwszego bajtu odpowiedzi. WordPress musi w tym czasie wykonać cały łańcuch PHP + MySQL opisany wyżej; typowo schodzi na to kilkaset milisekund, na przeciążonym hostingu współdzielonym potrafi być gorzej. Strona statyczna z CDN wysyła gotowy plik z serwera oddalonego o kilkadziesiąt kilometrów — TTFB rzędu kilkudziesięciu milisekund jest normą, nie osiągnięciem.

Google mierzy jakość stron zestawem metryk Core Web Vitals (m.in. LCP — czas wyświetlenia głównej treści) i uwzględnia je w rankingu wyszukiwania. Strona na WordPressie może osiągnąć zielone wyniki, ale wymaga to pracy: wtyczek cache, optymalizacji bazy, odchudzania motywu, kompresji obrazków — i pilnowania, żeby kolejna wtyczka tego nie zepsuła. Strona statyczna z Astro na CDN ma zielone Core Web Vitals niemal z definicji, bo nie ma w niej nic, co mogłoby ją spowolnić. Szczegółowo rozbieramy ten temat w artykule o tym, jak zbudować najszybszą stronę firmową.

Szybkość to nie fetysz techniczny. Wolna strona gubi część odwiedzających, zanim cokolwiek przeczytają — a na urządzeniach mobilnych, z sieci komórkowej, każda zbędna sekunda boli podwójnie.

Koszty utrzymania: rachunek roczny, nie cena za projekt

Porównując koszty, większość zestawień zatrzymuje się na cenie wykonania strony. Tymczasem różnica robi się przez lata utrzymania.

WordPress rocznie:

  • hosting z PHP i bazą danych — sensowny (nie najtańszy) to typowo 200–600 zł/rok,
  • odnowienia licencji płatnych wtyczek i motywu — często 100–500 zł/rok,
  • opieka techniczna (aktualizacje, backupy, monitoring) — albo abonament u agencji, zwykle od 100–300 zł miesięcznie, albo własny czas, albo ryzyko opisane w sekcji o bezpieczeństwie,
  • koszt incydentu, jeśli opieki nie było — trudny do przewidzenia, ale realny.

Strona statyczna rocznie:

  • S3 + CloudFront dla typowej strony firmowej — koszt na poziomie pojedynczych złotych miesięcznie, często niższy,
  • domena — tak samo jak przy WordPressie,
  • opieka techniczna — brak; nie ma czego aktualizować.

Pełne wyliczenie z konkretnymi kwotami znajdziesz w naszym przewodniku ile kosztuje strona internetowa dla firmy. Skrót jest taki: przy horyzoncie trzech lat strona statyczna potrafi kosztować mniej niż sam hosting WordPressa w tym okresie — nie licząc ani złotówki za czyjkolwiek czas.

Porównanie w tabeli

KryteriumWordPressStrona statyczna (Astro + AWS)
BezpieczeństwoWymaga stałej opieki; wtyczki to główny wektor włamań, panel logowania publicznie dostępnyBrak bazy, PHP i panelu — praktycznie brak powierzchni ataku
SzybkośćTTFB typowo setki milisekund; zielone Core Web Vitals wymagają optymalizacji i pilnowaniaTTFB rzędu dziesiątek milisekund z CDN; zielone Core Web Vitals z definicji
UtrzymanieAktualizacje rdzenia, motywu i wtyczek co tydzień–dwa; backupy; monitoringZerowe — nie ma oprogramowania serwerowego, które się starzeje
Koszty roczneHosting 200–600 zł + licencje + opieka (często 1200–3600 zł/rok u agencji)Infrastruktura za kilkadziesiąt złotych rocznie, bez opieki
Dla kogoRozbudowany blog z zespołem redaktorów, sklep WooCommerce, portal z integracjamiStrona firmowa, wizytówka, landing, oferta usług — treść zmieniana okazjonalnie

Uczciwie: kiedy WordPress wygrywa

Nie piszemy tego artykułu, żeby udowodnić, że WordPress jest zły. Jest znakomity — do zadań, do których powstał. Konkretnie:

Rozbudowany blog lub portal z wieloma redaktorami. Jeśli treść publikuje kilka osób dziennie, każda z własnym loginem, uprawnieniami i kolejką szkiców do akceptacji — panel redakcyjny WordPressa jest dojrzały, przetestowany i trudny do zastąpienia. Strona statyczna też może mieć blog (ten artykuł czytasz na takim), ale przy dużym zespole redakcyjnym workflow WordPressa po prostu wygrywa.

Sklep internetowy na WooCommerce. Koszyk, magazyn, płatności, faktury, stany produktów zmieniające się co minutę — to z natury dynamiczne dane. Da się to budować na architekturze statycznej z zewnętrznymi usługami, ale WooCommerce z ogromnym ekosystemem integracji (kurierzy, płatności, ERP) jest tu pragmatycznym wyborem.

Mnóstwo integracji i funkcji „z półki”. Strefa logowania dla klientów, rezerwacje z kalendarzem, forum, katalog z wyszukiwarką i filtrowaniem po bazie — jeśli strona ma być aplikacją, ekosystem wtyczek WordPressa pozwala złożyć to szybko. Płaci się za to opisaną wyżej powierzchnią ataku, ale czasem ten kompromis jest uzasadniony.

Codzienna samodzielna edycja treści przez osobę nietechniczną. Przy stronie statycznej zmiana treści wymaga ponownego builda — w dobrze ustawionym procesie to automat, ale jednak proces. Jeśli chcesz osobiście poprawiać teksty trzy razy dziennie w wizualnym edytorze, WordPress da ci to od ręki.

Jeśli rozpoznajesz swoją firmę w którymś z tych punktów — wybierz WordPress i zaplanuj budżet na porządną opiekę techniczną, bo bez niej wrócą wszystkie problemy z pierwszej połowy tego tekstu.

Jeśli natomiast potrzebujesz strony, która przedstawia firmę, ofertę i sposób kontaktu — a treść zmienia się kilka razy w roku, nie kilka razy dziennie — to każdy element architektury WordPressa jest dla ciebie zbędnym ryzykiem i zbędnym kosztem.

Jak to robimy w Sitario

Sitario stawia dokładnie taką architekturę, o jakiej przeczytałeś: strona zbudowana w Astro, serwowana z Amazon S3 przez CloudFront, z certyfikatem SSL i zielonymi Core Web Vitals. Bez bazy danych, bez wtyczek, bez panelu, który trzeba pilnować — czyli bez comiesięcznych obowiązków po twojej stronie.

Cała rzecz jest bezobsługowa w obie strony: ty nie konfigurujesz AWS-a ani nie uczysz się generatorów, my nie wysyłamy ci faktur za „opiekę techniczną”, bo ta architektura jej nie potrzebuje. Strona z hostingiem na rok kosztuje 199 zł. Szczegóły i przykłady znajdziesz na stronie głównej Sitario.

A jeśli po tej lekturze nadal wahasz się między obiema opcjami — napisz do nas i opisz, co strona ma robić. Jeżeli twój przypadek to WordPress, powiemy ci to wprost. Wolimy odesłać cię do konkurencji niż postawić coś, co nie pasuje do zadania.

Przeczytaj też