FREE CHECKLIST

Why isn't my site showing up on Google?

When a new site — especially one vibe coded in an afternoon — isn't getting indexed, the problem is almost always in the same few places. Work down the list in order: every item tells you what to look at and how to fix it.

14 items · no sign-up · your ticks stay in this browser only

0 of 14 done

01

Access

Can Google even request the page? If this part is closed, nothing below it matters.

  • HOW TO CHECK

    WHY IT MATTERS

    A single line in robots.txt can close the whole site to crawling. Starter templates and preview environments add that line by default, and almost nobody opens the file again when going live.

    HOW TO CHECK

    Open yourdomain.com/robots.txt in a browser. If it says "Disallow: /" with no allow rule underneath, the entire site is closed.

    HOW TO FIX IT

    Delete the line. Blocking a page and adding a noindex tag at the same time does not work: the tag inside a blocked page can never be read, so the URL stays in limbo instead of dropping out of the index.

  • HOW TO CHECK

    WHY IT MATTERS

    One line (meta robots noindex) keeps a page out of the index. Templates add it during development, and forgetting to remove it at launch is the single most common mistake. The X-Robots-Tag header does the same job but never appears in the page source, so it is easy to miss.

    HOW TO CHECK

    Open the page source (Ctrl+U) and search for "noindex". For the header, open the Network tab in your browser's developer tools and read the response headers.

    HOW TO FIX IT

    Remove the tag. If your hosting provider is adding the header — preview deployments often do — you need to move to production on your own domain.

  • HOW TO CHECK

    WHY IT MATTERS

    The temporary preview URLs providers hand out are usually closed to indexing. Saying "I'm not on Google" before connecting a domain is premature, and if the preview URL stays reachable you end up publishing the same content in two places.

    HOW TO CHECK

    Confirm the real address in your browser's address bar, then try the old preview URL: does it still open?

    HOW TO FIX IT

    Connect the domain and set up a permanent redirect from the preview URL to the production one. If you can't redirect, at least close the preview to indexing.

  • HOW TO CHECK

    WHY IT MATTERS

    Google does not log in. A password-protected storefront, a "coming soon" page, or an app that only works behind a sign-in is an empty shell as far as Google is concerned.

    HOW TO CHECK

    Open the site in a private window. What you see there is what Google sees.

    HOW TO FIX IT

    At minimum, make your landing, category and content pages reachable without an account.

02

Visibility

Can Google actually see the content? This is where vibe-coded sites get stuck most often.

  • HOW TO CHECK

    WHY IT MATTERS

    In single-page apps (SPAs) the HTML arrives as an empty container and the text only lands once JavaScript runs. Google does run JavaScript, but in a second, delayed pass. New and unknown sites wait in that queue, which is why they can look unindexed for weeks.

    HOW TO CHECK

    Press Ctrl+U to view the page source — not the Inspect panel in developer tools, which shows the page after JavaScript has run. If you can't find your heading and first paragraph in the source, neither can Google.

    HOW TO FIX IT

    Use server-side rendering (SSR) or static generation (SSG); Next.js, Nuxt and Astro give you both out of the box. If you can't change the stack, at least make sure the title, description and main text are in the HTML.

  • HOW TO CHECK

    WHY IT MATTERS

    Everything after a # in a URL is never sent to the server. On a site built that way there is only one address as far as Google is concerned, and sub-pages can't be indexed separately.

    HOW TO CHECK

    Navigate to a sub-page and copy the address. If it contains a #, or if the address never changes as you click around, this is your problem.

    HOW TO FIX IT

    Switch to History API routing so each page gets its own path, like /products. In React Router, Vue Router and their equivalents this is a one-line setting.

  • HOW TO CHECK

    WHY IT MATTERS

    Google discovers a site by following links. A button that changes the page through code works fine in a browser but leaves no link in the HTML, so the target page stays orphaned even if it is listed in the sitemap.

    HOW TO CHECK

    Search the page source for your menu and category links. If there is no real a href in sight, there is no path for Google to walk.

    HOW TO FIX IT

    Use real anchor elements (or your library's Link component) in navigation and cards. Styling them like buttons is fine; what matters is that the HTML contains a destination.

03

The right URL

Does Google know which URL to index?

  • HOW TO CHECK

    WHY IT MATTERS

    This tag tells Google "this is the real address for this content". In templates it is often hardcoded and points at the template's own site or the preview domain. When that happens Google indexes that address instead of yours, and treats your page as a duplicate.

    HOW TO CHECK

    Search a few different pages' source for "canonical". The value should be that page's own full address, not the homepage and not another domain.

    HOW TO FIX IT

    Generate the canonical per page. If you can't produce the correct value, removing the tag entirely is better than leaving a wrong one.

  • HOW TO CHECK

    WHY IT MATTERS

    http and https, www and non-www are four separate addresses to Google. If all of them open, the same content is published four times over and none of the versions builds up value on its own.

    HOW TO CHECK

    Try all four in the address bar: http, https, with www and without. They should all end up on the same address.

    HOW TO FIX IT

    Pick one as the canonical address and set permanent redirects (301) from the others. In most hosting panels this is a single switch.

  • HOW TO CHECK

    WHY IT MATTERS

    If every page carries the same title, Google treats them as copies of each other and leaves most of them out. On generated sites the title is usually still the project name.

    HOW TO CHECK

    Open a few sub-pages and read the text in the browser tab. If it is identical everywhere, you have a problem.

    HOW TO FIX IT

    Generate the title and description per page. Around 50-60 characters for the title and 120-160 for the description is a good target, and both should describe what that page is about.

  • HOW TO CHECK

    WHY IT MATTERS

    A sitemap doesn't guarantee indexing, but it hands Google your list of addresses directly. On a new site whose internal linking is still thin, it is the fastest way to get pages discovered.

    HOW TO CHECK

    Check that yourdomain.com/sitemap.xml opens and contains real addresses, then confirm robots.txt still has the line declaring the sitemap URL.

    HOW TO FIX IT

    Turn on your tooling's sitemap generator, add the "Sitemap:" line to robots.txt, and submit it through Search Console.

04

Content quality

Does Google consider these pages worth indexing?

  • HOW TO CHECK

    WHY IT MATTERS

    Single-page apps return the homepage with a "success" (200) status for every unknown path. Google calls this a soft 404: every made-up or previously existing address looks like content, crawl budget is spent on them, and your real pages never get to the front of the queue.

    HOW TO CHECK

    Visit yourdomain.com/this-does-not-exist-12345. If the homepage or a normal page opens, you have soft 404s. The "Soft 404" row in the Pages report in Search Console says the same thing.

    HOW TO FIX IT

    Return a real 404 status for unknown addresses. If the address used to exist, though, a 404 is not the right answer: redirect it permanently to its new equivalent, because that is the only way the value built up on the old address carries over.

    How does no404 solve this?
  • HOW TO CHECK

    WHY IT MATTERS

    Pages that are three sentences long, straight out of a template, or still carrying placeholder text don't get indexed. Google extends limited trust to a new domain; if the first impression is weak, it puts the rest of your pages on hold too.

    HOW TO CHECK

    Open the Pages report in Search Console and look at the "Crawled - currently not indexed" row. Those addresses are usually the ones judged too thin.

    HOW TO FIX IT

    A handful of substantial pages beats a pile of empty ones. Rather than deleting pages that aren't worth publishing yet, mark them noindex.

  • HOW TO CHECK

    WHY IT MATTERS

    Search Console doesn't speed up indexing, but it is the only place that answers "why wasn't this indexed". Without it you are checking every item on this list by guesswork.

    HOW TO CHECK

    Go to search.google.com/search-console, add a property and verify your domain.

    HOW TO FIX IT

    Add the property, submit your sitemap, and query one page with the URL Inspection tool. On new sites, taking a few days to a few weeks for first indexing is normal, not a fault.

VIBE CODING AND INDEXING

Why do vibe-coded sites take longer to show up on Google?

The list applies to any site, but on sites that were vibe coded — described to a chat window rather than written by hand — the same three items come up red almost every time. The cause isn't bad code, it's the tools' defaults.

The default output is a single-page app

Site builders generate a browser-side single-page app (SPA) for speed and easy previews. Good for the visitor experience, but the hardest possible starting point for first indexing.

Everything is built on the preview URL

The site is developed on a preview domain, so canonical, sitemap and robots values are generated against that domain and then stay there. After you move to your own domain they keep pointing at the wrong place, and nobody notices.

Nothing is decided on the server

HTTP-level decisions like status codes, redirects and 404s are never made at all on static hosting. Visitors don't notice anything, but for Google half the site stays undefined.

THE MOST OVERLOOKED ITEM ON THE LIST

Soft 404s: returning the homepage for an address that doesn't exist

A site that returns its homepage for an address that doesn't exist is offering Google an unlimited supply of fake pages. Crawl budget gets spent on those invented addresses, real pages never reach the front of the queue, and the Search Console report fills up with "crawled - currently not indexed".

This is the one item out of fourteen that no404 solves. And when the address used to exist, returning a 404 isn't the right answer either: no404 compares the incoming address against your site's current catalog, finds the closest valid page and sends the visitor there with a permanent redirect. When nothing matches, the page honestly stays a 404. The other thirteen items are on your side.

COMMON QUESTIONS

About indexing

Why is my vibe-coded site nowhere on Google?
Usually not for one reason but three at once: the content isn't in the raw HTML, the canonical still points at the preview URL, and missing addresses return the homepage instead of a 404. None of that comes from bad code — it comes from the tools' defaults. Work through the Visibility and The right URL sections above first.
How long does it take for a new site to be indexed?
Anywhere from a few days to a few weeks is normal. With a sitemap submitted and none of the blockers above, the first pages usually appear within a week, while crawling the whole site can take months. If it has been over a month and Search Console shows no reason, the problem is usually in the access or visibility items.
Can I force Google to index my site?
No. The URL Inspection tool in Search Console lets you request indexing for a single address, and that does help for that one page, but Google still makes the decision. Requesting indexing will not make a blocked page, or one whose content it can't see, indexable.
Doesn't Google run JavaScript?
It does, but in two stages: the HTML is crawled first, then the page is queued for rendering. That queue doesn't move instantly and the share allocated to new sites is small. If your content is in the raw HTML, you never wait in that queue at all.
Is submitting a sitemap enough on its own?
No. A sitemap is a discovery aid, not a promise of indexing. A page that is blocked, marked noindex or judged too thin will not be indexed just because it is listed in the sitemap.
Do I need backlinks to get indexed?
Not strictly. A site set up in Search Console with a submitted sitemap gets indexed without any backlinks. That said, a new domain with no incoming links is crawled more slowly. It is a difference in priority, not a blocker.
Where does no404 fit into this list?
In exactly one item: the right answer for missing and deleted addresses. no404 compares the incoming address against your site's current catalog and redirects to the closest valid page; if nothing matches, it honestly leaves the page as a 404. The other thirteen items are on your side, and this page exists so you can work through them in order.

Next step: broken links

Once the indexing blockers are cleared, the next thing to deal with is the broken links inside your own site. They lose visitors and waste crawl budget at the same time.