Kontroler surowego i renderowanego HTML
Free, no signup. Open the page in a browser and it looks complete; Google sees raw HTML first, then runs JavaScript and looks again — and those two views don't always agree. Test a public URL through the bounded rendering service to find where they diverge, with a side-by-side raw-vs-rendered diff.
Free, no sign-up. The page is rendered in headless Chrome only when the initial HTML looks incomplete — most server-rendered sites never need it.
Kontrole są uruchamiane na naszym serwerze; pobieramy podany adres URL i nie przechowujemy wyników. Reports are kept 7 days so you can share a link to the result. Anonymous aggregate stats feed our research posts; domains are counted once via an anonymized hash and never stored in the clear. Anonimowe liczniki wyników poszczególnych uruchomień mogą być wykorzystywane do badań zbiorczych; adresy URL, domeny, adresy IP i identyfikatory nigdy nie są uwzględniane, a statystyki nie są publikowane poniżej 100 uruchomień.
+ zapisuje bieżącą witrynę lub stronę. Użyj ☆ obok dowolnej zapisanej witryny, strony lub listy, aby dodać ją do ulubionych. Historia ostatnich kontroli pojawi się poniżej.
Utwórz nazwaną listę
Cel uzupełniony na podstawie lokalnych wyborów.
Paszport witryny Kontekst lokalny tej zapisanej witryny
Dane lokalne
Zapisane cele, nazwane listy i podsumowania ostatnich kontroli pozostają tylko w tej przeglądarce.
What JavaScript changed
Resources Google and AI bots couldn’t get
What non-rendering AI crawlers can see
This is a fast, directional check. For anything that affects indexing, confirm it in Google Search Console's URL Inspection tool — that's Google's own renderer and the real source of truth.
Oceń to narzędzie
What this is checking
The render gap
Google can process JavaScript in a rendering phase after crawling. Content that appears only after rendering depends on that phase and is absent from the initial response; this comparison does not predict discovery or indexing timing.
The most restrictive rule wins
If a noindex appears in either the raw or rendered HTML, Google may use it — and an initial-HTML noindex may cause Google to skip rendering, so JavaScript cannot reliably undo it.
Canonicals are conditional
JavaScript may add a canonical when the raw HTML has none, or keep the same value. A different or additional value creates competing canonical input.
Checks based on the JavaScript SEO guide on Ahrefs. Confirm findings in Search Console.
O tym narzędziu
Porównaj początkowy HTML z DOM po renderowaniu, aby zobaczyć, co systemy wyszukiwania mogą faktycznie przetworzyć. Raport wskazuje różnice renderowania, tryb SSR, prerendering, CSR lub hybrid oraz zmiany canonical, noindex, robots.txt, linków i sygnałów soft 404.
Funkcje
- Porównanie surowego HTML i DOM renderowanego w Chrome, gdy wykonanie JavaScript jest potrzebne.
- Werdykt strategii renderowania z ukierunkowanymi kontrolami JavaScript SEO.
- Wykrywanie sprzecznych canonicali, noindex, blokad robots.txt, zmian linków i niedostatecznej treści.
- Raport do udostępnienia z dowodami surowymi i renderowanymi oraz zaleceniami dla każdej kontroli.
Jak to działa
Usługa najpierw pobiera początkowy HTML, a Chrome uruchamia tylko wtedy, gdy heurystyki wskazują możliwą lukę. Następnie porównuje obserwowalne elementy SEO w obu stanach i rozróżnia brak, dodanie, zmianę oraz blokadę, zanim sformułuje ostrożny werdykt.
Ograniczenia
- Renderowanie headless podlega limitom czasu i zasobów oraz nie dowodzi pełnej zgodności ze wszystkimi ścieżkami użytkownika.
- Reguły robots.txt, opóźnienia i zasoby zewnętrzne mogą uniemożliwić renderowanie, nawet jeśli początkowy HTML wygląda na kompletny.
Częste pytania
Czym jest luka renderowania w SEO JavaScript?
Luka renderowania to różnica między zawartością surowego kodu HTML strony dostarczonego przez serwer a zawartością po uruchomieniu JavaScriptu przez przeglądarkę i zbudowaniu końcowego DOM. Google może przetwarzać JavaScript podczas etapu renderowania po crawlowaniu. Wszystko, co pojawia się dopiero po uruchomieniu JavaScriptu, zależy od pomyślnego renderowania i nie występuje w odpowiedzi początkowej. Narzędzie mierzy tę zależność; nie przewiduje, kiedy Google odkryje lub zindeksuje treść.
Czy Google rzeczywiście renderuje JavaScript?
Tak. Google renderuje strony za pomocą stale aktualizowanego Chromium, więc treści po stronie klienta mogą zostać zindeksowane. Renderowanie jest osobnym etapem przetwarzania, a zablokowane zasoby lub błędy JavaScript mogą sprawić, że treść nie pojawi się w wyrenderowanym HTML. Wyszukiwarka Google nie wykonuje interakcji na stronie w celu wczytania treści, dlatego treść wymagająca interakcji musi już znajdować się w wyrenderowanym HTML. Umieszczenie kluczowej treści i tagów w odpowiedzi serwera usuwa tę zależność od renderowania.
Dlaczego narzędzie czasem nie renderuje mojej strony?
Chrome w trybie bezinterfejsowym uruchamia się tylko wtedy, gdy ograniczona heurystyka wskazuje, że początkowy HTML wygląda na niepełny. Obecność rozbudowanych tytułów, linków i tekstu w surowym HTML może spowodować pominięcie renderowania, ale nie dowodzi to renderowania platformy po stronie serwera ani braku zmian po uruchomieniu JavaScriptu. Pominięty przebieg daje analizę początkowego HTML bez porównania z wersją wyrenderowaną.
Czy Google respektuje canonical lub noindex dodane przez JavaScript?
Google może pominąć renderowanie po wykryciu noindex w początkowym HTML, dlatego JavaScript nie może niezawodnie usunąć tej dyrektywy później; można też użyć noindex występującego dopiero po renderowaniu. W przypadku canonical JavaScript może dodać tag, jeśli nie ma go w początkowym HTML, a ustawienie tej samej wartości jest prawidłowe. Zmiana na inną wartość lub pozostawienie wielu wartości tworzy ryzykowne, sprzeczne sygnały.
Czy to jest to samo co narzędzie URL Inspection w Google Search Console?
Nie i nie ma go zastępować. To szybkie, orientacyjne porównanie. Narzędzie URL Inspection w Search Console dostarcza danych Google dotyczących crawlowania, indeksowania i testu na żywo dla zweryfikowanej usługi, ale żadne z tych narzędzi nie gwarantuje sposobu przetworzenia adresu URL podczas kolejnego crawlowania.
Typowe problemy i sposoby ich naprawy
- Ostrzeżenie Sekcja head dokumentu początkowego zamyka się zbyt wcześnie Poprawka: Popraw nieprawidłowe znaczniki sekcji head, aby metadane pozostały w jednym prawidłowym elemencie <head> początkowego kodu HTML.
- Błąd Brakuje tytułu Poprawka: Dodaj do początkowego kodu HTML jeden zwięzły i unikatowy element <title>, który nazywa główny temat strony.
- Ostrzeżenie Tytuł zmienia się po renderowaniu Poprawka: Ujednolić wartości elementu <title> z serwera i po renderowaniu, chyba że zmiana po stronie klienta jest świadomie wymagana.
- Błąd Tytuł pojawia się dopiero po wykonaniu JavaScriptu Poprawka: Umieść końcowy element <title> w początkowym kodzie HTML zamiast polegać na jego wstawieniu przez JavaScript.
- Ostrzeżenie Nie wyświetla się opis meta Poprawka: Dodaj do początkowego kodu HTML opis meta właściwy dla strony, który dokładnie podsumowuje treść.
- Ostrzeżenie Opis meta zmienia się po renderowaniu Poprawka: Ujednolić początkowy i wyrenderowany opis meta, aby roboty otrzymywały jedno spójne podsumowanie.
- Błąd Początkowe i wyrenderowane adresy kanoniczne są sprzeczne Poprawka: Wybierz preferowany bezwzględny adres URL i skieruj do niego zarówno początkowy, jak i wyrenderowany znacznik kanoniczny.
- Błąd JavaScript zastępuje kanoniczny adres strony Poprawka: Zachowaj jeden adres kanoniczny w początkowym kodzie HTML i nie pozwalaj kodowi klienta zastępować go po renderowaniu.
- Ostrzeżenie Adres kanoniczny pojawia się dopiero po renderowaniu Poprawka: Przenieś znacznik kanoniczny do początkowego kodu HTML zamiast dodawać go dopiero po wykonaniu JavaScriptu.
- Błąd JavaScript usuwa dyrektywę noindex Poprawka: Usuń noindex z początkowej odpowiedzi serwera, gdy strona ma być indeksowana; nie polegaj na JavaScripcie, aby cofnąć tę dyrektywę.
- Ostrzeżenie JavaScript dodaje dyrektywę noindex Poprawka: Nie pozwalaj kodowi klienta dodawać noindex do stron, które powinny pozostać możliwe do zindeksowania.
- Błąd Dyrektywa noindex wciąż pozostaje po renderowaniu Poprawka: Usuń dyrektywę noindex zarówno z początkowego, jak i wyrenderowanego kodu HTML, gdy strona ma być indeksowana.
- Ostrzeżenie Po wyrenderowaniu nadal obowiązuje dyrektywa `Nofollow` Poprawka: Usuń nofollow, gdy roboty powinny podążać za odnośnikami strony, albo ogranicz ją tylko do odnośników, które jej wymagają.
- Ostrzeżenie hreflang pojawia się dopiero po renderowaniu Poprawka: Umieść każdą adnotację hreflang w początkowym kodzie HTML lub nagłówkach HTTP zamiast dodawać ją wyłącznie za pomocą JavaScriptu.
- Ostrzeżenie hreflang zmienia się po renderowaniu Poprawka: Ujednolić początkowy i wyrenderowany zestaw hreflang, zapewnij wzajemność i skieruj wpisy do zamierzonych adresów URL wersji językowych.
- Błąd Ważna treść pojawia się dopiero po renderowaniu Poprawka: Renderuj ważną treść na serwerze lub generuj ją statycznie, aby istniała w początkowym kodzie HTML.
- Ostrzeżenie Znaczna część treści jest dodawana po renderowaniu Poprawka: Przenieś istotną treść dodawaną przez JavaScript do początkowego kodu HTML, pozostawiając po stronie klienta tylko nieistotne ulepszenia.
- Ostrzeżenie Ważne odnośniki pojawiają się dopiero po renderowaniu Poprawka: Udostępnij ważne miejsca docelowe jako zwykłe odnośniki <a href> w początkowym kodzie HTML.
- Błąd Wyrenderowane odnośniki nie są adresami URL dostępnymi dla robotów Poprawka: Zastąp nawigację przez `onclick`, `javascript:` lub przycisk adresami URL dostępnymi dla robotów w elementach <a href>.
- Ostrzeżenie Wyrenderowane obrazy nie mają atrybutów alt Poprawka: Dodaj zwięzły tekst alt do istotnych wyrenderowanych obrazów, a do dekoracyjnych pusty atrybut alt.
- Błąd Plik robots.txt blokuje zasoby potrzebne do renderowania Poprawka: Zezwól Googlebotowi na pobieranie zablokowanych zasobów JavaScript, CSS lub danych wymaganych do wyrenderowania strony.
- Ostrzeżenie Renderowanie powoduje błędy konsoli Poprawka: Napraw wskazany wyjątek po stronie klienta i potwierdź, że istotna treść nadal renderuje się po załadowaniu bez pamięci podręcznej.
- Ostrzeżenie Podczas renderowania występują nieudane żądania zasobów Poprawka: Przywróć, prawidłowo skieruj lub usuń każde nieudane żądanie zasobu wymaganego przez wyrenderowany wynik.
- Ostrzeżenie Ważna treść wymaga interakcji Poprawka: Umieść pełną treść w załadowanym DOM albo nadaj jej adres URL dostępny dla robotów zamiast wymagać kliknięcia lub przewijania.
- Błąd Wyrenderowana strona wygląda jak miękki błąd 404 Poprawka: Dla brakującej strony zwracaj kod 404/410 albo zastąp ubogą treść przypominającą błąd wartościową zawartością pod adresem URL zwracającym kod 200.
- Ostrzeżenie JavaScript przekierowuje stronę Poprawka: Zastąp przekierowanie JavaScript odpowiednią odpowiedzią 3xx po stronie serwera prowadzącą do końcowego adresu URL.
- Informacja Nie znaleziono żadnych danych strukturalnych Poprawka: Dodaj dokładne dane JSON-LD dla głównej obsługiwanej encji strony, gdy użycie danych strukturalnych jest właściwe.
- Ostrzeżenie Dane strukturalne pojawiają się dopiero po renderowaniu Poprawka: Umieść zweryfikowane dane JSON-LD w początkowym kodzie HTML zamiast wstawiać je dopiero po wykonaniu JavaScriptu.
- Informacja Strona zależy od WebSocketu podczas renderowania Poprawka: Renderuj istotną treść bez wymagania otwartego połączenia WebSocket i zapewnij odporną ścieżkę zastępczą przez HTTP lub renderowanie po stronie serwera.
- Ostrzeżenie Brakuje znacznika meta obszaru wyświetlania Poprawka: Dodaj <meta name="viewport" content="width=device-width, initial-scale=1"> do początkowej sekcji head.
- Błąd Kluczowa treść zależy od renderowania po stronie klienta Poprawka: Renderuj na serwerze lub wstępnie tytuł, H1, odnośniki i główną treść w początkowym kodzie HTML.
- Ostrzeżenie Strona korzysta z routingu opartego na haszu Poprawka: Przełącz mechanizm trasowania na ścieżki trybu historii, które serwer może rozwiązać bez fragmentu adresu URL.
- Ostrzeżenie Znacznik tytułu znajduje się poza sekcją head kodu HTML Poprawka: Przenieś tytuł do sekcji head dokumentu i zachowaj tam dokładnie jedną niepustą wartość tytułu.
- Ostrzeżenie Znacznik kanoniczny znajduje się poza sekcją head kodu HTML Poprawka: Przenieś zamierzony odnośnik kanoniczny do sekcji head dokumentu i usuń deklaracje kanoniczne z treści.
- Ostrzeżenie Początkowy kod HTML zawiera sprzeczne adresy kanoniczne Poprawka: Umieść jeden kanoniczny adres URL w początkowym kodzie HTML zamiast polegać na JavaScripcie, aby naprawić sprzeczne deklaracje.