By default, apps built with Lovable are single-page React apps: each page is built in the browser with JavaScript, after it loads. Google can often run that JavaScript, but it may take longer and see less, and many AI crawlers and link previews do not run it at all. Start with Search Console, a sitemap and a title and description for each page. If your business lives from search, serve your public pages as ready HTML.
Your Lovable site is live and people like it. Then you type your company name into Google and find nothing, or only the home page. This is common, and it does not mean you did something wrong. It comes partly from how this kind of app is built, and partly from a few basics that every new site needs. This guide explains both, shows you how to check what Google sees, and lists what you can do.
How a Lovable site is built, in plain words
Lovable builds web apps with React, a popular tool for building screens with JavaScript. By default, apps built this way are single-page apps: the server sends one small HTML file that is almost empty, plus a large JavaScript file. The browser runs the JavaScript, and only then do the text, the images and the buttons appear. This is called client-side rendering: the page is built in the visitor's browser, not on the server.
For a person, this works well. After the first load, moving between pages feels quick. But a crawler (the program a search engine sends to read your pages) first receives that small HTML file. If it is almost empty, the crawler must run the JavaScript to see your content, or it sees nothing.
This is not special to Lovable: any single-page app, built by hand or with another AI tool, starts from the same place.
What search engines and AI tools may see
Google can run JavaScript, and it often does see the content of single-page apps. But it usually does this in a second step, so new pages can take longer to appear. An error in the JavaScript, or content that loads late, can also mean that Google sees less than a visitor does.
Other readers are less patient. Many AI crawlers (programs that collect pages for AI tools) do not run JavaScript, so they read only the first HTML file. The same is true for the link previews in most social and chat apps. When that file is almost empty, they may get:
- Little or no text. Where your words should be, there is only an empty box. An AI tool cannot quote or recommend what it cannot read.
- The same preview for every page. Share your pricing page in a chat app, and it shows the title and image of your home page.
- No path to your other pages. If the links between pages only exist after JavaScript runs, a crawler that does not run it has no links to follow.
The common basics that are often missing
Many new sites, built with any tool, also miss a few simple things. Often these are the real reason a site does not show up.
- No Search Console. Google Search Console is Google's free tool for site owners. Without it, you do not know which pages Google knows, and you cannot ask it to read a new one.
- No sitemap. A sitemap is a file that lists every page you want found, usually at yoursite.com/sitemap.xml. Without one, Google has to discover your pages by itself.
- One title and one description for all pages. If every page carries the title of the home page, Google has a hard time telling them apart, and it may show only one.
- No real address for each page. Each page needs its own address, like /pricing or /about. Addresses with a # sign in them (like /#/pricing) are usually treated by Google as one single page.
- A slow first load. The browser must download and run the JavaScript before it shows anything. Large images and heavy files make this slower, on phones most of all.
- Pages that do not exist still load. In many single-page apps, a wrong address still shows a page, often a blank one or the home page. Google may then find many addresses with the same content.
- Your own domain is not connected. What Google learns about your site belongs to the address it sees, so connect your own domain early.
How to check what Google really sees
You do not need to read code for this. Do these checks in order:
- Search for your site. Type site:yourdomain.com into Google. You see the pages Google has in its index (its list of known pages). If only one appears, or none, you have your first answer.
- Look at the first HTML file. Open your site on a computer, right-click on the page and choose to view the page source. This is what a crawler receives before any JavaScript runs. If you see your own words, good. If you see mostly code, that is what many AI tools read.
- Use URL Inspection in Search Console. Paste the address of one page into the search bar at the top and run a live test. You see whether the page can be indexed, and you can look at the page as Google rendered it, with its HTML and a screenshot.
- Share a link in a chat app. Compare the previews of two different pages. If both show the same title and image, link previews only read your first HTML file.
First fixes: the basics, in any setup
These steps help any site. You can ask for most of them in plain words in the tool you used, or give them to the person who works on your code.
- Give every page its own address, and link your pages to each other with normal links.
- Write a title and a description for each page. The title says in a few words what the page is about. The description is the short text Google may show under it.
- Add a sitemap and submit it in Search Console.
- Make wrong addresses show a real "page not found", with the code that tells search engines the page does not exist (a 404).
- Make the first load lighter, with smaller images and fewer heavy add-ons.
- Write real text. A search engine needs words to understand what you offer and for whom. One large image and one sentence give it very little.
After a change, run URL Inspection again and ask Google to index the page, then give it a few weeks.
When your site lives from search: serve ready HTML
For many founders, the basics are enough. The site is a front door: people arrive from a link, an ad or a friend, and the app does the work. But if people must find you on Google, for example for a shop, a local service, a directory or a blog, it is safer when every public page arrives as ready HTML, with its text, title and description already inside. Then Google, AI crawlers and link previews all read the same full page.
There are two common ways to do this:
- Pre-rendering. The pages are turned into finished HTML files ahead of time, when the site is built. This suits pages that do not change every minute, like a home page, service pages or articles.
- Server rendering. The server builds the page each time someone asks for it, then sends it ready. This suits content that changes often, like product pages or listings. Frameworks such as Next.js can do both.
Depending on how your app is set up, this can be a small change or a large one. Sometimes a pre-rendering step can be added to the current project. Sometimes the simplest path is to split the site: the public pages (home, services, pricing, blog) move to a setup that serves ready HTML, and the app behind the login stays where it is. Pages behind a login do not need to be on Google anyway. When it makes sense, the whole app can be moved, and our guide on moving a Lovable or Bolt app to your own hosting explains what that involves.
A visitor sees your site after the JavaScript runs. Many crawlers only see what came before.
Is this a reason not to use Lovable?
No. Lovable is very good at what it is made for: building a working app quickly, from a chat, with a clean design. For a product where people log in and do things, a single-page app is a normal and sound choice. If you are still choosing a tool, our comparison of Lovable, Bolt and Cursor explains what each one does best.
Tools change quickly, so check the current Lovable documentation for what it offers on search today. The checks above work whatever built the site. If you are also getting ready for real users, our guide on launching a Lovable app to real users lists the other points to check.
The bottom line
A Lovable site is usually missing from Google for two reasons: missing basics, and pages that arrive almost empty for readers that do not run JavaScript. Fix the basics first, then check with URL Inspection what Google really sees. If search is how your customers find you, serve your public pages as ready HTML. If you want someone to look at the whole app, see how we finish Lovable apps for real users.



