Platform · Claude Code
Claude Code writes the code — and scaffolds nothing for SEO unless you asked it to.
Claude Code isn't a host or a site builder. It's an agentic coding tool that edits files and runs commands in your own repository, and the site it produces is a codebase you fully own and deploy anywhere — commonly Next.js, React, Astro, or plain static. That means no rendering model is imposed on you and no SEO layer is set up for you. The gaps aren't platform quirks; they're whatever you, or the agent, never explicitly added.
Building with Claude Code gives you more control than any managed builder — and hands you all of the responsibility that comes with it. Good SEO here is a set of lines you deliberately add to your own code, never a default you inherit.
- A hand-authored codebase you own — committed to your repo, deployable on any infrastructure.
- No imposed rendering model and no vendor SEO panel, default domain, or deployment type.
- The agent will add metadata, a sitemap, or structured data — but only when you ask, as code you review.
Full control is the selling point. It’s also why the SEO layer is so easy to never write.
The SEO layer Claude Code doesn't add for you
What a fresh build ships without
None of these are provided by default. On a Next.js/React codebase — the common Claude Code web stack — each is a line you have to write, and each is where visibility quietly leaks.
In the Next.js App Router these are set through the Metadata API (a metadata export or generateMetadata); the only tags a route emits on its own are the default charset and viewport (CC-004). Nothing describes your page to search or social until you add them.
A canonical is only emitted when you define it via alternates.canonical, with metadataBase supplying the absolute base (CC-007). Without one, variant URLs of the same page can compete for indexing.
Next.js will generate both from app/sitemap and app/robots file conventions — but neither exists until you add the file (CC-005). A fresh build has no sitemap and no robots directives at all.
Content that renders only client-side isn't in the initial HTML, and not all bots run JavaScript — so Google says server-side or pre-rendering is still the safer choice for content that must be crawled (CC-006). This is a choice in your code, not a setting.
Google uses structured data to understand a page and make it eligible for rich results, and recommends JSON-LD (CC-008). It is added by you; nothing generates it automatically.
Full control, read as a checklist
On a Claude Code site, almost nothing is given by default
Because Claude Code imposes no rendering model and no SEO configuration (CC-003), the split below is the whole story: the platform gives you a charset and a viewport tag, and everything else is yours to add and own (CC-004 · CC-005 · CC-007 · CC-008).
| SEO layer | Given by default | Yours to add and own |
|---|---|---|
| charset and viewport meta tags | ||
| Title, description, Open Graph metadata | ||
| Canonical URL | ||
| sitemap.xml and robots.txt | ||
| Structured data (JSON-LD) | ||
| Crawlable server-rendered HTML | Framework default | Your choice |
- charset and viewport meta tags
- Title, description, Open Graph metadata
- Canonical URL
- sitemap.xml and robots.txt
- Structured data (JSON-LD)
- Crawlable server-rendered HTML
- Framework default
- charset and viewport meta tags
- Title, description, Open Graph metadata
- Canonical URL
- sitemap.xml and robots.txt
- Structured data (JSON-LD)
- Crawlable server-rendered HTML
- Your choice
Why this is good news
How we make a Claude Code site legible to search
The fixes are commits, not a migration
We work in the repository Claude Code already gave you. Nothing here moves you to another platform — it fills in the SEO layer the agent never scaffolded.
- ReadFetch your deployed URL and look at the HTML a crawler actually receives.
- RenderConfirm content is server-rendered or static, not client-only (CC-006).
- DescribeAdd per-page metadata, canonical, and structured data in code (CC-004 · CC-007 · CC-008).
- DeclareShip sitemap.xml and robots.txt as app file conventions (CC-005).
- VerifyRe-fetch as a crawler and confirm each layer is present in the response.
You own the codebase (CC-002), so every fix lands as a reviewable commit — no lock-in, no re-build.
Related
Where to go next
- Service 01Search Foundation
The engagement that confirms your rendering model and implements the metadata, canonical, sitemap, and structured data a Claude Code build ships without.
- PlatformsOther platforms we work with
Lovable, Replit, Bolt, and v0 each impose or omit a rendering model differently — the SEO work shifts with the platform.
- Free · no emailRun a free visibility scan
See how a crawler receives your deployed site before you talk to anyone.
Start here
See which SEO layers your code actually ships
Run the free scan on your deployed Claude Code site — no score, no email. It reads your page the way a crawler does, so you can see at a glance which of these layers your code already has and which are still missing.
This is a narrow technical scan of the public page response. It does not measure rankings, content quality, backlinks, Google index coverage, or business opportunity.
Platform information last reviewed 20 July 2026. Platform capabilities change; every claim on this page is recorded, with its source and review date, in our internal research log and re-verified on a review cycle. Where behavior varies by configuration, we’ve worded it as a condition rather than a fixed fact.