{"id":17058,"date":"2026-01-27T08:37:12","date_gmt":"2026-01-27T07:37:12","guid":{"rendered":"https:\/\/webhosting.de\/wordpress-browser-caching-fehler-serverboost\/"},"modified":"2026-01-27T08:37:12","modified_gmt":"2026-01-27T07:37:12","slug":"blad-buforowania-przegladarki-wordpress-serverboost","status":"publish","type":"post","link":"https:\/\/webhosting.de\/pl\/wordpress-browser-caching-fehler-serverboost\/","title":{"rendered":"WordPress i buforowanie przegl\u0105darki - cz\u0119sto skonfigurowane nieprawid\u0142owo"},"content":{"rendered":"<p>Buforowanie przegl\u0105darki WordPress cz\u0119sto powoduje powolne odpowiedzi, poniewa\u017c operatorzy musz\u0105 <strong>Nag\u0142\u00f3wek pami\u0119ci podr\u0119cznej<\/strong> ustawione nieprawid\u0142owo lub w og\u00f3le niekontrolowane. Poka\u017c\u0119 ci, jak typowe b\u0142\u0119dne konfiguracje zwracaj\u0105 200 zamiast 304, dlaczego brakuje TTL i jak mog\u0119 poprawnie skonfigurowa\u0107 buforowanie w WordPress. <strong>Wydajno\u015b\u0107<\/strong> wyko\u0144czenie.<\/p>\n\n<h2>Punkty centralne<\/h2>\n\n<ul>\n  <li><strong>D\u0142ugi TTL<\/strong> dla zasob\u00f3w statycznych zapobiega niepotrzebnym \u017c\u0105daniom.<\/li>\n  <li><strong>Wyra\u017ana separacja<\/strong> statycznych i dynamicznych \u015bcie\u017cek chroni administratora i logowanie.<\/li>\n  <li><strong>Jeden system<\/strong> nie mieszaj konkuruj\u0105cych ze sob\u0105 wtyczek buforuj\u0105cych.<\/li>\n  <li><strong>Sprawd\u017a nag\u0142\u00f3wki<\/strong> z DevTools i statusem 304.<\/li>\n  <li><strong>Buforowanie serwera<\/strong> i pami\u0119ci podr\u0119cznej przegl\u0105darki.<\/li>\n<\/ul>\n\n<h2>Jak naprawd\u0119 dzia\u0142a buforowanie przegl\u0105darki w WordPress<\/h2>\n\n<p>Przegl\u0105darka przechowuje pliki statyczne lokalnie, dzi\u0119ki czemu nie trzeba ich ponownie \u0142adowa\u0107. <strong>\u017b\u0105dania HTTP<\/strong>. Podczas drugiej wizyty odczytuje obrazy, CSS i JS z pami\u0119ci lokalnej i prosi serwer tylko o zmiany. Zmniejsza to ilo\u015b\u0107 danych, skraca czas odpowiedzi, a przewijanie jest bardziej responsywne. <strong>p\u0142yn<\/strong> na. Je\u015bli nie ma jasnych instrukcji, przegl\u0105darka prze\u0142adowuje si\u0119 ca\u0142kowicie za ka\u017cdym razem i cierpi na tym czas interakcji. Prawid\u0142owo ustawione nag\u0142\u00f3wki kontroli pami\u0119ci podr\u0119cznej umo\u017cliwiaj\u0105 walidacj\u0119 304, zmniejszaj\u0105 przepustowo\u015b\u0107 i zmniejszaj\u0105 obci\u0105\u017cenie PHP i bazy danych. U\u017cywam tego konsekwentnie, poniewa\u017c powtarzaj\u0105cy si\u0119 u\u017cytkownicy w szczeg\u00f3lno\u015bci odnosz\u0105 najwi\u0119ksze korzy\u015bci z trwa\u0142ego buforowania.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/01\/wordpress-caching-problem-8392.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Dlaczego konfiguracja cz\u0119sto zawodzi<\/h2>\n\n<p>Wiele witryn dostarcza statyczne pliki z absurdalnie kr\u00f3tkimi plikami <strong>maksymalny wiek<\/strong>-values. Niekt\u00f3re wtyczki nadpisuj\u0105 wzajemnie swoje .htaccess i ustawiaj\u0105 sprzeczne dyrektywy. Witryna cz\u0119sto nieprawid\u0142owo oznacza \u015bcie\u017cki administratora, powoduj\u0105c, \u017ce zawarto\u015b\u0107 z \/wp-admin lub \/wp-login.php trafia do pami\u0119ci podr\u0119cznej w spos\u00f3b niezamierzony, a sesje koliduj\u0105 ze sob\u0105. Sprawdzam r\u00f3wnie\u017c r\u00f3\u017cnic\u0119 mi\u0119dzy pierwszym a powtarzaj\u0105cym si\u0119 wywo\u0142aniem, poniewa\u017c jasno wyja\u015bnia to rzeczywiste do\u015bwiadczenia u\u017cytkownik\u00f3w; por\u00f3wnanie pasuje do tego <a href=\"https:\/\/webhosting.de\/pl\/porownanie-buforowania-wordpress-pierwsze-polaczenie-niska-predkosc\/\">Pierwsze po\u0142\u0105czenie a powracaj\u0105cy rozm\u00f3wca<\/a>. Je\u015bli nadal u\u017cywasz ci\u0105g\u00f3w zapyta\u0144 bez wersjonowania, b\u0119dziesz tworzy\u0107 stare pliki w pami\u0119ci i zastanawia\u0107 si\u0119 nad <strong>przestarza\u0142y<\/strong> Style.<\/p>\n\n<h2>Poprawne ustawienie nag\u0142\u00f3wk\u00f3w pami\u0119ci podr\u0119cznej WP<\/h2>\n\n<p>Kontroluj\u0119 czas trwania za pomoc\u0105 <strong>Kontrola pami\u0119ci podr\u0119cznej<\/strong> i Expires, a tak\u017ce unikam niejednoznacznych ETag\u00f3w w \u015brodowiskach wieloserwerowych. W przypadku Apache ustawiam Expires na znacz\u0105ce warto\u015bci i definiuj\u0119 \u201epublic, max-age\u201c dla zasob\u00f3w. W przypadku Nginx dodaj\u0119 dyrektywy add_header i upewniam si\u0119, \u017ce HTML ma kr\u00f3tki czas lub \u201eno-store\u201c, je\u015bli zawarto\u015b\u0107 jest spersonalizowana. Dezaktywuj\u0119 r\u00f3wnie\u017c nag\u0142\u00f3wki ETag, je\u015bli load balancery lub proxy nie generuj\u0105 tych warto\u015bci konsekwentnie. W ten spos\u00f3b wymuszam jasne zachowanie w przegl\u0105darce i unikam <strong>Uniewa\u017cnienia<\/strong> przy ka\u017cdym klikni\u0119ciu.<\/p>\n\n<pre><code>ExpiresActive On\n  ExpiresByType image\/jpeg \"dost\u0119p plus 1 rok\"\n  ExpiresByType image\/png \"dost\u0119p plus 1 rok\"\n  ExpiresByType text\/css \"dost\u0119p plus 1 miesi\u0105c\"\n  ExpiresByType application\/javascript \"dost\u0119p plus 1 miesi\u0105c\"\n\n\n\n  Header set Cache-Control \"public, max-age=31536000\" \"expr=%{CONTENT_TYPE} =~ m#^(image\/|font\/|application\/javascript)#\"\n  Header set Cache-Control \"no-cache, no-store, must-revalidate\" \"expr=%{REQUEST_URI} =~ m#(wp-admin|wp-login.php)#\"\n  Nieustawiony ETag nag\u0142\u00f3wka<\/code><\/pre>\n\n<pre><code># Nginx\nlocation ~* .(jpg|jpeg|png|gif|ico|webp|avif|css|js|woff2?)$ {\n    add_header Cache-Control \"public, max-age=31536000\";\n}\nlocation ~* \/(wp-admin|wp-login.php)$ {\n    add_header Cache-Control \"no-store\";\n}<\/code><\/pre>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/01\/wordpress_caching_meeting_5823.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Rozszerzone dyrektywy kontroli pami\u0119ci podr\u0119cznej w codziennym \u017cyciu<\/h2>\n\n<p>Opr\u00f3cz \u201emax-age\u201c i \u201eno-store\u201c, nowoczesne dyrektywy zapewniaj\u0105 zauwa\u017caln\u0105 stabilno\u015b\u0107. \u201eimmutable\u201c sygnalizuje przegl\u0105darce, \u017ce plik nie ulegnie zmianie, dop\u00f3ki jego nazwa pozostanie taka sama - idealne rozwi\u0105zanie dla zasob\u00f3w wersjonowanych. \u201estale-while-revalidate\u201c pozwala na dostarczenie wygas\u0142ej kopii, podczas gdy jest ona aktualizowana w tle. \u201estale-if-error\u201c utrzymuje kopi\u0119 w gotowo\u015bci, je\u015bli Origin kr\u00f3tko zwraca b\u0142\u0119dy. \u201es-maxage\u201c jest przeznaczony dla serwer\u00f3w proxy\/CDN i mo\u017ce mie\u0107 warto\u015bci inne ni\u017c \u201emax-age\u201c. Wa\u017cne: \u201epublic\u201c pozwala na buforowanie we wsp\u00f3\u0142dzielonych serwerach proxy; \u201eprivate\u201c jest ograniczone do przegl\u0105darki. \u201eno-cache\u201c nie oznacza \u201enie buforuj\u201c, ale \u201ebuforowanie dozwolone, ale sprawd\u017a ponownie przed u\u017cyciem\u201c - kluczowa r\u00f3\u017cnica w stosunku do \u201eno-store\u201c.<\/p>\n\n<pre><code>Przyk\u0142ad # Apache 2.4 (jeszcze solidniejsze buforowanie zasob\u00f3w)\n\n  Header set Cache-Control \"public, max-age=31536000, immutable, stale-while-revalidate=86400, stale-if-error=259200\" \"expr=%{REQUEST_URI} =~ m#.(css|js|woff2?|png|jpe?g|webp|avif)$#\"\n  Header set Cache-Control \"no-cache, must-revalidate\" \"expr=%{CONTENT_TYPE} =~ m#^text\/html#\"<\/code><\/pre>\n\n<pre><code>Przyk\u0142ad # Nginx (przekierowania 304\/Include)\nlocation ~* .(css|js|woff2?|png|jpe?g|webp|avif)$ {\n    add_header Cache-Control \"public, max-age=31536000, immutable, stale-while-revalidate=86400, stale-if-error=259200\" always;\n}\nlocation ~* .html$ {\n    add_header Cache-Control \"no-cache, must-revalidate\" always;\n}<\/code><\/pre>\n\n<h2>Zalecany czas buforowania wed\u0142ug typu pliku<\/h2>\n\n<p>Wybieram godziny zgodnie z cz\u0119stotliwo\u015bci\u0105 zmian, a nie przyzwyczajeniem, poniewa\u017c <strong>Aktywa<\/strong> starzej\u0105 si\u0119 w bardzo r\u00f3\u017cny spos\u00f3b. Obrazy, logo i ikony zazwyczaj pozostaj\u0105 aktualne przez d\u0142ugi czas, podczas gdy CSS\/JS otrzymuj\u0105 cz\u0119stsze iteracje. Czcionki internetowe rzadko si\u0119 zmieniaj\u0105, ale wymagaj\u0105 sp\u00f3jnych nag\u0142\u00f3wk\u00f3w CORS. HTML cz\u0119sto s\u0142u\u017cy jako kontener dla dynamicznej zawarto\u015bci i dlatego mo\u017ce by\u0107 kr\u00f3tki lub tylko ponownie walidowany. Interfejsy API powinny mie\u0107 jasno okre\u015blone zasady, aby klienci mogli poprawnie pracowa\u0107 z <strong>JSON<\/strong> unika\u0107.<\/p>\n\n<table>\n  <thead>\n    <tr>\n      <th>Typ pliku<\/th>\n      <th>Zalecenie Cache-Control<\/th>\n      <th>Wskaz\u00f3wka<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td>Obrazy (jpg\/png\/webp\/avif\/svg)<\/td>\n      <td>publiczny, max-age=31536000<\/td>\n      <td>Korzystanie z rocznej pami\u0119ci podr\u0119cznej z wersjonowaniem plik\u00f3w<\/td>\n    <\/tr>\n    <tr>\n      <td>CSS\/JS<\/td>\n      <td>publiczny, max-age=2592000<\/td>\n      <td>Dodanie wersji do nazwy pliku w celu aktualizacji<\/td>\n    <\/tr>\n    <tr>\n      <td>Czcionki (woff\/woff2)<\/td>\n      <td>publiczny, max-age=31536000<\/td>\n      <td>Prawid\u0142owe ustawienie Access-Control-Allow-Origin<\/td>\n    <\/tr>\n    <tr>\n      <td>HTML (strony)<\/td>\n      <td>no-cache, must-revalidate lub kr\u00f3tki max-age<\/td>\n      <td>Bardzo ostro\u017cnie z dynamiczn\u0105 zawarto\u015bci\u0105<\/td>\n    <\/tr>\n    <tr>\n      <td>REST API (json)<\/td>\n      <td>private, max-age=0, must-revalidate<\/td>\n      <td>R\u00f3\u017cnicowanie w zale\u017cno\u015bci od punktu ko\u0144cowego<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n<h2>Unikanie konflikt\u00f3w z wtyczkami<\/h2>\n\n<p>U\u017cywam co najwy\u017cej <strong>Wtyczka buforowania<\/strong> i sprawdzi\u0107, czy hosting okre\u015bla ju\u017c regu\u0142y na poziomie serwera. Kombinacje takie jak W3 Total Cache plus WP Super Cache cz\u0119sto tworz\u0105 zduplikowane dyrektywy, kt\u00f3re wzajemnie si\u0119 wykluczaj\u0105. WP Rocket oferuje szybk\u0105 konfiguracj\u0119, ale wymaga jasnych wyklucze\u0144 dla dynamicznych \u015bcie\u017cek i e-commerce. W ka\u017cdym razie sprawdzam wygenerowany .htaccess po zapisaniu, aby rozpozna\u0107 nielogiczne nag\u0142\u00f3wki. Nast\u0119pnie testuj\u0119 krytyczne strony, takie jak kasa, logowanie i spersonalizowane pulpity nawigacyjne pod k\u0105tem poprawno\u015bci. <strong>Obej\u015bcie<\/strong>.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/01\/wordpress-browser-caching-fehler-9274.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Buforowanie i pliki cookie: zalogowani u\u017cytkownicy, WooCommerce, sesje<\/h2>\n\n<p>HTML dla zalogowanych u\u017cytkownik\u00f3w nie mo\u017ce by\u0107 przechowywany w publicznej pami\u0119ci podr\u0119cznej. WordPress ustawia pliki cookie, takie jak <code>wordpress_logged_in_<\/code>, uzupe\u0142niony o WooCommerce <code>woocommerce_items_in_cart<\/code>, <code>wp_woocommerce_session_<\/code> i inne. Zamiast nadmiernego <em>Vary: Cookie<\/em> W przypadku takich \u017c\u0105da\u0144 ca\u0142kowicie pomijam pami\u0119\u0107 podr\u0119czn\u0105. Zapewnia to stabilno\u015b\u0107 proces\u00f3w kasowych i poprawno\u015b\u0107 spersonalizowanych obszar\u00f3w. U\u017cywam r\u00f3wnie\u017c regu\u0142 po stronie serwera, kt\u00f3re ustawiaj\u0105 bardziej restrykcyjne nag\u0142\u00f3wki, gdy pliki cookie s\u0105 rozpoznawane.<\/p>\n\n<pre><code># Apache: Rozpoznawanie plik\u00f3w cookie i ustawianie nag\u0142\u00f3wk\u00f3w obej\u015bcia\n\n  SetEnvIfNoCase Cookie \"wordpress_logged_in_|woocommerce_items_in_cart|wp_woocommerce_session\" has_session\n  Header set Cache-Control \"private, no-store\" env=has_session<\/code><\/pre>\n\n<pre><code># Nginx: Obej\u015bcie oparte na plikach cookie\nif ($http_cookie ~* \"(wordpress_logged_in|woocommerce_items_in_cart|wp_woocommerce_session)\") {\n    add_header Cache-Control \"private, no-store\" always;\n}<\/code><\/pre>\n\n<p>Wiele wtyczek do buforowania oferuje w tym celu pola wyboru (WooCommerce\/Cart\/Exclude checkout). Wa\u017cne: Nonces (<code>_wpnonce<\/code>) w formularzach i Heartbeat API generuj\u0105 cz\u0119ste zmiany. Upewniam si\u0119, \u017ce frontendowy HTML z nonces nie jest trwale buforowany lub dzia\u0142a poprzez \u201eno-cache, must-revalidate\u201c.<\/p>\n\n<h2>Ukierunkowane leczenie HTML: spersonalizowane vs. og\u00f3lne<\/h2>\n\n<p>Nie wszystkie strony s\u0105 takie same. Artyku\u0142y, strony docelowe i strony prawne cz\u0119sto mog\u0105 by\u0107 buforowane z kr\u00f3tkim TTL lub ponown\u0105 walidacj\u0105. Archiwa, strony wyszukiwania, pulpity nawigacyjne, obszary kont i kasy pozostaj\u0105 dynamiczne. Je\u015bli chodzi o buforowanie stron, stosuj\u0119 nast\u0119puj\u0105c\u0105 praktyk\u0119: buforuj tylko publiczny HTML bez plik\u00f3w cookie, w przeciwnym razie \u201eprywatny\u201c lub \u201ebez przechowywania\u201c. Je\u015bli testujesz mikro-buforowanie (np. 30-60 sekund dla cz\u0119sto odwiedzanych, niespersonalizowanych stron), powiniene\u015b zdefiniowa\u0107 \u015bcis\u0142e wykluczenia dla parametr\u00f3w zapytania i sesji. WordPress posiada <code>DONOTCACHEPAGE<\/code> sta\u0142a, kt\u00f3r\u0105 szablony mog\u0105 ustawia\u0107 na trudnych stronach - u\u017cywam jej konsekwentnie, aby unikn\u0105\u0107 b\u0142\u0119d\u00f3w.<\/p>\n\n<h2>Rozs\u0105dne po\u0142\u0105czenie buforowania po stronie serwera<\/h2>\n\n<p>Buforowanie przegl\u0105darki ko\u0144czy si\u0119 na kliencie, ale odci\u0105\u017cam r\u00f3wnie\u017c serwer za pomoc\u0105 pami\u0119ci podr\u0119cznej stron, obiekt\u00f3w i kod\u00f3w operacyjnych. <strong>Szczyty obci\u0105\u017cenia<\/strong>. Buforowanie stron dostarcza statyczny HTML jeszcze przed uruchomieniem PHP. Redis lub Memcached redukuj\u0105 zapytania do bazy danych dla powtarzaj\u0105cych si\u0119 \u017c\u0105da\u0144 i zauwa\u017calnie zmniejszaj\u0105 TTFB. OPcache zapewnia prekompilowane fragmenty kodu bajtowego PHP, a tym samym skraca czas wykonania. Ostatecznie liczy si\u0119 czyste po\u0142\u0105czenie mi\u0119dzy pami\u0119ci\u0105 podr\u0119czn\u0105 serwera a pami\u0119ci\u0105 podr\u0119czn\u0105 przegl\u0105darki, dzi\u0119ki czemu druga wizyta jest mniej lub bardziej udana. <strong>natychmiastowy<\/strong> dzia\u0142a.<\/p>\n\n<h2>Integracja CDN bez niespodzianek<\/h2>\n\n<p>Sieci CDN u\u017cywaj\u0105 w\u0142asnej logiki TTL i reaguj\u0105 na \u201es-maxage\u201c. Dlatego dokonuj\u0119 wyra\u017anego rozr\u00f3\u017cnienia: \u201emax-age\u201c dla przegl\u0105darek, \u201es-maxage\u201c dla Edge. Je\u015bli wdro\u017cenia s\u0105 w toku, uruchamiam ukierunkowane czyszczenie zamiast globalnego niszczenia \u201eCache Everything\u201c. Wa\u017cne: buforuj HTML na Edge tylko wtedy, gdy nie s\u0105 zaanga\u017cowane \u017cadne pliki cookie. W przeciwnym razie tworzone s\u0105 nieprawid\u0142owe stany, poniewa\u017c pami\u0119\u0107 podr\u0119czna kraw\u0119dzi udost\u0119pnia spersonalizowane odpowiedzi. W przypadku zasob\u00f3w ustawiam d\u0142ugie czasy wyga\u015bni\u0119cia i polegam na wersjonowaniu nazw plik\u00f3w. Sieci CDN mog\u0105 ignorowa\u0107 ci\u0105gi zapyta\u0144 - kolejny pow\u00f3d, aby zachowa\u0107 wersje w nazwie pliku. Normalizacja nag\u0142\u00f3wk\u00f3w (brak zb\u0119dnych warto\u015bci \u201eVary\u201c, sp\u00f3jny \u201eContent-Type\u201c) zapobiega rozd\u0119tym kluczom pami\u0119ci podr\u0119cznej.<\/p>\n\n<h2>Krok po kroku: czysta instalacja<\/h2>\n\n<p>Zaczynam od wtyczki i aktywuj\u0119 buforowanie przegl\u0105darki dla CSS, JS, obraz\u00f3w i czcionek przed aktywacj\u0105 <strong>htaccess<\/strong> zako\u0144czy\u0107. Nast\u0119pnie ustawiam wysoki max-age dla zasob\u00f3w statycznych i dostarczam HTML z kr\u00f3tkimi czasami lub regu\u0142ami no-cache. Dezaktywuj\u0119 ETags, je\u015bli zaanga\u017cowanych jest kilka serwer\u00f3w i polegam na Last-Modified plus 304. Nast\u0119pnie uruchamiam wst\u0119pne \u0142adowanie, aby wa\u017cne strony by\u0142y natychmiast dost\u0119pne jako kopie statyczne. Na koniec sprawdzam \u015bcie\u017cki sklepu, logowania i administratora, aby \u017cadna prywatna zawarto\u015b\u0107 nie by\u0142a przechowywana w folderze <strong>pami\u0119\u0107 podr\u0119czna<\/strong> ziemia.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/01\/wordpress-caching-office-2974.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Praktyczna diagnostyka za pomoc\u0105 CLI i sprawdzanie nag\u0142\u00f3wk\u00f3w<\/h2>\n\n<p>DevTools s\u0105 obowi\u0105zkowe, ale wchodz\u0119 g\u0142\u0119biej z testami CLI. A <code>curl -I<\/code> pokazuje nag\u0142\u00f3wek bez pobierania; z <code>-H<\/code> Symuluj\u0119 warunki. Na przyk\u0142ad sprawdzam, czy ponowne walidacje rzeczywi\u015bcie zwracaj\u0105 304, czy \u201eWiek\u201c wzrasta z proxy\/CDN i czy pliki cookie wy\u0142\u0105czaj\u0105 buforowanie.<\/p>\n\n<pre><code>Nag\u0142\u00f3wek wy\u015bwietlacza #\ncurl -I https:\/\/example.com\/style.css\n\nSymulacja ponownej walidacji # (If-Modified-Since)\ncurl -I -H \"If-Modified-Since: Tue, 10 Jan 2023 10:00:00 GMT\" https:\/\/example.com\/style.css\n\nTest # z plikiem cookie (powinien wymusi\u0107 obej\u015bcie)\ncurl -I -H \"Cookie: wordpress_logged_in_=1\" https:\/\/example.com\/<\/code><\/pre>\n\n<p>Upewniam si\u0119, \u017ce zasoby maj\u0105 d\u0142ug\u0105 warto\u015b\u0107 \u201ecache control\u201c, najlepiej \u201eimmutable\u201c. HTML powinien mie\u0107 \u201eno-cache\u201c lub kr\u00f3tki TTL. Je\u015bli nadal otrzymuj\u0119 200 zamiast 304, cz\u0119sto wyst\u0119puj\u0105 przekierowania, kt\u00f3re uniewa\u017cniaj\u0105 ETags\/Last-Modified. Ponadto \u201eadd_header\u201c w Nginx domy\u015blnie dotyczy tylko odpowiedzi 200 - z \u201ezawsze\u201c ustawiam r\u00f3wnie\u017c nag\u0142\u00f3wki dla 304 i 301\/302.<\/p>\n\n<h2>Testowanie i walidacja nag\u0142\u00f3wk\u00f3w<\/h2>\n\n<p>Otwieram DevTools, prze\u0142adowuj\u0119 stron\u0119 raz, czyszcz\u0119 pami\u0119\u0107 podr\u0119czn\u0105 i \u0142aduj\u0119 ponownie, aby uzyska\u0107 304 vs. <strong>200<\/strong> obserwowa\u0107. W panelu sieciowym sprawdzam kontrol\u0119 pami\u0119ci podr\u0119cznej, wiek, ETag\/ostatni\u0105 modyfikacj\u0119 i rozmiary odpowiedzi. Je\u015bli nadal wyst\u0119puj\u0105 bezpo\u015brednie trafienia zamiast rewalidacji, sprawdzam konflikty z przekierowaniami, plikami cookie lub ci\u0105gami zapyta\u0144. W trudnych przypadkach pomaga mi ten artyku\u0142 o pu\u0142apkach z nag\u0142\u00f3wkami: <a href=\"https:\/\/webhosting.de\/pl\/http-cache-headers-sabotieren-caching-cachefix\/\">Sabotowanie nag\u0142\u00f3wka pami\u0119ci podr\u0119cznej<\/a>. Powtarzam sprawdzanie po ka\u017cdej aktualizacji wtyczki, poniewa\u017c zmiany w regu\u0142ach s\u0105 cz\u0119sto wprowadzane po cichu. <strong>przepustka<\/strong>.<\/p>\n\n<h2>Wersjonowanie, CDN i cache busting<\/h2>\n\n<p>Zawieszam <strong>Wersja<\/strong> do nazw plik\u00f3w (style.23.css zamiast style.css?ver=23), dzi\u0119ki czemu przegl\u0105darki zachowuj\u0105 d\u0142ugie pami\u0119ci podr\u0119czne i nadal natychmiast \u0142aduj\u0105 now\u0105 zawarto\u015b\u0107. CDN dystrybuuje pliki statyczne globalnie, ustawia w\u0142asne TTL w brzegowych PoP i drastycznie skraca RTT. Wa\u017cne: buforuj HTML w CDN tylko wtedy, gdy nie jest wymagana personalizacja, w przeciwnym razie zostan\u0105 utworzone nieprawid\u0142owe stany. Podczas wdra\u017cania automatycznie zmieniam numer wersji, aby u\u017cytkownicy nigdy nie utkn\u0119li ze starymi skryptami. W ten spos\u00f3b \u0142\u0105cz\u0119 twarde TTL przegl\u0105darki z bezpiecznym <strong>Niszczenie pami\u0119ci podr\u0119cznej<\/strong>.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/01\/wordpress-browsercache-setup2093.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Czyste wersjonowanie w kompilacjach WordPress<\/h2>\n\n<p>Najbardziej niezawodny jest potok kompilacji, kt\u00f3ry zapisuje skr\u00f3ty w nazwach plik\u00f3w (np. <code>app.9f3c.css<\/code>). Nast\u0119pnie WordPress \u0142aduje dok\u0142adnie ten plik - przegl\u0105darki mog\u0105 go przechowywa\u0107 przez rok dzi\u0119ki \u201eniezmienno\u015bci\u201c. Jako rozwi\u0105zanie awaryjne, je\u015bli nazwy plik\u00f3w nie mog\u0105 zosta\u0107 zmienione, ustawiam numer wersji dynamicznie na podstawie daty pliku. Dzi\u0119ki temu ci\u0105gi zapyta\u0144 s\u0105 poprawne i niezawodne.<\/p>\n\n<pre><code>\/\/ functions.php (wersjonowanie awaryjne przez filemtime)\nadd_action('wp_enqueue_scripts', function () {\n    $css = get_stylesheet_directory() . '\/dist\/style.css';\n    $ver = file_exists($css) ? filemtime($css) : null;\n    wp_enqueue_style('theme', get_stylesheet_directory_uri() . '\/dist\/style.css', [], $ver);\n});<\/code><\/pre>\n\n<p>Wa\u017cne: Je\u015bli nazwa pliku zawiera wersje, mo\u017cna ustawi\u0107 opcj\u0119 \u201eimmutable\u201c. Je\u015bli u\u017cywasz tylko ci\u0105g\u00f3w zapyta\u0144, przegl\u0105darki powinny mie\u0107 mo\u017cliwo\u015b\u0107 ponownej walidacji, aby aktualizacje dociera\u0142y niezawodnie. Upewniam si\u0119 r\u00f3wnie\u017c, \u017ce narz\u0119dzia do kompilacji czyszcz\u0105 stare pliki, aby sieci CDN nie przechowywa\u0142y niepotrzebnie du\u017cej liczby wariant\u00f3w.<\/p>\n\n<h2>Poprawne buforowanie i \u0142adowanie czcionek internetowych<\/h2>\n\n<p>Czcionki internetowe wymagaj\u0105 d\u0142ugiego TTL, poprawnych nag\u0142\u00f3wk\u00f3w CORS i opcjonalnego \u0142adowania wst\u0119pnego, aby <strong>Skoki uk\u0142adu<\/strong> nie pojawiaj\u0105 si\u0119. Umieszczam pliki woff2 w tej samej domenie lub czysto ustawiam Access-Control-Allow-Origin. Ponadto nale\u017cy zdefiniowa\u0107 font-display: swap, aby tekst by\u0142 widoczny natychmiast podczas \u0142adowania czcionki. Je\u015bli chcesz zoptymalizowa\u0107 czas \u0142adowania czcionek, przydatne wskaz\u00f3wki znajdziesz tutaj: <a href=\"https:\/\/webhosting.de\/pl\/wordpress-webfonts-optymalizacja-czasu-ladowania-serverperf\/\">Szybsze \u0142adowanie czcionek internetowych<\/a>. Dzi\u0119ki czystym nag\u0142\u00f3wkom pami\u0119ci podr\u0119cznej i wst\u0119pnemu po\u0142\u0105czeniu z CDN, zauwa\u017calnie skracam FOUT\/FOIT i zapewniam sp\u00f3jno\u015b\u0107. <strong>Renderowanie<\/strong>-Wyniki.<\/p>\n\n<h2>Poprawne dostrojenie czcionek, CORS i Vary<\/h2>\n\n<p>Czcionki z innego pochodzenia wymagaj\u0105 CORS. Ustawiam <code>Access-Control-Allow-Origin<\/code> (np. do w\u0142asnej domeny lub \u201e*\u201c dla prawdziwie publicznych) i unikn\u0105\u0107 niepotrzebnego <code>R\u00f3\u017cne: Pochodzenie<\/code>, kt\u00f3ra zawy\u017ca klucze pami\u0119ci podr\u0119cznej. Zalecane dla czcionek: <code>publiczne, max-age=31536000, niezmienne<\/code>. Preload poprawia First Paint, ale nie zmienia TTL - preload i hard caching wzajemnie si\u0119 uzupe\u0142niaj\u0105. Nie zapominam r\u00f3wnie\u017c, \u017ce skompresowane dostarczanie (<code>br<\/code>\/<code>gzip<\/code>) a <code>Vary: Accept-Encoding<\/code> jest wymagana do prawid\u0142owego rozdzielenia proxy.<\/p>\n\n<h2>Typowe wzorce b\u0142\u0119d\u00f3w i szybkie rozwi\u0105zania<\/h2>\n\n<p>Je\u015bli po aktualizacji pojawi si\u0119 stary kod <strong>Wersjonowanie<\/strong> na nazwie pliku. Je\u015bli przegl\u0105darka prze\u0142adowuje si\u0119 ca\u0142kowicie za ka\u017cdym razem, nag\u0142\u00f3wki ustawiaj\u0105 sprzeczne instrukcje lub serwery proxy usuwaj\u0105 je po drodze. Je\u015bli p\u0142atno\u015b\u0107 zostanie anulowana, witryna prawdopodobnie buforuje strony po stronie sesji lub odpowiedzi API. Je\u015bli \u015bcie\u017cki administratora w\u015blizguj\u0105 si\u0119 do pami\u0119ci podr\u0119cznej, brakuje wyklucze\u0144 dla wp-admin i logowania lub wtyczka buforuje globalnie. Rozwi\u0105zuj\u0119 to poprzez dezaktywacj\u0119 krok po kroku, konsolidacj\u0119 nag\u0142\u00f3wk\u00f3w, wykluczenie krytycznych \u015bcie\u017cek i wreszcie efekt ze statusem 304 <strong>potwierdza\u0107<\/strong>.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/01\/wordpress-caching-fehler-9834.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Cz\u0119sto pomijane szczeg\u00f3\u0142y, kt\u00f3re robi\u0105 du\u017c\u0105 r\u00f3\u017cnic\u0119<\/h2>\n\n<ul>\n  <li><strong>Nginx add_header<\/strong> nie ma zastosowania do 304\/redirects bez \u201ezawsze\u201c - nag\u0142\u00f3wki pami\u0119ci podr\u0119cznej s\u0105 wtedy pomijane przy walidacji. Konsekwentnie ustawiam \u201ezawsze\u201c.<\/li>\n  <li><strong>Wygasanie a kontrola pami\u0119ci podr\u0119cznej:<\/strong> \u201eCache-Control\u201c ma priorytet, \u201eExpires\u201c s\u0142u\u017cy jako rozwi\u0105zanie awaryjne dla starych klient\u00f3w. Unikaj powielania, sprzecznych informacji.<\/li>\n  <li><strong>ETag w konfiguracjach wieloserwerowych:<\/strong> Niesp\u00f3jne ETagi niszcz\u0105 304. Wy\u0142\u0105czam ETagi lub u\u017cywam s\u0142abych walidator\u00f3w i polegam na \u201eLast-Modified\u201c.<\/li>\n  <li><strong>Zr\u00f3\u017cnicowane do minimum:<\/strong> \u201eVary: Accept-Encoding\u201c jest obowi\u0105zkowe dla kompresji, \u201eVary: Cookie\u201c blokuje pami\u0119ci podr\u0119czne kraw\u0119dzi - lepiej omin\u0105\u0107 oparte na plikach cookie.<\/li>\n  <li><strong>SVG i typ MIME:<\/strong> Prawid\u0142owo <code>image\/svg+xml<\/code> ustawi\u0107, da\u0107 d\u0142ugi TTL i rozwa\u017cy\u0107 inline SVG dla krytycznych ikon.<\/li>\n  <li><strong>Unikaj \u0142a\u0144cuch\u00f3w przekierowa\u0144:<\/strong> Ka\u017cde 301\/302 mo\u017ce utraci\u0107 walidatory i wymusi\u0107 200 - czyste adresy URL bez kaskad.<\/li>\n  <li><strong>U\u017cywaj priorytetu\/prze\u0142adowania w ukierunkowany spos\u00f3b:<\/strong> <code>fetchpriority=\"high\"<\/code> lub wst\u0119pne \u0142adowanie krytycznych zasob\u00f3w przyspiesza pierwsze wywo\u0142anie; buforowanie jest skuteczne dla powracaj\u0105cych u\u017cytkownik\u00f3w.<\/li>\n  <li><strong>Rozr\u00f3\u017cnianie REST-API:<\/strong> Publiczne, rzadko zmieniaj\u0105ce si\u0119 JSON-y mog\u0105 by\u0107 kr\u00f3tko buforowane; punkty ko\u0144cowe z tokenami\/plikami cookie s\u0105 \u015bci\u015ble \u201eprywatne\u201c.<\/li>\n<\/ul>\n\n<h2>Kr\u00f3tkie podsumowanie<\/h2>\n\n<p>Polegam na jasnych <strong>Zasady<\/strong>d\u0142ugie TTL dla zasob\u00f3w, kr\u00f3tkie lub ponownie zweryfikowane odpowiedzi HTML, wersjonowanie i pojedyncza wtyczka buforuj\u0105ca. Nast\u0119pnie \u0142\u0105cz\u0119 pami\u0119\u0107 podr\u0119czn\u0105 przegl\u0105darki z pami\u0119ci\u0105 podr\u0119czn\u0105 strony, obiektu i kodu operacyjnego, aby zmniejszy\u0107 obci\u0105\u017cenie serwera. Sprawdzam DevTools, szukam 304, sprawdzam nag\u0142\u00f3wki i eliminuj\u0119 konflikty z przekierowaniami lub plikami cookie. W te\u015bcie praktycznym por\u00f3wnuj\u0119 pomiary przy pierwszym i wielokrotnym wywo\u0142aniu i skupiam si\u0119 na zauwa\u017calnej poprawie. Je\u015bli wykonasz te kroki, mo\u017cesz doprowadzi\u0107 WordPress do niezawodnego poziomu buforowania przegl\u0105darki. <strong>Pr\u0119dko\u015b\u0107<\/strong> i sprawia, \u017ce u\u017cytkownicy i wyszukiwarki s\u0105 zadowoleni.<\/p>","protected":false},"excerpt":{"rendered":"<p>WordPress i buforowanie przegl\u0105darki s\u0105 cz\u0119sto skonfigurowane nieprawid\u0142owo. Dowiedz si\u0119, jak poprawnie ustawi\u0107 nag\u0142\u00f3wki pami\u0119ci podr\u0119cznej wp, aby uzyska\u0107 optymaln\u0105 wydajno\u015b\u0107 wordpress.<\/p>","protected":false},"author":1,"featured_media":17051,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_crdt_document":"","inline_featured_image":false,"footnotes":""},"categories":[733],"tags":[],"class_list":["post-17058","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wordpress"],"acf":[],"_wp_attached_file":null,"_wp_attachment_metadata":null,"litespeed-optimize-size":null,"litespeed-optimize-set":null,"_elementor_source_image_hash":null,"_wp_attachment_image_alt":null,"stockpack_author_name":null,"stockpack_author_url":null,"stockpack_provider":null,"stockpack_image_url":null,"stockpack_license":null,"stockpack_license_url":null,"stockpack_modification":null,"color":null,"original_id":null,"original_url":null,"original_link":null,"unsplash_location":null,"unsplash_sponsor":null,"unsplash_exif":null,"unsplash_attachment_metadata":null,"_elementor_is_screenshot":null,"surfer_file_name":null,"surfer_file_original_url":null,"envato_tk_source_kit":null,"envato_tk_source_index":null,"envato_tk_manifest":null,"envato_tk_folder_name":null,"envato_tk_builder":null,"envato_elements_download_event":null,"_menu_item_type":null,"_menu_item_menu_item_parent":null,"_menu_item_object_id":null,"_menu_item_object":null,"_menu_item_target":null,"_menu_item_classes":null,"_menu_item_xfn":null,"_menu_item_url":null,"_trp_menu_languages":null,"rank_math_primary_category":null,"rank_math_title":null,"inline_featured_image":null,"_yoast_wpseo_primary_category":null,"rank_math_schema_blogposting":null,"rank_math_schema_videoobject":null,"_oembed_049c719bc4a9f89deaead66a7da9fddc":null,"_oembed_time_049c719bc4a9f89deaead66a7da9fddc":null,"_yoast_wpseo_focuskw":null,"_yoast_wpseo_linkdex":null,"_oembed_27e3473bf8bec795fbeb3a9d38489348":null,"_oembed_c3b0f6959478faf92a1f343d8f96b19e":null,"_trp_translated_slug_en_us":null,"_wp_desired_post_slug":null,"_yoast_wpseo_title":null,"tldname":null,"tldpreis":null,"tldrubrik":null,"tldpolicylink":null,"tldsize":null,"tldregistrierungsdauer":null,"tldtransfer":null,"tldwhoisprivacy":null,"tldregistrarchange":null,"tldregistrantchange":null,"tldwhoisupdate":null,"tldnameserverupdate":null,"tlddeletesofort":null,"tlddeleteexpire":null,"tldumlaute":null,"tldrestore":null,"tldsubcategory":null,"tldbildname":null,"tldbildurl":null,"tldclean":null,"tldcategory":null,"tldpolicy":null,"tldbesonderheiten":null,"tld_bedeutung":null,"_oembed_d167040d816d8f94c072940c8009f5f8":null,"_oembed_b0a0fa59ef14f8870da2c63f2027d064":null,"_oembed_4792fa4dfb2a8f09ab950a73b7f313ba":null,"_oembed_33ceb1fe54a8ab775d9410abf699878d":null,"_oembed_fd7014d14d919b45ec004937c0db9335":null,"_oembed_21a029d076783ec3e8042698c351bd7e":null,"_oembed_be5ea8a0c7b18e658f08cc571a909452":null,"_oembed_a9ca7a298b19f9b48ec5914e010294d2":null,"_oembed_f8db6b27d08a2bb1f920e7647808899a":null,"_oembed_168ebde5096e77d8a89326519af9e022":null,"_oembed_cdb76f1b345b42743edfe25481b6f98f":null,"_oembed_87b0613611ae54e86e8864265404b0a1":null,"_oembed_27aa0e5cf3f1bb4bc416a4641a5ac273":null,"_oembed_time_27aa0e5cf3f1bb4bc416a4641a5ac273":null,"_tldname":null,"_tldclean":null,"_tldpreis":null,"_tldcategory":null,"_tldsubcategory":null,"_tldpolicy":null,"_tldpolicylink":null,"_tldsize":null,"_tldregistrierungsdauer":null,"_tldtransfer":null,"_tldwhoisprivacy":null,"_tldregistrarchange":null,"_tldregistrantchange":null,"_tldwhoisupdate":null,"_tldnameserverupdate":null,"_tlddeletesofort":null,"_tlddeleteexpire":null,"_tldumlaute":null,"_tldrestore":null,"_tldbildname":null,"_tldbildurl":null,"_tld_bedeutung":null,"_tldbesonderheiten":null,"_oembed_ad96e4112edb9f8ffa35731d4098bc6b":null,"_oembed_8357e2b8a2575c74ed5978f262a10126":null,"_oembed_3d5fea5103dd0d22ec5d6a33eff7f863":null,"_eael_widget_elements":null,"_oembed_0d8a206f09633e3d62b95a15a4dd0487":null,"_oembed_time_0d8a206f09633e3d62b95a15a4dd0487":null,"_aioseo_description":null,"_eb_attr":null,"_eb_data_table":null,"_oembed_819a879e7da16dd629cfd15a97334c8a":null,"_oembed_time_819a879e7da16dd629cfd15a97334c8a":null,"_acf_changed":null,"_wpcode_auto_insert":null,"_edit_last":null,"_edit_lock":null,"_oembed_e7b913c6c84084ed9702cb4feb012ddd":null,"_oembed_bfde9e10f59a17b85fc8917fa7edf782":null,"_oembed_time_bfde9e10f59a17b85fc8917fa7edf782":null,"_oembed_03514b67990db061d7c4672de26dc514":null,"_oembed_time_03514b67990db061d7c4672de26dc514":null,"rank_math_news_sitemap_robots":null,"rank_math_robots":null,"_eael_post_view_count":"981","_trp_automatically_translated_slug_ru_ru":null,"_trp_automatically_translated_slug_et":null,"_trp_automatically_translated_slug_lv":null,"_trp_automatically_translated_slug_fr_fr":null,"_trp_automatically_translated_slug_en_us":null,"_wp_old_slug":null,"_trp_automatically_translated_slug_da_dk":null,"_trp_automatically_translated_slug_pl_pl":null,"_trp_automatically_translated_slug_es_es":null,"_trp_automatically_translated_slug_hu_hu":null,"_trp_automatically_translated_slug_fi":null,"_trp_automatically_translated_slug_ja":null,"_trp_automatically_translated_slug_lt_lt":null,"_elementor_edit_mode":null,"_elementor_template_type":null,"_elementor_version":null,"_elementor_pro_version":null,"_wp_page_template":null,"_elementor_page_settings":null,"_elementor_data":null,"_elementor_css":null,"_elementor_conditions":null,"_happyaddons_elements_cache":null,"_oembed_75446120c39305f0da0ccd147f6de9cb":null,"_oembed_time_75446120c39305f0da0ccd147f6de9cb":null,"_oembed_3efb2c3e76a18143e7207993a2a6939a":null,"_oembed_time_3efb2c3e76a18143e7207993a2a6939a":null,"_oembed_59808117857ddf57e478a31d79f76e4d":null,"_oembed_time_59808117857ddf57e478a31d79f76e4d":null,"_oembed_965c5b49aa8d22ce37dfb3bde0268600":null,"_oembed_time_965c5b49aa8d22ce37dfb3bde0268600":null,"_oembed_81002f7ee3604f645db4ebcfd1912acf":null,"_oembed_time_81002f7ee3604f645db4ebcfd1912acf":null,"_elementor_screenshot":null,"_oembed_7ea3429961cf98fa85da9747683af827":null,"_oembed_time_7ea3429961cf98fa85da9747683af827":null,"_elementor_controls_usage":null,"_elementor_page_assets":[],"_elementor_screenshot_failed":null,"theplus_transient_widgets":null,"_eael_custom_js":null,"_wp_old_date":null,"_trp_automatically_translated_slug_it_it":null,"_trp_automatically_translated_slug_pt_pt":null,"_trp_automatically_translated_slug_zh_cn":null,"_trp_automatically_translated_slug_nl_nl":null,"_trp_automatically_translated_slug_pt_br":null,"_trp_automatically_translated_slug_sv_se":null,"rank_math_analytic_object_id":null,"rank_math_internal_links_processed":"1","_trp_automatically_translated_slug_ro_ro":null,"_trp_automatically_translated_slug_sk_sk":null,"_trp_automatically_translated_slug_bg_bg":null,"_trp_automatically_translated_slug_sl_si":null,"litespeed_vpi_list":null,"litespeed_vpi_list_mobile":null,"rank_math_seo_score":null,"rank_math_contentai_score":null,"ilj_limitincominglinks":null,"ilj_maxincominglinks":null,"ilj_limitoutgoinglinks":null,"ilj_maxoutgoinglinks":null,"ilj_limitlinksperparagraph":null,"ilj_linksperparagraph":null,"ilj_blacklistdefinition":null,"ilj_linkdefinition":null,"_eb_reusable_block_ids":null,"rank_math_focus_keyword":"WordPress Browser Caching","rank_math_og_content_image":null,"_yoast_wpseo_metadesc":null,"_yoast_wpseo_content_score":null,"_yoast_wpseo_focuskeywords":null,"_yoast_wpseo_keywordsynonyms":null,"_yoast_wpseo_estimated-reading-time-minutes":null,"rank_math_description":null,"surfer_last_post_update":null,"surfer_last_post_update_direction":null,"surfer_keywords":null,"surfer_location":null,"surfer_draft_id":null,"surfer_permalink_hash":null,"surfer_scrape_ready":null,"_thumbnail_id":"17051","footnotes":null,"_links":{"self":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/posts\/17058","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/comments?post=17058"}],"version-history":[{"count":0,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/posts\/17058\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/media\/17051"}],"wp:attachment":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/media?parent=17058"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/categories?post=17058"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/tags?post=17058"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}