Search Engine Optimization Intermediate

Indeksowanie fragmentów adresu URL

Adresy URL oparte na hashu mogą zakłócać indeksowanie, marnować budżet i wysiłek crawlowania oraz ukrywać strony generujące przychody, chyba że treść jest udostępniona na rzeczywistych, możliwych do indeksowania adresach URL.

Updated Kwi 04, 2026

Quick Definition

Indeksowanie fragmentów URL to błędne przekonanie, że treść znajdująca się po znaku „#” w adresie URL może uzyskać własną pozycję jako osobna strona. Ma to znaczenie, ponieważ Google zazwyczaj pomija fragmenty w indeksowaniu, więc wszelkie kluczowe treści, mechanizmy routingu lub filtry umieszczone w tym miejscu zwykle są niewidoczne w wynikach wyszukiwania.

Indeksowanie fragmentów URL to w większości problem z przeszłości, ale wciąż pojawia się w audytach SPA co miesiąc. Jeśli ważna treść wyświetla się tylko pod /page#state lub /page#!/view, Google zwykle traktuje to jako ten sam URL co /page, a nie jako osobny dokument.

Wpływ biznesowy jest prosty. Ukryte URL-e nie pozycjonują się. Stany produktu, artykuły pomocy, filtrowane widoki kategorii i trasy aplikacji mogą zniknąć z wyników wyszukiwania nawet wtedy, gdy użytkownicy mają do nich dostęp w przeglądarce bez problemów.

Co Google faktycznie robi z fragmentami

Przy standardowym indeksowaniu wyszukiwarki usuwają fragment. Google wycofało starą metodę indeksowania AJAX-a lata temu, co zakończyło działanie dawnego obejścia opartego na #!. W praktyce Googlebot żąda bazowego URL, a nie każdej odmiany hasha nałożonej na niego.

To oznacza, że example.com/docs#setup nie jest drugą stroną. Zwykle jest to po prostu example.com/docs z przejściem/skokiem w obrębie tej strony. Jeśli router w React lub Vue nadal opiera się na stanach opartych na hashach, aby treści były unikalne, masz problem z indeksacją, a nie drobną techniczną osobliwość.

Uczciwe zastrzeżenie: fragmenty sprawdzają się do kotwic, zakładek i linków prowadzących do określonych miejsc na stronie, która sama w sobie jest już indeksowalna. Kłopot zaczyna się wtedy, gdy zespoły oczekują, że fragmenty utworzą samodzielne wpisy w wyszukiwarce.

Gdzie to psuje wyniki SEO

  • SPA z routowaniem na hashach: trasy typu /#/pricing lub /#!/features często sprowadzają się do jednego URL, który da się zindeksować.
  • Nawigacja fasetowa: filtry ładowane wyłącznie przez fragmenty nie są w stanie zdobywać pozycji dla kombinacji long-tail.
  • Huby dokumentacji: stany artykułów renderowane za fragmentami często nie są indeksowane osobno.
  • Niedoprecyzowanie siły linków: backlinki do wariantów z fragmentami rzadko generują osobne sygnały rankingowe dla tych stanów.

W Screaming Frog zwykle widać to jako jeden URL HTML z wieloma zmianami stanu JavaScript, ale bez wyraźnie odrębnych ścieżek możliwych do crawlowania. W Google Search Console obserwujesz wyświetlenia skoncentrowane na bazowym URL, podczas gdy rzekome widoki potomne nie dostają nic. Ahrefs i Semrush następnie raportują mniej URL-i z pozycjami, niż zakłada zespół produktowy.

Co zamiast tego

  1. Przenieś istotne stany na prawdziwe URL-e, stosując routowanie oparte o ścieżki (path-based) albo parametry zapytania.
  2. Renderuj treść indeksowalną po stronie serwera lub zastosuj pre-renderowanie w ramach, takich jak Next.js, Nuxt czy Astro.
  3. Ustaw canonicale na nowe URL-e, a nie na wersje z fragmentami.
  4. Zaktualizuj linkowanie wewnętrzne, mapy XML sitemap i nawigację, aby Google mogło odkryć nowe ścieżki.
  5. Zweryfikuj to przez Inspekcję adresu URL (URL Inspection) w GSC, renderowane crawle w Screaming Frog oraz logi (jeśli je masz).

Jeśli to migracja, odwzoruj stare kierowania użytkowników opartych na fragmentach na odpowiednie URL-e możliwe do crawlowania, o ile to możliwe. W ścisłym sensie nie możesz zrobić przekierowania 301 dla fragmentu, ponieważ fragment jest obsługiwany po stronie klienta i nie jest wysyłany w żądaniu HTTP. To zastrzeżenie wiele słowników pomija. Potrzebujesz obsługi JavaScript, aktualizacji linków wewnętrznych i odzyskania linków zewnętrznych w Ahrefs lub Moz, a nie „zgrabnej” reguły przekierowania po stronie serwera.

Podsumowanie: fragmenty służą do pozycjonowania na stronie, a nie do indeksowalnych dokumentów. Jeśli dana strona ma znaczenie dla ruchu organicznego, daj jej prawdziwy URL.

Frequently Asked Questions

Czy Google może indeksować treści znajdujące się za fragmentem adresu URL (URL fragment)?
Zwykle nie jest to osobna strona. Google zazwyczaj ignoruje fragment w celu indeksowania i traktuje adres URL bazowy jako dokument. Jeśli treść istnieje wyłącznie za znakami #, należy spodziewać się słabej widoczności lub jej braku.
Czy adresy URL z hashem (#) zawsze są złe dla SEO?
Nie. Sprawdzają się w przypadku odnośników wewnętrznych (jump links), akordeonów i stanów zakładek na stronie, która już zawiera indeksowalne HTML. Stają się problemem, gdy zespoły używają ich jako zamiennika prawdziwych adresów URL.
Czy mogę przekierować fragment URL (redirect) metodą 301 na „czysty” adres URL?
Nie jest to bezpośrednio na serwerze, ponieważ fragmenty nie są wysyłane w żądaniach HTTP. Potrzebujesz obsługi po stronie klienta, zaktualizowanych linków wewnętrznych oraz najlepiej działań outreach, aby naprawić ważne linki zwrotne. W tym miejscu migracje stają się bardziej skomplikowane, niż zespoły zakładają.
Jak przeprowadzić audyt problemów z indeksowaniem fragmentów URL?
Zacznij od użycia Screaming Froga w trybie renderowania JavaScript i porównaj wykryte adresy URL z zaplanowaną listą tras (route inventory) witryny. Następnie sprawdź w GSC raporty URL Inspection oraz Performance, aby zobaczyć, czy tylko adresy URL główne (base URLs) otrzymują wyświetlenia. Ahrefs lub Semrush mogą pomóc potwierdzić, czy oczekiwane strony brakuje w zestawach adresów URL, które faktycznie znajdują się w rankingu.
Czym należy zastąpić routowanie oparte na hashach?
Stosuj routowanie oparte na ścieżkach, np. /features, lub adresy URL z parametrami, tam gdzie ten schemat ma sens. Połącz to z SSR, SSG lub rzetelnym pre-renderowaniem, aby przy pierwszym załadowaniu HTML zawierał kluczową treść. Surfer SEO nie jest do tego narzędziem — to problem architektury, a nie optymalizacji on-page.

Self-Check

Czy istnieją widoki generujące przychody, które są dostępne wyłącznie za stanami # lub #!

Czy Googlebot może pobrać unikalny adres URL dla każdego kluczowego stanu strony, bez polegania na routingu po stronie klienta?

Czy GSC pokazuje wyświetlenia i kliknięcia dla adresów URL, o których zespół produktowy zakłada, że istnieją?

Czy pomyliliśmy wewnętrzne kotwice (in-page anchors) z dokumentami, które można indeksować?

Common Mistakes

❌ Traktowanie tras na podstawie hasha w SPA tak, jakby były samodzielnymi stronami możliwymi do indeksowania

❌ Zakładając, że przekierowanie 301 po stronie serwera może przechwycić adresy URL z fragmentami bez logiki po stronie klienta

❌ Pozostawianie map XML sitemap oraz linków wewnętrznych kierujących na adresy bazowe przy założeniu, że stany fragmentów mają się pozycjonować

❌ Korzystanie ze zrenderowanych zrzutów ekranu jako dowodu na indeksowalność zamiast sprawdzania możliwych do przeszukania adresów URL w GSC i Screaming Frog

All Keywords

Indeksowanie fragmentów adresu URL SEO dla adresu URL z hashem identyfikator fragmentu SEO SEO dla stron partnerskich routing typu hash w SEO Google ignoruje fragmenty Pozycjonowanie JavaScript przyjazne do indeksowania adresy URL indeksowanie w Google Search Console Screaming Frog skanowanie JavaScript SEO przy renderowaniu po stronie serwera Zalecane wycofanie indeksowania (crawlowania) AJAX

Ready to Implement Indeksowanie fragmentów adresu URL?

Get expert SEO insights and automated optimizations with our platform.

Get Started Free