SEO with coding agents: what the agent fixes, and the data it needs
If Claude Code, Cursor or an AI app builder writes your site, most of the SEO work is already within reach: titles, rendering, links, sitemaps and pages are code. What the agent cannot see is search itself: which searches show your pages, where they sit, who beats you. These guides cover both halves and the loop that joins them.
By Théophile Louvart, founder of Porteur · Updated 23 September 2026 · Markdown
The split that decides the work
An agent in your repository reads every route, every template and every link. It can give each page its own title, make the first HTML response carry the content, return a real 404 for a path that does not exist, and write the sitemap. That is most of technical SEO, and an agent does it in minutes.
It cannot tell which of those changes matter. Whether /pricing is shown for "yourproduct pricing" at position 11, whether a rival holds the search your category is won on, whether a page lost half its impressions last month: that lives in Search Console and in search data, outside the repository. An agent that edits without it guesses, and a guessing agent rewrites pages that were working.
| The agent sees | The agent does not see |
|---|---|
| Titles, descriptions, headings, canonicals per route | Which searches each page is shown for |
| Whether the HTML carries the content before JavaScript | Positions, impressions and clicks |
| Internal links, sitemap, robots.txt, structured data | Who else ranks, and how strong they are |
| The copy on every page | Whether a change worked four weeks later |
Sites built by an app builder
Lovable, Bolt, v0 and Replit produce very different stacks, and the stack decides the first problem. A client-rendered single page app sends Google an almost empty page and every route under one title; a server-rendered one does not. Check what your own project uses before you follow any advice written for a tool in general: open the page source, not the inspector.
Most sites from a builder that do not show on Google have a simpler problem: they are new, nothing links to them, and Search Console has never been opened. The guide on AI-built sites puts the causes in the order they usually occur.
The first hour in your repository
Before any content work, ask your agent to check the five things that stop a page from being read at all. Each is a question with a yes or no answer, and each has a fix that fits in one commit.
| The check | How to see it | What fixed looks like |
|---|---|---|
| The first HTML response holds the page's text | curl the page and search the output for a sentence you can read on screen | The sentence is in the response, before any script runs |
| Each route has its own title and description | curl three routes and compare their title tags | Three different titles, each naming what the page is for |
| A path that does not exist answers 404 | curl -I a made-up path such as /no-such-page | The status line says 404, not 200 |
| Links between pages are real links | Search the built HTML for a href pointing at your main pages | Every page is reachable from another through an a element with an href |
| The sitemap lists the public routes | Open /sitemap.xml and compare it with the routes in the code | Every public route once, no private ones, no redirects |
Once those pass, the site can be read, and what remains is whether it deserves to be shown: which searches it answers, and how well. That half needs figures from outside the repository, which is where the next section starts.
Giving the agent the search data
There are three ways to put search data in front of an agent, from the cheapest to the most complete. An export from Search Console, pasted or saved in the repository, is enough for a small site and a first session. A Search Console MCP server lets the agent query your own figures while it works. A report that already joins your figures with the searches around you and your rivals gives it findings instead of rows.
Read before you write
Pages at positions 4 to 20, pages shown often and rarely clicked, pages losing impressions. Improving a page that is nearly there beats writing a new one.
One finding, one change
Give the agent one page and one reason. A change small enough to judge is a change you can keep or undo.
Date it
Note the day each change shipped. Search Console lags two to three days, and a fair comparison is 28 days against the 28 before.
Judge it, then do the next one
Keep what moved, undo what fell, and let the next round start from what the figures say.
What never to hand over
An agent can write a hundred pages in an afternoon, and that is the trap. Google's spam policies call it scaled content abuse when many pages are made mainly to rank, whoever or whatever wrote them. Pages from a keyword list with nothing of their own do not rank, and they can pull the rest of the site down with them.
The order to read the guides
- Why a site built with an AI builder is not on Google, and the checklist for the first four weeks.
- What Claude Code can fix in your repository, and what it needs from you.
- An SEO skill for Claude Code, written out whole to copy.
- Connecting Search Console to Claude or Cursor through MCP.
- What an SEO agent can run on its own, and where it goes wrong.
- The rendering guides: Lovable, single page applications, React.
The guides, in the order to read them
8 guides on the theme, each on one question, each ending in your own figures.
- SEO for sites built with AI app builders: Lovable, Bolt, v0 and ReplitGuide
Built your site with Lovable, Bolt, v0 or Replit and Google does not show it? The five usual causes, a 30-minute checklist and the first four weeks.
- Claude Code for SEO: what it can fix in your repository, and what it cannot seeGuide
Use Claude Code for SEO: what it fixes in your repo, the search data it lacks, how to bring that data in, a worked session and rules for CLAUDE.md.
- A Claude SEO skill for your repository: what it should hold, and one to copyGuide
A complete Claude Code SEO skill to paste into .claude/skills: what it checks in your repo, the findings it writes, what it cannot see, and how to adapt it.
- Google Search Console MCP: giving Claude or Cursor your search dataGuide
What a Google Search Console MCP server is, the three ways to get one, setup for Claude Code and Cursor, the prompts worth asking, and how to keep it safe.
- SEO AI agents: what an agent can do for a small site, and where it goes wrongGuide
What an SEO AI agent is, the loop that works for a small site, where agents go wrong, and a table of what to automate, review and never delegate.
- Lovable SEO: why older Lovable sites were not indexed, and what to check nowGuide
Is Lovable good for SEO? It depends on the project's age. How to tell which you have, test what crawlers get, and the checklist still yours to do.
- Single page application SEO: rendering, routes and status codes that Google can readGuide
Are single page applications bad for SEO? The six failure points with a test for each, the fixes ranked by effort, and host rules for real 404s.
- React SEO: making a React app readable by Google and by AI crawlersGuide
Is React bad for SEO? How to tell what your React app sends crawlers, set per-route titles in React 19, prerender routes and avoid the React traps.
The free tools
Each checks one thing on one page or one site, without an account, and says what it found in words.
- On-page SEO checkerFree tool
Paste a URL and get the page read as a crawler reads it: title, description, canonical, indexability, headings, alt text, links, share tags, what to fix first.
- Server response checkerFree tool
Paste a URL and time the server's answer: time to first byte, HTTP/2 or HTTP/3, brotli or gzip, Cache-Control, HSTS, the headers that decide when a page starts.
- robots.txt testerFree tool
Paste a site, paths and a crawler: what its robots.txt allows by the rules Google reads with, the rule that decided each, why it won, and the file mended.
- Sitemap checkerFree tool
Read a sitemap the way a crawler does: what it lists, how it is dated, whether robots.txt names it, and whether thirty of its addresses answer 200.
- AI crawler access checkerFree tool
Paste a site or a page and see, crawler by crawler, whether it may read it: root and page, the rule that decides, the text without JavaScript, llms.txt.
- Structured data checkerFree tool
Read the JSON-LD on a page: every type, the rich result each can earn, the required and recommended fields it lacks, and a mended copy of each node.
The words
What each term means for a small site, and what to do about it.
- Agentic SEOGlossary
Agentic SEO is search work done by AI agents that read data, edit pages and publish in a loop. What it means for a small site, and its traps.
- Model Context Protocol (MCP)Glossary
The Model Context Protocol in plain words: how MCP servers give Claude or Cursor your data, what that means for SEO work, and what to check before connecting.
- PrerenderingGlossary
Prerendering means producing a page's HTML before the request. How it differs from SSR and dynamic rendering, how to test it, and where it becomes cloaking.
- RenderingGlossary
Rendering is how Google executes your JavaScript and CSS after crawling HTML, which can delay indexing. Here is what to check and how to fix it.
- JavaScript SEOGlossary
What JavaScript SEO means, how Googlebot renders, what breaks, how to fix links and content, and how to choose SSR or SSG so pages index fast.
- Soft 404Glossary
A soft 404 answers with a success status while being an error or an empty page. How Google detects it, where it shows, and the fix for each cause.
- Canonical URLGlossary
A canonical URL names the original version of a page. Use it to handle parameters and duplicates, avoid split signals and keep the right page indexed.
Questions
It can do the part that lives in code: metadata, rendering, links, sitemaps, structured data and copy. It cannot see which searches show your pages or who beats you, so on its own it guesses what to change. Give it your Search Console figures and one finding at a time.
Not by itself. What matters is whether the first HTML response carries the content and each route has its own title, which depends on the stack your project was generated with. Check the page source of your own site before changing anything.
Let it draft pages you have decided on from real demand, with the facts it needs, and read every page before it ships. Do not let it generate pages from a keyword list: that is what Google's policy on scaled content abuse describes.
It lets the agent query your data while it works, instead of you pasting an export. For SEO that usually means Search Console, so the agent can pick the page close to the first page before it edits anything.
Check my site, free
Before your agent changes anything, see who holds the searches around your product: the free check reads your site, those searches and the rivals on them from a URL in about thirty seconds.
- Free check, no card
- Read-only, your own accounts
- Readable by your agent