Replit

Replit

Make a Replit-hosted site agent-ready: public assets, robots, and llms.txt.

Replit hosts a wide range of stacks — Vite, Next.js, Express, Flask, raw Node. AIScan's advice depends on which template you started from, but the file conventions are usually the same as the underlying framework.

Where files live

  • Vite / React templates — drop static files in public/. Vite copies them to the build root.
  • Next.js templates — also public/.
  • Express / Flask — serve from a static/ directory and add explicit routes for /robots.txt, /llms.txt, and /sitemap.xml.

robots.txt

The same template AIScan recommends for everyone:

User-agent: *
Allow: /

User-agent: GPTBot
Allow: /

User-agent: ClaudeBot
Allow: /

User-agent: PerplexityBot
Allow: /

Sitemap: https://your-repl.replit.app/sitemap.xml

llms.txt

Same format as everywhere — an H1, a one-line summary, then ## sections of markdown links. Static templates: drop the file. Server templates: serve it from your app:

// Express example
app.get("/llms.txt", (_, res) => {
  res.type("text/plain").sendFile(path.join(__dirname, "llms.txt"));
});

Replit's "AI-built" templates often ship with a generic title like "Vite App" and no meta description. AIScan picks this up in the C3 check. Replace it with a real title and description per page — if you use React Helmet or your framework's head helper, do it there; otherwise edit index.html.

Deployment caveats

  • Always-on Repls — your .replit.app URL is stable; use it for canonical and the Sitemap: line.
  • Sleeping Repls — they wake on first hit, which can time out AIScan's fetch. Upgrade to Always-On or Deploy before you scan.
  • Custom domains — once attached, update robots.txt, canonical URLs, and sitemap entries to the custom domain.