TL;DR: Lovable pozwala bardzo szybko stawiać świetnie wyglądające strony, ale często startują one z problemami z indeksacją — brakuje mapy witryny, treść renderuje się po stronie klienta albo nie ma weryfikacji w Search Console. Poniżej pokażę ci, jak to naprawić.
W zeszłym miesiącu spędziłem weekend, pomagając znajomemu uruchomić jego projekt w Lovable. Aplikacja wyglądała naprawdę świetnie — czysty UI, płynne przejścia, taki produkt, przy którym myślisz: „okej, to już wygląda jak prawdziwa firma produktowa”. W poniedziałek rano napisał do mnie: „Czemu nie mogę tego znaleźć w Google?”
Ta wiadomość zamieniła się w dwugodzinne udostępnianie ekranu, podczas którego naprawiliśmy pięć osobnych problemów z indeksacją. Od tamtej pory pomagałem jeszcze trzem innym użytkownikom Lovable przejść przez ten sam proces i problemy prawie zawsze są identyczne. Więc napisałem ten poradnik, żeby oszczędzić czas tobie (i przyszłemu mnie) przy kolejnych takich sesjach.
Ale najpierw krótka dawka realizmu: indeksacja a ranking. To nie jest to samo, a właśnie to pomieszanie sprawia, że Lovable może wydawać się „wolne”.
1. Indeksacja oznacza, że Google odkrył i zapisał twoją stronę.
2. Ranking oznacza, że Google uznał, że twoja strona zasługuje na pokazanie się na dane zapytanie.
Strony z Lovable to aplikacje React renderowane po stronie klienta (CSR) (React + Vite). Google może indeksować strony CSR, ale często dzieje się to w dwóch etapach: najpierw Google przeszukuje początkowy HTML, a potem wraca, żeby wyrenderować JavaScript i pobrać pełną treść. Efekt? Indeksacja nowych stron może trwać dni zamiast godzin, nawet jeśli technicznie wszystko jest „okej”. Strona mojego znajomego potrzebowała czterech dni — dla niego to była wieczność, ale w praktyce to normalne dla nowej domeny CSR bez backlinków.
Dobra wiadomość: strony z Lovable mogą rankować tak samo jak inne nowoczesne strony JavaScript, o ile treść ładuje się poprawnie, a kluczowe zasoby nie są blokowane.
Projekt w Lovable możesz opublikować jako:


domyślny URL [twoj-projekt].lovable.app, albo
na własnej domenie (w płatnych planach).
Z perspektywy SEO Lovable wprost rekomenduje użycie własnej domeny, bo to pomaga skonsolidować autorytet i utrzymać jeden canonical URL w czasie. I szczerze — poleciłbym dokładnie to samo nawet bez ich dokumentacji. Widziałem już sporo subdomen na współdzielonych platformach, które miały problem z budowaniem jakiegokolwiek autorytetu domeny nawet po miesiącach regularnej publikacji.
Jeśli możesz, użyj własnej domeny i ustaw ją jako domenę główną (tak, żeby inne domeny przekierowywały na nią). Lovable wspiera konfigurację domeny głównej, gdzie pozostałe podpięte domeny przekierowują na główną.
Jeśli jeszcze nie jesteś gotowy na własną domenę, spokojnie — twoja strona na lovable.app też może zostać zaindeksowana. Po prostu trzymaj się jednego URL-a i nie zmieniaj ciągle subdomeny. (Pierwszy błąd mojego znajomego: zmienił subdomenę dwa razy, zanim w ogóle zajrzał do Search Console. Za każdym razem Google traktował to jak zupełnie nową stronę.)
W oknie "Publish" w Lovable upewnij się, że strona jest publicznie dostępna. W planach Business/Enterprise możesz ograniczyć dostęp; jeśli opublikujesz stronę jako Workspace-only/private, Googlebot nie będzie mógł jej przeszukać. Brzmi banalnie, ale jedna z trzech osób, którym pomagałem, miała dokładnie ten problem — przełączyła dostęp na workspace-only do dema i zapomniała to cofnąć.
Lovable pozwala edytować metadane strony w procesie publikacji:
"Icon & title"
"Description" (opis meta używany w wynikach wyszukiwania i podglądach)
"Share image" (obrazek OG)
To nie sprawi automatycznie, że strona zostanie zaindeksowana, ale zapobiegnie kolejnemu problemowi, na który wpadniesz: stronom zaindeksowanym z fatalnymi tytułami i opisami w wynikach. Widziałem już stronę, która pojawiła się w Google z tytułem „Vite + React + TS”. To raczej nie pomaga w CTR.
Zmiany w Lovable nie publikują się automatycznie — musisz opublikować stronę i potem kliknąć "Update", żeby opublikować zmiany. Jeśli o tym zapomnisz, Google dalej będzie widział starą wersję.
sitemap.xml w Lovable (i sprawdź, czy się ładuje)Mapy witryny są szczególnie ważne przy aplikacjach CSR, bo crawlery nie zawsze łatwo odkrywają wszystkie adresy URL w SPA. Lovable wyraźnie to podkreśla i informuje, że agent może wygenerować 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.
Lovable podaje dokładnie takie podejście i checklistę weryfikacji. Dodałbym jedną rzecz, o której oni nie wspominają: sprawdź daty lastmod po wygenerowaniu. Widziałem przypadki, gdzie wszystkie strony dostawały datę wygenerowania pliku, co trochę mija się z celem.
Po publikacji:
Wejdź na: https://yourdomain.com/sitemap.xml
Potwierdź, że zwraca XML, a nie błąd albo stronę HTML
Upewnij się, że są tam twoje ważne adresy URL (strona główna, główne podstrony, wpisy blogowe, strony produktowe itd.)
Lovable zaznacza, że musisz wygenerować ponownie i przesłać ponownie mapę witryny, kiedy dodajesz lub usuwasz strony (to nie dzieje się automatycznie). Mnie też to złapało za pierwszym razem — dodałem sekcję bloga i założyłem, że mapa witryny sama to podchwyci. Nie podchwyciła.
robots.txt (nie blokuj JS/CSS/zasobów)Bardzo częsty powód problemu „Lovable się nie indeksuje” to przypadkowe zablokowanie dokładnie tych plików, których Google potrzebuje do wyrenderowania strony. To numer jeden wśród problemów, które widzę w projektach Lovable, i jednocześnie najbardziej irytujący — bo w twojej przeglądarce wszystko wygląda dobrze, a problem wychodzi dopiero wtedy, gdy stronę próbuje wyrenderować bot.
Lovable rekomenduje utworzenie robots.txt i wyraźnie ostrzega: nigdy nie blokuj CSS, JavaScript ani folderu /assets/, bo Google potrzebuje ich do renderowania stron CSR.
Create robots.txt at /public/robots.txt that allows all crawlers and references Sitemap: https://yourdomain.com/sitemap.xml
(Dostosuj URL mapy witryny.)
Po publikacji twój plik robots powinien być dostępny pod adresem:
https://yourdomain.com/robots.txt
Jeśli twoja strona jest dostępna pod wieloma URL-ami (na przykład zarówno pod lovable.app, jak i pod własną domeną), Google może potraktować to jako duplicate content, jeśli nie wskażesz preferowanego adresu.
Lovable rekomenduje canonical tags i podaje prompt oraz sposób weryfikacji.
Add canonical tags to all pages pointing to their own URLs. Use https://yourdomain.com format with no trailing slash.
Lovable sugeruje sprawdzenie canonicali przez konsolę:
console.log('Canonical:', document.querySelector('link[rel="canonical"]')?.href);
I upewnij się, że:
na każdej stronie jest dokładnie jeden canonical
pasuje do preferowanej wersji domeny (HTTPS, trailing slash, www lub bez www)
Google Search Console to twój panel sterowania do indeksacji — i szczerze mówiąc, to właśnie tam spędzam większość czasu, kiedy debuguję dowolną stronę z Lovable. Mój znajomy w ogóle nie miał tego skonfigurowanego, kiedy do mnie napisał. Nie mogliśmy nawet zobaczyć, co Google robi z jego stronami. Lecenie na ślepo. W momencie, gdy podpięliśmy GSC, od razu było widać, że Google próbował przeszukać trzy jego strony i wywalił się na wszystkich trzech przez zablokowane zasoby. Bez GSC zgadywałby jeszcze tygodniami.
To pomaga ci:
przesyłać mapy witryny i URL-e,
sprawdzać pokrycie indeksu,
i używać "URL Inspection", żeby zrozumieć, co widzi Google.
W Google Search Console dodaj property dla URL-a, który chcesz indeksować.
Google wymaga weryfikacji własności, zanim pozwoli ci zarządzać sygnałami indeksacji.
Przewodnik SEO Lovable rekomenduje:
DNS TXT (rekomendowane)
Meta tag
HTML file upload (umieść plik w katalogu głównym strony, zwykle w /public)
Z mojego doświadczenia DNS TXT jest warte dodatkowej konfiguracji, bo automatycznie obejmuje wszystkie subdomeny i protokoły. Metoda z meta tagiem działa, ale jeśli kiedyś zbudujesz projekt od zera od nowa, prawdopodobnie będziesz musiał robić to ponownie.
Lovable wprost wskazuje DNS TXT jako rekomendowaną metodę.
Google też zaznacza, że weryfikacja DNS to jedyny sposób, żeby zweryfikować „Domain property” (obejmuje wszystkie subdomeny i protokoły).
<head>)Lovable podaje gotowy format promptu:
<meta name='google-site-verification' content='YOUR_CODE' />
Przykład promptu (wklej do Lovable):
Add GSC verification meta tag: <meta name='google-site-verification' content='YOUR_CODE' /> to the <head>
Google może dać ci plik weryfikacyjny do wrzucenia do katalogu głównego strony. Lovable sugeruje umieszczenie go w /public, żeby był dostępny pod https://yourdomain.com/[file-name].
Gdy property jest już zweryfikowane:
Przejdź do Sitemaps
Wpisz: https://yourdomain.com/sitemap.xml
Kliknij Submit
Lovable zaznacza, że Google może potrzebować 24–48 hours na przetworzenie i zaraportowanie przesłanej mapy witryny. W praktyce widziałem wszystko od 6 godzin do 3 dni, zależnie od wieku domeny.
To najszybszy sposób, żeby odpowiedzieć na pytanie:
„Czy Google faktycznie widzi moją treść... czy tylko pustą powłokę CSR?”
To krok, od którego zawsze zaczynam, kiedy ktoś prosi mnie o pomoc z indeksacją. Zapomnij na chwilę o mapie witryny, zapomnij o robots.txt — idź prosto do URL Inspection i zobacz zrzut ekranu. Jeśli Google widzi pustą białą stronę, to nic innego nie ma znaczenia, dopóki tego nie naprawisz.
Lovable rekomenduje używanie URL Inspection konkretnie do tego, żeby:
potwierdzić, że Google widzi prawdziwą treść (a nie pustkę),
diagnozować problemy z renderowaniem CSR,
oraz sprawdzać, czy zasoby JS/CSS nie są blokowane.
Dla każdej strony, na której ci zależy:
Wklej URL do paska "URL Inspection" w Search Console
Kliknij "Test Live URL"
Otwórz "View Tested Page" i sprawdź:
zrzut ekranu tego, co widzi Googlebot
wyrenderowany HTML
błędy w konsoli
zablokowane zasoby
Kliknij "Request Indexing" dla nowych lub zaktualizowanych stron (obowiązuje limit)
Dokumentacja Google jasno podkreśla:
Musisz być zweryfikowanym właścicielem/full userem, żeby poprosić o indeksację
Jest quota
Wielokrotne zgłaszanie tego samego URL-a nie sprawi, że Google przeszuka go szybciej
Nauczyłem się tego boleśnie na początku — siedziałem i klikałem „Request Indexing” pięć razy pod rząd dla tego samego URL-a, myśląc, że każdy klik to kolejny „szturchaniec”. Nie. Jedno zgłoszenie wystarczy.
Tak to wyglądało u mojego znajomego po tym, jak przeszliśmy kroki 1–7 podczas tego udostępniania ekranu. Pierwszego dnia jego Search Console pokazywało zero zaindeksowanych stron, a zrzut ekranu w URL Inspection był białym prostokątem z małym spinnerem ładowania — Google pobrał HTML shell, ale nie wrócił, żeby wyrenderować JavaScript. Jego robots.txt blokował /assets/, a tam były wszystkie pliki CSS i JS potrzebne aplikacji.
Naprawiliśmy robots.txt, wygenerowaliśmy ponownie mapę witryny (która wcześniej zawierała tylko root URL), dodaliśmy canonical tags i kliknęliśmy „Request Indexing” dla jego pięciu najważniejszych stron. Potem czekaliśmy.
Dzień drugi: dalej nic. Wysłał mi zrzut ekranu pustego raportu Coverage. Powiedziałem mu, żeby przestał sprawdzać.
Dzień czwarty: strona główna pojawiła się w indeksie. URL Inspection pokazał pełny render — nawigację, hero section, zrzuty ekranu produktu, wszystko. Różnica między zrzutem ekranu z pierwszego dnia (pusta biała strona) a zrzutem ekranu z dnia czwartego (w pełni wyrenderowana strona) była ogromna. Ta sama strona, ta sama treść. Jedyna zmiana była taka, że Google w końcu mógł to naprawdę zobaczyć.
Do dziesiątego dnia wszystkie 5 priorytetowych stron było już zaindeksowanych. Jego strona /pricing zaczęła pojawiać się na „[product name] pricing” w ciągu dwóch tygodni. Nic magicznego — po prostu podstawy zrobione poprawnie. Cała naprawa zajęła nam około 90 minut realnej pracy w ramach tego dwugodzinnego udostępniania ekranu (pozostałe 30 minut to było jego narzekanie, czemu to nie dzieje się automatycznie).
Wspominam o tej osi czasu, bo chcę ustawić realistyczne oczekiwania. Jeśli dziś naprawisz wszystko z tej listy, prawdopodobnie nie zobaczysz efektów przed czwartkiem najwcześniej. I to jest okej. Indeksacja CSR jest wolniejsza, ale działa.
Lovable jasno mówi: indeksacja CSR zwykle działa, ale są tu pewne przewidywalne pułapki. Oto te największe, które zatrzymują albo opóźniają indeksację — widziałem każdą z nich w prawdziwych projektach Lovable.
Objawy:
Zrzut ekranu w URL Inspection wygląda na pusty
Rendered HTML nie zawiera twojej właściwej treści
Naprawa:
Upewnij się, że robots.txt nie blokuje JavaScript/CSS ani /assets/
Użyj URL Inspection, a potem "View Tested Page", żeby znaleźć zablokowane zasoby i błędy w konsoli
Jeśli strona istnieje tylko jako „route” w twoim SPA, ale:
nigdzie nie jest podlinkowana, i
nie ma jej w mapie witryny, Google może nigdy jej nie odkryć.
Naprawa:
Aktualizuj sitemap.xml za każdym razem, gdy dodajesz lub usuwasz strony (Lovable zaznacza, że to nie jest automatyczne).
Lovable ostrzega, że metadane nie aktualizują się automatycznie między trasami w aplikacjach CSR, jeśli sam tego nie wdrożysz. Ich rekomendacja: zainstaluj react-helmet-async i ustaw unikalne title/description dla każdej trasy.
Dlaczego to ma znaczenie dla indeksacji:
Nawet jeśli wejdziesz do indeksu, strony mogą wyglądać identycznie dla crawlerów (i w wynikach wyszukiwania), co osłabia sygnały jakości i CTR. Sprawdzałem kiedyś jedną stronę z Lovable, gdzie wszystkie 12 podstron miały w indeksie Google ten sam title tag. Każdy wynik wyglądał tak samo.
Lovable rekomenduje linkowanie wewnętrzne i konkretnie mówi:
Używaj prawdziwych linków <a href> (a nie click handlerów)
Spraw, żeby głębsze strony były osiągalne w około 3 kliknięciach od strony głównej
Dodaj linki w footerze do kluczowych stron w całym serwisie
Dlaczego to ma znaczenie:
Linki wewnętrzne to jeden z głównych mechanizmów odkrywania stron przez Google. Idealna mapa witryny pomaga, ale linki, które da się przeszukać, w nawigacji nadal mają znaczenie. To zresztą szerszy problem ekosystemu React — bardzo łatwo zbudować nawigację, która działa pięknie dla użytkownika, ale jest niewidoczna dla Googlebota, bo linki są obsługiwane przez JavaScript click handlery zamiast prawdziwych anchor tagów.
Jeśli budujesz serwis bogaty w treść, publikujesz dużo stron albo działasz w konkurencyjnej niszy SEO, Lovable sugeruje prerendering (dynamic rendering) jako sposób na generowanie snapshotów HTML dla botów, podczas gdy ludzie dalej korzystają z aplikacji JS.
Lovable zaznacza, że:
prerendering może pomóc w szybszej indeksacji i lepszej widoczności dla crawlerów AI,
nie jest dostępny out of the box,
i możesz dodać go przez usługi takie jak Prerender.io, DataJelly albo Rendertron.
Nie potrzebujesz tego w każdym projekcie Lovable — ale to mocna dźwignia, jeśli poważnie podchodzisz do SEO i szybkości indeksacji. Ja powiedziałbym, że zaczyna to mieć sens, gdy masz więcej niż 20 stron, które realnie mają się rankować.
Użyj tego przed (i po) wysłaniu czegokolwiek do Search Console. Mam wersję tej checklisty zapisaną w zakładkach i przechodzę ją przy każdej nowej stronie z Lovable, której dotykam.
Strona jest opublikowana i publicznie dostępna (nie Workspace-only/private).
Po ostatnich zmianach zrobiłem ponowną publikację i kliknąłem "Update".
https://mydomain.com/sitemap.xml ładuje poprawny XML i zawiera wszystkie kluczowe adresy URL.
https://mydomain.com/robots.txt ładuje się, zawiera linię Sitemap: i nie blokuje CSS/JS//assets/.
Canonicale istnieją i wskazują na preferowany wariant domeny.
Ważne strony są podlinkowane prawdziwymi linkami <a href> i da się do nich dojść ze strony głównej.
Property zostało dodane dla właściwej domeny (preferowana własna domena).
Własność została zweryfikowana (jeśli się da, najlepiej DNS TXT).
Mapa witryny została przesłana w GSC.
Priorytetowe strony zostały sprawdzone przez URL Inspection, potem "Test Live URL", potem "View Tested Page".
"Request Indexing" użyte tylko dla kluczowych stron (jest limit).
/assets/ w robots.txtTo może rozwalić renderowanie aplikacji CSR. Lovable wyraźnie ostrzega przed blokowaniem JS/CSS/zasobów.
Naprawa: odblokuj zasoby; przetestuj ponownie przez URL Inspection.
Lovable zaznacza, że mapy witryny nie aktualizują się automatycznie; musisz wygenerować i przesłać je ponownie, gdy URL-e się zmieniają.
Naprawa: zaktualizuj mapę witryny; wyślij ją ponownie.
Naprawa: wybierz jedną strategię canonical URL (HTTPS, z www albo bez) i dopasuj do niej:
canonical tags
przekierowania domeny głównej
property w GSC
Lovable pozwala zmienić opublikowaną subdomenę. To zmienia twój URL, więc Google traktuje to jak nową stronę.
Naprawa: ustabilizuj URL przed poważniejszym SEO; jeśli go zmienisz, dodaj nowe property i prześlij mapę witryny ponownie.
Google jasno mówi: prośba o crawl nie gwarantuje natychmiastowego włączenia do indeksu, a samo przeszukiwanie może trwać od dni do tygodni, zależnie od jakości i systemów.
Dokumentacja Lovable mówi, że indeksacja może zająć od godzin do kilku dni, a przyspieszyć ją możesz przez przesłanie mapy witryny + URL Inspection + Request Indexing dla priorytetowych stron.
Google zaznacza też, że przeszukiwanie może trwać od kilku dni do kilku tygodni, zależnie od okoliczności i sygnałów jakości. Z tego, co widziałem na stronach Lovable, przy których pracowałem, 2-5 dni to typowy czas dla strony głównej, a głębsze podstrony czasem potrzebują tygodnia albo dwóch.
Tak — Lovable twierdzi, że ich aplikacje mogą rankować tak samo jak inne nowoczesne strony JavaScript, o ile treść ładuje się poprawnie, a kluczowe zasoby nie są blokowane.
Zdecydowanie tak. Lovable wprost mówi, że mapy witryny są szczególnie ważne dla stron CSR, bo crawlery nie zawsze potrafią znaleźć wszystkie trasy. Poszedłbym nawet krok dalej i powiedział, że to praktycznie obowiązkowe — bez tego polegasz wyłącznie na tym, że Google odkryje twoje strony przez linki, które da się przeszukać, a w SPA to bywa bardzo zawodne.
Czy jest publiczna (nie Workspace-only)?
Czy sitemap.xml się ładuje?
Czy robots.txt blokuje JS/CSS/zasoby?
W URL Inspection w GSC: czy Google widzi prawdziwą treść, czy pustą stronę?
To zwykle problem z renderowaniem CSR: zablokowane zasoby, błędy JS albo Googlebot nie potrafi w pełni wyrenderować aplikacji. Lovable rekomenduje użycie URL Inspection, a potem "View Tested Page", żeby zdiagnozować zablokowane zasoby i błędy w konsoli.
Jeśli publikujesz dużo stron, potrzebujesz szybszej indeksacji albo chcesz mocniejszej widoczności dla botów/crawlerów AI. Lovable sugeruje prerendering/dynamic rendering i zaznacza, że wymaga to zewnętrznej konfiguracji (nie jest dostępne domyślnie).
no credit card required
No related articles found.