Przejdź do treści
SEO

Soft 404 (miękki błąd 404)

Opublikowano:

Soft 404 (miękki błąd 404) to adres, który zwraca kod HTTP 200, ale pokazuje komunikat „nie znaleziono”, pustą stronę albo stronę bez głównej treści. Serwer mówi, że wszystko jest w porządku, a treść mówi, że nic tu nie ma.

Google rozpoznaje takie strony po treści, wyklucza je z wyszukiwarki i pokazuje w raporcie Indeksowanie stron w Search Console z powodem „Soft 404”. Sposób naprawy zależy od tego, czy treść zniknęła, przeniosła się, czy nadal istnieje i tylko nie wyrenderowała się poprawnie.

Skąd biorą się soft 404

  • Pusta strona wyników wyszukiwarki wewnętrznej albo lista, na której nie ma żadnej pozycji.
  • Błąd po stronie serwera, np. brak dołączanego pliku albo zerwane połączenie z bazą, po którym szablon wyświetla komunikat z kodem 200.
  • Aplikacja JavaScript z routingiem po stronie przeglądarki, która przy nieistniejącym adresie renderuje „nie znaleziono”, a serwer i tak odpowiada 200.
  • Strona, której zasoby nie załadowały się Googlebotowi, np. zablokowane w robots.txt, zbyt wolne lub zbyt ciężkie, przez co po wyrenderowaniu jest pusta.
  • Przekierowanie wielu starych adresów na jedną niezwiązaną stronę, np. stronę główną. Google pisze wprost, że może to zostać potraktowane jako soft 404.

Dlaczego soft 404 to problem

Adres oznaczony jako soft 404 nie trafia do wyników wyszukiwania. Jeśli to wartościowa strona, która tylko źle się renderuje, tracisz ją z indeksu bez żadnego komunikatu po stronie serwera.

Jeśli strona naprawdę jest pusta, kod 200 wprowadza w błąd użytkownika i roboty. Google wymienia soft 404 wśród adresów, które przy dużej liczbie stron mogą odbierać crawl tym ważniejszym. Na małym serwisie ten efekt jest zwykle niewielki, ale mylący status nadal warto naprawić.

Jak naprawić soft 404

SytuacjaCo zrobić
Treść zniknęła i nie ma zamiennikaZwróć kod 404 lub 410. Własna strona błędu może pomagać użytkownikom, byle serwer zwracał 404.
Treść przeniosła się albo ma jasny odpowiednikPrzekieruj 301 na ten konkretny adres, nie na stronę główną.
Treść istnieje, ale Google widzi pustą stronęSprawdź wyrenderowaną stronę w narzędziu Sprawdzanie adresu URL. Odblokuj zasoby i napraw błędy renderowania.
Strona jest pusta z założenia, np. brak wynikówDodaj treść, która pomaga użytkownikowi, albo wyłącz stronę z indeksu przez noindex.
Treść usunięta bez zamiennika
HTTP
HTTP/1.1 404 Not Found
Content-Type: text/html; charset=utf-8
Treść przeniesiona pod nowy adres
HTTP
HTTP/1.1 301 Moved Permanently
Location: https://example.com/buty/trampki-damskie

Soft 404 w aplikacjach JavaScript

Gdy routing działa w przeglądarce, serwer nie zawsze może zwrócić właściwy kod. Google podaje dwa wyjścia: przekierowanie JavaScriptem na adres, dla którego serwer zwraca 404 (np. /not-found), albo dodanie meta robots noindex do strony błędu. Jeśli framework renderuje strony na serwerze, najprościej zwrócić 404 bezpośrednio z serwera.

Przekierowanie na adres obsługiwany kodem 404
JavaScript
const res = await fetch(`/api/produkty/${id}`);
if (res.status === 404) {
  // Serwer odpowiada na /not-found kodem 404
  window.location.href = '/not-found';
} else {
  renderProduct(await res.json());
}

Jak sprawdzić soft 404

  1. Otwórz w Search Console raport Indeksowanie stron i znajdź powód „Soft 404”.
  2. Dla kilku przykładowych adresów uruchom test na żywo w narzędziu Sprawdzanie adresu URL i obejrzyj zrzut ekranu oraz HTML wyrenderowanej strony.
  3. Porównaj kod odpowiedzi serwera z tym, co widzi użytkownik, np. poleceniem curl -I.
  4. Wybierz rozwiązanie: 404 lub 410, przekierowanie 301 na odpowiednik albo naprawa treści i renderowania. Po wdrożeniu rozpocznij w raporcie weryfikację poprawki.
Kandydat na soft 404
Przykład
$ curl -I https://example.com/produkt-ktorego-nie-ma
HTTP/2 200

# Strona pokazuje „Nie znaleziono produktu”, a serwer zwraca 200.

Źródła i dalsza lektura

Sprawdź sygnały indeksowania swojej strony

Insight analizuje publiczne sygnały SEO, w tym statusy HTTP, przekierowania, noindex i canonicale, a następnie układa znaleziska według priorytetu.