Google Search Console często zgłasza błędy typu soft 404 w witrynach Next.js, co może prowadzić do marnowania budżetu indeksowania (crawl budget).
Czym właściwie jest soft 404
Prawdziwa odpowiedź 404 wysyła kod statusu HTTP 404, informując przeglądarki i boty, że żądany zasób nie istnieje. Soft 404, w przeciwieństwie do niej, zwraca status 200 OK, dostarczając przy tym niewiele treści lub nie dostarczając ich wcale. Wyszukiwarki interpretują kod 200 jako prawidłową stronę, mimo że nie wnosi ona żadnej wartości. Skutkiem jest marnowanie cykli indeksowania oraz sygnał dla Google, że jakość treści na stronie jest niska.
Dlaczego Next.js wpada w tę pułapkę
Dynamiczne trasowanie (routing) w Next.js pozwala na serwowanie stron takich jak /products/[slug] bez konieczności ręcznego wpisywania każdego adresu URL. Gdy produkt znika z bazy danych, komponent nadal się renderuje, a jeśli kod nie sprawdza braku danych, Next.js domyślnie odpowiada statusem 200 OK. To samo dzieje się, gdy użytkownik pomyli się w adresie URL lub gdy stare trasy pozostają po przebudowie witryny. Strona się ładuje, ale nie oferuje żadnych istotnych treści, co powoduje wyświetlenie flagi soft 404 w Search Console.
Co to oznacza dla właścicieli stron
- Marnowanie budżetu indeksowania – Boty przydzielają ograniczoną liczbę żądań na stronę. Błędy soft 404 zużywają tę pulę, pozostawiając mniej szans na zaindeksowanie rzeczywistych stron.
- Kara SEO – Powtarzające się błędy soft 404 informują wyszukiwarki, że strona ma niską jakość.
- Pogorszenie doświadczenia użytkownika (UX) – Odwiedzający, którzy trafiają na pustą stronę, natychmiast ją opuszczają, co zwiększa współczynnik odrzuceń i obniża konwersję.
Jak zamienić soft 404 w prawidłowy błąd 404
1. Użyj wbudowanej funkcji pomocniczej notFound
- App Router – Zaimportuj
notFoundznext/navigation. Po pobraniu danych wywołajnotFound(), jeśli wynik jest nieobecny. Next.js wyśle wtedy prawdziwy status 404. - Pages Router – Zwróć
{ notFound: true }z funkcjigetStaticPropslubgetServerSideProps, gdy pobieranie danych zakończy się niepowodzeniem. W starszym API routingu działa to w ten sam sposób.
2. Wdróż własną stronę 404
Domyślna strona błędu zostawia użytkowników bez pomocy. Utwórz app/not-found.js (App Router) lub pages/404.js (Pages Router) z linkami nawigacyjnymi, polem wyszukiwania lub sugestiami powiązanych treści. Dobrze zaprojektowana strona 404 zatrzyma odwiedzających na stronie, zamiast od razu kierować ich do wyjścia.
3. Usuń osierocone trasy
Usuń statyczne strony, które nie pełnią już żadnej funkcji. Jeśli plik pozostaje, ale jego zawartość jest pusta, dodaj odpowiedź notFound lub całkowicie usuń plik. Regularne audyty katalogów pages lub app zapobiegają pojawianiu się martwych adresów URL.
4. Skonfiguruj stałe przekierowania (301) dla przeniesionych treści
Gdy adres URL strony ulega zmianie, przekierowanie 301 informuje przeglądarki i boty, że zasób został trwale przeniesiony. Dodaj przekierowania w next.config.js w kluczu redirects. Zapobiega to sytuacji, w której stary adres URL zwraca status 200 bez żadnej treści.
5. Monitoruj i reaguj na alerty w Search Console
Często sprawdzaj Google Search Console, aby wykrywać błędy soft 404. Użyj zautomatyzowanego crawlera, aby wyłapywać nowe błędy, zanim się nagromadzą. Traktuj każdy alert jako sygnał do zweryfikowania logiki pobierania danych.
Podsumowanie
Strona, która zwraca 200 OK, nie dostarczając żadnej treści, po cichu drenuje wartość SEO. W Next.js dynamiczne trasy i niezweryfikowane pobieranie danych sprawiają, że błędy soft 404 są powszechne, ale można je wyeliminować. Używaj notFound, twórz pomocne, własne strony 404, usuwaj osierocone trasy, konfiguruj przekierowania 301 i zachowaj czujność w Search Console, aby chronić budżet indeksowania, utrzymać pozycje w rankingach i zatrzymać odwiedzających na stronie.
