Why is nobody using the app you built?
Building the app got dramatically easier. Getting found did not. This is what stands between a working app and its first real users, on Google and inside ChatGPT.
Have Licheo make it findableMost vibe-coded apps are invisible for one of two reasons. Either crawlers receive an empty JavaScript shell instead of your content, which is a platform question with a different answer on Lovable, Bolt, Base44, Replit and v0. Or the app is a single page, which means there is exactly one question it can be the answer to. Fix the first, then spend your real effort on the second.
Why is nobody using my app?
The honest answer is that nobody has been given a reason to arrive. You shared it in two or three places, the people who saw it were being polite, and the traffic those posts produced ended the day they scrolled off the feed. Nothing about your app is broken. It simply has no front door that a stranger could walk through.
There are only two things that keep a working app from being found, and they are worth separating because they have completely different fixes. The first is that machines cannot read it. The second is that machines can read it perfectly well and there is nothing on it worth citing.
People who worry about the wrong one of these lose months. They rebuild in a different framework when the rendering was already fine, or they write twenty pages that no crawler can see. Work out which situation you are in before you spend anything.
Can search engines actually read your app?
Open your deployed app, right click, and choose View page source. Look for your own words in the raw HTML: your headline, a feature name, any real sentence. If they are there, a server is sending real content and rendering is not your problem. If you see an empty div and a script tag, your content only exists after JavaScript runs.
One important warning. This test is reliable on Replit, on v0, and on anything you host yourself, but it is misleading on Lovable, which serves a fully rendered version to verified crawlers while showing your browser the shell. On that platform, view source will frighten you for no reason. Use Google Search Console instead, where you can inspect a URL and read the HTML Google itself received.
The same trap catches free SEO checkers. Most of them are not on any verified crawler list, so they report an empty page accurately while Google is receiving something completely different.
Where does your platform leave you?
The platforms in this category have made genuinely different decisions, and the gap between the best and the worst is large. Knowing which one you are on tells you how much work is left.
- Base44 does the most for you: crawlers get fully rendered pages including structured data, and it generates both sitemap.xml and robots.txt automatically.
- Lovable renders on the server for apps created from 13 May 2026, and pre-renders for verified crawlers on older ones. Sitemaps and per-route metadata are still yours.
- Bolt keeps its SEO Boost pre-rendering behind a paid plan and a custom domain, and it does nothing until you explicitly ask for the metadata.
- v0 gives you Next.js on Vercel, so server rendering and a proper metadata system come free. One stray line can silently switch the metadata off.
- Replit has no opinion at all. It runs the code you gave it, so your rendering is whatever you built.
- Cursor is an editor and hosts nothing, so your situation was decided by the framework chosen in the first minute of the project.
Why does a new domain get nothing from Google?
A brand new domain has no history and no links pointing at it, which is exactly the condition under which Google is slowest to trust anything. The advice to be patient is not wrong, but it is bad advice to act on alone, because it tells you to wait through the only period when waiting costs you the most.
AI assistants behave differently. They do not weigh domain age the way classical search does. If your page is the clearest available answer to the question somebody asked, it can be cited while the domain is still weeks old.
This changes what is worth preparing at launch. The assistant channel can open in weeks while the search channel takes months, so the pages that answer real questions are the ones to write first.
Can ChatGPT send traffic to a brand new domain?
Kurli is a small AI app that recommends hairstyles from a selfie. Its domain, kurli.me, was registered on 27 July 2026, which is a matter of public record in WHOIS.
In the first 25 days of that domain existing, ChatGPT sent it 56 visitors and Google Search sent 23. The AI assistant was the larger front door by more than two to one, on a domain younger than a month.
The absolute numbers are small and we will not pretend otherwise. The ratio is the interesting part, and the reason behind it is not clever technique. Kurli did not build one page saying "AI hairstyle tool". It built guides organised by face shape, by hair type, by length, separately for men and women, plus sections on colour, on bangs, on thinning hair, on styles that work with glasses. Every one of those is a question a real person asks.
Why can a one-page app never rank?
Think about what a search engine or an assistant is actually doing. Somebody asks a question, and the system looks for the clearest available answer to that specific question. An app with one page offers one answer, so it can match at most one question, while your potential users are asking dozens of different ones.
Worse, the one question your homepage answers is "what is this product", which nobody asks, because they have never heard of your product. People search for their problem, in the words of somebody who has that problem and does not yet know what the solution is called.
Somebody with a messy spreadsheet does not search for "AI spreadsheet cleaner". They search "how do I merge two lists in excel without duplicates". Somebody unhappy with their hair does not search "AI hairstyle tool". They search "what haircut suits a heart shaped face". If your only page is about your product rather than their problem, there is no question you are the best answer to.
How do you find the questions worth answering?
This part costs nothing but an afternoon, and it is the highest-value work available to you.
- Write down twenty questions about the problem your app solves, phrased the way somebody would phrase them before they know what the solution is called.
- Type each one into Google and read the People Also Ask box and the Related Searches at the bottom. Both are lists of real questions real people ask. You will finish with thirty or forty.
- Ask ChatGPT the five most important ones and note who gets cited. That is your actual competition, and it is often not who you assumed.
- Pick ten and write real pages. Real means several hundred words at minimum, written by somebody who understands the subject.
- Link each page to your tool. Somebody who has just read four hundred words about their exact problem is in a good frame of mind to try something that solves it.
What technical SEO does a vibe-coded app actually need?
None of this makes you findable on its own. It makes you readable, which is the prerequisite. Do it in this order, because doing it out of order is how people end up paying for a plan and seeing no change.
- Buy your own domain before you publish content. Moving published pages later means redirects, and redirects arranged in a hurry lose things.
- Make sure crawlers receive real HTML, by whatever mechanism your platform uses.
- Give every page its own title and description, each written as the answer to that page’s question rather than as a brand slogan.
- Add a sitemap at /sitemap.xml, generated from the same source as your pages if they are data-driven, then submit it in Google Search Console.
- Check robots.txt is not blocking you. The classic failure is a Disallow: / left over from development, which removes you from search entirely and reports no error anywhere.
- Decide deliberately whether you allow GPTBot, ClaudeBot, PerplexityBot and Google-Extended. An assistant cannot cite a site it is not allowed to read.
- Add structured data where it truthfully applies: SoftwareApplication on the homepage, Article on guides, FAQPage where there are genuine questions and answers.
Every part of this, in detail
Each section below is a full guide of its own, on one specific piece of the problem.
- Lovable: Somebody told you to run a free SEO checker and it came back saying your site is empty. According to Lovable’s own documentation, that tool was looking at something Google never sees.
- Bolt: Bolt documents exactly what it does, which is unusual in this category. The trouble is that the defaults leave a new app completely unreadable to search engines until you take three deliberate steps.
- v0: v0 builds Next.js on Vercel, so server rendering and the Metadata API come free. That makes the traps that do still apply worth knowing precisely, because they are quiet ones.
- Replit: Lovable, Bolt and Base44 all decide how your app is served to crawlers. Replit decides nothing. It runs your code, so the first question is not which setting to change but what you actually built.
- Base44: Most articles about getting a vibe-coded app found are, underneath, articles about rendering. On Base44 you can skip essentially all of it, which is uncomfortable, because it leaves the actual reason nobody is finding you.
- Cursor: Cursor writes code with you. It hosts nothing, serves nothing to a crawler, and has no SEO features to enable or overlook. Whatever is happening to your app in search was decided somewhere else.
- Nobody is using it: The app works. You have shown it to friends and they said it was clever. And still, week after week, the visitor count sits at almost zero. Let us go through the six reasons this happens, honestly, and find which one is yours.
- The AI channel: Everything you have read about search assumes you will be patient for a year. That advice was written for a different situation to the one you are in, and following it costs you the one channel where being new is not held against you.
- The fixes: Content work never ends. This part does. Ten tasks, each with a clear definition of done, and once they are complete they stay complete, which makes them the best possible place to start.
- Vite and React: This is not a criticism of the stack, which is excellent for building an application. It is that the defaults which make it excellent for an application are the same defaults that make it invisible as a website.
- Getting listed: The direct traffic from a listing is usually modest. The reason to do it anyway is that a product described in twelve places is a product that exists, and a product described in one place is a domain somebody registered.
- Platform matrix: These platforms differ far more than their marketing suggests on exactly the dimension that decides whether anybody finds what you built. Here is what each one handles and what remains yours.
- Do it or hire it: We sell this service, so treat what follows accordingly. We have also watched enough founders waste money on the wrong half of it that an honest split is more useful to us than a sales pitch.
- Building for clients: The client loved the site. It looked better than anything they had, and it arrived in a week. Then the phone did not ring, and now they want to know why, and they are asking you.
- Framer: Of all the builders in this category, Framer hands you the most finished technical foundation, and it is the only one we have found that addresses AI readability explicitly. So if your Framer site is not being found, the cause is narrow and identifiable.
- Webflow: This is a platform that can do everything correctly. It can also, through a toggle somebody flipped during a redesign, quietly remove your best pages from search, and nothing about the site will look wrong.
- Claude Code: There is no platform default to blame here and no hosting behaviour to work around. Claude Code wrote what you described, and in several months of prompts you almost certainly never described being found.
- Teardowns: Advice is easy to write and hard to check. A teardown of a real, named app, with every figure measured on a stated date, is harder to write and much harder to argue with.
- Glide: Almost every page in this section describes a problem you can fix. This one is different, because the behaviour is intentional, documented, and not something you configure your way out of.
- Bubble: This is a platform with genuinely complete SEO settings, which is the good news. The awkward part is that the most important of them defaults to off and is configured one page at a time.
- Softr: Most of what decides whether a Softr site is found is configured per item, in fields that come from your data source, and that are empty until you add them.
- Figma Make: You can set a title, a description, a custom domain and a switch that controls whether search engines are welcome. What you cannot do is put a file at the root of the site, and two important files live there.
- Retool: Almost every difficulty people have getting a public Retool app found traces back to one thing, which is that public discovery was never what the product was built to do.
- Windsurf: Windsurf will put your app on a public URL from inside the editor, which is genuinely convenient. The thing worth reading before you treat that URL as your product's home is Windsurf's own description of what it is.
- Firebase Studio: It is a reasonable assumption and it is wrong, in an instructive way. The hosting is capable of everything you need. Which of those capabilities you actually get is decided by how the app was built.
- Jev: Every AI-built site is full of small judgments: which page does this keyword belong to, is this draft too thin to publish, did ChatGPT cite us or a competitor. Jev exists for exactly those judgments, and it never writes a word.
Questions people ask
- Why is my vibe-coded app not showing up on Google?
- Either crawlers cannot read it or there is nothing on it worth ranking. If your page source shows an empty div and a script tag, the content only exists after JavaScript runs and Google is receiving nothing. If the content is there and you still get no traffic, the app is almost certainly a single page, and one page can only be found for one thing.
- How do I check whether Google can read my app?
- Use Google Search Console rather than a third-party checker. Inspect a specific URL, test the live URL, and read the rendered HTML Google itself fetched. That is the only definitive evidence. Free SEO scanners are not on most verified crawler lists, so they frequently report an empty page while Google receives your full content.
- Which vibe coding platform is best for SEO?
- Base44 does the most automatically: pre-rendering for crawlers with structured data included, plus an automatic sitemap and robots.txt on both free and paid tiers. v0 gives you the strongest foundation through Next.js server rendering. Bolt requires a paid plan and a custom domain before crawlers see anything at all.
- Can ChatGPT send traffic to a brand new website?
- Yes, and often before Google does. Kurli registered its domain on 27 July 2026 and received 56 visitors from ChatGPT against 23 from Google Search in the first 25 days. Assistants do not weight domain age the way classical search does, so a genuinely useful page can be cited while the domain is still new.
- How many pages does my app need?
- Ten pages answering ten real questions will do more than any platform setting. The number matters less than the specificity. Each page should correspond to a question somebody actually types or asks an assistant, and each should be substantial enough to be worth reading. Thin pages produced in bulk are a known way to get a whole site treated as low quality.
- Do I need a custom domain?
- Yes, and buy it before you publish content rather than after. On Bolt it is a hard requirement, because SEO Boost will not turn on without one. On Base44 the entire SEO arrangement assumes one. Everywhere else, any reputation a platform subdomain accumulates belongs to the platform rather than to you, and moving later means redirects.
- Should I rebuild my app in Next.js to fix SEO?
- Usually not. If your pages are known ahead of time, pre-rendering them at build time is far cheaper and gets you the same result. A migration is only worth it when your pages genuinely depend on data that changes per request. Many people rebuild when their rendering was never the problem in the first place.
- How long before any of this works?
- The assistant channel can open within weeks, because citation depends on being the clearest answer rather than on domain authority. Classical search on a new domain usually takes months. Install analytics before you start changing things, otherwise you will work for a month with no way of telling whether any of it helped.
Keep reading
- Nobody is using it
- The AI channel
- Vite and React
- Building for clients
- See what a crawler gets
- Generate your schema markup
- The launch checklist
- Teardowns
- Getting listed
- Platform matrix
- The fixes
- Lovable
- Bolt
- v0
- Replit
- Base44
- Cursor
- The 26-day-old domain case study
- Framer
- Webflow
- Claude Code
- Glide
- Bubble
- Softr
- Figma Make
- Retool
- Windsurf
- Firebase Studio
Would you rather somebody just did this
We will look at what search engines and AI assistants are actually receiving from your app, tell you plainly what is missing, and build the pages that answer the questions your users are asking.
Have Licheo make it findable See the case study