DJ
DataJelly
Visibility Test
EdgeGuard
PricingSEO ToolsGuidesGet Started
Dashboard
Back to all posts
March 2026

The SEO Foundation Checklist for Lovable Sites

Sitemap.xml, robots.txt, Google Search Console & Tag Manager — the 15-minute setup that makes everything else work.

Reading progress0%

On This Page

You've built something great with Lovable. The design is polished, the copy is sharp, and the product works. But here's the uncomfortable truth: none of it matters if search engines can't find you.

Before you think about backlinks, content marketing, or paid ads, there are four foundational pieces of infrastructure that determine whether your site is even eligible to appear in search results and AI answers. They take about 15 minutes to set up, and skipping them is the single most common reason new Lovable sites get zero organic traffic.

Why SPAs need extra attention

Lovable builds single-page applications (SPAs) with React. Search engines can render JavaScript, but they're slower and less reliable at it than reading static HTML. These config files bridge that gap — they tell crawlers exactly what exists, what's allowed, and where to look.

1. Sitemap.xml — Your Site's Table of Contents

A sitemap is an XML file that lists every page on your site. It's the single most reliable way to tell Google, Bing, and AI crawlers what content exists and when it was last updated. Without it, crawlers rely on following links — which in an SPA can mean they only ever see your homepage.

How to create one in Lovable

Create a file at public/sitemap.xml in your Lovable project. This file gets served at yourdomain.com/sitemap.xml automatically.

public/sitemap.xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://yoursite.com/</loc>
    <lastmod>2026-03-30</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://yoursite.com/pricing</loc>
    <lastmod>2026-03-30</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://yoursite.com/about</loc>
    <lastmod>2026-03-30</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
</urlset>

Common mistakes

  • Forgetting to update lastmod dates when content changes
  • Including non-canonical URLs (e.g., both /about and /about/)
  • Listing pages that return 404 or redirect
  • Not including new routes as you add pages

→ Validate yours with the DataJelly Sitemap Validator

2. Robots.txt — The Permissions File

robots.txt tells crawlers what they're allowed to access. It's the very first file most bots request when visiting your domain. If it's missing, misconfigured, or overly restrictive, you may be invisible without knowing it.

Recommended config for Lovable sites

public/robots.txt
# Allow all bots — including AI crawlers
User-agent: *
Allow: /

# Point crawlers to your sitemap
Sitemap: https://yoursite.com/sitemap.xml

Don't block AI crawlers

Some templates include Disallow rules for GPTBot, ClaudeBot, or other AI crawlers. Unless you have a specific reason, don't do this. AI-powered search (ChatGPT Search, Perplexity, Google AI Overviews) is a growing traffic source. Blocking these bots means your site won't appear in AI-generated answers.

→ Test yours with the DataJelly Robots.txt Tester

3. Google Search Console — Your Indexing Dashboard

Google Search Console (GSC) is free and gives you direct visibility into how Google sees your site. It shows which pages are indexed, which queries drive impressions, and any crawl errors Google encounters. It's non-negotiable.

Setup steps for Lovable sites

  1. Create a property — Go to search.google.com/search-console and add your domain.
  2. Verify ownership — Use a DNS TXT record (recommended) or add the HTML meta tag to your index.html.
  3. Submit your sitemap — Navigate to Sitemaps → enter your sitemap URL → Submit.
  4. Request indexing — Use the URL Inspection tool to request indexing for your most important pages.
  5. Monitor weekly — Check the Coverage report for crawl errors, and the Performance report for search queries.

Pro tip: Striking distance queries

Once you have 2–4 weeks of data, look for queries where you rank positions 5–15 with decent impressions. These "striking distance" keywords are your fastest growth opportunity — small content or title optimizations can push them into top 3.

→ Read our full Search Console strategy guide

4. Google Tag Manager — Understand What's Working

Google Tag Manager (GTM) is a container that lets you deploy tracking scripts — Google Analytics, conversion pixels, heatmaps — without touching your codebase. For Lovable sites, it's the cleanest way to track user behavior.

Why GTM instead of raw GA4 code?

  • No deploys needed — Add or update tags from the GTM web interface.
  • SPA-friendly — Built-in History Change triggers that detect client-side route transitions.
  • Conversion funnels — Track CTA clicks, form submissions, and signup completions with Click and Custom Event triggers.
  • Future-proof — Add Meta Pixel, LinkedIn Insight, or any other tag without code changes.

Adding GTM to a Lovable site

Add the GTM snippet to your index.html file. Place the script tag in <head> and the noscript fallback after <body>:

index.html (head section)
<!-- Google Tag Manager -->
<script>
  (function(w,d,s,l,i){w[l]=w[l]||[];
  w[l].push({'gtm.start': new Date().getTime(),
  event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';
  j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;
  f.parentNode.insertBefore(j,f);
  })(window,document,'script','dataLayer','GTM-XXXXXXX');
</script>

SPA event tracking checklist

  • Enable the History Change trigger for virtual pageviews
  • Create Click triggers for primary CTAs (e.g., "Start Free Trial")
  • Push dataLayer.push events for form submissions
  • Set up GA4 conversion events for signup completions

The 15-Minute Setup Checklist

  1. 3 min

    Create public/sitemap.xml

    List every route with priority and lastmod dates.

  2. 2 min

    Create public/robots.txt

    Allow all bots. Add Sitemap directive. Don't block AI crawlers.

  3. 5 min

    Set up Google Search Console

    Add property, verify with DNS or meta tag, submit sitemap.

  4. 5 min

    Install Google Tag Manager

    Add snippet to index.html. Enable History Change trigger for SPA tracking.

Quick Test: What Do Bots Actually See?

~30 seconds

Most people guess. Don't.

Run this test and look at the actual response your site returns to bots.

1

Fetch your page as Googlebot

Use your terminal:

curl -A "Googlebot" https://yourdomain.com

Look for:

  • Real visible text (not just <div id="root">)
  • Meaningful content in the HTML
  • Page size (should not be tiny)
2

Compare bot vs browser

Now test what a real browser gets:

curl -A "Mozilla/5.0" https://yourdomain.com

If these responses are different, Google is indexing a different page than your users see.

Stop guessing — measure it.

Real example: 253 words vs 13,547

We see this constantly. Here's a real example from production: Googlebot saw 253 words and 2 KB of HTML. A browser saw 13,547 words and 77.5 KB. Same URL — completely different content.

Bot vs browser comparison showing 253 words for Googlebot vs 13,547 words for a rendered browser on the same URL

If your HTML doesn't contain the content, Google doesn't either.

Compare Googlebot vs browser on your site → HTTP Debug Tool
3

Check for common failure signals

We see this all the time in production:

  • HTML under ~1KB → usually empty shell
  • Visible text under ~200 characters → thin or missing content
  • Missing <title> or <h1> → weak or broken page
  • Large difference between bot vs browser HTML → rendering issue

Use the DataJelly Visibility Test (Recommended)

You can run this without touching curl. It shows you:

  • Raw HTML returned to bots (Googlebot, Bing, GPTBot, etc.)
  • Fully rendered browser version
  • Side-by-side differences in word count, HTML size, links, and content
Run Visibility Test — Free

What this test tells you (no guessing)

After running this, you'll know:

  • Whether your HTML is actually indexable
  • Whether bots are seeing partial content
  • Whether rendering is breaking in production

This is the difference between "I think SEO is set up" and "I know what Google is indexing."

If you don't understand why this happens, read: Why Google Can't See Your SPA

If this test fails

You have three real options:

SSR

Works if you can keep it stable in production

Prerendering

Breaks with dynamic content and scale

Edge Rendering

Reflects real production output without app changes

If you do nothing, you will not rank consistently. Learn how Edge Rendering works →

This issue doesn't show up in Lighthouse. It shows up in rankings.

Run the TestAsk a Question

Frequently Asked Questions

Do I need a sitemap.xml for a Lovable site?

Yes. Lovable builds single-page apps (SPAs) where all routes are rendered client-side. Without a sitemap.xml, search engines have no reliable way to discover your pages. Create a static sitemap.xml in your public/ folder listing every route you want indexed.

What should my robots.txt file include?

For most Lovable sites, keep it simple: allow all bots access to all paths, and point to your sitemap. A good default is 'User-agent: * / Allow: / / Sitemap: https://yourdomain.com/sitemap.xml'. Avoid blocking JavaScript or CSS files — search engines need them to render your pages.

How do I submit a Lovable site to Google Search Console?

Create a Google Search Console property for your domain. Verify ownership using a DNS TXT record (recommended) or by adding the HTML meta tag to your index.html. Once verified, submit your sitemap URL under Sitemaps → Add a new sitemap. Google will begin crawling within 24–48 hours.

Why is Google Tag Manager important for SEO?

GTM itself doesn't directly affect rankings, but it enables you to track user behavior — which pages convert, where users drop off, and which CTAs get clicks. This data informs content and SEO strategy. Without analytics, you're optimizing blind.

What's the difference between sitemap.xml and robots.txt?

robots.txt tells crawlers what they're allowed to access. sitemap.xml tells crawlers what pages exist and where to find them. They complement each other: robots.txt sets permissions, sitemap.xml provides a directory. Both should live in your site's root (public/ folder in Lovable).

How do I track conversions with GTM on a single-page app?

SPAs don't trigger traditional page loads on navigation. Set up GTM to fire on History Change triggers (which detect client-side route changes) instead of Page View triggers. For CTA clicks, use Click triggers with CSS selectors targeting your buttons. Push custom dataLayer events for key actions like form submissions or signups.

Does Lovable generate a sitemap automatically?

No. Lovable is a client-side React framework, so you need to manually create a sitemap.xml file in the public/ directory. List each route with its priority and last modification date. Tools like DataJelly's Sitemap Validator can check your sitemap for errors after you create it.

How long does it take Google to index a new site?

Typically 2–7 days after submitting your sitemap to Google Search Console, though it can take up to 4 weeks for new domains with no backlinks. You can speed this up by requesting indexing for individual URLs in Search Console's URL Inspection tool.

What are the most common robots.txt mistakes?

The top three mistakes: (1) Blocking your own CSS/JS files, which prevents Google from rendering your pages. (2) Using 'Disallow: /' which blocks everything. (3) Forgetting to include a Sitemap directive. Also, don't block AI crawlers like GPTBot or ClaudeBot unless you have a specific reason — they drive an increasing share of referral traffic.

How do I verify my site in Search Console without DNS access?

If you can't add DNS records, use the HTML tag method: Google gives you a meta tag to add to your index.html file's <head> section. In Lovable, add it directly to the index.html file in your project root. Alternatively, upload the HTML verification file to your public/ folder.

Related Tools & Guides

Sitemap Validator

Check your sitemap for errors

Robots.txt Tester

Test bot access rules

Page Validator

Validate SEO signals on any page

Structured Data Validator

Validate your JSON-LD schema

Social Card Preview

Check OG metadata and preview cards

Visibility Test

See what bots see on your site

Lovable SEO Guide

Full SEO playbook for Lovable

Search Console Guide

Striking distance strategy

Lovable SEO Troubleshooting

Common issues & fixes

Sitemap Exists But Google Ignores Pages

Why discovery ≠ indexing

SPA SEO Checklist

10 things to fix for SPA visibility

DataJelly Guard

Continuous monitoring for broken pages

Reading progress0%

On This Page

Already set up the basics?

Run a free visibility test to see how search engines and AI crawlers actually see your site.

Test Your Visibility
DataJelly

SEO snapshots for modern SPAs. Making JavaScript applications search engine friendly with enterprise-grade reliability.

Product

  • DataJelly Edge
  • DataJelly Guard
  • Pricing
  • SEO Tools
  • Visibility Test
  • Dashboard

Resources

  • Blog
  • Guides
  • Getting Started
  • Prerendering
  • SPA SEO Guide

Company

  • About Us
  • Contact
  • Terms of Service
  • Privacy Policy

© 2026 DataJelly. All rights reserved. Built with love for the modern web.