{"id":90048,"date":"2026-10-05T08:00:00","date_gmt":"2026-10-05T06:00:00","guid":{"rendered":"https:\/\/codescriptum.pl\/blog\/100-problemow-z-wordpressem\/"},"modified":"2026-10-05T08:00:00","modified_gmt":"2026-10-05T06:00:00","slug":"100-problemow-z-wordpressem","status":"publish","type":"post","link":"https:\/\/codescriptum.pl\/blog\/100-problemow-z-wordpressem\/","title":{"rendered":"100 problem\u00f3w z WordPressem i jak je rozwi\u0105za\u0107 (2026)"},"content":{"rendered":"<p>WordPress jest wygodny, bo pozwala zbudowa\u0107 i rozwija\u0107 stron\u0119 bez programisty. Ta sama elastyczno\u015b\u0107 sprawia jednak, \u017ce ka\u017cda strona to inna kombinacja hostingu, wersji PHP, motywu i kilkunastu wtyczek, a problemy pojawiaj\u0105 si\u0119 w r\u00f3\u017cnych miejscach. Zebrali\u015bmy 100 sytuacji, z kt\u00f3rymi w\u0142a\u015bciciele stron zg\u0142aszaj\u0105 si\u0119 do nas najcz\u0119\u015bciej, i przy ka\u017cdej opisali\u015bmy najcz\u0119stsz\u0105 przyczyn\u0119 oraz spos\u00f3b naprawy.<\/p>\n<p>Lista jest podzielona na 10 grup. Szukaj\u0105c konkretnego objawu, u\u017cyj spisu tre\u015bci albo wyszukiwania w przegl\u0105darce (Ctrl+F). Zanim zmienisz cokolwiek na dzia\u0142aj\u0105cej stronie, zr\u00f3b kopi\u0119 zapasow\u0105 plik\u00f3w i bazy danych, a wi\u0119ksze zmiany testuj na kopii strony (\u015brodowisku testowym).<\/p>\n<h2>Awarie i b\u0142\u0119dy krytyczne<\/h2>\n<p>Gdy strona przestaje dzia\u0142a\u0107, liczy si\u0119 kolejno\u015b\u0107: najpierw przywr\u00f3ci\u0107 dzia\u0142anie, potem znale\u017a\u0107 przyczyn\u0119, \u017ceby awaria nie wr\u00f3ci\u0142a.<\/p>\n<h3>1. Na stronie pojawia si\u0119 \u201eb\u0142\u0105d krytyczny\u201d albo bia\u0142y ekran<\/h3>\n<p>Najcz\u0119\u015bciej przyczyn\u0105 jest wtyczka lub motyw, kt\u00f3ry po aktualizacji przesta\u0142 by\u0107 zgodny z wersj\u0105 PHP albo z innym dodatkiem, a naprawa polega na wy\u0142\u0105czeniu winowajcy i sprawdzeniu dziennika b\u0142\u0119d\u00f3w. Od wersji 5.2 WordPress wysy\u0142a na adres administratora maila z nazw\u0105 wtyczki i linkiem do trybu odzyskiwania.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Zaloguj si\u0119 linkiem z maila albo zmie\u0144 przez FTP nazw\u0119 folderu podejrzanej wtyczki w wp-content\/plugins. W\u0142\u0105cz WP_DEBUG_LOG w wp-config.php i przeczytaj wp-content\/debug.log, kt\u00f3ry wska\u017ce plik i lini\u0119 b\u0142\u0119du. <a href=\"\/blog\/wordpress-blad-krytyczny-na-stronie\/\">Szczeg\u00f3\u0142y i naprawa krok po kroku<\/a>.<\/p>\n<h3>2. Komunikat \u201eB\u0142\u0105d podczas nawi\u0105zywania po\u0142\u0105czenia z baz\u0105 danych\u201d<\/h3>\n<p>WordPress nie mo\u017ce po\u0142\u0105czy\u0107 si\u0119 z baz\u0105 MySQL, bo dane w wp-config.php s\u0105 niepoprawne, serwer bazy danych nie dzia\u0142a albo tabele s\u0105 uszkodzone. Komunikat cz\u0119sto pojawia si\u0119 po przeniesieniu strony, zmianie has\u0142a do bazy albo przy przeci\u0105\u017ceniu hostingu.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Por\u00f3wnaj DB_NAME, DB_USER, DB_PASSWORD i DB_HOST w wp-config.php z danymi w panelu hostingu. Je\u015bli si\u0119 zgadzaj\u0105, sprawd\u017a, czy serwer MySQL dzia\u0142a, a uszkodzone tabele napraw przez phpMyAdmin albo WP_ALLOW_REPAIR. <a href=\"\/blog\/wordpress-blad-polaczenia-z-baza-danych\/\">Szczeg\u00f3\u0142y i naprawa krok po kroku<\/a>.<\/p>\n<h3>3. B\u0142\u0105d 500 Internal Server Error<\/h3>\n<p>Najcz\u0119stsze przyczyny b\u0142\u0119du 500 to uszkodzony plik .htaccess, przekroczony limit pami\u0119ci PHP albo b\u0142\u0105d w kodzie wtyczki. Serwer nie m\u00f3wi wprost, co si\u0119 sta\u0142o, wi\u0119c odpowiedzi trzeba szuka\u0107 w dzienniku b\u0142\u0119d\u00f3w.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Zmie\u0144 nazw\u0119 pliku .htaccess i wygeneruj nowy, zapisuj\u0105c bezpo\u015brednie odno\u015bniki w Ustawieniach. Je\u015bli to nie pomaga, przeczytaj error_log w panelu hostingu, podnie\u015b limit pami\u0119ci i wy\u0142\u0105cz wtyczki, zmieniaj\u0105c nazw\u0119 folderu plugins.<\/p>\n<h3>4. Strona g\u0142\u00f3wna dzia\u0142a, a podstrony pokazuj\u0105 b\u0142\u0105d 404<\/h3>\n<p>To prawie zawsze problem z regu\u0142ami przepisywania adres\u00f3w: brakuje pliku .htaccess, jest pusty albo serwer nie obs\u0142uguje mod_rewrite. Zdarza si\u0119 to po migracji na nowy serwer lub po zmianie struktury bezpo\u015brednich odno\u015bnik\u00f3w.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Wejd\u017a w Ustawienia, Bezpo\u015brednie odno\u015bniki i kliknij Zapisz zmiany bez niczego zmieniaj\u0105c, co odtworzy regu\u0142y. Na serwerze Nginx regu\u0142y trzeba doda\u0107 w konfiguracji serwera, bo Nginx nie czyta pliku .htaccess.<\/p>\n<h3>5. Strona utkn\u0119\u0142a w komunikacie o zaplanowanych pracach konserwacyjnych<\/h3>\n<p>Aktualizacja zosta\u0142a przerwana, a WordPress nie usun\u0105\u0142 pliku .maintenance z g\u0142\u00f3wnego katalogu strony. Ten plik powstaje na czas aktualizacji i powinien znikn\u0105\u0107 sam po jej zako\u0144czeniu.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Usu\u0144 plik .maintenance przez FTP lub mened\u017cer plik\u00f3w hostingu, a potem sprawd\u017a, czy przerwana aktualizacja wtyczki lub rdzenia si\u0119 zako\u0144czy\u0142a. Je\u015bli nie, powt\u00f3rz j\u0105 pojedynczo, a nie wszystkie aktualizacje naraz.<\/p>\n<h3>6. B\u0142\u0105d \u201eAllowed memory size exhausted\u201d<\/h3>\n<p>Skrypt potrzebowa\u0142 wi\u0119cej pami\u0119ci, ni\u017c pozwala limit PHP; zwykle winna jest ci\u0119\u017cka wtyczka, page builder albo import du\u017cego pliku. Komunikat podaje plik, kt\u00f3ry przekroczy\u0142 limit, co pomaga znale\u017a\u0107 \u017ar\u00f3d\u0142o problemu.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Podnie\u015b limit sta\u0142\u0105 WP_MEMORY_LIMIT w wp-config.php oraz memory_limit w ustawieniach PHP w panelu hostingu (np. do 256 MB). Je\u015bli limit ci\u0105gle jest za ma\u0142y, szukaj wtyczki, kt\u00f3ra zu\u017cywa pami\u0119\u0107, zamiast podnosi\u0107 go bez ko\u0144ca.<\/p>\n<h3>7. B\u0142\u0105d 403 Forbidden przy wej\u015bciu na stron\u0119 lub do panelu<\/h3>\n<p>Serwer odmawia dost\u0119pu zwykle przez z\u0142e uprawnienia plik\u00f3w, regu\u0142\u0119 w .htaccess albo zapor\u0119 (WAF) wtyczki bezpiecze\u0144stwa lub hostingu, kt\u00f3ra uzna\u0142a Twoje \u017c\u0105danie za atak. Cz\u0119sty przypadek to zablokowany adres IP po kilku nieudanych logowaniach.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Sprawd\u017a uprawnienia (foldery 755, pliki 644), przejrzyj .htaccess pod k\u0105tem regu\u0142 blokuj\u0105cych i dziennik zapory. Je\u015bli blokada wynika z WAF, dodaj wyj\u0105tek albo popro\u015b obs\u0142ug\u0119 hostingu o odblokowanie adresu IP.<\/p>\n<h3>8. B\u0142\u0119dy 502, 503 lub 504 i strona dzia\u0142a tylko czasami<\/h3>\n<p>Serwer nie nad\u0105\u017ca z odpowiedzi\u0105: procesy PHP s\u0105 zaj\u0119te, skrypt dzia\u0142a za d\u0142ugo albo hosting ogranicza zasoby. B\u0142\u0119dy pojawiaj\u0105 si\u0119 zwykle przy wi\u0119kszym ruchu, wizytach agresywnych bot\u00f3w albo ci\u0119\u017ckich zadaniach w tle.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Sprawd\u017a w panelu hostingu wykorzystanie CPU i proces\u00f3w, zablokuj niepotrzebne boty i w\u0142\u0105cz cache stron. Je\u015bli limity s\u0105 przekraczane regularnie, potrzebujesz mocniejszego planu albo optymalizacji wtyczek wykonuj\u0105cych ci\u0119\u017ckie zapytania.<\/p>\n<h3>9. Strona wy\u015bwietla si\u0119 bez styl\u00f3w, jako sam tekst<\/h3>\n<p>Przegl\u0105darka nie mo\u017ce pobra\u0107 plik\u00f3w CSS, najcz\u0119\u015bciej przez z\u0142y adres witryny (http zamiast https, stara domena) albo przez wtyczk\u0119 optymalizacyjn\u0105, kt\u00f3ra b\u0142\u0119dnie po\u0142\u0105czy\u0142a pliki. Po migracji to jeden z typowych objaw\u00f3w.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Sprawd\u017a w Ustawieniach og\u00f3lnych Adres WordPressa i Adres witryny, wyczy\u015b\u0107 cache wtyczki i CDN, a w konsoli przegl\u0105darki (F12) zobacz, kt\u00f3re pliki zwracaj\u0105 b\u0142\u0105d. Je\u015bli winna jest optymalizacja, wy\u0142\u0105cz \u0142\u0105czenie plik\u00f3w CSS.<\/p>\n<h3>10. Nie mog\u0119 zalogowa\u0107 si\u0119 do panelu WordPressa<\/h3>\n<p>Najcz\u0119\u015bciej to zapomniane has\u0142o, wtyczka bezpiecze\u0144stwa blokuj\u0105ca logowanie albo zmieniony adres witryny, przez kt\u00f3ry logowanie przekierowuje w k\u00f3\u0142ko. Gdy nie dzia\u0142a te\u017c reset has\u0142a, problemem jest zwykle wysy\u0142ka maili.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Skorzystaj z opcji \u201eNie pami\u0119tasz has\u0142a?\u201d, a gdy mail nie dochodzi, zmie\u0144 has\u0142o przez phpMyAdmin albo WP-CLI. Przy p\u0119tli logowania wyczy\u015b\u0107 ciasteczka i sprawd\u017a adresy witryny w tabeli wp_options lub w wp-config.php.<\/p>\n<h2>Aktualizacje WordPressa, wtyczek i motyw\u00f3w<\/h2>\n<p>Aktualizacje \u0142ataj\u0105 luki bezpiecze\u0144stwa, ale robione bez przygotowania s\u0105 te\u017c najcz\u0119stszym powodem awarii.<\/p>\n<h3>11. Czy aktualizowa\u0107 WordPressa, skoro strona dzia\u0142a?<\/h3>\n<p>Tak, bo aktualizacje \u0142ataj\u0105 znane luki bezpiecze\u0144stwa, a boty automatycznie szukaj\u0105 stron z nieaktualnymi wtyczkami i motywami. Strona, kt\u00f3ra \u201edzia\u0142a\u201d, mo\u017ce by\u0107 podatna na atak od miesi\u0119cy, zanim ktokolwiek to zauwa\u017cy.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Ustal sta\u0142y rytm, np. co tydzie\u0144: kopia zapasowa, aktualizacja na kopii testowej, sprawdzenie najwa\u017cniejszych stron i formularzy, aktualizacja na produkcji. Poprawki bezpiecze\u0144stwa instaluj od razu po wydaniu.<\/p>\n<h3>12. Strona przesta\u0142a dzia\u0142a\u0107 po aktualizacji wtyczki<\/h3>\n<p>Nowa wersja wtyczki jest niezgodna z motywem, inn\u0105 wtyczk\u0105 albo wersj\u0105 PHP, a naprawa polega na cofni\u0119ciu jej do poprzedniej wersji. B\u0142\u0105d warto zg\u0142osi\u0107 autorowi, bo zwykle szybko wydaje poprawk\u0119.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Wy\u0142\u0105cz wtyczk\u0119 w trybie odzyskiwania lub przez FTP, przywr\u00f3\u0107 poprzedni\u0105 wersj\u0119 z kopii albo z archiwum wersji na wordpress.org i powt\u00f3rz aktualizacj\u0119 po wydaniu poprawki. Dziennik b\u0142\u0119d\u00f3w poka\u017ce, z czym wtyczka koliduje.<\/p>\n<h3>13. Aktualizacja nie powiod\u0142a si\u0119 albo trwa w niesko\u0144czono\u015b\u0107<\/h3>\n<p>Typowe przyczyny to brak uprawnie\u0144 do zapisu plik\u00f3w, za ma\u0142o miejsca na serwerze, limit czasu wykonania PHP lub zablokowane po\u0142\u0105czenie serwera z wordpress.org. WordPress nie mo\u017ce wtedy pobra\u0107 albo rozpakowa\u0107 paczki.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Sprawd\u017a wolne miejsce i uprawnienia folderu wp-content, usu\u0144 plik .maintenance, je\u015bli zosta\u0142, i powt\u00f3rz aktualizacj\u0119 pojedynczo. W ostateczno\u015bci zaktualizuj r\u0119cznie, wgrywaj\u0105c pliki przez FTP zgodnie z dokumentacj\u0105 WordPressa.<\/p>\n<h3>14. Czy w\u0142\u0105czy\u0107 automatyczne aktualizacje?<\/h3>\n<p>Dla wyda\u0144 bezpiecze\u0144stwa rdzenia tak, i WordPress domy\u015blnie instaluje je sam; dla wtyczek automat ma sens tylko przy kopiach zapasowych i monitoringu, kt\u00f3ry wykryje awari\u0119. Bez nadzoru automatyczna aktualizacja mo\u017ce zepsu\u0107 stron\u0119 w nocy i nikt tego nie zauwa\u017cy.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Zostaw automatyczne aktualizacje bezpiecze\u0144stwa rdzenia, w\u0142\u0105cz je dla prostych, sprawdzonych wtyczek, a du\u017ce dodatki (page builder, sklep, formularze) aktualizuj r\u0119cznie po te\u015bcie. Dodaj monitoring dost\u0119pno\u015bci z powiadomieniem.<\/p>\n<h3>15. Wtyczka nie by\u0142a aktualizowana od lat<\/h3>\n<p>Porzucona wtyczka nie dostaje poprawek bezpiecze\u0144stwa i z czasem traci zgodno\u015b\u0107 z nowym PHP i WordPressem. Wtyczki zamkni\u0119te w katalogu wordpress.org, np. z powodu nieza\u0142atanej luki, nie s\u0105 ju\u017c dost\u0119pne do pobrania.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Sprawd\u017a na stronie wtyczki dat\u0119 ostatniej aktualizacji i zgodno\u015b\u0107 z wersj\u0105 WordPressa. Znajd\u017a aktywnie rozwijany zamiennik albo zast\u0105p funkcj\u0119 prostym kodem, a przed zmian\u0105 zr\u00f3b kopi\u0119 i test na kopii strony.<\/p>\n<h3>16. Motyw premium nie pokazuje aktualizacji<\/h3>\n<p>Motywy kupione poza katalogiem wordpress.org aktualizuj\u0105 si\u0119 tylko z aktywn\u0105 licencj\u0105 i kluczem wpisanym w panelu, a cz\u0119sto nikt go nie wpisa\u0142 albo licencja wygas\u0142a. W efekcie strona latami dzia\u0142a na starej wersji motywu.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Odszukaj konto, na kt\u00f3rym kupiono motyw, odn\u00f3w licencj\u0119 i wpisz klucz w ustawieniach motywu. Je\u015bli motyw nie jest ju\u017c rozwijany, zaplanuj przej\u015bcie na inny, zamiast utrzymywa\u0107 przestarza\u0142y kod.<\/p>\n<h3>17. Zmiany w motywie znikaj\u0105 po aktualizacji<\/h3>\n<p>Kto\u015b edytowa\u0142 pliki motywu bezpo\u015brednio, a aktualizacja nadpisa\u0142a je now\u0105 wersj\u0105. W\u0142asne zmiany w kodzie trzeba trzyma\u0107 w motywie potomnym (child theme) albo we w\u0142asnej wtyczce.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Odtw\u00f3rz zmiany z kopii zapasowej i przenie\u015b je do motywu potomnego, a style do pola Dodatkowy CSS albo pliku motywu potomnego. Od tej chwili aktualizacja motywu nadrz\u0119dnego nie usunie Twoich poprawek.<\/p>\n<h3>18. Uk\u0142ad strony rozjecha\u0142 si\u0119 po aktualizacji page buildera<\/h3>\n<p>Page buildery (np. Elementor, WPBakery, Divi) przy du\u017cych wersjach zmieniaj\u0105 spos\u00f3b generowania kodu, a zapisane wcze\u015bniej pliki CSS nie pasuj\u0105 do nowej wersji. Cz\u0119sto wystarczy wygenerowa\u0107 style na nowo.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Wyczy\u015b\u0107 cache buildera (regeneracj\u0119 plik\u00f3w CSS w jego ustawieniach), cache wtyczki i CDN. Je\u015bli uk\u0142ad dalej jest z\u0142y, przywr\u00f3\u0107 poprzedni\u0105 wersj\u0119 i zaktualizuj buildera razem z jego dodatkami na kopii testowej.<\/p>\n<h3>19. Nie ma gdzie testowa\u0107 aktualizacji<\/h3>\n<p>Bez kopii testowej (stagingu) ka\u017cda aktualizacja jest sprawdzana na \u017cywej stronie, na oczach klient\u00f3w. Wiele hosting\u00f3w udost\u0119pnia staging jednym klikni\u0119ciem w panelu. Na kopii testowej mo\u017cesz te\u017c bez ryzyka sprawdzi\u0107 zmian\u0119 wersji PHP i nowe wtyczki.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Utw\u00f3rz kopi\u0119 testow\u0105 w panelu hostingu albo wtyczk\u0105 do klonowania, zabezpiecz j\u0105 has\u0142em i zablokuj indeksowanie. Tam sprawdzaj aktualizacje i zmiany, a na produkcj\u0119 przeno\u015b tylko to, co dzia\u0142a.<\/p>\n<h3>20. Po aktualizacji edytor wygl\u0105da zupe\u0142nie inaczej<\/h3>\n<p>Od wersji 5.0 domy\u015blnym edytorem WordPressa jest edytor blokowy (Gutenberg), a kolejne wersje rozwijaj\u0105 edycj\u0119 ca\u0142ej witryny. Starsze strony mog\u0105 dalej korzysta\u0107 z klasycznego edytora przez oficjaln\u0105 wtyczk\u0119 Classic Editor.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Zdecyduj, czy przechodzisz na bloki, czy zostajesz przy klasycznym edytorze, i trzymaj si\u0119 jednej metody w ca\u0142ej stronie. Przy przej\u015bciu konwertuj stare wpisy stopniowo i sprawdzaj ich wygl\u0105d po konwersji.<\/p>\n<h2>Kopie zapasowe i przywracanie strony<\/h2>\n<p>Kopia zapasowa jest warta tyle, ile da si\u0119 z niej odtworzy\u0107 dzia\u0142aj\u0105c\u0105 stron\u0119.<\/p>\n<h3>21. Strona nie ma \u017cadnej kopii zapasowej<\/h3>\n<p>To najpowa\u017cniejsze zaniedbanie, bo przy w\u0142amaniu, awarii serwera albo nieudanej aktualizacji nie ma do czego wr\u00f3ci\u0107. Pe\u0142na kopia to zawsze dwa elementy: pliki (zw\u0142aszcza folder wp-content) i baza danych.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Zr\u00f3b dzi\u015b r\u0119czn\u0105 kopi\u0119 plik\u00f3w i bazy, a potem ustaw automatyczne kopie (wtyczk\u0105 lub po stronie hostingu) przechowywane poza serwerem strony. Zapisz, gdzie s\u0105 kopie i kto ma do nich dost\u0119p.<\/p>\n<h3>22. Kopie s\u0105 zapisywane na tym samym serwerze co strona<\/h3>\n<p>Je\u015bli serwer ulegnie awarii, zostanie zainfekowany albo hosting zawiesi konto, stracisz stron\u0119 i kopie jednocze\u015bnie. Kopia musi le\u017ce\u0107 w innym miejscu ni\u017c orygina\u0142.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Ustaw wysy\u0142k\u0119 kopii do zewn\u0119trznego magazynu (chmura, osobny serwer) i przechowuj kilka wersji z r\u00f3\u017cnych dni. Dost\u0119p do magazynu zabezpiecz innym has\u0142em ni\u017c panel strony i w\u0142\u0105cz dla niego logowanie dwusk\u0142adnikowe.<\/p>\n<h3>23. Kopia nie zawiera bazy danych albo zdj\u0119\u0107<\/h3>\n<p>Niekt\u00f3re wtyczki domy\u015blnie kopiuj\u0105 tylko baz\u0119, inne tylko pliki, a du\u017cy folder uploads bywa wy\u0142\u0105czany z powodu limit\u00f3w. Bez bazy nie ma tre\u015bci, bez uploads nie ma zdj\u0119\u0107 i dokument\u00f3w.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Sprawd\u017a w ustawieniach kopii, czy obejmuje baz\u0119 oraz ca\u0142y wp-content (wtyczki, motywy, uploads). Pobierz jedn\u0105 kopi\u0119 i upewnij si\u0119, \u017ce zawiera plik .sql i foldery z mediami.<\/p>\n<h3>24. Kopia istnieje, ale nie da si\u0119 z niej odtworzy\u0107 strony<\/h3>\n<p>Kopie, kt\u00f3rych nikt nigdy nie testowa\u0142, cz\u0119sto okazuj\u0105 si\u0119 niekompletne, uszkodzone albo zapisane w formacie, kt\u00f3rego nie da si\u0119 \u0142atwo przywr\u00f3ci\u0107. Zwykle wychodzi to na jaw w najgorszym momencie, czyli podczas awarii.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Raz na kwarta\u0142 przywr\u00f3\u0107 kopi\u0119 na serwerze testowym i sprawd\u017a, czy strona dzia\u0142a. Spisz procedur\u0119 przywracania krok po kroku, \u017ceby w razie awarii nie zgadywa\u0107.<\/p>\n<h3>25. Wtyczka kopii zapasowych przerywa prac\u0119 albo spowalnia stron\u0119<\/h3>\n<p>Na hostingu wsp\u00f3\u0142dzielonym kopia du\u017cej strony przekracza limit czasu lub pami\u0119ci PHP, a w trakcie jej tworzenia strona dzia\u0142a wolniej. Problem ro\u015bnie razem z folderem uploads.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Planuj kopie w nocy, dziel je na cz\u0119\u015bci albo u\u017cywaj kopii przyrostowych. Najlepiej korzysta\u0107 z kopii po stronie serwera (hosting lub skrypt w cronie), kt\u00f3re nie obci\u0105\u017caj\u0105 WordPressa.<\/p>\n<h3>26. Jak cz\u0119sto robi\u0107 kopi\u0119 zapasow\u0105 strony?<\/h3>\n<p>Tak cz\u0119sto, jak du\u017co danych mo\u017cesz straci\u0107 bez szkody: strona wizyt\u00f3wka zmieniana raz w miesi\u0105cu wystarczy z kopi\u0105 tygodniow\u0105, a sklep czy strona z formularzami potrzebuje codziennej kopii bazy. Zawsze r\u00f3b te\u017c kopi\u0119 przed aktualizacj\u0105.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Ustal cz\u0119stotliwo\u015b\u0107 osobno dla bazy (zmienia si\u0119 cz\u0119sto) i plik\u00f3w (rzadziej), przechowuj kilka ostatnich wersji i ustaw powiadomienie, gdy kopia si\u0119 nie wykona.<\/p>\n<h3>27. Hosting robi kopie, czy to wystarczy?<\/h3>\n<p>Kopie hostingu s\u0105 dobrym uzupe\u0142nieniem, ale nie powinny by\u0107 jedyne: zwykle obejmuj\u0105 kilka ostatnich dni, le\u017c\u0105 w infrastrukturze tego samego dostawcy, a przywr\u00f3cenie bywa dodatkowo p\u0142atne albo wymaga zg\u0142oszenia. Warunki znajdziesz w regulaminie us\u0142ugi.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Sprawd\u017a, jak d\u0142ugo hosting przechowuje kopie i jak je przywr\u00f3ci\u0107, a dodatkowo prowad\u017a w\u0142asne kopie w niezale\u017cnym miejscu. Dwie niezale\u017cne kopie to bezpieczne minimum.<\/p>\n<h3>28. Trzeba przywr\u00f3ci\u0107 tylko jeden wpis albo sam\u0105 baz\u0119<\/h3>\n<p>Nie musisz przywraca\u0107 ca\u0142ej strony, \u017ceby odzyska\u0107 skasowan\u0105 tre\u015b\u0107. Usuni\u0119te wpisy cz\u0119sto s\u0105 jeszcze w koszu, a starsze wersje tre\u015bci w rewizjach.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Sprawd\u017a najpierw kosz i rewizje wpisu. Je\u015bli tre\u015b\u0107 znikn\u0119\u0142a na dobre, odtw\u00f3rz kopi\u0119 bazy na kopii testowej i przenie\u015b z niej wpis eksportem, zamiast nadpisywa\u0107 ca\u0142\u0105 baz\u0119 produkcyjn\u0105 i traci\u0107 nowsze dane.<\/p>\n<h3>29. Kopie zawieraj\u0105 dane osobowe klient\u00f3w<\/h3>\n<p>Baza strony z formularzami lub sklepem zawiera dane osobowe, wi\u0119c kopie podlegaj\u0105 tym samym zasadom RODO co sama strona: zabezpieczeniu, ograniczonemu dost\u0119powi i okre\u015blonemu czasowi przechowywania. Dotyczy to zar\u00f3wno kopii robionych przez wtyczk\u0119, jak i tych przechowywanych przez hosting.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Przechowuj kopie w zaszyfrowanym miejscu, u dostawcy, z kt\u00f3rym masz umow\u0119 powierzenia danych, ustaw automatyczne usuwanie starych kopii i opisz ten proces w dokumentacji ochrony danych.<\/p>\n<h3>30. Po przywr\u00f3ceniu kopii brakuje zdj\u0119\u0107 albo linki prowadz\u0105 do starej domeny<\/h3>\n<p>Kopi\u0119 przywr\u00f3cono pod innym adresem, a w bazie zosta\u0142y stare adresy, albo kopia nie obejmowa\u0142a folderu uploads. WordPress zapisuje pe\u0142ne adresy plik\u00f3w w tre\u015bciach i ustawieniach.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Sprawd\u017a, czy folder wp-content\/uploads zawiera pliki, a stare adresy zamie\u0144 narz\u0119dziem obs\u0142uguj\u0105cym dane serializowane (np. WP-CLI search-replace). Zwyk\u0142a zamiana tekstu w pliku SQL mo\u017ce uszkodzi\u0107 ustawienia wtyczek i wid\u017cet\u00f3w.<\/p>\n<h2>Bezpiecze\u0144stwo i w\u0142amania<\/h2>\n<p>Wi\u0119kszo\u015b\u0107 atak\u00f3w na WordPressa jest zautomatyzowana: boty szukaj\u0105 znanych luk i s\u0142abych hase\u0142, a nie konkretnej firmy.<\/p>\n<h3>31. Strona zosta\u0142a zhakowana, co robi\u0107?<\/h3>\n<p>Najpierw odetnij atakuj\u0105cego: zmie\u0144 wszystkie has\u0142a (panel, FTP, baza, hosting), w\u0142\u0105cz tryb konserwacji i zr\u00f3b kopi\u0119 zainfekowanego stanu do analizy. Dopiero potem czy\u015b\u0107 pliki albo przywracaj czyst\u0105 kopi\u0119 sprzed w\u0142amania.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Przywr\u00f3\u0107 kopi\u0119 sprzed infekcji albo podmie\u0144 rdze\u0144, wtyczki i motywy na czyste wersje, usu\u0144 nieznane pliki i konta, zaktualizuj wszystko i zamknij luk\u0119, przez kt\u00f3r\u0105 wesz\u0142o w\u0142amanie. Pe\u0142n\u0105 procedur\u0119 opisali\u015bmy w poradniku <a href=\"\/blog\/wordpress-zhakowany-co-robic-7-krokow-do-odzyskania-strony\/\">WordPress zhakowany - 7 krok\u00f3w do odzyskania strony<\/a>.<\/p>\n<h3>32. Strona przekierowuje odwiedzaj\u0105cych na podejrzane witryny<\/h3>\n<p>To typowy objaw infekcji: z\u0142o\u015bliwy kod w plikach motywu, .htaccess albo w bazie danych przekierowuje cz\u0119\u015b\u0107 odwiedzaj\u0105cych, cz\u0119sto tylko z telefon\u00f3w lub z wynik\u00f3w Google, \u017ceby administrator tego nie zauwa\u017cy\u0142.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Sprawd\u017a .htaccess, index.php, functions.php motywu oraz opcje siteurl i home w bazie, a potem przeskanuj stron\u0119 skanerem z\u0142o\u015bliwego kodu. Traktuj spraw\u0119 jak pe\u0142ne w\u0142amanie (problem 31), bo samo usuni\u0119cie przekierowania zwykle nie usuwa tylnych drzwi.<\/p>\n<h3>33. W Google pojawiaj\u0105 si\u0119 obce podstrony ze spamem, np. po japo\u0144sku<\/h3>\n<p>Atakuj\u0105cy utworzy\u0142 na Twojej domenie strony ze spamem, cz\u0119sto widoczne tylko dla Googlebota. Taka infekcja wymaga zar\u00f3wno wyczyszczenia strony, jak i usuni\u0119cia spamerskich adres\u00f3w z indeksu.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Wyczy\u015b\u0107 stron\u0119 jak po w\u0142amaniu, upewnij si\u0119, \u017ce spamerskie adresy zwracaj\u0105 404 lub 410, i sprawd\u017a raport problem\u00f3w bezpiecze\u0144stwa w Search Console. Usu\u0144 nieznanych w\u0142a\u015bcicieli us\u0142ugi w Search Console i prze\u015blij map\u0119 witryny ponownie.<\/p>\n<h3>34. Tysi\u0105ce pr\u00f3b logowania do wp-login.php<\/h3>\n<p>Boty pr\u00f3buj\u0105 zgadywa\u0107 has\u0142a (atak brute force) na praktycznie ka\u017cdej stronie WordPress, wi\u0119c samo zjawisko jest normalne; gro\u017ane staje si\u0119 przy s\u0142abym ha\u015ble. Takie ataki dodatkowo obci\u0105\u017caj\u0105 serwer.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Ustaw silne, unikalne has\u0142a, w\u0142\u0105cz uwierzytelnianie dwusk\u0142adnikowe dla administrator\u00f3w i ogranicz liczb\u0119 pr\u00f3b logowania. Je\u015bli strona nie u\u017cywa XML-RPC, zablokuj go, a ruch bot\u00f3w filtruj zapor\u0105 aplikacyjn\u0105 (WAF).<\/p>\n<h3>35. Administrator ma login \u201eadmin\u201d i proste has\u0142o<\/h3>\n<p>Login \u201eadmin\u201d to pierwsze, co sprawdzaj\u0105 boty, a has\u0142o u\u017cywane w kilku serwisach mo\u017ce wyciec z kt\u00f3rego\u015b z nich. Konto administratora daje pe\u0142n\u0105 kontrol\u0119 nad stron\u0105 i mo\u017cliwo\u015b\u0107 instalowania kodu.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Utw\u00f3rz nowe konto administratora z unikaln\u0105 nazw\u0105, przypisz mu tre\u015bci i usu\u0144 stare. Has\u0142a trzymaj w mened\u017cerze hase\u0142, a ka\u017cdej osobie daj osobne konto z najni\u017csz\u0105 potrzebn\u0105 rol\u0105 (np. Redaktor, Autor).<\/p>\n<h3>36. Motyw lub wtyczka z nieoficjalnego \u017ar\u00f3d\u0142a (tzw. nulled)<\/h3>\n<p>P\u0142atne dodatki pobrane za darmo z nieoficjalnych stron cz\u0119sto zawieraj\u0105 tylne drzwi lub ukryte linki i nie dostaj\u0105 aktualizacji. To jedna z typowych dr\u00f3g infekcji stron WordPress.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Usu\u0144 taki dodatek i zainstaluj orygina\u0142 z oficjalnego \u017ar\u00f3d\u0142a z licencj\u0105. Po usuni\u0119ciu przeskanuj ca\u0142\u0105 stron\u0119, bo kod m\u00f3g\u0142 ju\u017c zostawi\u0107 z\u0142o\u015bliwe pliki w innych miejscach.<\/p>\n<h3>37. W folderze uploads s\u0105 pliki PHP<\/h3>\n<p>Folder na zdj\u0119cia i dokumenty nie powinien zawiera\u0107 plik\u00f3w wykonywalnych, wi\u0119c plik .php w wp-content\/uploads to niemal zawsze \u015blad w\u0142amania. Atakuj\u0105cy zostawiaj\u0105 tam skrypty, kt\u00f3re daj\u0105 im dost\u0119p do serwera.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Skopiuj podejrzane pliki do analizy i usu\u0144 je ze strony, zablokuj wykonywanie PHP w folderze uploads regu\u0142\u0105 serwera i przejrzyj stron\u0119 pod k\u0105tem innych \u015blad\u00f3w infekcji.<\/p>\n<h3>38. Google lub przegl\u0105darka ostrzega, \u017ce strona jest niebezpieczna<\/h3>\n<p>Mechanizm Bezpieczne przegl\u0105danie Google wykry\u0142 na stronie z\u0142o\u015bliwe oprogramowanie, phishing lub szkodliwe pliki do pobrania. Czerwone ostrze\u017cenie skutecznie odstrasza odwiedzaj\u0105cych, dop\u00f3ki go nie usuniesz. Google mo\u017ce te\u017c ograniczy\u0107 widoczno\u015b\u0107 takiej strony w wynikach wyszukiwania.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Sprawd\u017a raport Problemy dotycz\u0105ce bezpiecze\u0144stwa w Search Console, wyczy\u015b\u0107 stron\u0119 i dopiero wtedy popro\u015b o weryfikacj\u0119. Pro\u015bba z\u0142o\u017cona przed usuni\u0119ciem przyczyny zostanie odrzucona i wyd\u0142u\u017cy czas oczekiwania.<\/p>\n<h3>39. W panelu s\u0105 konta administrator\u00f3w, kt\u00f3rych nikt nie zna<\/h3>\n<p>Nieznane konto administratora to sygna\u0142 w\u0142amania albo pozosta\u0142o\u015b\u0107 po by\u0142ych wykonawcach, a w obu przypadkach otwarta furtka do strony. Atakuj\u0105cy cz\u0119sto nadaj\u0105 takim kontom nazwy przypominaj\u0105ce prawdziwego u\u017cytkownika lub wtyczk\u0119.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Usu\u0144 nieznane konta (tre\u015bci przypisz istniej\u0105cemu u\u017cytkownikowi), zmie\u0144 has\u0142a pozosta\u0142ych i wygeneruj nowe klucze bezpiecze\u0144stwa w wp-config.php, co wyloguje wszystkie sesje. Nast\u0119pnie sprawd\u017a stron\u0119 tak jak po w\u0142amaniu.<\/p>\n<h3>40. Czy wtyczka bezpiecze\u0144stwa wystarczy?<\/h3>\n<p>Nie. Wtyczka pomaga (zapora, skaner, limit logowa\u0144), ale nie zast\u0105pi aktualizacji, kopii zapasowych poza serwerem, silnych hase\u0142 i dobrego hostingu. Kilka wtyczek bezpiecze\u0144stwa naraz cz\u0119sto si\u0119 wzajemnie blokuje i spowalnia stron\u0119.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> U\u017cywaj jednej wtyczki bezpiecze\u0144stwa i po\u0142\u0105cz j\u0105 z regularnymi aktualizacjami, kopiami poza serwerem, logowaniem dwusk\u0142adnikowym i monitoringiem. Pe\u0142n\u0105 list\u0119 zalece\u0144 zawiera oficjalny przewodnik po zabezpieczaniu WordPressa (hardening).<\/p>\n<h2>Wtyczki i motywy<\/h2>\n<p>Wtyczki daj\u0105 WordPressowi elastyczno\u015b\u0107, ale ka\u017cda kolejna to dodatkowy kod, kt\u00f3ry trzeba utrzymywa\u0107 i aktualizowa\u0107.<\/p>\n<h3>41. Jak znale\u017a\u0107 wtyczk\u0119, kt\u00f3ra psuje stron\u0119?<\/h3>\n<p>Najszybciej metod\u0105 wy\u0142\u0105czania: dezaktywujesz wszystkie wtyczki, a potem w\u0142\u0105czasz je po kolei, a\u017c problem wr\u00f3ci. Wtyczka Health Check &amp; Troubleshooting pozwala zrobi\u0107 to tylko dla siebie, bez wp\u0142ywu na odwiedzaj\u0105cych.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Zr\u00f3b kopi\u0119, w\u0142\u0105cz tryb rozwi\u0105zywania problem\u00f3w w Narz\u0119dzia, Zdrowie witryny, prze\u0142\u0105cz motyw na domy\u015blny i w\u0142\u0105czaj wtyczki pojedynczo. Gdy znajdziesz par\u0119, kt\u00f3ra si\u0119 gryzie, zg\u0142o\u015b to autorom albo wymie\u0144 jedn\u0105 z nich.<\/p>\n<h3>42. Na stronie jest kilkadziesi\u0105t wtyczek<\/h3>\n<p>Sama liczba wtyczek nie jest problemem, problemem s\u0105 wtyczki zb\u0119dne, ci\u0119\u017ckie, dubluj\u0105ce si\u0119 albo porzucone. Ka\u017cda z nich zwi\u0119ksza ryzyko konfliktu i luki bezpiecze\u0144stwa.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Zr\u00f3b list\u0119 wtyczek z opisem, do czego s\u0142u\u017c\u0105, usu\u0144 nieaktywne i zb\u0119dne, po\u0142\u0105cz dubluj\u0105ce si\u0119 funkcje i zast\u0105p drobne wtyczki prostym kodem w motywie potomnym. Usuwaj je po jednej i za ka\u017cdym razem sprawdzaj stron\u0119.<\/p>\n<h3>43. Jedna wtyczka bardzo spowalnia stron\u0119<\/h3>\n<p>Wtyczki, kt\u00f3re wykonuj\u0105 du\u017co zapyta\u0144 do bazy, \u0142aduj\u0105 skrypty na ka\u017cdej podstronie albo uruchamiaj\u0105 zadania w tle, potrafi\u0105 spowolni\u0107 ca\u0142\u0105 witryn\u0119. Winowajc\u0119 wida\u0107 w narz\u0119dziach do profilowania.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Zainstaluj na chwil\u0119 wtyczk\u0119 Query Monitor i sprawd\u017a, kt\u00f3ra wtyczka generuje najwi\u0119cej zapyta\u0144 i czasu. Ogranicz \u0142adowanie jej skrypt\u00f3w do stron, gdzie jest potrzebna, albo znajd\u017a l\u017cejszy zamiennik.<\/p>\n<h3>44. Po usuni\u0119ciu wtyczki w bazie zosta\u0142y jej dane<\/h3>\n<p>Wiele wtyczek przy usuwaniu zostawia tabele i opcje w bazie, w tym opcje \u0142adowane automatycznie przy ka\u017cdym wej\u015bciu na stron\u0119. Z czasem baza ro\u015bnie i spowalnia witryn\u0119.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Przed usuni\u0119ciem sprawd\u017a w ustawieniach wtyczki opcj\u0119 usuwania danych. Stare tabele i opcje kasuj ostro\u017cnie, po kopii bazy, sprawdzaj\u0105c prefiks i nazw\u0119 wtyczki, do kt\u00f3rej nale\u017c\u0105.<\/p>\n<h3>45. Shortcode wy\u015bwietla si\u0119 jako tekst w nawiasach kwadratowych<\/h3>\n<p>Wtyczka lub motyw, kt\u00f3ry obs\u0142ugiwa\u0142 shortcode, zosta\u0142 wy\u0142\u0105czony albo usuni\u0119ty, wi\u0119c WordPress pokazuje jego surowy zapis. Zdarza si\u0119 to najcz\u0119\u015bciej po zmianie motywu lub page buildera. Sam shortcode nie psuje dzia\u0142ania strony, ale szpeci tre\u015b\u0107 i ukrywa funkcj\u0119, kt\u00f3ra mia\u0142a si\u0119 w tym miejscu wy\u015bwietla\u0107.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Przywr\u00f3\u0107 wtyczk\u0119 albo zast\u0105p shortcode blokiem lub now\u0105 funkcj\u0105. Przy wielu wyst\u0105pieniach znajd\u017a je wyszukiwaniem w bazie i zamie\u0144 hurtowo, po wcze\u015bniejszej kopii zapasowej.<\/p>\n<h3>46. Formularz kontaktowy nie wysy\u0142a wiadomo\u015bci<\/h3>\n<p>Formularz zwykle dzia\u0142a poprawnie, a zawodzi wysy\u0142ka maili z serwera: wiadomo\u015bci s\u0105 odrzucane albo trafiaj\u0105 do spamu. Rzadziej winny jest b\u0142\u0105d JavaScript lub zabezpieczenie antyspamowe blokuj\u0105ce wysy\u0142k\u0119. Objaw wygl\u0105da tak samo: klient widzi podzi\u0119kowanie, a do skrzynki nic nie trafia.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Skonfiguruj wysy\u0142k\u0119 przez SMTP i sprawd\u017a rekordy SPF, DKIM i DMARC (problemy 71-73). W\u0142\u0105cz zapisywanie zg\u0142osze\u0144 w bazie, \u017ceby \u017cadne zapytanie nie zgin\u0119\u0142o nawet przy awarii poczty.<\/p>\n<h3>47. Wtyczka premium przesta\u0142a si\u0119 aktualizowa\u0107 po wyga\u015bni\u0119ciu licencji<\/h3>\n<p>Wi\u0119kszo\u015b\u0107 wtyczek premium dzia\u0142a dalej bez licencji, ale nie dostaje aktualizacji ani wsparcia, a niekt\u00f3re wy\u0142\u0105czaj\u0105 cz\u0119\u015b\u0107 funkcji. Brak aktualizacji z czasem staje si\u0119 ryzykiem bezpiecze\u0144stwa.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Zbierz w jednym miejscu list\u0119 licencji z datami odnowienia i kontem, na kt\u00f3re je kupiono. Odnawiaj licencje wtyczek krytycznych dla strony, a niepotrzebne zast\u0105p darmowymi odpowiednikami.<\/p>\n<h3>48. Edycja pliku motywu w panelu zablokowa\u0142a stron\u0119<\/h3>\n<p>Wbudowany edytor plik\u00f3w pozwala zapisa\u0107 kod z b\u0142\u0119dem sk\u0142adni, kt\u00f3ry od razu wy\u0142\u0105cza stron\u0119. Od wersji 4.9 WordPress pr\u00f3buje cofn\u0105\u0107 zmian\u0119 powoduj\u0105c\u0105 b\u0142\u0105d krytyczny, ale nie zawsze si\u0119 to udaje.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Popraw plik przez FTP lub mened\u017cer plik\u00f3w hostingu, przywracaj\u0105c go z kopii. Na przysz\u0142o\u015b\u0107 wy\u0142\u0105cz edytor plik\u00f3w sta\u0142\u0105 DISALLOW_FILE_EDIT w wp-config.php i wprowadzaj zmiany w motywie potomnym na kopii testowej.<\/p>\n<h3>49. Page builder sprawia, \u017ce strona jest ci\u0119\u017cka<\/h3>\n<p>Page buildery generuj\u0105 du\u017co dodatkowego kodu HTML, CSS i JavaScript, co pogarsza szybko\u015b\u0107, zw\u0142aszcza na telefonach. Nie zawsze trzeba z nich rezygnowa\u0107, cz\u0119sto wystarczy je odchudzi\u0107. Na stronach z du\u017c\u0105 liczb\u0105 sekcji i animacji r\u00f3\u017cnica bywa wyra\u017ana ju\u017c w PageSpeed Insights.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Wy\u0142\u0105cz nieu\u017cywane wid\u017cety i modu\u0142y buildera, w\u0142\u0105cz jego wbudowane optymalizacje i ogranicz animacje. Przy przebudowie strony rozwa\u017c lekki motyw z edytorem blokowym zamiast ci\u0119\u017ckiego buildera.<\/p>\n<h3>50. Motyw jest porzucony przez autora<\/h3>\n<p>Motyw bez aktualizacji z czasem traci zgodno\u015b\u0107 z PHP i WordPressem, a luki w nim nie zostan\u0105 za\u0142atane. Im d\u0142u\u017cej zwlekasz ze zmian\u0105, tym trudniej j\u0105 przeprowadzi\u0107.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Sprawd\u017a, ile funkcji strony zale\u017cy od motywu (shortcode, w\u0142asne typy tre\u015bci, ustawienia). Zaplanuj przej\u015bcie na nowy motyw na kopii testowej, przenosz\u0105c funkcje do wtyczek, \u017ceby kolejna zmiana wygl\u0105du by\u0142a prostsza.<\/p>\n<h2>PHP, serwer i hosting<\/h2>\n<p>Wiele \u201eb\u0142\u0119d\u00f3w WordPressa\u201d to w rzeczywisto\u015bci ograniczenia albo ustawienia serwera.<\/p>\n<h3>51. WordPress ostrzega o przestarza\u0142ej wersji PHP<\/h3>\n<p>Narz\u0119dzie Zdrowie witryny pokazuje ostrze\u017cenie, gdy wersja PHP nie jest ju\u017c wspierana; stare PHP nie dostaje poprawek bezpiecze\u0144stwa, a nowe wtyczki przestaj\u0105 z nim dzia\u0142a\u0107. Aktualne zalecenia podaje strona wymaga\u0144 na wordpress.org.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Sprawd\u017a zgodno\u015b\u0107 motywu i wtyczek, a potem prze\u0142\u0105cz PHP w panelu hostingu na wspieran\u0105 wersj\u0119 8.x, najpierw na kopii testowej, a po te\u015bcie na stronie produkcyjnej.<\/p>\n<h3>52. Strona przesta\u0142a dzia\u0142a\u0107 po zmianie wersji PHP<\/h3>\n<p>Stary motyw lub wtyczka u\u017cywa funkcji usuni\u0119tych w nowszym PHP, co ko\u0144czy si\u0119 b\u0142\u0119dem krytycznym. Najszybciej przywr\u00f3ci\u0107 poprzedni\u0105 wersj\u0119 PHP, a potem spokojnie naprawi\u0107 kod.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Przywr\u00f3\u0107 poprzedni\u0105 wersj\u0119 PHP w panelu hostingu, sprawd\u017a dziennik b\u0142\u0119d\u00f3w, kt\u00f3ry wska\u017ce niezgodny plik, i zaktualizuj albo wymie\u0144 ten dodatek. Zgodno\u015b\u0107 kodu mo\u017cesz sprawdzi\u0107 narz\u0119dziem PHPCompatibility na kopii strony.<\/p>\n<h3>53. Import lub kopia przerywa si\u0119 z powodu limitu czasu<\/h3>\n<p>PHP ma limit czasu wykonania skryptu (max_execution_time), po kt\u00f3rym przerywa d\u0142ugie operacje: import, generowanie miniatur, kopie zapasowe. Komunikat \u201eMaximum execution time exceeded\u201d wskazuje w\u0142a\u015bnie ten limit. Na hostingu wsp\u00f3\u0142dzielonym limit bywa ustawiony nisko i nie zawsze mo\u017cna go zmieni\u0107.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Podnie\u015b max_execution_time w ustawieniach PHP hostingu, a ci\u0119\u017ckie zadania uruchamiaj przez WP-CLI, gdzie limity czasu zwykle nie obowi\u0105zuj\u0105. Du\u017ce importy dziel na mniejsze pliki.<\/p>\n<h3>54. Nie mog\u0119 wgra\u0107 pliku, bo przekracza maksymalny rozmiar<\/h3>\n<p>Limit ustawia serwer (upload_max_filesize i post_max_size w PHP), a nie WordPress. Na ta\u0144szych hostingach bywa ustawiony nisko. Ten sam limit blokuje te\u017c import du\u017cych plik\u00f3w, np. kopii bazy przez wtyczk\u0119.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Podnie\u015b oba limity w ustawieniach PHP w panelu hostingu, pami\u0119taj\u0105c, \u017ce post_max_size musi by\u0107 wi\u0119kszy lub r\u00f3wny upload_max_filesize. Du\u017ce pliki, np. wideo, lepiej trzyma\u0107 w zewn\u0119trznym serwisie i osadza\u0107 na stronie.<\/p>\n<h3>55. Hosting spowalnia lub wy\u0142\u0105cza stron\u0119 za przekroczenie limit\u00f3w<\/h3>\n<p>Plan hostingu ma limity CPU, pami\u0119ci lub proces\u00f3w, a strona je przekracza przez ruch bot\u00f3w, ci\u0119\u017ckie wtyczki albo brak cache. Hosting w odpowiedzi ogranicza zasoby lub czasowo blokuje konto.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Sprawd\u017a w panelu, kiedy limity s\u0105 przekraczane, i por\u00f3wnaj to z logami dost\u0119pu. Zablokuj agresywne boty, w\u0142\u0105cz cache stron i obiekt\u00f3w, a je\u015bli strona po prostu uros\u0142a, przejd\u017a na mocniejszy plan.<\/p>\n<h3>56. Dost\u0119p do hostingu i domeny ma tylko by\u0142y wykonawca<\/h3>\n<p>Domena i hosting zarejestrowane na wykonawc\u0119 to ryzyko: bez dost\u0119pu nie zmienisz serwera, nie odnowisz domeny i nie naprawisz awarii. Abonentem domeny powinna by\u0107 Twoja firma.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Popro\u015b o przekazanie domeny (kod transferu, tzw. AuthInfo) i dost\u0119p\u00f3w do hostingu na konto firmy. Zr\u00f3b list\u0119 wszystkich dost\u0119p\u00f3w (domena, hosting, FTP, panel WordPress, Search Console, Analytics) i przechowuj j\u0105 w mened\u017cerze hase\u0142.<\/p>\n<h3>57. Zaplanowane wpisy si\u0119 nie publikuj\u0105, a zadania nie wykonuj\u0105<\/h3>\n<p>WP-Cron uruchamia zadania tylko przy wej\u015bciu na stron\u0119, wi\u0119c gdy ruch jest ma\u0142y albo cache zwraca strony bez udzia\u0142u WordPressa, zadania si\u0119 op\u00f3\u017aniaj\u0105. Wpisy zostaj\u0105 wtedy z b\u0142\u0119dem pomini\u0119tego harmonogramu.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Wy\u0142\u0105cz WP-Cron sta\u0142\u0105 DISABLE_WP_CRON w wp-config.php i ustaw prawdziwe zadanie cron na serwerze, kt\u00f3re co kilka minut wywo\u0142uje wp-cron.php. List\u0119 zada\u0144 podejrzysz wtyczk\u0105 WP Crontrol.<\/p>\n<h3>58. Gdzie szuka\u0107 przyczyny b\u0142\u0119du, skoro strona nic nie m\u00f3wi?<\/h3>\n<p>W dzienniku b\u0142\u0119d\u00f3w: WordPress zapisuje je do pliku wp-content\/debug.log po w\u0142\u0105czeniu WP_DEBUG i WP_DEBUG_LOG, a serwer prowadzi w\u0142asny error_log dost\u0119pny w panelu hostingu. Tam znajdziesz plik i lini\u0119, kt\u00f3ra spowodowa\u0142a awari\u0119.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> W wp-config.php ustaw WP_DEBUG i WP_DEBUG_LOG na true, a WP_DEBUG_DISPLAY na false, \u017ceby b\u0142\u0119dy nie by\u0142y widoczne dla odwiedzaj\u0105cych. Po diagnozie wy\u0142\u0105cz logowanie i usu\u0144 plik, bo mo\u017ce zawiera\u0107 \u015bcie\u017cki serwera.<\/p>\n<h3>59. Na serwerze sko\u0144czy\u0142o si\u0119 miejsce<\/h3>\n<p>Miejsce zajmuj\u0105 zwykle stare kopie zapasowe na serwerze, logi, nieu\u017cywane miniatury i pliki cache. Przy pe\u0142nym dysku przestaj\u0105 dzia\u0142a\u0107 aktualizacje, wgrywanie plik\u00f3w, a nawet baza danych. Problem narasta niezauwa\u017cony, bo wiele paneli hostingu nie ostrzega o ko\u0144cz\u0105cym si\u0119 miejscu.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Sprawd\u017a w panelu, kt\u00f3re foldery s\u0105 najwi\u0119ksze, przenie\u015b stare kopie poza serwer i usu\u0144 je, wyczy\u015b\u0107 logi i cache. Wy\u0142\u0105cz zb\u0119dne rozmiary miniatur, a obrazy kompresuj przy wgrywaniu.<\/p>\n<h3>60. Po zmianie tre\u015bci odwiedzaj\u0105cy widz\u0105 star\u0105 wersj\u0119 strony<\/h3>\n<p>Stron\u0119 zwraca cache serwera, wtyczki albo CDN, kt\u00f3ry nie zosta\u0142 wyczyszczony po zmianie. Przy kilku warstwach cache trzeba wyczy\u015bci\u0107 ka\u017cd\u0105 z nich. Najcz\u0119\u015bciej dotyczy to zmian w menu, cenach, godzinach pracy i plikach CSS.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Ustal, jakie warstwy cache dzia\u0142aj\u0105 (wtyczka, serwer, CDN, przegl\u0105darka), i w\u0142\u0105cz automatyczne czyszczenie po publikacji. Przy zmianach CSS i JS dodawaj numer wersji do plik\u00f3w, \u017ceby przegl\u0105darki pobra\u0142y nowe.<\/p>\n<h2>SSL, domena i DNS<\/h2>\n<p>Problemy z certyfikatem i domen\u0105 wy\u0142\u0105czaj\u0105 stron\u0119 dla wszystkich odwiedzaj\u0105cych naraz, dlatego warto je monitorowa\u0107.<\/p>\n<h3>61. Przegl\u0105darka pokazuje \u201ePo\u0142\u0105czenie nie jest prywatne\u201d<\/h3>\n<p>Certyfikat SSL wygas\u0142, nie obejmuje adresu, pod kt\u00f3ry wchodzi odwiedzaj\u0105cy (np. wersji z www), albo jest wystawiony dla innej domeny. Przegl\u0105darka blokuje wtedy wej\u015bcie na stron\u0119 pe\u0142noekranowym ostrze\u017ceniem. Ostrze\u017cenie widz\u0105 wszyscy odwiedzaj\u0105cy, a cz\u0119\u015b\u0107 z nich rezygnuje z wej\u015bcia na stron\u0119.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Sprawd\u017a w panelu hostingu status certyfikatu i list\u0119 domen, kt\u00f3re obejmuje. W\u0142\u0105cz automatyczne odnawianie (np. Let's Encrypt) i dodaj monitoring, kt\u00f3ry ostrze\u017ce przed wyga\u015bni\u0119ciem.<\/p>\n<h3>62. Certyfikat SSL wygasa i nikt o tym nie wie<\/h3>\n<p>Certyfikaty maj\u0105 ograniczon\u0105 wa\u017cno\u015b\u0107, a automatyczne odnawianie potrafi przesta\u0107 dzia\u0142a\u0107 po zmianie DNS lub serwera. O problemie dowiadujesz si\u0119 wtedy od klient\u00f3w. Dotyczy to zw\u0142aszcza certyfikat\u00f3w kupowanych i instalowanych r\u0119cznie.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Ustaw automatyczne odnawianie i monitoring, kt\u00f3ry powiadomi z wyprzedzeniem o ko\u0144cz\u0105cej si\u0119 wa\u017cno\u015bci. Po ka\u017cdej zmianie DNS lub hostingu sprawd\u017a, czy odnowienie dalej dzia\u0142a.<\/p>\n<h3>63. K\u0142\u00f3dka w przegl\u0105darce jest przekre\u015blona mimo certyfikatu<\/h3>\n<p>Strona dzia\u0142a na https, ale cz\u0119\u015b\u0107 plik\u00f3w (obrazy, skrypty, czcionki) \u0142aduje si\u0119 przez http. To tzw. mieszana zawarto\u015b\u0107, kt\u00f3r\u0105 przegl\u0105darki blokuj\u0105 lub oznaczaj\u0105 jako niebezpieczn\u0105.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Zamie\u0144 w bazie stare adresy http na https narz\u0119dziem obs\u0142uguj\u0105cym dane serializowane, sprawd\u017a ustawienia motywu i wtyczek, a pozosta\u0142e adresy znajdziesz w konsoli przegl\u0105darki. Na koniec ustaw przekierowanie 301 z http na https.<\/p>\n<h3>64. Strona dzia\u0142a pod adresem z www i bez www jednocze\u015bnie<\/h3>\n<p>Dwa adresy tej samej strony to duplikaty dla Google, k\u0142opoty z sesj\u0105 logowania i czasem z certyfikatem. Strona powinna mie\u0107 jeden adres g\u0142\u00f3wny, a drugi powinien na niego przekierowywa\u0107.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Wybierz jedn\u0105 wersj\u0119, ustaw j\u0105 w Ustawieniach og\u00f3lnych i przekieruj drug\u0105 przekierowaniem 301 na poziomie serwera. Upewnij si\u0119, \u017ce certyfikat obejmuje obie wersje, bo przekierowanie z https zadzia\u0142a dopiero po nawi\u0105zaniu bezpiecznego po\u0142\u0105czenia.<\/p>\n<h3>65. Po w\u0142\u0105czeniu HTTPS strona wpada w p\u0119tl\u0119 przekierowa\u0144<\/h3>\n<p>Komunikat o zbyt wielu przekierowaniach oznacza, \u017ce serwer i WordPress przekierowuj\u0105 si\u0119 nawzajem, cz\u0119sto przez CDN lub proxy, kt\u00f3re \u0142\u0105czy si\u0119 z serwerem przez http. WordPress nie wie wtedy, \u017ce odwiedzaj\u0105cy jest ju\u017c na https.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Zostaw jedn\u0105 regu\u0142\u0119 przekierowania (w .htaccess, wtyczce albo CDN). Za proxy obs\u0142u\u017c w wp-config.php nag\u0142\u00f3wek X-Forwarded-Proto, a w Cloudflare ustaw tryb SSL na Full (strict) zamiast Flexible.<\/p>\n<h3>66. Cloudflare lub inny CDN psuje stron\u0119 albo panel<\/h3>\n<p>CDN mo\u017ce zapisywa\u0107 w cache strony, kt\u00f3re nie powinny by\u0107 zapisywane (panel, koszyk, formularze), albo modyfikowa\u0107 skrypty. Typowe objawy to stara tre\u015b\u0107, problemy z logowaniem i niedzia\u0142aj\u0105ce formularze.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Wyklucz z cache wp-admin, wp-login.php, strony z formularzami i \u017c\u0105dania zalogowanych u\u017cytkownik\u00f3w. Wy\u0142\u0105cz funkcje modyfikuj\u0105ce JavaScript, je\u015bli psuj\u0105 stron\u0119, i po ka\u017cdej zmianie wyczy\u015b\u0107 cache CDN.<\/p>\n<h3>67. Domena wygas\u0142a i strona znikn\u0119\u0142a<\/h3>\n<p>Domena nie zosta\u0142a odnowiona, bo karta p\u0142atnicza wygas\u0142a, powiadomienia sz\u0142y na nieaktualny adres e-mail albo domena by\u0142a na koncie by\u0142ego wykonawcy. Po up\u0142ywie okresu ochronnego domen\u0119 mo\u017ce zarejestrowa\u0107 kto\u015b inny. Razem ze stron\u0105 przestaje dzia\u0142a\u0107 poczta w tej domenie.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Odn\u00f3w domen\u0119 natychmiast u rejestratora, w\u0142\u0105cz automatyczne odnawianie i zaktualizuj dane kontaktowe abonenta. Sprawd\u017a te\u017c, czy domena jest zarejestrowana na Twoj\u0105 firm\u0119.<\/p>\n<h3>68. Po zmianie hostingu strona raz dzia\u0142a, a raz nie<\/h3>\n<p>Zmiana rekord\u00f3w DNS rozchodzi si\u0119 po sieci stopniowo, wi\u0119c przez pewien czas cz\u0119\u015b\u0107 os\u00f3b trafia na stary serwer, a cz\u0119\u015b\u0107 na nowy. Wysoka warto\u015b\u0107 TTL wyd\u0142u\u017ca ten okres.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Przed migracj\u0105 obni\u017c TTL rekord\u00f3w, w okresie przej\u015bciowym nie zmieniaj tre\u015bci na \u017cadnej z kopii i wy\u0142\u0105cz stary serwer dopiero wtedy, gdy ca\u0142y ruch trafia na nowy.<\/p>\n<h3>69. Jak zmieni\u0107 domen\u0119 strony WordPress?<\/h3>\n<p>Przy zmianie domeny trzeba zaktualizowa\u0107 adresy w bazie, ustawi\u0107 przekierowania 301 ze starej domeny na now\u0105 i zg\u0142osi\u0107 zmian\u0119 w Search Console. Bez przekierowa\u0144 tracisz ruch z Google i warto\u015b\u0107 link\u00f3w.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Zamie\u0144 adresy narz\u0119dziem do wyszukiwania i zamiany (np. WP-CLI search-replace), przekieruj 301 ka\u017cdy stary adres na odpowiednik w nowej domenie i u\u017cyj narz\u0119dzia zmiany adresu w Search Console. Utrzymuj star\u0105 domen\u0119 i przekierowania jak najd\u0142u\u017cej.<\/p>\n<h3>70. Poczta firmowa przesta\u0142a dzia\u0142a\u0107 po przeniesieniu strony<\/h3>\n<p>Przy zmianie hostingu lub serwer\u00f3w nazw zmieniono rekordy DNS, a rekordy MX poczty nie zosta\u0142y przeniesione. Strona dzia\u0142a, ale maile nie dochodz\u0105. Problem cz\u0119sto wychodzi na jaw dopiero po kilku dniach, gdy klienci zg\u0142aszaj\u0105 brak odpowiedzi.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Przed zmian\u0105 serwer\u00f3w nazw zapisz wszystkie rekordy DNS (MX, SPF, DKIM, DMARC, rekordy weryfikacyjne us\u0142ug) i odtw\u00f3rz je u nowego dostawcy. Po zmianie wy\u015blij testowe maile w obie strony.<\/p>\n<h2>Poczta i formularze<\/h2>\n<p>Formularz, z kt\u00f3rego nie dochodz\u0105 wiadomo\u015bci, oznacza utracone zapytania, o kt\u00f3rych nikt nie wie.<\/p>\n<h3>71. WordPress nie wysy\u0142a maili<\/h3>\n<p>Najcz\u0119stsz\u0105 przyczyn\u0105 jest wysy\u0142ka funkcj\u0105 PHP mail() z serwera hostingu, bez uwierzytelnienia, przez co skrzynki odbiorc\u00f3w odrzucaj\u0105 wiadomo\u015bci albo kieruj\u0105 je do spamu. Naprawa to wysy\u0142ka przez SMTP z firmowej skrzynki lub us\u0142ugi transakcyjnej oraz poprawne rekordy SPF, DKIM i DMARC.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Zainstaluj wtyczk\u0119 SMTP, po\u0142\u0105cz j\u0105 ze skrzynk\u0105 w swojej domenie, wy\u015blij mail testowy i w\u0142\u0105cz dziennik wysy\u0142ki. <a href=\"\/blog\/wordpress-nie-wysyla-maili\/\">Szczeg\u00f3\u0142y i naprawa krok po kroku<\/a>.<\/p>\n<h3>72. Maile z formularza trafiaj\u0105 do spamu<\/h3>\n<p>Skrzynka odbiorcy nie ufa nadawcy, bo domena nie ma rekord\u00f3w SPF, DKIM lub DMARC albo mail jest wysy\u0142any z adresu w innej domenie ni\u017c serwer, z kt\u00f3rego wychodzi. Filtry oceniaj\u0105 te\u017c tre\u015b\u0107 wiadomo\u015bci i reputacj\u0119 serwera.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Ustaw w DNS rekordy SPF i DKIM dla serwera, kt\u00f3ry wysy\u0142a poczt\u0119, oraz rekord DMARC. Wysy\u0142aj z adresu w swojej domenie, a adres osoby z formularza wpisuj w pole Reply-To, a nie w pole nadawcy.<\/p>\n<h3>73. Czym s\u0105 SPF, DKIM i DMARC i czy musz\u0119 je mie\u0107?<\/h3>\n<p>To rekordy DNS, kt\u00f3re potwierdzaj\u0105, \u017ce dany serwer mo\u017ce wysy\u0142a\u0107 poczt\u0119 z Twojej domeny (SPF), \u017ce wiadomo\u015b\u0107 nie zosta\u0142a zmieniona po drodze (DKIM), i m\u00f3wi\u0105, co zrobi\u0107 z mailami, kt\u00f3re nie przejd\u0105 weryfikacji (DMARC). Gmail i Yahoo wymagaj\u0105 uwierzytelnienia poczty od nadawc\u00f3w, a od wysy\u0142aj\u0105cych du\u017co wiadomo\u015bci wszystkich trzech mechanizm\u00f3w.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Sprawd\u017a rekordy domeny w narz\u0119dziu do testowania DNS, dodaj brakuj\u0105ce u dostawcy DNS i zacznij od DMARC w trybie monitorowania (p=none). Po analizie raport\u00f3w zaostrz polityk\u0119.<\/p>\n<h3>74. Formularz kontaktowy zalewa spam<\/h3>\n<p>Boty automatycznie wype\u0142niaj\u0105 formularze bez zabezpiecze\u0144. Zbyt agresywna ochrona z kolei blokuje prawdziwych klient\u00f3w, wi\u0119c trzeba znale\u017a\u0107 r\u00f3wnowag\u0119. Spam w skrzynce utrudnia te\u017c wy\u0142apanie prawdziwych zapyta\u0144 od klient\u00f3w.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> W\u0142\u0105cz ukryte pole-pu\u0142apk\u0119 (honeypot) i niewidoczn\u0105 weryfikacj\u0119 (np. reCAPTCHA v3 albo Cloudflare Turnstile), a zg\u0142oszenia zapisuj w bazie. Co jaki\u015b czas przegl\u0105daj odrzucone wiadomo\u015bci, \u017ceby nie gubi\u0107 prawdziwych zapyta\u0144.<\/p>\n<h3>75. Nie dochodzi mail z resetem has\u0142a<\/h3>\n<p>To ten sam problem co z formularzami: serwer wysy\u0142a maile bez uwierzytelnienia, wi\u0119c trafiaj\u0105 do spamu albo s\u0105 odrzucane. Dodatkowo wtyczki bezpiecze\u0144stwa mog\u0105 blokowa\u0107 reset has\u0142a dla niekt\u00f3rych kont. Bez dzia\u0142aj\u0105cego resetu has\u0142a u\u017cytkownik, kt\u00f3ry zapomni has\u0142a, traci dost\u0119p do konta.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Skonfiguruj SMTP (problem 71) i sprawd\u017a folder spam. Gdy potrzebujesz dost\u0119pu od razu, zmie\u0144 has\u0142o przez phpMyAdmin lub WP-CLI, a potem napraw wysy\u0142k\u0119 maili.<\/p>\n<h3>76. Maile ze strony przychodz\u0105 z adresu wordpress@domena<\/h3>\n<p>To domy\u015blny nadawca WordPressa, gdy nikt nie ustawi\u0142 innego. Taki adres cz\u0119sto nie istnieje, co pogarsza dostarczalno\u015b\u0107 i wygl\u0105da nieprofesjonalnie. Cz\u0119\u015b\u0107 serwer\u00f3w pocztowych odrzuca wiadomo\u015bci z adres\u00f3w, dla kt\u00f3rych nie istnieje skrzynka.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Ustaw nadawc\u0119 we wtyczce SMTP na istniej\u0105cy adres w Twojej domenie (np. kontakt@ lub powiadomienia@) i wymu\u015b go dla wszystkich maili wysy\u0142anych przez stron\u0119 i wtyczki.<\/p>\n<h3>77. Hosting blokuje wysy\u0142k\u0119 maili ze strony<\/h3>\n<p>Hostingi ograniczaj\u0105 liczb\u0119 maili na godzin\u0119 albo blokuj\u0105 wysy\u0142k\u0119 po wykryciu spamu z konta, np. z zainfekowanej strony. Wtedy nie wychodzi \u017cadna wiadomo\u015b\u0107, tak\u017ce powiadomienia o zam\u00f3wieniach.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Sprawd\u017a w panelu hostingu limity i komunikaty o blokadzie. Przy wi\u0119kszej liczbie maili (sklep, powiadomienia) u\u017cyj zewn\u0119trznej us\u0142ugi wysy\u0142ki transakcyjnej, a przy blokadzie za spam najpierw sprawd\u017a, czy strona nie zosta\u0142a zhakowana.<\/p>\n<h3>78. Wiadomo\u015bci z formularza gin\u0105 bez \u015bladu<\/h3>\n<p>Wiele wtyczek formularzy domy\u015blnie tylko wysy\u0142a mail i niczego nie zapisuje. Gdy wiadomo\u015b\u0107 nie dojdzie, zapytanie przepada, a nikt nie wie, ile ich by\u0142o. Nie da si\u0119 te\u017c policzy\u0107, ile zapyta\u0144 faktycznie przysz\u0142o ze strony.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> W\u0142\u0105cz zapisywanie zg\u0142osze\u0144 w bazie (funkcja wtyczki albo dodatek), ustaw powiadomienie na dwa adresy i raz w tygodniu por\u00f3wnaj zg\u0142oszenia w bazie z wiadomo\u015bciami w skrzynce.<\/p>\n<h3>79. Formularz przesta\u0142 dzia\u0142a\u0107 po w\u0142\u0105czeniu cache lub optymalizacji<\/h3>\n<p>Formularz ma jednorazowy klucz bezpiecze\u0144stwa (nonce), kt\u00f3ry zapisany w cache po pewnym czasie przestaje by\u0107 wa\u017cny. Optymalizacja JavaScript mo\u017ce te\u017c op\u00f3\u017ani\u0107 lub wy\u0142\u0105czy\u0107 skrypt wysy\u0142ki.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Wyklucz strony z formularzami z cache albo u\u017cyj wtyczki, kt\u00f3ra od\u015bwie\u017ca klucz przez AJAX. Wyklucz skrypty formularza z op\u00f3\u017aniania i \u0142\u0105czenia JS i przetestuj wysy\u0142k\u0119 w oknie incognito.<\/p>\n<h3>80. Czy formularz kontaktowy musi mie\u0107 informacj\u0119 RODO?<\/h3>\n<p>Tak, formularz zbiera dane osobowe, wi\u0119c osoba wysy\u0142aj\u0105ca musi wiedzie\u0107, kto jest administratorem danych, w jakim celu je przetwarza i gdzie znajdzie wi\u0119cej informacji. Zwykle wystarcza kr\u00f3tka informacja przy formularzu z linkiem do polityki prywatno\u015bci (to opis og\u00f3lny, nie porada prawna).<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Dodaj pod formularzem informacj\u0119 o administratorze i celu przetwarzania z odno\u015bnikiem do polityki prywatno\u015bci. Zbieraj tylko potrzebne pola i ustaw usuwanie starych zg\u0142osze\u0144 z bazy.<\/p>\n<h2>Szybko\u015b\u0107 i wydajno\u015b\u0107<\/h2>\n<p>Szybko\u015b\u0107 wp\u0142ywa na wygod\u0119 odwiedzaj\u0105cych i jest jednym z sygna\u0142\u00f3w, kt\u00f3re bierze pod uwag\u0119 Google.<\/p>\n<h3>81. Strona na WordPressie dzia\u0142a wolno<\/h3>\n<p>Najcz\u0119stsze przyczyny to s\u0142aby hosting, brak cache, ci\u0119\u017ckie obrazy i za du\u017co skrypt\u00f3w z wtyczek oraz page buildera. Zacznij od pomiaru, a nie od instalowania kolejnej wtyczki \u201eprzyspieszaj\u0105cej\u201d.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Zmierz stron\u0119 w PageSpeed Insights i sprawd\u017a czas odpowiedzi serwera. W\u0142\u0105cz cache stron, kompresj\u0119 obraz\u00f3w, aktualne PHP z OPcache i usu\u0144 zb\u0119dne skrypty; je\u015bli serwer odpowiada wolno mimo cache, problemem jest hosting.<\/p>\n<h3>82. S\u0142aby wynik LCP<\/h3>\n<p>LCP mierzy, kiedy pojawia si\u0119 najwi\u0119kszy element strony, a dobry wynik to do 2,5 s. Najcz\u0119\u015bciej spowalnia go du\u017ce zdj\u0119cie w nag\u0142\u00f3wku, wolny serwer albo pliki CSS blokuj\u0105ce wy\u015bwietlanie. LCP mierzy si\u0119 osobno dla telefon\u00f3w i komputer\u00f3w, a wynik mobilny jest zwykle s\u0142abszy.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Zmniejsz i skompresuj g\u0142\u00f3wne zdj\u0119cie (WebP lub AVIF), nie \u0142aduj go leniwie, nadaj mu wysoki priorytet pobierania (fetchpriority=\"high\") i skr\u00f3\u0107 czas odpowiedzi serwera dzi\u0119ki cache stron.<\/p>\n<h3>83. Strona wolno reaguje na klikni\u0119cia (INP)<\/h3>\n<p>INP mierzy, jak szybko strona reaguje na interakcje, a dobry wynik to do 200 ms. Winne s\u0105 zwykle ci\u0119\u017ckie skrypty: page buildery, slidery, czaty, piksele reklamowe i narz\u0119dzia \u015bledz\u0105ce.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Usu\u0144 nieu\u017cywane skrypty, \u0142aduj czaty i wid\u017cety dopiero po interakcji, ogranicz skrypty zewn\u0119trzne i sprawd\u017a w zak\u0142adce Performance w Chrome, kt\u00f3re zadania blokuj\u0105 g\u0142\u00f3wny w\u0105tek.<\/p>\n<h3>84. Elementy strony skacz\u0105 podczas \u0142adowania (CLS)<\/h3>\n<p>CLS mierzy przesuni\u0119cia uk\u0142adu, a dobry wynik to do 0,1. Przesuni\u0119cia powoduj\u0105 obrazy i ramki bez wymiar\u00f3w, p\u00f3\u017ano \u0142adowane banery na g\u00f3rze strony i podmieniane czcionki.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Nadaj obrazom i osadzeniom atrybuty width i height lub proporcje w CSS, rezerwuj miejsce na banery i reklamy, a czcionki \u0142aduj z font-display i wst\u0119pnym \u0142adowaniem najwa\u017cniejszych kroj\u00f3w.<\/p>\n<h3>85. Zdj\u0119cia wa\u017c\u0105 po kilka megabajt\u00f3w<\/h3>\n<p>Zdj\u0119cia wgrywane prosto z aparatu lub telefonu s\u0105 wielokrotnie wi\u0119ksze, ni\u017c potrzeba do wy\u015bwietlenia na stronie. To jedna z najcz\u0119stszych przyczyn wolnego \u0142adowania. Na telefonie z wolniejszym \u0142\u0105czem r\u00f3\u017cnica w czasie \u0142adowania jest szczeg\u00f3lnie widoczna.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Ustaw automatyczne zmniejszanie i kompresj\u0119 przy wgrywaniu, konwersj\u0119 do WebP lub AVIF i leniwe \u0142adowanie obraz\u00f3w poni\u017cej pierwszego ekranu. Istniej\u0105ce zdj\u0119cia przetw\u00f3rz hurtowo wtyczk\u0105 do optymalizacji obraz\u00f3w.<\/p>\n<h3>86. Wtyczka cache psuje stron\u0119<\/h3>\n<p>Agresywne ustawienia optymalizacji (\u0142\u0105czenie i op\u00f3\u017anianie JS, usuwanie nieu\u017cywanego CSS) potrafi\u0105 zepsu\u0107 menu, formularze i slidery. Sam cache stron rzadko jest problemem, problemem s\u0105 dodatkowe optymalizacje. Problem cz\u0119sto wida\u0107 tylko u niezalogowanych odwiedzaj\u0105cych, bo administrator omija cache.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> W\u0142\u0105czaj optymalizacje pojedynczo i po ka\u017cdej sprawdzaj stron\u0119 w oknie incognito. Gdy co\u015b si\u0119 psuje, wyklucz konkretny skrypt zamiast wy\u0142\u0105cza\u0107 ca\u0142\u0105 optymalizacj\u0119, a strony dynamiczne wyklucz z cache.<\/p>\n<h3>87. Baza danych jest ogromna i strona zwalnia<\/h3>\n<p>Baza ro\u015bnie przez rewizje wpis\u00f3w, przeterminowane dane tymczasowe (transients), logi wtyczek i opcje \u0142adowane automatycznie (autoload). Szczeg\u00f3lnie du\u017ce opcje autoload spowalniaj\u0105 ka\u017cde wej\u015bcie na stron\u0119.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Zr\u00f3b kopi\u0119 bazy, ogranicz liczb\u0119 rewizji sta\u0142\u0105 WP_POST_REVISIONS, usu\u0144 przeterminowane transients i dane po usuni\u0119tych wtyczkach. Narz\u0119dzie Zdrowie witryny w nowszych wersjach WordPressa ostrzega o zbyt du\u017cych opcjach autoload.<\/p>\n<h3>88. Panel administracyjny dzia\u0142a wolno<\/h3>\n<p>Panel nie korzysta z cache stron, wi\u0119c ka\u017cda wolna wtyczka, zewn\u0119trzne zapytanie (np. sprawdzanie licencji) czy du\u017ca baza od razu daje si\u0119 w nim odczu\u0107. Na ta\u0144szym hostingu panel bywa wyra\u017anie wolniejszy ni\u017c sama strona.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Sprawd\u017a wtyczk\u0105 Query Monitor, co spowalnia ekrany panelu, wy\u0142\u0105cz zb\u0119dne wid\u017cety kokpitu, w\u0142\u0105cz cache obiekt\u00f3w (np. Redis) i ogranicz cz\u0119stotliwo\u015b\u0107 Heartbeat API.<\/p>\n<h3>89. Plik admin-ajax.php obci\u0105\u017ca serwer<\/h3>\n<p>Wiele wtyczek wykonuje zapytania przez admin-ajax.php, a Heartbeat API wysy\u0142a je cyklicznie przy otwartym panelu. Przy kilku otwartych kartach i wolnych wtyczkach serwer dostaje bardzo du\u017co kosztownych zapyta\u0144. Obci\u0105\u017cenie wida\u0107 w panelu hostingu jako skoki u\u017cycia CPU w godzinach pracy os\u00f3b edytuj\u0105cych stron\u0119.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Sprawd\u017a w logach dost\u0119pu, kt\u00f3re akcje admin-ajax pojawiaj\u0105 si\u0119 najcz\u0119\u015bciej, ogranicz Heartbeat i zamykaj nieu\u017cywane karty panelu. Wtyczki nadu\u017cywaj\u0105ce AJAX zast\u0105p l\u017cejszymi.<\/p>\n<h3>90. Strona jest szybka na komputerze, a wolna na telefonie<\/h3>\n<p>Telefony maj\u0105 s\u0142absze procesory i cz\u0119sto wolniejsze \u0142\u0105cze, wi\u0119c ci\u0119\u017cki JavaScript i du\u017ce obrazy szkodz\u0105 im najbardziej. Google ocenia te\u017c przede wszystkim mobiln\u0105 wersj\u0119 strony.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Mierz wynik mobilny w PageSpeed Insights i dane z rzeczywistych wizyt w raporcie Podstawowe wska\u017aniki internetowe w Search Console. Podawaj mniejsze obrazy na telefony i ograniczaj skrypty; przyk\u0142ad naprawy opisali\u015bmy we wpisie o <a href=\"\/blog\/wolny-sklep-woocommerce-na-telefonie\/\">wolnym sklepie WooCommerce na telefonie<\/a>.<\/p>\n<h2>Migracje, monitoring i sta\u0142a opieka<\/h2>\n<p>Ostatnia grupa to problemy organizacyjne: kto, kiedy i jak dba o stron\u0119, zanim co\u015b si\u0119 zepsuje.<\/p>\n<h3>91. Jak przenie\u015b\u0107 stron\u0119 WordPress na nowy hosting bez przestoju?<\/h3>\n<p>Najbezpieczniej skopiowa\u0107 pliki i baz\u0119 na nowy serwer, sprawdzi\u0107 tam stron\u0119 przed zmian\u0105 DNS (np. przez wpis w pliku hosts), a dopiero potem prze\u0142\u0105czy\u0107 domen\u0119. Odwiedzaj\u0105cy nie zauwa\u017c\u0105 wtedy przerwy.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Zr\u00f3b pe\u0142n\u0105 kopi\u0119, przenie\u015b pliki i baz\u0119, popraw dane w wp-config.php, przetestuj stron\u0119 na nowym serwerze, obni\u017c TTL, prze\u0142\u0105cz DNS i zostaw stary serwer na kilka dni. Pami\u0119taj o rekordach poczty (problem 70).<\/p>\n<h3>92. Po migracji cz\u0119\u015b\u0107 ustawie\u0144 i wid\u017cet\u00f3w znikn\u0119\u0142a<\/h3>\n<p>Adresy zamieniono zwyk\u0142\u0105 zamian\u0105 tekstu w pliku SQL, co uszkodzi\u0142o dane serializowane: ustawienia wid\u017cet\u00f3w, motywu i wtyczek. WordPress odrzuca uszkodzone wpisy i wraca do ustawie\u0144 domy\u015blnych. Objawy to puste wid\u017cety, zresetowane menu i domy\u015blne kolory motywu.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Przywr\u00f3\u0107 baz\u0119 z kopii sprzed migracji i zamie\u0144 adresy narz\u0119dziem rozumiej\u0105cym serializacj\u0119 (WP-CLI search-replace lub wtyczka migracyjna). Po migracji sprawd\u017a wid\u017cety, menu i ustawienia motywu.<\/p>\n<h3>93. Strona nie dzia\u0142a\u0142a przez kilka dni, a nikt tego nie zauwa\u017cy\u0142<\/h3>\n<p>Bez monitoringu o awarii dowiadujesz si\u0119 od klient\u00f3w albo wcale. Monitoring dost\u0119pno\u015bci sprawdza stron\u0119 co kilka minut i od razu powiadamia o przerwie.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Ustaw monitoring dost\u0119pno\u015bci z powiadomieniem mailowym lub w komunikatorze, kt\u00f3ry sprawdza stron\u0119 g\u0142\u00f3wn\u0105 i najwa\u017cniejsz\u0105 podstron\u0119 (np. z formularzem). Dodaj monitoring wa\u017cno\u015bci certyfikatu SSL i domeny.<\/p>\n<h3>94. Nikt nie wie, kto ma dost\u0119p do strony<\/h3>\n<p>Dost\u0119py rozdawane latami trafiaj\u0105 do by\u0142ych pracownik\u00f3w, agencji i freelancer\u00f3w. Ka\u017cde nieu\u017cywane konto to potencjalna furtka dla atakuj\u0105cego. Szczeg\u00f3lnie ryzykowne s\u0105 wsp\u00f3lne konta administratora, z kt\u00f3rych korzysta kilka os\u00f3b.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Przejrzyj u\u017cytkownik\u00f3w WordPressa, konta FTP, bazy danych, hostingu i narz\u0119dzi Google. Usu\u0144 zb\u0119dne, zmie\u0144 has\u0142a wsp\u00f3\u0142dzielone i prowad\u017a list\u0119 dost\u0119p\u00f3w z informacj\u0105, kto i po co ma dost\u0119p.<\/p>\n<h3>95. Wykonawca strony przesta\u0142 odpowiada\u0107<\/h3>\n<p>Strona bez opiekuna szybko si\u0119 starzeje: brakuje aktualizacji, kopii i reakcji na awarie. Najwa\u017cniejsze jest odzyskanie dost\u0119p\u00f3w i pe\u0142na kopia strony. Problem jest powa\u017cniejszy, gdy domena lub hosting s\u0105 zarejestrowane na wykonawc\u0119.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Ustal, gdzie s\u0105 domena, hosting i kopie, odzyskaj dost\u0119py (problem 56) i zr\u00f3b pe\u0142n\u0105 kopi\u0119. Potem zle\u0107 przegl\u0105d stanu strony (wersje, wtyczki, bezpiecze\u0144stwo, szybko\u015b\u0107) i ustal sta\u0142\u0105 opiek\u0119.<\/p>\n<h3>96. Baner cookies nie blokuje skrypt\u00f3w przed zgod\u0105<\/h3>\n<p>Wiele baner\u00f3w tylko wy\u015bwietla informacj\u0119, a narz\u0119dzia analityczne i reklamowe \u0142aduj\u0105 si\u0119 od razu po wej\u015bciu na stron\u0119. Pliki cookies, kt\u00f3re nie s\u0105 niezb\u0119dne, wymagaj\u0105 zgody przed ich zapisaniem.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> U\u017cyj narz\u0119dzia do zarz\u0105dzania zgodami, kt\u00f3re blokuje skrypty do momentu zgody, i po\u0142\u0105cz je z Consent Mode w Google. W narz\u0119dziach przegl\u0105darki sprawd\u017a, jakie cookies zapisuj\u0105 si\u0119 przed klikni\u0119ciem zgody.<\/p>\n<h3>97. Kopia testowa strony jest widoczna w Google<\/h3>\n<p>Kopia robocza na subdomenie lub w katalogu nie by\u0142a zabezpieczona i Google j\u0105 zaindeksowa\u0142. To duplikat tre\u015bci i ryzyko pokazania klientom niegotowych materia\u0142\u00f3w.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Zabezpiecz kopi\u0119 testow\u0105 has\u0142em na poziomie serwera, a adresy, kt\u00f3re ju\u017c s\u0105 w indeksie, ukryj narz\u0119dziem Usuni\u0119cia w Search Console. Przy przenoszeniu zmian na produkcj\u0119 uwa\u017caj, \u017ceby nie skopiowa\u0107 blokady indeksowania.<\/p>\n<h3>98. Po starcie nowej strony nie ma jej w Google<\/h3>\n<p>Najcz\u0119\u015bciej w Ustawienia, Czytanie zosta\u0142a zaznaczona opcja \u201ePro\u015b wyszukiwarki o nieindeksowanie tej witryny\u201d, w\u0142\u0105czona na czas budowy. To cz\u0119sta przyczyna braku nowej strony w wynikach.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Odznacz t\u0119 opcj\u0119, sprawd\u017a robots.txt i meta robots na kilku podstronach, prze\u015blij map\u0119 witryny w Search Console i popro\u015b o zaindeksowanie strony g\u0142\u00f3wnej. Inne przyczyny opisali\u015bmy w li\u015bcie <a href=\"\/blog\/100-problemow-z-pozycjonowaniem-seo\/\">100 problem\u00f3w z pozycjonowaniem SEO<\/a>.<\/p>\n<h3>99. Co obejmuje sta\u0142a opieka nad WordPressem i ile kosztuje?<\/h3>\n<p>Opieka obejmuje zwykle aktualizacje, kopie zapasowe poza serwerem, monitoring dost\u0119pno\u015bci i bezpiecze\u0144stwa oraz pomoc przy awariach; koszt zale\u017cy od wielko\u015bci strony i oczekiwanego czasu reakcji. Nasza opieka nad stron\u0105 zaczyna si\u0119 od 299 z\u0142 netto miesi\u0119cznie.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Por\u00f3wnuj\u0105c oferty, sprawd\u017a, co dok\u0142adnie obejmuje abonament, jak cz\u0119sto i gdzie s\u0105 robione kopie oraz jak szybko wykonawca reaguje na awari\u0119. Wi\u0119cej o kosztach w artykule <a href=\"\/blog\/ile-kosztuje-utrzymanie-strony-wordpress-w-2026-kompletny-cennik\/\">ile kosztuje utrzymanie strony WordPress<\/a>.<\/p>\n<h3>100. Kiedy naprawia\u0107 stron\u0119, a kiedy j\u0105 przebudowa\u0107?<\/h3>\n<p>Przebudowa ma sens, gdy strona opiera si\u0119 na porzuconym motywie i wtyczkach, nie dzia\u0142a na aktualnym PHP, a ka\u017cda zmiana wymaga obej\u015b\u0107. W pozosta\u0142ych przypadkach zwykle taniej jest uporz\u0105dkowa\u0107 to, co ju\u017c dzia\u0142a.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong> Zr\u00f3b przegl\u0105d: wersje, zale\u017cno\u015b\u0107 od motywu, liczba porzuconych wtyczek, szybko\u015b\u0107 i bezpiecze\u0144stwo. Je\u015bli wi\u0119kszo\u015b\u0107 punkt\u00f3w wymaga wymiany, zaplanuj przebudow\u0119 z przekierowaniami 301, \u017ceby nie straci\u0107 ruchu z Google.<\/p>\n<h2>Od czego zacz\u0105\u0107<\/h2>\n<p>Najpierw zabezpiecz to, czego nie da si\u0119 odtworzy\u0107: kopie zapasowe poza serwerem i dost\u0119py do domeny oraz hostingu (problemy 21-30, 56 i 94). Potem aktualizacje i bezpiecze\u0144stwo (11-20 i 31-40), nast\u0119pnie poczt\u0119 i formularze (71-80), bo ka\u017cdy niewys\u0142any mail to utracone zapytanie. Szybko\u015b\u0107 i porz\u0105dki we wtyczkach zostaw na koniec. Dlaczego regularna administracja si\u0119 op\u0142aca, wyja\u015bniamy we wpisie <a href=\"\/blog\/dlaczego-twoja-strona-wordpress-potrzebuje-regularnej-administracji\/\">dlaczego strona WordPress potrzebuje regularnej administracji<\/a>.<\/p>\n<p>Je\u015bli nie wiesz, w jakim stanie jest Twoja strona, zacznij od <a href=\"https:\/\/codescriptum.pl\/audyt-strony-internetowej\/\">bezp\u0142atnego skanu strony<\/a>: w kilka minut sprawdzi szybko\u015b\u0107, podstawy bezpiecze\u0144stwa i SEO. Gdy wolisz odda\u0107 stron\u0119 w r\u0119ce specjalist\u00f3w, nasz zesp\u00f3\u0142 przejmie aktualizacje, kopie, monitoring i awarie w ramach us\u0142ugi <a href=\"https:\/\/codescriptum.pl\/administracja-i-opieka-stron-www-lodz\/\">opieka nad stron\u0105 WWW<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Lista 100 problem\u00f3w, z kt\u00f3rymi w\u0142a\u015bciciele stron na WordPressie zg\u0142aszaj\u0105 si\u0119 najcz\u0119\u015bciej, z przyczyn\u0105 i konkretnym rozwi\u0105zaniem przy ka\u017cdym.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[35],"tags":[],"class_list":["post-90048","post","type-post","status-publish","format-standard","hentry","category-administracja-www"],"_links":{"self":[{"href":"https:\/\/codescriptum.pl\/blog\/wp-json\/wp\/v2\/posts\/90048","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/codescriptum.pl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/codescriptum.pl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/codescriptum.pl\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/codescriptum.pl\/blog\/wp-json\/wp\/v2\/comments?post=90048"}],"version-history":[{"count":0,"href":"https:\/\/codescriptum.pl\/blog\/wp-json\/wp\/v2\/posts\/90048\/revisions"}],"wp:attachment":[{"href":"https:\/\/codescriptum.pl\/blog\/wp-json\/wp\/v2\/media?parent=90048"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/codescriptum.pl\/blog\/wp-json\/wp\/v2\/categories?post=90048"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/codescriptum.pl\/blog\/wp-json\/wp\/v2\/tags?post=90048"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}