Broken links (uszkodzone linki) to niedziałające odnośniki prowadzące do błędów typu 404 Not Found, 410 Gone albo niekończących się przekierowań. Zabierają crawl budget, psują UX i obniżają zaufanie Google. W tym przewodniku pokażę, jak je wykrywać (GSC, crawle, analiza backlinków), jak mądrze naprawiać (301, 410, aktualizacje linków) i jak wdrożyć stały monitoring. Brzmi przydatnie? Prawda?
Spis treści
Czym są broken links? Definicja i rodzaje
Broken link to adres URL (hiperłącze), który nie zwraca oczekiwanej treści i kończy się błędem odpowiedzi HTTP lub błędnym przekierowaniem.
W praktyce rozróżniamy:
- Linki wewnętrzne (internal links) – prowadzą do zasobów w Twojej domenie.
- Linki zewnętrzne (external links) – kierują do innych domen.
Typowe problemy:
- 404 Not Found, soft 404 (strona istnieje, ale jej treść jest tak słaba/nieadekwatna, że Google traktuje ją jak 404),
- 5xx server error, DNS, timeout,
- nieprawidłowe przekierowania 3xx (puste 301/302, łańcuchy, pętle).
404 vs 410 – różnica praktyczna:
- 404 – zasób nie istnieje (być może tymczasowo).
- 410 – zasób usunięty trwale; komunikujesz robotom i użytkownikom, że nie wróci.
Kody i zastosowania (skrót wg HTTP status codes, W3C):
| Kod | Opis | Kiedy użyć |
|---|---|---|
| 200 | OK (treść dostępna) | Strona istnieje i jest właściwa |
| 301 | Moved Permanently (redirect) | Zmiana adresu na stałe; mapowanie 1→1 |
| 302 | Found (tymczasowy redirect) | Tymczasowa zmiana miejsca publikacji |
| 404 | Not Found | Treść usunięta lub błąd adresu, niepewny status |
| soft 404 | Treść nieadekwatna | Słaba/niezgodna strona udająca 200 |
| 410 | Gone | Treść usunięta trwale, brak zamiennika |
| 5xx | Błąd serwera | Problemy serwerowe/wydajnościowe |
| DNS/timeout | Brak odpowiedzi | Niewłaściwa konfiguracja/awaria |
Dlaczego broken links szkodzą?
- Crawl budget i indeksacja: roboty marnują zasoby na puste ścieżki, przez co wolniej indeksują ważne podstrony.
- Przepływ PageRanku: link equity w wewnętrznym linkowaniu rozprasza się na błędy i łańcuchy przekierowań.
- UX i konwersje: martwe linki frustrują; rosną porzucenia i maleje conversion rate. Też tak masz, gdy klik strzela w 404?
- Link building: jeśli wartościowe backlinki wskazują na nieistniejące adresy, tracisz siłę sygnałów i ruch referencyjny.
Dobra praktyka: już przy niewielkim procencie uszkodzonych linków w kluczowych sekcjach widzimy wymierne spadki jakości sygnałów. Nie chodzi o perfekcję, ale o priorytety w pozycjonowaniu stron.
Jak znaleźć broken links? Metody i narzędzia
Są trzy niezależne ścieżki. Najlepiej użyć wszystkich, bo się uzupełniają.
Crawl serwisu
Oto dlaczego crawl jest punktem startu: widzi to, co widzą roboty.
- Konfiguracja user-agent i renderowania JS (Screaming Frog, Sitebulb) – odzwierciedl roboty Google; ustaw głębokość, budżet i prędkość.
- Obsługa robots.txt i sitemap.xml – włącz respektowanie dyrektyw oraz import map witryny.
- Ekstrakcja statusów HTTP i czasów odpowiedzi – wylistuj 4xx/5xx/3xx, soft 404, timeouty.
- Raporty i eksport – wyeksportuj „Response Codes” z wyszczególnieniem łańcuchów przekierowań 301 i pętli.
- Detekcja soft 404 – filtruj cienkie strony (niska liczba słów, powielone tytuły) zwracające 200, a nie dające wartości.
Google Search Console
GSC pokazuje, jak widzi Cię Google. Sceptycznie zestaw dane z crawlem.
- Wejdź w „Strony” / „Indeksowanie” i zastosuj filtry błędów (np. 404, „Wykluczone”).
- Sprawdź mapy witryny, by wykryć niespójności (URL w sitemapie vs stan faktyczny).
- Eksport listy URL-i do poprawy i połącz z danymi o ruchu, by ustalić priorytety.
Analiza backlinków
Tu chodzi o odzyskanie link equity.
- W Ahrefs/Majestic znajdź linki przychodzące prowadzące do 404/410.
- Priorytetyzuj według metryk (np. DR/UR) i potencjalnego referral traffic.
- Zaznacz anchor text i kontekst, żeby dobrać najlepszy odpowiednik URL.
Checklista konfiguracji crawl (skrót): renderowanie JS, limity głębokości, szybkość, robots.txt, sitemap.xml, canonicale, wykrywanie łańcuchów 3xx i soft 404.
Naprawa broken links - procedury
Najprostsze drzewko decyzyjne:
- URL kiedyś istniał i ma odpowiednik → 301 redirect do najbliższego merytorycznie adresu (1 hop).
- URL kiedyś istniał, brak równoważnika → 410 + aktualizacja linków wewnętrznych.
- Błąd w odnośniku (literówka, stary slug) → aktualizacja linku w treści/menu.
- Link zewnętrzny martwy → zamień na aktualny odpowiednik lub usuń/oznacz rel=”nofollow” (gdy nie ufasz celowi).
Zasady mapowania przekierowań:
- 1→1, bez pętli, max 1 przeskok (hop).
- Bez „odkurzania” wszystkiego na stronę główną.
- Spójność z canonical i mapami witryny.
Kolejność wdrożeń:
- Szablony (header, footer, menu),
- Strony z ruchem/konwersjami,
- Adresy z backlinkami, 4) reszta.
Mini-tabela decyzji:
| Sytuacja | Akcja | Ryzyko |
|---|---|---|
| Stary artykuł → nowy temat bliźniaczy | 301 do nowego | Utrata części dopasowania anchorów |
| Stara kategoria usunięta na zawsze | 410 | Błąd, jeśli jednak istnieje zamiennik |
| Literówka w menu | Aktualizacja linku | Brak, ale pamiętaj o cache/CDN |
| Łańcuch 3xx | Skrócenie do 1 hop | Przeoczenie ukrytej pętli |
WordPress - szybkie poprawki uszkodzonych linków
Znam ten ból – „drobna” zmiana sluga i nagle pół serwisu sypie 404.
Kroki:
- Aktualizacja linków w treści i menu (edytor blokowy, nawigacja).
- Wyszukaj/zamień w bazie (np. WP-CLI, bezpieczne replace z backupem).
- Wtyczki na WordPressie monitorujące (np. Broken Link Checker) – ustaw alerty.
- Przekierowania na poziomie CMS (Redirection) lub serwera (.htaccess, NGINX).
- Permalinks – unikaj automatycznego skracania URL w edytorach; trzymaj stałe slugi.
Uwaga:
- Masowe 301 do strony głównej to zły sygnał; dobieraj odpowiedniki tematycznie.
- Sprawdź, czy CDN nie cachuje starych nagłówków.
- Po każdej większej zmianie odpal crawl weryfikacyjny albo rób cykliczne audyty SEO.
Metryki i KPI dla broken links
Na czym trzymać rękę?
- % uszkodzonych linków (osobno wewn./zew.).
- Liczba 404/410 i średnia długość łańcucha 3xx.
- Time to fix (średni czas naprawy).
- Odzyskane sesje i odzyskane link equity (na bazie przekierowanych backlinków).
- Health score dla linków.
Przykładowa tabela (dane poglądowe):
| Metryka | Wartość | Cel |
|---|---|---|
| % broken (wewn.) | 0,7% | < 0,5% |
| % broken (zew.) | 1,9% | < 1,0% |
| Śr. łańcuch 3xx | 1,6 hop | ≤ 1 hop |
| Time to fix | 7 dni | ≤ 3 dni |
| Health score | 87/100 | ≥ 95 |
Najczęstsze przyczyny broken links i jak im zapobiegać?
- Zmiany struktur URL → plan mapowania, lista 301, testy po wdrożeniu.
- Migracje domeny → globalne reguły przekierowań, aktualizacja sitemap i canonicali.
- Wygasłe domeny (zew.) → okresowe audyty outbound, podmiany lub nofollow.
- Błędy „kopiuj-wklej” → walidator linków w edytorze, review przed publikacją.
- Routery JS/SPA → fallbacki serwerowe, SSR/ISR, testy statusów poza przeglądarką.
- Literówki w anchorach/slugach → naming policy i stałe slugi w CMS.
Źródła i materiały
- https://developers.google.com/search/docs/crawling-indexing/http-network-errors
- https://ahrefs.com/broken-link-checker
- https://pl.wordpress.org/plugins/broken-link-checker/
