{"id":15342,"date":"2025-09-01T19:45:25","date_gmt":"2025-09-01T17:45:25","guid":{"rendered":"https:\/\/dhosting.pl\/pomoc\/?post_type=manual_kb&#038;p=15342"},"modified":"2025-09-01T19:45:25","modified_gmt":"2025-09-01T17:45:25","slug":"cloudflare-dla-wordpressa-reguly-i-edge-cache-woocommerce","status":"publish","type":"manual_kb","link":"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/cloudflare-dla-wordpressa-reguly-i-edge-cache-woocommerce\/","title":{"rendered":"Cloudflare dla WordPressa &#8211; regu\u0142y i edge-cache WooCommerce"},"content":{"rendered":"<p><!-- Meta description: Gotowy szablon regu\u0142 Cloudflare dla WordPressa i WooCommerce - co cache\u2019owa\u0107, jakie wyj\u0105tki oraz jak ustawi\u0107 edge-cache i bezpiecze\u0144stwo. --><\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 ez-toc-wrap-left counter-flat ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Spis tre\u015bci<\/p>\n<span class=\"ez-toc-title-toggle\"><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/cloudflare-dla-wordpressa-reguly-i-edge-cache-woocommerce\/#Zalozenia_i_cele_konfiguracji\" >Za\u0142o\u017cenia i cele konfiguracji<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/cloudflare-dla-wordpressa-reguly-i-edge-cache-woocommerce\/#Szablon_regul_cache_i_naglowkow\" >Szablon regu\u0142 cache i nag\u0142\u00f3wk\u00f3w<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/cloudflare-dla-wordpressa-reguly-i-edge-cache-woocommerce\/#Wyjatki_i_edge-cache_dla_WooCommerce\" >Wyj\u0105tki i edge-cache dla WooCommerce<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/cloudflare-dla-wordpressa-reguly-i-edge-cache-woocommerce\/#Bezpieczenstwo_i_niezawodnosc\" >Bezpiecze\u0144stwo i niezawodno\u015b\u0107<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/cloudflare-dla-wordpressa-reguly-i-edge-cache-woocommerce\/#Monitoring_testy_i_rozwiazywanie_problemow\" >Monitoring, testy i rozwi\u0105zywanie problem\u00f3w<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/cloudflare-dla-wordpressa-reguly-i-edge-cache-woocommerce\/#Podsumowaniem\" >Podsumowaniem<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Zalozenia_i_cele_konfiguracji\"><\/span>Za\u0142o\u017cenia i cele konfiguracji<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Celem konfiguracji Cloudflare dla WordPressa jest po\u0142\u0105czenie szybkiego TTFB, stabilnego LCP i pe\u0142nej poprawno\u015bci sesji. Dla go\u015bci chcemy agresywnego cache HTML na kraw\u0119dzi &#8211; dla zalogowanych i proces\u00f3w zakupowych twardego omijania cache. Dzi\u0119ki temu strona pozostaje szybka bez ryzyka \u201eprzecieku\u201d stanu u\u017cytkownika.<\/p>\n<p>Podstaw\u0105 jest jasny podzia\u0142 ruchu: dokumenty publiczne i assety do cache, \u015bcie\u017cki wra\u017cliwe i odpowiedzi z cookies poza cache. Drugi filar to normalizacja klucza cache &#8211; ignorujemy szum marketingowy w parametrach, a zostawiamy tylko te, kt\u00f3re realnie zmieniaj\u0105 HTML. Trzeci to bezpieczniki po stronie originu &#8211; poprawne nag\u0142\u00f3wki <code class=\"\" data-line=\"\">Cache-Control<\/code> i kontrola <code class=\"\" data-line=\"\">Set-Cookie<\/code>.<\/p>\n<div id=\"dhost-422494586\" class=\"dhost-inpost dhost-entity-placement\"><a href=\"https:\/\/dhosting.pl\/opieka-stron.html?utm_source=pomoc&utm_medium=artykul&utm_campaign=pomoc\" target=\"_blank\">\r\n\t<img decoding=\"async\" src=\"https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2025\/01\/baner-opieka.png\" alt=\"opieka stron www\">\r\n<\/a>\r\n<br \/>\r\n<br \/><\/div><h2><span class=\"ez-toc-section\" id=\"Szablon_regul_cache_i_naglowkow\"><\/span>Szablon regu\u0142 cache i nag\u0142\u00f3wk\u00f3w<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Zacznij od regu\u0142, kt\u00f3re dzia\u0142aj\u0105 globalnie, a nast\u0119pnie doprecyzuj wyj\u0105tki.<\/p>\n<p><strong>1) \u201eCache everything\u201d dla HTML go\u015bci<\/strong><br \/>\n&#8211; Zakres: dokumenty HTML poza wyj\u0105tkami.<br \/>\n&#8211; Edge TTL 20\u201360 minut, Browser TTL 5\u201310 minut &#8211; w\u0142\u0105cz <code class=\"\" data-line=\"\">stale-while-revalidate<\/code> dla p\u0142ynnych od\u015bwie\u017ce\u0144.<br \/>\n&#8211; Normalizacja klucza cache: ignoruj <code class=\"\" data-line=\"\">utm_*<\/code>, <code class=\"\" data-line=\"\">gclid<\/code>, <code class=\"\" data-line=\"\">fbclid<\/code> i inne tagi kampanii. Zostaw paginacj\u0119, sortowanie i filtry, gdy zmieniaj\u0105 tre\u015b\u0107.<\/p>\n<p><strong>2) Zasoby statyczne<\/strong><br \/>\n&#8211; Obrazy, CSS, JS, czcionki &#8211; d\u0142ugie TTL na kraw\u0119dzi i w przegl\u0105darce, najlepiej 7\u201330 dni.<br \/>\n&#8211; Wersjonowanie nazw plik\u00f3w rozwi\u0105zuje problem od\u015bwie\u017cania bez czyszczenia cache.<br \/>\n&#8211; W\u0142\u0105cz kompresj\u0119 Brotli i minifikacj\u0119 &#8211; zysk bez ryzyka dla logiki aplikacji.<\/p>\n<p><strong>3) Nag\u0142\u00f3wki po stronie originu<\/strong><br \/>\n&#8211; Publiczne strony: <code class=\"\" data-line=\"\">Cache-Control: public, max-age=300, stale-while-revalidate=30<\/code>.<br \/>\n&#8211; Odpowiedzi, kt\u00f3re ustawiaj\u0105 lub konsumuj\u0105 stan u\u017cytkownika: <code class=\"\" data-line=\"\">Cache-Control: no-store<\/code>.<br \/>\n&#8211; Czcionki z innych domen &#8211; pami\u0119taj o <code class=\"\" data-line=\"\">crossorigin<\/code> i typie MIME, by unikn\u0105\u0107 podw\u00f3jnych pobra\u0144.<\/p>\n<p><strong>4) Usprawnienia bezdotykowe<\/strong><br \/>\n&#8211; Early Hints 103 &#8211; wskaz\u00f3wki <code class=\"\" data-line=\"\">Link<\/code> dla krytycznego CSS, fontu i obrazu LCP.<br \/>\n&#8211; <code class=\"\" data-line=\"\">preconnect<\/code> tylko do kluczowych host\u00f3w &#8211; ostro\u017cnie, by nie marnowa\u0107 gniazd.<br \/>\n&#8211; Opcjonalnie APO dla WordPressa &#8211; gdy chcesz \u201eplug-and-play\u201d cache HTML dla go\u015bci.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Wyjatki_i_edge-cache_dla_WooCommerce\"><\/span>Wyj\u0105tki i edge-cache dla WooCommerce<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>WooCommerce intensywnie korzysta z sesji i cookies &#8211; dlatego potrzebuje twardych wyj\u0105tk\u00f3w. Zasada jest prosta: koszyk, checkout, konto i operacje AJAX nigdy nie trafiaj\u0105 do cache.<\/p>\n<p><strong>1) Krytyczne \u015bcie\u017cki do omini\u0119cia<\/strong><br \/>\n&#8211; <code class=\"\" data-line=\"\">\/cart*<\/code>, <code class=\"\" data-line=\"\">\/checkout*<\/code>, <code class=\"\" data-line=\"\">\/my-account*<\/code>, <code class=\"\" data-line=\"\">\/wp-admin*<\/code>, <code class=\"\" data-line=\"\">\/wc-ajax*<\/code>.<br \/>\n&#8211; Bypass dla metod innych ni\u017c GET oraz gdy obecny jest nag\u0142\u00f3wek <code class=\"\" data-line=\"\">Authorization<\/code>.<br \/>\n&#8211; Wyklucz URL z parametrami akcyjnymi: <code class=\"\" data-line=\"\">?add-to-cart=*<\/code>, <code class=\"\" data-line=\"\">?remove_item=*<\/code>, <code class=\"\" data-line=\"\">?undo_item=*<\/code>.<\/p>\n<p><strong>2) Cookies wymuszaj\u0105ce omijanie cache<\/strong><br \/>\n&#8211; <code class=\"\" data-line=\"\">wordpress_logged_in_<\/code>, <code class=\"\" data-line=\"\">wordpress_sec_<\/code> &#8211; zalogowani.<br \/>\n&#8211; <code class=\"\" data-line=\"\">wp_woocommerce_session_<\/code> &#8211; identyfikator sesji sklepu.<br \/>\n&#8211; <code class=\"\" data-line=\"\">woocommerce_cart_hash<\/code>, <code class=\"\" data-line=\"\">woocommerce_items_in_cart<\/code> &#8211; stan koszyka.<br \/>\n&#8211; <code class=\"\" data-line=\"\">woocommerce_recently_viewed<\/code> &#8211; personalizacja list.<br \/>\nJe\u015bli kt\u00f3rykolwiek z tych prefiks\u00f3w jest ustawiony &#8211; dokument HTML ma by\u0107 generowany dynamicznie.<\/p>\n<p><strong>3) TTL i CBS dla sklep\u00f3w<\/strong><br \/>\n&#8211; HTML go\u015bci: edge TTL 30 minut + <code class=\"\" data-line=\"\">stale-while-revalidate<\/code>.<br \/>\n&#8211; Obrazy produktowe i miniatury: d\u0142ugie TTL i wersjonowanie &#8211; najwi\u0119kszy zysk w CWV.<br \/>\n&#8211; Nigdy nie cache\u2019uj odpowiedzi ustawiaj\u0105cych <code class=\"\" data-line=\"\">Set-Cookie<\/code> dla wymienionych prefiks\u00f3w.<\/p>\n<p><strong>4) Testy poprawno\u015bci<\/strong><br \/>\n&#8211; Sprawd\u017a <code class=\"\" data-line=\"\">CF-Cache-Status<\/code> &#8211; koszyk i checkout musz\u0105 mie\u0107 <code class=\"\" data-line=\"\">BYPASS<\/code> lub <code class=\"\" data-line=\"\">DYNAMIC<\/code>.<br \/>\n&#8211; W narz\u0119dziach deweloperskich dodaj do koszyka jako dw\u00f3ch r\u00f3\u017cnych u\u017cytkownik\u00f3w &#8211; upewnij si\u0119, \u017ce stan si\u0119 nie miesza.<br \/>\n&#8211; Monitoruj, czy zapytania do <code class=\"\" data-line=\"\">\/wc-ajax\/*<\/code> omijaj\u0105 cache i wracaj\u0105 z prawid\u0142owymi nag\u0142\u00f3wkami.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Bezpieczenstwo_i_niezawodnosc\"><\/span>Bezpiecze\u0144stwo i niezawodno\u015b\u0107<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Ochrona aplikacji idzie w parze z wydajno\u015bci\u0105. Zabezpiecz panele i punkty wra\u017cliwe &#8211; inaczej zysk z cache zje ruch niechciany.<\/p>\n<ul>\n<li>Rate Limiting na <code class=\"\" data-line=\"\">\/wp-login.php<\/code> i XML-RPC &#8211; ogranicz pr\u00f3by logowania i bruteforce.<\/li>\n<li>WAF z predefiniowanymi zestawami regu\u0142 &#8211; blokuj skanery i typowe wektory atak\u00f3w.<\/li>\n<li>Turnstile w formularzach publicznych &#8211; mniej spamu przy zerowym tarciu dla u\u017cytkownik\u00f3w.<\/li>\n<li>TLS i HSTS &#8211; wymu\u015b HTTPS wsz\u0119dzie, wy\u0142\u0105cz przestarza\u0142e protoko\u0142y, ustaw Minimum TLS 1.2 lub wy\u017cej.<\/li>\n<li>\u201eArgo\u201d i \u201eTiered Cache\u201d &#8211; szybsze po\u0142\u0105czenia do originu i mniej kosztownych miss\u00f3w, zw\u0142aszcza przy ruchu globalnym.<\/li>\n<li>Cache Bypass Safeguards &#8211; zakazuj cache dla odpowiedzi z <code class=\"\" data-line=\"\">Set-Cookie<\/code> i gdy obecny <code class=\"\" data-line=\"\">Authorization<\/code>.<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Monitoring_testy_i_rozwiazywanie_problemow\"><\/span>Monitoring, testy i rozwi\u0105zywanie problem\u00f3w<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Bez sta\u0142ego pomiaru trudno utrzyma\u0107 jako\u015b\u0107. Zr\u00f3b kr\u00f3tki plan obserwacji i checklist\u0119 kontroli.<\/p>\n<ul>\n<li>KPI po wdro\u017ceniu &#8211; TTFB dokumentu, LCP na p75, hit ratio HTML dla go\u015bci, b\u0142\u0119dy checkoutu.<\/li>\n<li>RUM &#8211; taguj ods\u0142ony flag\u0105 \u201eguest vs logged-in\u201d i por\u00f3wnuj LCP dla obu segment\u00f3w.<\/li>\n<li>Analiza parametr\u00f3w &#8211; ogranicz fragmentacj\u0119 cache, ignoruj\u0105c <code class=\"\" data-line=\"\">utm_*<\/code>, <code class=\"\" data-line=\"\">gclid<\/code>, <code class=\"\" data-line=\"\">fbclid<\/code>.<\/li>\n<li>Najcz\u0119stsze pu\u0142apki: mieszanie stanu koszyka przez b\u0142\u0119dny cache HTML, podw\u00f3jne pobrania font\u00f3w bez <code class=\"\" data-line=\"\">crossorigin<\/code>, brak efektu Early Hints przez zbyt d\u0142ug\u0105 list\u0119 <code class=\"\" data-line=\"\">Link<\/code>.<\/li>\n<li>Procedura rollback &#8211; pojedyncza zmiana naraz, logi <code class=\"\" data-line=\"\">CF-Cache-Status<\/code>, testy A\/B na wybranych \u015bcie\u017ckach, a dopiero potem roll-out globalny.<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Podsumowaniem\"><\/span>Podsumowaniem<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Idealna konfiguracja Cloudflare dla WordPressa to selektywny cache HTML dla go\u015bci, jasne wyj\u0105tki dla WooCommerce i twarde bezpieczniki po stronie originu. Najpierw ustaw regu\u0142y \u201ecache everything\u201d z normalizacj\u0105 parametr\u00f3w, potem dodaj bypass na kluczowe cookies i \u015bcie\u017cki, a na ko\u0144cu w\u0142\u0105cz usprawnienia jak Early Hints i d\u0142ugie TTL dla asset\u00f3w. Po\u0142\u0105cz to z WAF, rate limiting i sta\u0142ym monitoringiem &#8211; uzyskasz szybkie LCP i niskie TTFB bez ryzyka naruszenia sesji.<\/p>\n","protected":false},"author":6,"featured_media":10957,"parent":0,"menu_order":0,"template":"","format":"standard","manualknowledgebasecat":[121,118],"manual_kb_tag":[5903,5913,5898,5911,5907,5909,5884,5912,5910,5885,5881,5908,1479,4803,5902,1555,5899,5900],"class_list":["post-15342","manual_kb","type-manual_kb","status-publish","format-standard","has-post-thumbnail","hentry","manualknowledgebasecat-inne","manualknowledgebasecat-pozostale","manual_kb_tag-add-to-cart","manual_kb_tag-apo","manual_kb_tag-bypass-cache-on-cookie","manual_kb_tag-cache-rules","manual_kb_tag-cache-control","manual_kb_tag-cloudflare-wordpress","manual_kb_tag-early-hints-103","manual_kb_tag-edge-cache","manual_kb_tag-konfiguracja-cloudflare","manual_kb_tag-lcp","manual_kb_tag-rate-limiting","manual_kb_tag-stale-while-revalidate","manual_kb_tag-ttfb","manual_kb_tag-waf","manual_kb_tag-wc-ajax","manual_kb_tag-woocommerce","manual_kb_tag-wordpress_logged_in_","manual_kb_tag-wp_woocommerce_session_"],"_links":{"self":[{"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manual_kb\/15342","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manual_kb"}],"about":[{"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/types\/manual_kb"}],"author":[{"embeddable":true,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/users\/6"}],"version-history":[{"count":1,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manual_kb\/15342\/revisions"}],"predecessor-version":[{"id":15343,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manual_kb\/15342\/revisions\/15343"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/media\/10957"}],"wp:attachment":[{"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/media?parent=15342"}],"wp:term":[{"taxonomy":"manualknowledgebasecat","embeddable":true,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manualknowledgebasecat?post=15342"},{"taxonomy":"manual_kb_tag","embeddable":true,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manual_kb_tag?post=15342"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}