Cloudflare przed WordPressem za darmo
Jak darmowy plan Cloudflare chroni i przyspiesza WordPressa: proxy i ukrycie IP, SSL, cache, WAF, ochrona wp-login i xmlrpc. Konkretne reguły krok po kroku.
Cloudflare to jedno z tych narzędzi, które w darmowym planie dają więcej niż niejeden płatny dodatek. Stawiasz je przed WordPressem — między odwiedzającym a Twoim serwerem — i nagle dostajesz tarczę przeciw botom, darmowy SSL, cache, który odciąża hosting, oraz ukrycie prawdziwego adresu serwera. Wszystko za 0 zł. W tym tekście pokazuję po ludzku, jak to działa i co dokładnie ustawić, łącznie z gotowymi regułami.
To naturalne uzupełnienie poradnika o hartowaniu WordPressa: tamten zajmuje się serwerem, ten — warstwą przed nim.
Jak to w ogóle działa? (orange cloud)
Normalnie domena wskazuje wprost na IP Twojego serwera. Gdy przepuścisz ruch przez Cloudflare, DNS zaczyna zwracać adresy Cloudflare, a nie Twoje. To tzw. proxy — w panelu DNS poznasz je po pomarańczowej chmurce przy rekordzie (włączone proxy) zamiast szarej (tylko DNS).
Skutki są dwa i oba dobre:
- Każde żądanie przechodzi najpierw przez Cloudflare. Tam dzieje się cache, WAF, blokowanie botów — zanim cokolwiek dotknie Twojego hostingu.
- Twoje prawdziwe IP znika ze świata. Atakujący widzi adres Cloudflare, nie Twój serwer. Bez znajomości origin IP nie da się go zaatakować bezpośrednio (DDoS na origin, omijając ochronę).
Nie zdradź origin IP po cichu
Ukrycie IP działa tylko wtedy, gdy nic nie wycieka prawdziwego adresu. Najczęstsze przecieki: subdomena mail. lub ftp. ustawiona na „tylko DNS” (szara chmurka) na tym samym serwerze, stare rekordy A w historii DNS, nagłówki wysyłane przez serwer pocztowy. Po włączeniu Cloudflare upewnij się, że origin odrzuca ruch spoza zakresów IP Cloudflare (na hostingu współdzielonym poproś o to dostawcę albo zrób regułę w .htaccess).
SSL/TLS — darmowy HTTPS zrobiony dobrze
Cloudflare daje certyfikat SSL za darmo, ale tryb trzeba ustawić świadomie. W zakładce SSL/TLS → Overview:
| Tryb | Co robi | Werdykt |
|---|---|---|
| Off | Brak HTTPS | Nigdy |
| Flexible | HTTPS user→Cloudflare, ale Cloudflare→serwer po HTTP | Niebezpieczne, omijaj |
| Full | Szyfrowanie na całej drodze, ale certyfikat origin niesprawdzany | OK na start |
| Full (strict) | Pełne szyfrowanie + weryfikacja certyfikatu origin | To wybierz |
Żeby użyć Full (strict), Twój serwer musi mieć ważny certyfikat. Najprościej — darmowy Let’s Encrypt z panelu hostingu albo Cloudflare Origin Certificate (ważny 15 lat, tylko dla ruchu z Cloudflare). Następnie włącz Always Use HTTPS i Automatic HTTPS Rewrites, żeby wymusić bezpieczne połączenie i naprawić mieszane treści.
Cache statyki — odciąż hosting i przyspiesz stronę
Domyślnie Cloudflare cache’uje pliki statyczne (obrazki, CSS, JS), ale WordPress generuje HTML dynamicznie i ten nie jest cache’owany. Dla większości stron-wizytówek i blogów (treść rzadko się zmienia) możesz pójść dalej i cache’ować również HTML — to potrafi ściąć czas ładowania dramatycznie. Jeśli walczysz z wolno ładującą się stroną, to jeden z najtańszych zysków.
Bezpieczna reguła (Cache Rules) — cache’uj wszystko oprócz panelu, koszyka i podglądu:
Gdy (URI Path zaczyna się od "/wp-admin")
LUB (URI Path zawiera "/cart")
LUB (Cookie zawiera "wordpress_logged_in")
→ Cache eligibility: Bypass cache
W przeciwnym razie:
→ Cache eligibility: Eligible for cache
→ Edge TTL: 1 dzień
Wtyczka robi to za Ciebie
Nie chce Ci się klikać reguł? Oficjalna wtyczka Cloudflare (a dla cache pełnego HTML — Super Page Cache for Cloudflare albo APO w planie Pro) automatycznie czyści cache po edycji wpisu i pomija zalogowanych użytkowników. Dla nietechnicznego klienta to bezpieczniejszy wybór niż ręczne reguły.
WAF i ochrona logowania — sedno bezpieczeństwa
Tu Cloudflare naprawdę błyszczy. Darmowy plan daje WAF z regułami niestandardowymi, rate limiting (ograniczony, ale działa) oraz Bot Fight Mode.
Zamknij wp-login.php i xmlrpc.php
To dwa najczęściej atakowane adresy w WordPressie. xmlrpc.php to stary mechanizm, który boty wykorzystują do brute-force i ataków amplifikacyjnych — jeśli nie używasz Jetpacka ani aplikacji mobilnej, zablokuj go w całości. W Security → WAF → Custom rules:
Reguła: Blokuj xmlrpc
Gdy (URI Path równe "/xmlrpc.php")
→ Action: Block
Logowanie warto zostawić, ale wpuszczać tylko siebie albo wymusić wyzwanie. Jeśli masz stałe IP:
Reguła: Ochrona wp-login
Gdy (URI Path równe "/wp-login.php")
ORAZ (IP Source Address NIE należy do {TWOJE.IP})
→ Action: Managed Challenge
Bez stałego IP zamień akcję na Managed Challenge dla wszystkich — człowiek przejdzie niewidoczny test, bot odpadnie.
Rate limiting na logowanie
Darmowy plan pozwala na jedną regułę rate-limit. Idealny cel — wp-login.php:
Reguła: Limit prób logowania
Gdy (URI Path równe "/wp-login.php" oraz metoda = POST)
→ Limit: 5 żądań / 10 minut z jednego IP
→ Action: Block na 1 godzinę
To skutecznie ścina ataki brute-force, zanim w ogóle dotrą do PHP.
Bot Fight Mode i Turnstile
- Bot Fight Mode (Security → Bots) — jednym przełącznikiem rzuca wyzwania znanym botom. Włącz; uważaj tylko, by nie blokować pożądanych botów (np. UptimeRobot — dodaj wyjątek).
- Turnstile — darmowa, prywatna alternatywa reCAPTCHA. Wstaw ją na formularz kontaktowy albo rejestracji, żeby odsiać spam bez męczenia użytkowników zagadkami.
Proste reguły firewall i przekierowań
Kilka „szybkich zwycięstw”, które dorzucam niemal zawsze:
# Wymuszenie wersji bez www (albo odwrotnie) — Redirect Rules
Gdy (Hostname = "www.twojadomena.pl")
→ Dynamic redirect 301 → https://twojadomena.pl/${URI}
# Blokada ruchu z krajów, z których nie masz klientów (jeśli to lokalny biznes)
Gdy (IP Country NIE należy do {PL})
ORAZ (URI Path zaczyna się od "/wp-admin")
→ Action: Managed Challenge
Geo-blokadę na całą stronę stosuj ostrożnie (możesz odciąć realnych użytkowników i indeksację) — ale ograniczona do panelu jest bezpieczna i bardzo skuteczna.
Co realnie daje plan za 0 zł — a kiedy Pro
Bądźmy uczciwi co do granic darmowego planu:
| Funkcja | Free | Kiedy warto Pro |
|---|---|---|
| Proxy + ukrycie IP | Tak | — |
| Darmowy SSL (Full strict) | Tak | — |
| Cache statyki | Tak | — |
| Ochrona DDoS (L3/L4) | Tak, nielimitowana | — |
| Custom WAF rules | Tak (5 reguł) | Pro: więcej + reguły Managed |
| Rate limiting | 1 reguła, podstawowy | Pro/Business: rozbudowany |
| WAF Managed Rules (OWASP) | Nie | Tak — gotowe reguły OWASP |
| APO (cache całego HTML) | Nie | Tak — duży skok wydajności WP |
| Bot Fight Mode | Tak (podstawowy) | Pro: Super Bot Fight Mode |
| Obrazki/Polish | Nie | Płatne |
Mój werdykt: dla większości małych stron darmowy plan w zupełności wystarczy. Daje 90% korzyści za 0 zł. Pro (ok. 20–25 USD/mies.) ma sens, gdy chcesz APO dla pełnego cache HTML albo gotowe reguły OWASP bez ręcznego klikania — czyli przy ruchliwym sklepie lub portalu.
Podsumowanie — od czego zacząć
Jeśli masz 30 minut, zrób dziś:
- Przepnij DNS na Cloudflare i włącz pomarańczową chmurkę.
- Ustaw SSL: Full (strict) + Always Use HTTPS.
- Zablokuj
xmlrpc.phpi postaw Managed Challenge nawp-login.php. - Dodaj rate limiting na logowanie.
- Włącz Bot Fight Mode i regułę cache dla statyki.
To kilka kliknięć, a Twój WordPress staje się znacznie trudniejszym celem — i ładuje się szybciej. Cloudflare to jednak tylko jedna warstwa; pełną listę zabezpieczeń serwera znajdziesz w poradniku o hartowaniu WordPressa.
Chcesz, żeby ktoś ustawił to porządnie i bez ryzyka, że odetniesz sobie pół ruchu jedną regułą? Napisz do mnie — skonfiguruję Cloudflare pod Twoją stronę.