Skip to content
🔧 404 Błąd na WordPress: jak naprawić i więcej nie tracić stron

🔧 404 Błąd na WordPress: jak naprawić i więcej nie tracić stron

Przeszli Państwo na swoją stronę przez link, a tam pusta strona z komunikatem „404 Not Found". Chociaż dokładnie pamiętają Państwo: wpis był, działał i go nie usuwali. Sytuacja jest nieprzyjemna i, niestety, znana każdemu administratorowi WordPressa.

Najczęściej winna jest zwykła desynchronizacja reguł przepisywania URL. W praktyce w 8 na 10 przypadków problem rozwiązuje się w minutę, jednym kliknięciem przycisku w panelu administracyjnym. A jeśli to nie pomoże, przeanalizujemy pozostałe przyczyny po kolei, od wtyczek po ustawienia serwera.

Poniżej przewodnik krok po kroku: od szybkiej naprawy do pełnej diagnostyki, włącznie z ręczną edycją .htaccess, wyszukiwaniem uszkodzonych linków przez Google Search Console i konfiguracją przekierowań.

💡 Szybki przegląd:

  • Proszę zapisać bezpośrednie odnośniki w panelu administracyjnym, to resetuje reguły przepisywania i naprawia większość błędów 404.
  • Proszę sprawdzić wtyczki i motyw: tymczasowo wyłączyć wszystko i włączać pojedynczo, aby znaleźć konflikt.
  • Proszę zaktualizować plik htaccess ręcznie przez FTP lub menedżera plików hostingu.
  • Proszę skonfigurować przekierowania 301 przez wtyczkę Redirection dla usuniętych i przeniesionych stron.
  • Proszę skontaktować się z dostawcą hostingu, jeśli poprzednie kroki nie pomogły.

Krok 1: Proszę zapisać ustawienia bezpośrednich odnośników

To najszybszy i najskuteczniejszy sposób. WordPress przechowuje reguły routingu URL w specjalnej pamięci podręcznej rewrite rules i czasami ta pamięć jest resetowana nieprawidłowo, na przykład po aktualizacji rdzenia lub instalacji wtyczki, która rejestruje własne typy wpisów.

Proszę wejść do panelu administracyjnego: Ustawienia → Bezpośrednie odnośniki. Proszę niczego nie zmieniać, tylko kliknąć przycisk „Zapisz zmiany" na dole strony.

WordPress ponownie wygeneruje reguły przepisywania i zapisze je w .htaccess. Następnie proszę sprawdzić problematyczne strony, w większości przypadków błąd 404 znika natychmiast.

Jeśli to nie zadziałało, proszę spróbować tymczasowo przełączyć strukturę odnośników na „Prostą", zapisać, a następnie przywrócić poprzednią i zapisać jeszcze raz. W ten sposób wymuszą Państwo dwukrotną regenerację rewrite rules.

Krok 2: Proszę sprawdzić wtyczki i motyw pod kątem konfliktów

Niektóre wtyczki ingerują w routing URL, rejestrują własne reguły przepisywania lub nadpisują istniejące. Konflikt dwóch wtyczek lub wtyczki z motywem psuje bezpośrednie odnośniki i część stron zwraca 404.

Jak znaleźć winowajcę:

  • Proszę wykonać pełną kopię zapasową strony. Przed jakimikolwiek manipulacjami z aktywnymi wtyczkami i motywem jest to obowiązkowe. Proszę użyć BackWPup lub dowolnej innej wtyczki do tworzenia kopii zapasowych, której Państwo ufają.
  • Proszę przejść do Wtyczki → Zainstalowane i tymczasowo dezaktywować wszystkie wtyczki jednocześnie (zaznaczyć checkboxem i wybrać „Dezaktywuj" z listy rozwijanej).
  • Proszę sprawdzić, czy błąd 404 zniknął. Jeśli tak, problem leży w jednej z wtyczek.
  • Proszę włączać wtyczki pojedynczo i po każdej sprawdzać problematyczny URL. Ta, po której aktywacji błąd powrócił, jest źródłem konfliktu.

Jeśli dezaktywacja wszystkich wtyczek nie pomogła, proszę tymczasowo przełączyć motyw na standardowy (Twenty Twenty-Five lub Twenty Twenty-Four). Działający odnośnik przy standardowym motywie oznacza, że konflikt leży po stronie Państwa obecnego motywu.

Do bezpiecznego testowania na działającej stronie proszę używać środowiska staging (kopii strony na subdomenie). Wielu dostawców hostingu udostępnia je za pomocą kilku kliknięć w panelu sterowania. Jeśli staging jest niedostępny, proszę przeprowadzać diagnostykę w godzinach minimalnego ruchu i przywracać wtyczki natychmiast po sprawdzeniu.

Krok 3: Proszę zaktualizować plik.htaccess ręcznie

Zdarza się, że WordPress nie może zapisać reguł przepisywania w .htaccess, na przykład z powodu uprawnień na serwerze lub dlatego, że plik jest uszkodzony. Wtedy nawet zapisanie ustawień bezpośrednich odnośników nie pomaga.

Proszę połączyć się z serwerem przez FTP (FileZilla, WinSCP) lub otworzyć menedżera plików w panelu hostingu. W folderze głównym strony (tam, gdzie znajdują się wp-content i wp-includes) proszę znaleźć plik .htaccess.

Proszę skopiować jego zawartość i zapisać w bezpiecznym miejscu, jeśli coś pójdzie nie tak, zawsze będą Państwo mogli przywrócić oryginał.

Teraz proszę zastąpić zawartość .htaccess standardowym kodem WordPressa:

1## BEGIN WordPress
2<IfModule mod_rewrite.c>
3RewriteEngine On
4RewriteBase /
5RewriteRule ^index\.php$ - [L]
6RewriteCond %{REQUEST_FILENAME} !-f
7RewriteCond %{REQUEST_FILENAME} !-d
8RewriteRule . /index.php [L]
9</IfModule>
10&#35;&#35; END WordPress

Proszę zapisać plik i sprawdzić problematyczne strony. Jeśli błąd zniknął, problem leżał w uszkodzonym .htaccess.

Proszę nie zapomnieć przywrócić uprawnień do pliku na wartość 644: .htaccess otwarty do zapisu (666 lub 777) to dziura w zabezpieczeniach.

Krok 4: Proszę skonfigurować przekierowania dla usuniętych i przeniesionych stron

Nie wszystkie błędy 404 są spowodowane awarią techniczną. Część z nich to rzeczywiście nieistniejące strony: usunęli Państwo wpis, zmienili jego URL podczas edycji lub przebudowali strukturę kategorii.

Takie błędy 404 są widoczne w Google Search Console w raporcie „Strony", Google rejestruje każdy niedostępny URL, na który weszli użytkownicy lub robot wyszukiwarki.

Do zarządzania przekierowaniami proszę zainstalować bezpłatną wtyczkę Redirection. Umożliwia ona:

  • tworzenie przekierowań 301 ze starego URL na nowy za pomocą kilku kliknięć;
  • śledzenie wszystkich błędów 404 na stronie w czasie rzeczywistym (dziennik bezpośrednio w panelu administracyjnym);
  • konfigurowanie masowych przekierowań według wzorca (na przykład przy zmianie struktury bezpośrednich odnośników).

Do każdego zarejestrowanego błędu 404 w dzienniku Redirection można od razu przypisać przekierowanie, nie opuszczając panelu administracyjnego. To zachowuje pozycje w wyszukiwarce i nie pozwala odwiedzającym trafiać na pustą stronę.

Krok 5: Proszę skontaktować się z dostawcą hostingu

Jeśli żaden z poprzednich kroków nie pomógł, problem leży głębiej, na poziomie środowiska serwerowego.

Co może być nie tak po stronie hostingu:

  • Moduł mod_rewrite nie jest włączony w Apache. Bez niego WordPress nie może tworzyć „ładnych" URL-i, a wszelkie bezpośrednie odnośniki, oprócz „Prostych", zwracają 404. Wsparcie techniczne włącza go w minutę.
  • Agresywne buforowanie serwerowe (Varnish, Nginx FastCGI cache). Czasami pamięć podręczna nie jest resetowana przy zapisywaniu bezpośrednich odnośników i serwer nadal wysyła stare nagłówki. Proszę poprosić dostawcę hostingu o wymuszone wyczyszczenie pamięci podręcznej dla Państwa domeny.
  • Nieprawidłowa konfiguracja Nginx. Jeśli strona działa na połączeniu Nginx + Apache lub czystym Nginx, reguły przepisywania znajdują się nie w .htaccess, a w pliku konfiguracyjnym serwera. Regeneracja rewrite rules z panelu administracyjnego WordPressa na takie serwery nie działa, konieczna jest edycja konfiguracji przez dostawcę hostingu.

Kontaktując się ze wsparciem, proszę opisać problem i wymienić kroki, które już Państwo wykonali: zaoszczędzi to czas zarówno Państwu, jak i inżynierowi.

Inne przyczyny błędów 404 w WordPressie

Oprócz awarii rewrite rules i konfliktów wtyczek istnieje jeszcze kilka scenariuszy, w których strony zwracają 404:

  • Zmiana domeny lub przeniesienie strony. Po migracji stare URL-e nie działają, jeśli nie skonfigurowano przekierowań. Do masowego przenoszenia proszę użyć wtyczki Duplicator lub All-in-One WP Migration, automatycznie poprawiają one wszystkie wewnętrzne linki w bazie danych.
  • Usunięte pliki multimedialne. Jeśli usunęli Państwo obraz lub PDF przez bibliotekę mediów, a link do niego pozostał w treści wpisu, przy przejściu na bezpośredni URL pliku przeglądarka pokaże 404. Proszę użyć wtyczki Media Cleaner do wyszukiwania takich „osieroconych" linków.
  • Błędy w hierarchii stron. Przy zmianie strony nadrzędnej lub slugu kategorii podrzędne URL-e ulegają uszkodzeniu. Jeśli przebudowują Państwo strukturę, proszę od razu skonfigurować przekierowania ze starych adresów.
  • Złośliwa aktywność. Włamanie lub zainfekowanie strony malware może podmieniać reguły przepisywania i dodawać przekierowania na obce domeny. Proszę regularnie aktualizować rdzeń, wtyczki i motyw, a do monitorowania używać Solid Security (dawniej iThemes Security).

⁉️🤔 Często zadawane pytania

Dlaczego po zapisaniu bezpośrednich odnośników błąd nie znika?

Najprawdopodobniej WordPress nie może zapisać zmian w .htaccess, proszę sprawdzić uprawnienia do pliku (powinno być 644). Jeśli strona działa na Nginx, reguły przepisywania są zarządzane nie przez .htaccess, a przez konfigurację serwera, proszę skontaktować się ze wsparciem hostingu, aby ręcznie zaktualizowali rewrite rules dla Państwa domeny.

Jak masowo znaleźć wszystkie błędy 404 na stronie?

Najpełniejszym narzędziem jest Google Search Console, raport „Strony" → zakładka „Nie znaleziono (404)". Do monitorowania w czasie rzeczywistym proszę zainstalować wtyczkę Redirection: loguje ona każde trafienie 404 bezpośrednio w panelu administracyjnym i umożliwia utworzenie przekierowania jednym kliknięciem. Zewnętrzne crawlery, takie jak Screaming Frog, również są odpowiednie, ale do jednorazowego audytu.

Czy można po prostu usunąć uszkodzone linki i nie konfigurować przekierowań?

Technicznie tak, ale stracą Państwo pozycje w wyszukiwarce i ruch. Jeśli na stronę prowadziły zewnętrzne linki z innych witryn, odwiedzający będą trafiać w próżnię. Przekierowanie 301 przenosi moc linku na nową stronę i zachowuje doświadczenie użytkownika. Dla masowych błędów 404 na starej stronie przekierowanie na stronę główną to ostateczność, lepiej kierować każdy URL na odpowiedni zamiennik.

Czym grozi.htaccess otwarty do zapisu?

Plik .htaccess z uprawnieniami 666 lub 777 może zostać zmieniony przez dowolny proces na serwerze. Osoba atakująca, która uzyskała dostęp do dowolnej wtyczki z podatnością, dopisze w nim przekierowanie na domenę phishingową i cały Państwa ruch wycieknie. Standardowe uprawnienia to 644: właściciel czyta i zapisuje, wszyscy inni tylko czytają.

Wtyczki są dezaktywowane, motyw standardowy,.htaccess zaktualizowany, błąd 404 pozostaje. Co dalej?

W przeważającej większości przypadków problem leży na poziomie serwera. Proszę napisać do wsparcia technicznego hostingu i wymienić już wykonane kroki. Proszę poprosić o sprawdzenie: czy mod_rewrite jest włączony, czy serwer nie buforuje starych nagłówków, czy Nginx jest poprawnie skonfigurowany (jeśli jest używany). Z taką listą inżynier rozwiąże problem podczas jednej sesji, a nie w trakcie trzech wymian korespondencji.

404 Na WordPressie: co robić w pierwszej kolejności

Algorytm jest prosty i prawie zawsze działa. Zaczynają Państwo od szybkiego rozwiązania, zapisania bezpośrednich odnośników (8 na 10 przypadków). Nie pomogło, idą Państwo po kolei: wtyczki → .htaccess → przekierowania → wsparcie techniczne hostingu. Każdy kolejny krok jest nieco trudniejszy od poprzedniego, ale też prawdopodobieństwo, że problem tam leży, jest niższe.

W ramach profilaktyki proszę mieć pod ręką trzy narzędzia: wtyczkę do kopii zapasowych, taką jak BackWPup, wtyczkę do przekierowań Redirection i Google Search Console do monitorowania. Dzięki nim nie tylko naprawiają Państwo błędy 404, ale widzą je, zanim zauważą je odwiedzający.

A jaka przyczyna błędów 404 spotykała Państwa najczęściej? Proszę podzielić się doświadczeniem w komentarzach.