Join our community of websites already using SEOJuice to automate the boring SEO work.
See what our customers say and learn about sustainable SEO that drives long-term growth.
Explore the blog →Aktualizacja: maj 2026 r.
TL;DR: Lovable pozwala stawiać piękne strony szybko, ale często wychodzą one w świat z problemami indeksacji: brak sitemap, treści renderowanych po stronie klienta, zablokowane zasoby lub brak weryfikacji w Search Console. Najszybszy sposób na zdiagnozowanie dowolnego problemu z indeksowaniem w Lovable to zrzut ekranu z inspekcji adresu URL w GSC. Jeśli tam Google widzi biały ekran, nic innego z tej listy nie ma znaczenia, dopóki tego nie naprawisz. Większość poradników zaczyna od sitemap — uważam, że to zła kolejność.
W ostatni weekend pomagałem koledze wypuścić jego projekt na Lovable. Aplikacja wyglądała świetnie: czysty UI, błyskawiczne przejścia, wszystko jak w „prawdziwym” produkcie. W poniedziałek rano dostałem sms: „Czemu nie mogę go znaleźć w Google?”
Rozmowa przerodziła się w dwugodzinny wspólny ekran, podczas którego naprawiliśmy pięć różnych problemów z indeksacją. Od tamtej pory przeprowadziłem kilku kolejnych twórców na Lovable (freelancera, założyciela SaaS-a, konsultanta od Notion) przez te same poprawki. Błędy są niemal identyczne i w zasadzie powtarzają się na każdej audytowanej stronie. Napisałem więc ten przewodnik, żeby oszczędzić wam (i sobie w przyszłości) kolejnych sesji screen-share. Jeśli prowadzisz agencję i audytujesz strony klientów zbudowane na Lovable, najszybszym testem dyskwalifikującym jest Inspekcja URL-i na stronie głównej; zablokowana ścieżka /assets/ pojawia się w Lovable tak często, że warto to sprawdzić, zanim przejrzysz resztę portfolio.
Najpierw jednak krótki reality-check: indeksacja kontra pozycjonowanie. To dwie różne rzeczy i właśnie tu zaczyna się zamieszanie, przez które Lovable bywa postrzegany jako „wolny”.
1. Indeksacja oznacza, że Google odkrył i zapisał twoją stronę.
2. Pozycjonowanie oznacza, że Google uznał twoją stronę za godną wyświetlenia na dane zapytanie.
Strony Lovable to aplikacje React renderowane po stronie klienta (CSR) z wykorzystaniem Vite. Google potrafi indeksować CSR, ale zwykle robi to dwuetapowo: najpierw pobiera początkowy HTML, a potem wraca, by uruchomić JavaScript i zebrać pełną treść. Efekt? Indeksacja nowych stron może trwać dni, a nie godziny, nawet jeśli wszystko jest „w porządku”. Witryna mojego kolegi potrzebowała czterech dni, co dla niego było wiecznością, ale w praktyce to normalne przy nowej domenie CSR bez backlinków. (Szczegóły, jak Lovable obsługuje boty i CSR, znajdziesz w oficjalnych dokumentach Lovable SEO & GEO — warto raz przeczytać od deski do deski.)
Dobra wiadomość: strony Lovable mogą pozycjonować się tak jak inne nowoczesne witryny JS, o ile treść ładuje się poprawnie, a kluczowe zasoby nie są blokowane.
Projekt Lovable możesz opublikować na:
domyślnym adresie [twoj-projekt].lovable.app, lub
własnej domenie (tylko płatne plany — ciągle o tym zapominam, gdy użytkownik z darmowej wersji pyta, czemu nie może podpiąć domeny).
Dla SEO Lovable jasno rekomenduje własną domenę, bo pozwala budować autorytet i utrzymać jedną kanoniczną wersję URL. I tak bym doradzał. Widziałem, jak subdomeny na platformach współdzielonych miesiącami walczyły o jakikolwiek autorytet, mimo regularnej publikacji.
Jeśli możesz, użyj własnej domeny i ustaw ją jako główną (pozostałe będą przekierowywać). Lovable umożliwia wskazanie domeny pierwotnej, na którą przekierują inne.
Jeśli nie jesteś jeszcze gotowy na własną domenę, spokojnie — twoja strona lovable.app też może zostać zindeksowana. Bądź jednak konsekwentny i nie zmieniaj wciąż subdomen. (Pierwszy błąd kolegi: zmienił subdomenę dwa razy, zanim zajrzał do Search Console. Google za każdym razem traktował to jak nową stronę i licznik indeksacji startował od zera.)
Zanim przejdziemy do kroków, warto wiedzieć, na które z trzech dróg się decydujesz. Większość stron Lovable zostaje przy domyślnym CSR i radzi sobie dobrze; część dodaje prerendering, gdy treści przybywa; nieliczni migrują do SSG, gdy SEO staje się głównym kanałem przychodu.
| Podejście | Wysiłek | Szybkość indeksacji | Najlepiej sprawdza się, gdy |
|---|---|---|---|
| Domyślny CSR (Lovable „z pudełka”) | Niski. Wystarczy skonfigurować sitemap, robots, canonicale, GSC. | Wolniejsza (dni, czasem parę tygodni dla głębszych stron). | Strony marketingowe do ~20 podstron, landing page’e, MVP — tam, gdzie SEO to „miły dodatek”. |
| Prerendering (Prerender.io, DataJelly, Rendertron) | Średni. Zewnętrzna usługa + Worker Cloudflare lub proxy. Kilka godzin pracy, dłużej za pierwszym razem. | Szybsza. Boty dostają prerenderowany HTML. | Witryny z dużą ilością treści, lejki blogowe, widoczność w AI-crawlerach (ChatGPT/Perplexity/Claude). |
| Migracja do SSG (SEO-we trasy poza Lovable) | Wysoki. Własny pipeline; zwykle osobny projekt Next.js/Astro dla stron SEO, a Lovable obsługuje aplikację. | Najszybsza. Statyczny HTML nierozróżnialny od zwykłego static site. | SEO to główny kanał akwizycji i wyrosłeś poza ograniczenia CSR. |
Szczerze o moim doświadczeniu: wdrażałem domyślny CSR w Lovable i pomagałem konfigurować prerendering, ale nie migrowałem jeszcze projektu Lovable na pełny SSG. Najdokładniejszy opis tej ścieżki ma embeddable.co. Większość dalszego poradnika zakłada, że zostajesz przy CSR — to właściwy wybór dla większości czytelników.
W oknie Publish w Lovable upewnij się, że strona jest publiczna. Na planach Business/Enterprise można ją ograniczyć; jeśli ustawisz Workspace-only/private, Googlebot jej nie zobaczy. Brzmi banalnie, ale jedna z osób, którym pomagałem, miała dokładnie ten problem. Ustawiła dostęp tylko dla workspace’u na demo i zapomniała cofnąć.
Metadane ustawiasz w flow Publish:
Ikona & tytuł
Opis (meta description używany w wynikach / podglądach)
Obraz udostępniania (OG image)
To nie „wymusi” indeksacji, ale zapobiegnie kolejnemu problemowi: zindeksowane strony z fatalnymi tytułami i snippetami. Widziałem wynik z tytułem „Vite + React + TS”. CTR? Marny.
Zmiany w Lovable nie lądują automatycznie online. Musisz Publish, a potem Update. Jeśli zapomnisz, Google wciąż widzi starą wersję.
sitemap.xml w Lovable (i sprawdź, czy działa)Sitemap ma większe znaczenie w CSR niż w tradycyjnych stronach, bo crawlerzy nie zawsze odkryją trasy SPA tylko przez linki. Agent Lovable wygeneruje sitemap.xml na żądanie.
Create XML sitemap at /sitemap.xml listing all public routes. Include lastmod dates and priorities: homepage 1.0, main pages 0.8, blog posts 0.6.
Dodam coś, czego oficjalny opis nie podkreśla: po wygenerowaniu sprawdź daty lastmod. Czasem każdy adres ma datę generacji, co zabija sygnał świeżości (Google go ignoruje, jeśli każdy URL „zaktualizowano dziś”).
Po publikacji:
Odwiedź: https://twojadomena.com/sitemap.xml
Upewnij się, że zwraca XML, nie błąd ani stronę HTML
Sprawdź, czy zawiera kluczowe trasy (home, główne podstrony, blog, produkty)
Musisz ją generować i wysyłać ponownie przy dodawaniu lub usuwaniu stron. Pierwszy raz mnie to ugryzło: dodałem blog, założyłem, że sitemap go złapie. Nie złapała.
robots.txt (nie blokuj JS/CSS/assetów)Najczęstsza przyczyna „Lovable się nie indeksuje” to przypadkowe zablokowanie plików, których Google potrzebuje do renderu. To problem numer jeden, a najbardziej frustrujący, bo w przeglądarce wszystko działa.
Dokumentacja Lovable mówi wprost: nigdy nie blokuj CSS, JavaScript ani folderu /assets/ w robots.txt, bo Google potrzebuje ich do renderu CSR.
Create robots.txt at /public/robots.txt that allows all crawlers and references Sitemap: https://twojadomena.com/sitemap.xml
(Dostosuj URL sitemap.)
Po publikacji plik powinien być pod:
https://twojadomena.com/robots.txt
Jeśli strona jest dostępna pod kilkoma adresami (np. lovable.app i własna domena), Google może uznać to za duplikaty, o ile nie wskażesz preferowanego URL-a.
Tagi canonical to naprawiają. Lovable ma do tego prompt i sposób weryfikacji.
Add canonical tags to all pages pointing to their own URLs. Use https://twojadomena.com format with no trailing slash.
Otwórz stronę i uruchom w DevTools:
console.log('Canonical:', document.querySelector('link[rel="canonical"]')?.href);
I sprawdź:
Dokładnie jeden canonical na stronę
Pasuje do preferowanej domeny (HTTPS, bez/ z www, ukośnik końcowy)
Google Search Console to panel sterowania indeksacją. Szczerze: spędzam tam większość czasu przy debugowaniu Lovable (czasem całe godziny, gdy raport „Stan” nie gra). Kolega nie miał GSC w ogóle — nie widzieliśmy, co Google robi z jego stronami. Ciemność. Gdy tylko podłączyliśmy GSC, zobaczyliśmy, że Google próbował zindeksować trzy strony i poległ na wszystkich przez zablokowane zasoby. Bez GSC zgadywałby tygodniami.
Search Console pozwala:
zgłaszać sitemap i URL-e,
widzieć stan indeksu,
użyć Inspekcji URL, by zobaczyć, co widzi Google (zrzut ekranu to najcenniejsza diagnostyka — dokumentacja URL Inspection).
W Search Console dodaj właściwość dla URL-a, który chcesz indeksować.
Google wymaga weryfikacji, zanim pozwoli zarządzać indeksacją. Trzy metody są praktyczne w Lovable; porównanie poniżej:
| Metoda | Trudność | Kiedy najlepsza | Uwagi |
|---|---|---|---|
| DNS TXT | Średnia (dostęp do DNS u rejestratora) | Masz własną domenę i dostęp do jej strefy DNS. | Jedyna metoda tworząca „właściwość domeny” w GSC — obejmuje wszystkie subdomeny i protokoły. Przetrwa przebudowy. Polecana. |
| Meta tag | Niska | Nie masz dostępu do DNS, ale możesz edytować <head> w Lovable. |
Działa, lecz musisz powtórzyć przy przebudowie projektu; weryfikuje tylko jeden prefiks URL (HTTPS+www vs. HTTPS itp.). |
| Plik HTML | Niska | Możesz wrzucić plik do /public bez ruszania DNS. |
Ten sam limit jednego prefiksu co meta tag. Łatwo usunąć plik przypadkiem. |
Gdy mogę, wybieram DNS TXT. Meta tag jest ok na szybko, ale dwa razy musiałem go odtwarzać po rebuildach, więc odruchowo biorę DNS.
Lovable rekomenduje DNS TXT, a Google podkreśla, że to jedyna droga do „właściwości domeny”.
<head>)Format z dokumentacji Lovable:
<meta name='google-site-verification' content='TWÓJ_KOD' />
Przykładowy prompt (wklej w Lovable):
Add GSC verification meta tag: <meta name='google-site-verification' content='TWÓJ_KOD' /> to the <head>
Google może dać plik do wgrania w root. Lovable sugeruje wrzucić go do /public, aby był pod https://twojadomena.com/[nazwa-pliku].
Po weryfikacji:
Przejdź do Sitemapy
Wpisz: https://twojadomena.com/sitemap.xml
Kliknij Prześlij
Google może potrzebować 24–48 h na przetworzenie nowej sitemap. W praktyce zależy to od wieku domeny i historii crawl; na starych domenach widziałem raporty tego samego dnia, na nowych — dopiero po kilku. UI GSC bywa mylący i ludzie utknęli tu, myśląc, że coś zrobili źle. Nie — wysyłasz URL i czekasz.
To najszybsza odpowiedź na pytanie:
„Czy Google widzi moją treść, czy pusty szkielet CSR?”
Pamiętasz rozdział indeksacja vs. pozycjonowanie? W kroku 7 zobaczysz to na własne oczy. Jeśli Inspekcja pokazuje biały ekran, nawet nie rozmawiamy o pozycjonowaniu — żadne linkowanie wewnętrzne, keywordy czy backlinki nie pomogą, dopóki Google nie wyrenderuje strony. Zawsze zaczynam od tego punktu, gdy ktoś prosi o pomoc. Olej sitemap i robots, najpierw Inspekcja i zrzut. Jeśli Google widzi biało, reszta nie ma znaczenia.
Dlatego temu krokowi poświęcam najwięcej miejsca. Poniższa oś czasu to coś, co każdy founder na Lovable powinien wbić sobie do głowy, zanim zacznie szukać innych zmiennych.
Inspekcja URL pozwala:
sprawdzić, czy Google widzi prawdziwą treść,
zdiagnozować problemy renderu CSR,
zobaczyć blokowane zasoby JS/CSS.
Dla każdej ważnej strony:
Wklej URL w pasek Inspekcja URL w GSC
Kliknij Przetestuj aktywny adres URL
Otwórz Zobacz przetestowaną stronę i sprawdź:
zrzut ekranu Googlebota
wygenerowany HTML
błędy konsoli
zablokowane zasoby
Kliknij Poproś o zindeksowanie dla nowych/zmienionych stron (limitowane)
Z dokumentów Google:
Musisz być zweryfikowanym właścicielem lub pełnym użytkownikiem
Jest quota
Wielokrotne klikanie w ten sam URL nie przyspieszy crawla
Nauczyłem się tego boleśnie: klikałem „Poproś o indeksację” pięć razy z rzędu, myśląc, że to kolejny „szturchaniec”. Nie jest. Jeden klik wystarczy.
Co się stało u kolegi po wdrożeniu Kroków 1–7? Dzień 1: zero stron w indeksie, zrzut biały z małym spinnerem. Google pobrał HTML-ową skorupę, ale nie wrócił po JS. W robots.txt zablokowany był /assets/, zawierający wszystkie CSS i JS. To przykład strony, która nie przeszła jeszcze nawet bariery indeksacji.
Naprawiliśmy robots.txt, wygenerowaliśmy sitemap (miała tylko root), dodaliśmy canonicale i kliknęliśmy „Poproś o indeksację” dla pięciu kluczowych stron. Czekaliśmy.
Dzień 2: dalej nic. Wysłał mi pusty raport Coverage. Kazałem mu przestać sprawdzać.
Dzień 4: home pojawił się w indeksie. Inspekcja pokazała pełen render: nawigacja, hero, screenshoty. Różnica między dniem 1 (biały ekran) a dniem 4 (pełna strona) była uderzająca. Ta sama witryna, ta sama treść — tylko Google wreszcie ją zobaczył.
Do dnia 10 wszystkie pięć stron było zindeksowanych. Strona /pricing zaczęła się pojawiać na zapytanie „[nazwa produktu] pricing” w dwa tygodnie. Bez magii, po prostu podstawy. Cała naprawa zajęła popołudnie, z czego sporo czasu to jego narzekanie, czemu to nie jest automatyczne (rozumiem go).
Podaję tę oś czasu, by ustawić realne oczekiwania i pokazać, że twoja krzywa będzie podobna. Jeśli naprawisz wszystko dziś, efekty zobaczysz raczej pod koniec tygodnia. I to ok. Indeksacja CSR jest wolniejsza, ale działa.
Indeksacja CSR zwykle działa, ale kilka przewidywalnych pułapek ją psuje. Oto główne, które widziałem w prawdziwych projektach Lovable.
Objawy:
zrzut Inspekcji URL pusty
renderowany HTML bez właściwej treści
Naprawa:
Upewnij się, że robots.txt nie blokuje JS, CSS ani /assets/
W Inspekcji URL sprawdź zablokowane zasoby i błędy konsoli
Jeśli strona istnieje tylko jako „route” w SPA, ale:
nie jest nigdzie podlinkowana i
nie ma jej w sitemap, Google może jej nie odkryć.
Naprawa:
Aktualizuj sitemap.xml przy każdej zmianie stron (Lovable przypomina, że to nie jest automatyczne).
W CSR metadane nie aktualizują się same, chyba że to zaimplementujesz. Lovable radzi dodać react-helmet-async i ustawić unikalne tytuły i opisy na trasach.
Dlaczego ważne dla indeksacji: Nawet gdy się zindeksujesz, strony mogą wyglądać identycznie w oczach crawlera (i w wynikach), co obniża sygnały jakości i CTR. Sprawdzałem stronę Lovable, gdzie 12 podstron miało ten sam title w indeksie. W appce każdy title był poprawny, ale statyczny HTML dla Google zawsze miał domyślny tytuł homepage.
Linkowanie wewnętrzne ma znaczenie. Lovable zaleca:
Używaj prawdziwych <a href>, nie handlerów onClick
Głębokie strony dostępne max 3 kliknięciami od home
Linki w stopce do kluczowych stron na całej witrynie
Dlaczego to ważne: Linki wewnętrzne to jeden z głównych sposobów odkrywania stron przez Google. Idealna sitemap pomaga, ale crawl-owalne menu wciąż jest potrzebne. W React łatwo zbudować nawigację świetną dla użytkownika, lecz niewidzialną dla Googlebota, bo linki to tylko JS.
Jeśli tworzysz dużo treści, publikujesz wiele stron lub działasz w konkurencyjnej niszy SEO, prerendering może pomóc. Generuje migawki HTML dla botów, a ludzie dalej korzystają z aplikacji JS.
Według Lovable:
prerendering przyspiesza indeksację i poprawia widoczność w AI-crawlerach,
nie jest wbudowany,
dodasz go przez Prerender.io, DataJelly czy Rendertron.
Szczery disclaimer: nie konfigurowałem Lovable + Prerender.io od A do Z. Pomagałem tylko na podstawie dokumentacji, a tabela wcześniej to to, co powiedziałbym klientowi. Nie potrzebujesz tego w każdym projekcie, ale powyżej 20 stron do pozycjonowania warto.
Użyj przed (i po) wysłaniu czegokolwiek do Search Console. Mam tę checklistę w zakładkach i odhaczam przy każdej nowej stronie Lovable.
Strona opublikowana publicznie (nie Workspace-only/private).
Opublikowałem/Aktualizowałem po ostatnich zmianach.
https://mojadomena.com/sitemap.xml zwraca poprawny XML i zawiera wszystkie ważne trasy.
https://mojadomena.com/robots.txt działa, ma linię Sitemap: i nie blokuje CSS/JS//assets/.
Canonicale istnieją i wskazują preferowaną domenę.
Ważne strony są podlinkowane prawdziwymi <a href> i osiągalne z home.
Dodana właściwość dla właściwej domeny (preferowana własna).
Weryfikacja własności (polecany DNS TXT, jeśli możliwe).
Sitemap zgłoszona w GSC.
Strony priorytetowe przetestowane w Inspekcji URL: Test Live + View Tested Page.
„Poproś o indeksację” użyte tylko dla kluczowych stron (limit).
/assets/ w robots.txtPsuje render CSR. Lovable ostrzega: nie blokuj JS, CSS, assetów.
Fix: odblokuj assety i przetestuj w Inspekcji URL.
Sitemap nie aktualizuje się automatycznie.
Fix: zaktualizuj sitemap i wyślij ponownie.
Fix: wybierz jedną strategię (HTTPS, z/bez www) i ujednolić:
tagi canonical
przekierowania domeny głównej
właściwość GSC
Zmiana subdomeny jest dozwolona, ale dla Google to nowa strona.
Fix: ustabilizuj URL przed poważnym SEO. Jeśli zmienisz, dodaj nową właściwość i zgłoś sitemap.
Google jasno mówi: zgłoszenie crawla nie gwarantuje szybkiego włączenia; może to potrwać dni–tygodnie w zależności od jakości i systemów.
Lovable podaje, że od kilku godzin do kilku dni; przyspieszysz, zgłaszając sitemap, używając Inspekcji URL i „Poproś o indeksację”. Google dodaje, że crawling może trwać kilka dni do kilku tygodni. U mnie: od paru dni do dwóch tygodni dla home, głębsze strony czasem dłużej. To nie oficjalny benchmark, tylko doświadczenie.
Tak. Lovable twierdzi, że jego aplikacje mogą pozycjonować się jak inne nowoczesne strony JS, o ile treść się ładuje, a kluczowe zasoby nie są blokowane.
Gorąco polecam. Lovable mówi, że sitemap jest szczególnie ważny dla CSR, bo crawlery mogą nie odkryć wszystkich tras. Ja uważam, że to praktycznie wymóg.
Czy strona jest publiczna (nie Workspace-only)?
Czy ładuje się sitemap.xml?
Czy robots.txt blokuje JS, CSS lub assety?
W GSC Inspekcja URL — Google widzi treść czy biały ekran?
Zwykle to problem renderu CSR: zablokowane zasoby, błędy JS, Googlebot nie może wyrenderować appki. Użyj Inspekcji URL i View Tested Page, by zdiagnozować.
Gdy publikujesz dużo stron, zależy ci na szybszej indeksacji lub lepszej widoczności w botach i AI-crawlerach. Prerendering pomaga, ale wymaga zewnętrznej konfiguracji.
no credit card required
No related articles found.