Lovable
Make a Lovable project agent-ready: robots.txt, llms.txt, sitemap, and MCP endpoints.
Lovable projects are TanStack Start apps. AIScan grades them like any other SPA-style framework: most static signals live in public/, dynamic ones (sitemap, share cards, JSON-LD) live in route files. AIScan.site itself is a Lovable project — every example below is what runs in production here.
Files in public/
Drop these files at the project root and Lovable serves them from the site root automatically:
public/robots.txt— with explicit AI bot blocks and aSitemap:line.public/llms.txtandpublic/llms-full.txt— an index plus a fuller dump for agents that want everything in one go.public/CLAUDE.md— the human-friendly instructions for Claude Code-style agents.public/aiscan-skill.json— your Agent Skill descriptor.public/.well-known/api-catalog— RFC 9727 catalog if you expose an API.public/.well-known/mcp/server-card.json— your MCP server card.
Dynamic sitemap
Use a server route at src/routes/sitemap[.]xml.ts so the sitemap stays in sync with whatever rows live in your database. See the file in this repo for a working example.
Head metadata per route
Set per-route metadata via head() in createFileRoute. Each shareable route needs its own title, description, og:title, og:description, and canonical. AIScan checks these on every scan of your homepage; deeper pages benefit at share time.
export const Route = createFileRoute("/about")({
head: () => ({
meta: [
{ title: "About — Acme" },
{ name: "description", content: "How Acme came to be." },
{ property: "og:title", content: "About — Acme" },
{ property: "og:description", content: "How Acme came to be." },
{ property: "og:url", content: "https://acme.com/about" },
],
links: [{ rel: "canonical", href: "https://acme.com/about" }],
}),
component: AboutPage,
});MCP & .well-known
Add a server route at src/routes/api/mcp.ts (HTTP transport) and publish a card atpublic/.well-known/mcp/server-card.json. AIScan.site exposes its scanner this way — see MCP Server.
Prompt to ship it
Paste this into Lovable's chat after running AIScan on your project:
Take my AIScan report and apply every failing fix.
Use the project's existing /public/ directory for robots.txt, llms.txt,
CLAUDE.md, aiscan-skill.json, and .well-known files. If a fix needs a
server route, put it under src/routes/ following the TanStack Start
file convention. Don't change unrelated code. Show me the diff first.Further reading
- One h1, title, meta description and JSON-LD on Ghost, Lovable, Next.js, Replit, Webflow, Wix and WordPress
One page needs one <h1, a <title, a meta description and a JSONLD block, and AIScan check C3 structured HTML passes only when all four are in the HTML the server returns. Who writes each of the four…
- Fix soft 404s on Astro, Docusaurus, Lovable, Next.js, Webflow and Wix
A soft 404 is a page that says "not found" while the status line says 200. On the six platforms below, the default behaviour ranges from a correct 404 with a deadend body Webflow, Wix, Docusaurus…
- AI readiness setup guide by platform (2026)
Verified 17, 18, 20 and 22 October 2026. Updated on 22 October 2026. An AIready site needs six things: a robots.txt that names AI crawlers D1, B2, a sitemap D2, a declared feed E5, an llms.txt C2,…
- How to publish an RSS/Atom/JSON feed and declare it in the head on Lovable
A sitemap tells a crawler what exists. It does not tell an agent what changed since last week, and that gap is what check E5 grades: whether the site publishes a dated content feed at all. Run…
- Publish an MCP Server Card So Agents Can Find Your Tools
On 10 September 2026 we probed every host running a remote MCP server listed in the official MCP Registry: 79 domains, three requests each. Seven of them publish a parseable server card at…
- Your Next.js Site Ranks on Google and Is Invisible to ChatGPT: How to Prove It
Googlebot runs your JavaScript. The crawlers that build ChatGPT's and Claude's indexes, as far as anyone has measured, do not. That gap is why a React or Next.js site can hold page one on Google and…