Vibe code SEO

Vibe code SEO that gets your site indexed first, then ranked.

SEO for websites built with Lovable, Cursor, v0, Bolt, and Replit. Your site is not ranking badly. It is not being read at all. I find the exact reason in the raw response, fix it inside your codebase, make Google come back and look again, and then do the ranking work your site could not use before.

Free, and a real person reads it. I check your canonicals, your render mode, your sitemap, your schema, and whether AI crawlers can reach you at all.

Why the fix you already made did nothing

Built is not indexed, and indexed is not ranked.

Three separate clocks, and the tools only show you the first one. Most vibe coded businesses that try to fix this themselves get the build right and then wait months for nothing, because nobody told them the second clock has to be started by hand.

01

The build clock

Starts when you fix the code. Stops the same day. Server rendering, canonicals, and a real sitemap can be corrected in an afternoon.

Fixed in hours

02

The index clock

Starts only when Google re-fetches the corrected page. On a young domain that has already been filed as duplicates, it does not start on its own. Somebody has to request it, page by page.

Forced, then weeks

03

The rank clock

Starts once the page is indexed and eligible. This is where ordinary SEO finally applies: the query map, the page copy, the links, the profile. It cannot start before the other two.

Months, and it compounds

What the x-ray checks

Six checks, each with the evidence and the fix.

These come from real sites I have diagnosed, not from a checklist I copied. Every one is read from the raw server response, which is the only thing search engines see.

Check 1

The canonical points every page at the homepage

<link rel="canonical" href="https://yourbusiness.com/" />

What I find
One static file is served for every route, and it carries the homepage's canonical. Each page is telling Google, in writing, that it is a copy of the homepage. Google obeys and indexes one URL.
The fix
A per-route canonical rendered on the server, matching the sitemap string exactly, trailing slash included.
Check 2

The server HTML contains no words

<body><div id="root"></div></body>

What I find
The body is an empty root div. Everything a crawler could read is assembled later by JavaScript, and most AI crawlers, plus Google on a bad day, never run it.
The fix
Server-side rendering or prerendering so the title, headings, text, and schema arrive in the first response. This is a hosting setting, not a redesign.
Check 3

Every wrong URL returns 200

GET /this-page-does-not-exist -> 200

What I find
Type any nonsense path and the server sends the homepage with a 200 status. The 404 exists only in the JavaScript. To Google that is an infinite supply of homepage duplicates.
The fix
Real 404 responses at the server for anything that is not a route, so the crawl budget goes to pages that exist.
Check 4

The sitemap has no lastmod

<url><loc>…</loc><priority>0.8</priority></url>

What I find
The generated sitemap ships priority values Google ignores and no lastmod dates, which is the one field Google uses to decide whether to come back.
The fix
A sitemap that lists only real pages, with honest lastmod dates that change when the page does, submitted in Search Console.
Check 5

The schema is render-only

document.querySelectorAll("script[type=application/ld+json]").length // 0 in source

What I find
View source shows one shared block on every page, if any. The Service, FAQ, and breadcrumb schema you were told you have only appears after hydration, where most crawlers never look.
The fix
Per-page JSON-LD emitted on the server, verified by counting the blocks in the raw HTML, not in the browser inspector.
Check 6

Nothing ever asked Google to come back

URL Inspection -> Request indexing (per page)

What I find
Once Google files your pages as duplicates it records that decision and drops them to the bottom of the queue. A young domain will not be re-evaluated for months on its own.
The fix
Per-URL indexing requests in Search Console plus a sitemap lastmod change, so the corrected pages get re-fetched instead of ignored.

How the engagement runs

Four phases, in an order that cannot be skipped.

The order is the point. Ranking work on a page Google has not read is wasted money, and most of what vibe coded businesses have already paid for was exactly that.

  1. 01

    X-ray

    I fetch your site the way Googlebot and the AI crawlers do, byte for byte, and compare it with what a browser shows. You get a written report of what the crawler actually received, with the evidence attached. Free.

  2. 02

    Fix the read

    Canonicals, render mode, real 404s, sitemap, per-page titles and schema in the server response. Done in your codebase, in your repo, without touching the design you built.

  3. 03

    Force the recrawl

    The fix is invisible until Google looks again. I request indexing page by page, change the lastmod signals, and watch Search Console until the pages move from excluded to indexed.

  4. 04

    Rank

    Now the site can use normal SEO. A keyword-to-page map from real search data, page copy that answers the query, internal links, and a Google Business Profile if you serve a local area.

Proof, not promises

What indexed and ranked looks like in the dashboard.

The first two are new sites taken from launch to their first real traffic, one of them designed, built, and written with an AI-native workflow. The other two are what the rank clock looks like once it has been running for a while.

Google Search Console
Google Search Console chart for a new technology website showing growth from zero to 481 clicks and 211K impressions in three months

481

clicks from launch · 3 months

A new tech site to 481 clicks and a climbing curve in 90 days

Google Search Console
Google Search Console 28-day chart for a film camp website showing 312 clicks, 14.2K impressions, and 2.2 percent CTR in the first month of SEO

312

clicks in 28 days · First month

312 clicks in the first 28 days of SEO

Google Search Console
Google Search Console performance chart for a Queens dermatology and medspa clinic showing 10.8K clicks and 1.86M impressions over three months

10.8K

organic clicks · 3 months

10.8K clicks from 1.86M impressions for a Queens dermatology clinic

Google Search Console
Google Search Console chart for a law firm showing 23.3K clicks and 3.55M impressions over six months

23.3K

organic clicks · 6 months

23.3K clicks from 3.55M impressions in six months

All numbers are taken directly from Google Search Console, Google Business Profile, GA4, Bing Webmaster Tools, and the Microsoft AI Performance dashboard for active clients and owned projects. Names withheld at client request.

Every builder, the same job

I have x-rayed sites from every one of these.

The tool changes where the failure sits. It does not change what has to be true for a page to be read: the words in the server response, one honest canonical per URL, real 404s, and a sitemap Google can trust.

  • Lovable

    React and Vite SPA by default; SSR is a setting, not the default.

  • Cursor

    Whatever the prompt produced. Usually Next or Vite, usually client-only.

  • v0

    Next.js output that still needs metadata, canonicals, and a sitemap wired in.

  • Bolt

    Vite SPA with a shared index.html for every route until told otherwise.

  • Replit

    Anything. The hosting layer is where the 200-for-everything problem lives.

  • Framer and Webflow AI

    Rendered HTML, so the failures move to duplicate pages and thin templates.

Want the site built right the first time instead? That is the design service. Want to be the name AI gives? That is AI search.

Questions

What vibe coded businesses ask about getting indexed.

What is vibe code SEO?

SEO for websites that were built by describing them to an AI tool, such as Lovable, Cursor, v0, Bolt, or Replit. Those sites fail search in a specific, predictable way that ordinary SEO audits do not catch, because the audit tools read the rendered page and the search engines read the raw response. Vibe code SEO starts from the raw response, fixes what the crawler receives, forces the recrawl, and only then does the ranking work.

My site is on Google. It is just the homepage. Is that the same problem?

Yes, and it is the most common version of it. The homepage indexes because its canonical points at itself. Every other page carries the same canonical, so Google files them as copies of the homepage. Your site is indexed as one URL.

Will you need to rebuild my site?

Almost never. The fixes live in the document head, the render mode, the routing, and the sitemap. I make them inside your existing codebase, on a branch you can review, and your design stays exactly as you built it. If yours is the rare build that genuinely cannot be fixed in place, I will say so before any work starts.

I already switched on server rendering. Why has nothing changed?

Because fixing the build and fixing the index are two separate clocks. Google recorded its duplicate decision and stopped coming back. Nothing forces it to re-read the corrected pages until someone requests it, page by page, and gives it a fresh lastmod signal. That step is part of every engagement, and it is the one most people skip.

Can you use the Indexing API or IndexNow to speed it up?

No, and I will not pretend otherwise. Google's Indexing API officially covers job postings and live broadcast events only, and Google does not use IndexNow. The honest route is per-URL indexing requests in Search Console plus correct lastmod dates, and then patience measured in weeks, not months.

How long until my pages are indexed and ranking?

Indexing usually moves within a few weeks of the fix plus the recrawl requests, and I show you the Search Console coverage report as it changes. Ranking depends on your market and your authority, the same as any site. What I can promise is that the site will finally be eligible, which it was not before.

What do you need from me to start?

Your URL, access to your repository or builder project, and Search Console. If Search Console is not set up yet, that is the first thing we do together, because every step after it is measured there.

Work with Ashikur Rahman

Find out what Google actually receives from your site.

Send me the URL. You get a written x-ray of the raw response, the exact reasons your pages are not indexed, and what I would do about each one. Free, and I read every one myself.