Zanim zaczniesz cokolwiek pozycjonować, musisz wiedzieć, co w ogóle masz na stronie. Zbudowałem darmowy workflow w n8n, który sam wyciąga mapę twojego serwisu, a w drugim kroku dopisuje do każdej podstrony tytuł, opis i nagłówek H1 — wszystko ląduje w arkuszu Google. To dwa pierwsze odcinki serii NawiSEO i fundament, na którym stoi cała reszta.
Z tego artykułu dowiesz się:
- jak jednym workflow zamienić mapę serwisu (sitemap XML) w gotowy arkusz z adresami i typami stron,
- jak automatycznie pobrać tytuł, opis i H1 z każdej podstrony bez ręcznego klikania,
- jakie zabezpieczenia wpiąć, żeby serwer ci nie zablokował skanowania.
Problem: rośnie strona, a ty nie wiesz, co w niej siedzi
Większość osób zaczynających z automatyzacjami gubi się w gąszczu skomplikowania. Chcą od razu budować agenta, który zoptymalizuje SEO, a nie mają nawet listy własnych podstron.
Widziałem ten problem wiele razy. Bez porządnej inwentaryzacji nie da się sensownie zarządzać treścią — nie wiesz, które strony mają puste tytuły, gdzie brakuje H1, a które w ogóle nie powinny być indeksowane.
Dlatego seria NawiSEO zaczyna się nie od "magii AI", tylko od nudnej, ale kluczowej rzeczy: zebrania wszystkich adresów w jednym miejscu i opisania ich danymi.
Część 1 — workflow, który buduje mapę twojej strony
Pierwszy skrypt robi jedno: bierze twoją mapę serwisu i zamienia ją w czysty arkusz Google z listą adresów i przypisanym typem strony (post, strona, kategoria).
Jedyna rzecz, którą robisz ręcznie, to wklejenie w pierwszym kroku adresu serwisu i adresu mapy strony. Sitemapę znajdziesz na WordPressie czy dowolnym innym CMS-ie — w workflow jest ściąga, jak takie adresy wyglądają.
Reszta dzieje się sama:
Sitemap XML → pobranie do pamięci → nowy arkusz "mapa serwisu" (z datą)
→ wyciągnięcie adresów + typów → pętla po zagnieżdżonych mapach XML
→ scalenie wyników → zapis: URL + typKilka rzeczy, które robią tu robotę:
- Arkusz z datą w nazwie. Odpalisz skrypt jutro i tworzy nowy plik. Masz archiwum na dysku Google i zero szans na nadpisanie wczorajszej pracy.
- Obsługa zagnieżdżonych sitemap. Skrypt sprawdza, czy dany adres to plik XML. Jeśli tak, to nie jest strona, tylko kolejna mapa — wpada do pętli, która ją odpytuje i wyciąga z niej następne adresy. U mnie przetworzyło się tak cztery razy, bo miałem cztery pliki XML (posty, strony, kursy, kategorie).
- Przypisanie typu. Można to zrobić prościej, ale straciłbyś informację o typie. A to jest kluczowe — dzięki temu w kolejnych krokach grupujesz dane po tym, czy to kategoria, post, czy zwykła strona.
Na mojej małej stronie, która po odcięciu 20 podstron z indeksowania ma ich 28, workflow przelatuje w kilka sekund. Na końcu dostajesz adres gotowego pliku, który wklejasz do kolejnych skryptów.
Co musisz mieć, żeby to ruszyło? Tylko autoryzację do konta Google, żeby n8n mógł pisać po arkuszach. Tyle. Skrypt pobierasz za darmo ze strony Navigator AI, importujesz do swojego n8n i testujesz.
Część 2 — automatyczne pobieranie tytułów, opisów i H1
Masz już listę adresów. Teraz drugi workflow dopisuje do każdego z nich to, co naprawdę interesuje cię w SEO: tytuł strony, meta description i nagłówek H1.
Znowu jedyna rzecz manualna to wklejenie adresu arkusza z części pierwszej. Potem skrypt odczytuje arkusz i pracuje na kolumnie "scan meta".
Ta kolumna to najważniejszy trik całego odcinka. Działa tak:
- strona nieprzeskanowana ma wartość 0,
- po pobraniu danych skrypt ustawia 1,
- jeśli chcesz odświeżyć dane, wpisujesz z powrotem 0 i workflow przeskanuje tylko ten wiersz.
Dzięki temu przy dużej stronie skrypt nigdy nie przetwarza wszystkiego od zera. Jak padnie w połowie, wznawiasz i idzie dalej tylko po tym, co jeszcze niezrobione. U mnie za pierwszym razem pobrało 18 stron, a po ponownym uruchomieniu dobrało kolejnych 11 — tylko te bez znacznika.
Sam mechanizm pobierania danych jest prosty:
- pętla z opcją batch (ile stron naraz — o tym za chwilę),
- zwykły HTTP Request, który ściąga cały HTML podstrony,
- node HTML, który wyciąga z niego tytuł, opis i H1.
Można było napisać to kodem w JavaScript. Użyłem gotowego noda. Uważam, że jeśli istnieje gotowy node, który działa — korzysta się z niego.
Drobny szczegół, który oszczędza mnóstwo klikania: dane przygotowuję wcześniej w nodzie Set. Wtedy kolejny node sam mapuje kolumny arkusza po nazwach parametrów (tytuł, opis, nagłówek, URL, scan meta) i rozpoznaje wiersz po adresie URL. Nie przepisujesz nic ręcznie.
Typowe pułapki
Tu wszyscy się wykładają, bo to nie jest oczywiste, dopóki serwer nie odetnie ci dostępu.
- Brak kolumny wywala workflow. Node arkuszy Google, jeśli nie znajdzie kolumny "scan meta", zwraca błąd. Dlatego w workflow jest prosty node ustawiony na "kontynuuj z błędem", który to ignoruje. Bez tego skrypt się wysypie na starcie.
- Zbyt szybkie odpytywanie stron. Jeśli walniesz 20 równoczesnych zapytań, strona z zabezpieczeniami po prostu cię zablokuje i nie pobierzesz HTML-a. Masz dwa hamulce: ustawienie batch na 1 lub 2 równoczesne operacje oraz node opóźnienia (u mnie jedna sekunda między stronami).
- Skanowanie cudzej strony. Własny serwis skanujesz spokojnie — możesz nawet zdjąć ochronę i przepuścić wszystko naraz. Ale przy stronie konkurencji ustaw opóźnienie na raz na 10 sekund. Włączasz skrypt na dwie–trzy godziny i pobiera podstrona po podstronie, tak że w logach serwera nie widać, że to robota bota.
Kiedy to się opłaca
Ten zestaw ma sens w konkretnej sytuacji:
- Masz stronę, którą realnie chcesz pozycjonować i potrzebujesz nad nią kontroli — pełnej listy podstron z ich meta danymi w jednym arkuszu.
- Chcesz pracować powtarzalnie. Odpalasz skrypt co jakiś czas i masz świeży, datowany snapshot stanu SEO, bez ręcznego przeklikiwania każdej strony.
- Budujesz coś większego. To fundament — w kolejnych odcinkach na tych danych dopiszesz automatyczne wykrywanie stron do wyłączenia z indeksu i aktualizację nagłówków wprost na WordPressie.
Nie opłaca się, jeśli masz stronę na pięć podstron, którą ogarniesz ręcznie w kwadrans. Automatyzacja zwraca się przy skali i przy powtarzalności.
Podsumowanie
- część 1 zamienia mapę serwisu w gotowy arkusz z adresami i typami stron, z automatycznym archiwum po dacie,
- część 2 dopisuje do każdej podstrony tytuł, opis i H1, a kolumna "scan meta" pilnuje, żeby nie skanować dwa razy tego samego,
- dwa hamulce — batch i opóźnienie — chronią cię przed blokadą serwera, także przy skanowaniu konkurencji.
P.S. Oba skrypty są darmowe do pobrania ze strony Navigator AI, w zakładce z gotowymi workflow n8n — importujesz do swojego n8n i od razu testujesz na własnej stronie.
Damian Ślimak. Twój Nawigator w chaosie AI.
