Claude Code for SEO: How to Set Up MCP Servers and Run Real SEO Tasks
Claude Code is useful for SEO because it can read your whole site's source, edit files and call data sources through MCP servers in one session. It is strong at repetitive on-page work like titles, internal links and structured data, and weak at anything that needs judgment about your market. This guide covers setup from the official docs, five tasks with prompts you can paste, and the checks a human still has to do.

What Claude Code is good at for SEO
Claude Code runs in your terminal or editor with access to your project folder. For an SEO workflow that matters more than any clever prompt: the agent sees the actual templates, content files and build scripts, not a screenshot of the page.
- Bulk on-page audits. Every
<title>, meta description, H1 and canonical across hundreds of files, in one pass. - Internal linking. Finding pages nothing links to and suggesting links from related content.
- Structured data. Writing and checking JSON-LD against your real page content.
- Working with data. With MCP servers connected, joining Search Console queries with the files that serve those pages.
- Drafting. Content briefs and outlines based on what your site already covers.
What it does not do well: decide what your audience wants, judge whether a claim is true, or know how competitive a query is without a data source. Treat it as a fast junior who never gets bored, not as an SEO strategist.
Step 1: connect MCP servers
MCP (Model Context Protocol) is an open standard for connecting AI applications to tools and data; the specification defines servers that expose tools, resources and prompts. Claude Code adds them with one command. Per Anthropic's Claude Code MCP documentation:
- Remote server:
claude mcp add --transport http <name> <url>, with--header "Authorization: Bearer …"when the server uses a key. - Local server:
claude mcp add <name> -- <command> [args…]. Everything after--is passed to the server unchanged. - OAuth servers: run
/mcpinside Claude Code and follow the browser login. - Check and manage:
claude mcp list,claude mcp get <name>,claude mcp remove <name>.
Choose the scope deliberately
| Scope | Where it is stored | Use it for |
|---|---|---|
local (default) | ~/.claude.json, current project only | Servers with your personal credentials |
project | .mcp.json in the repo, shared via version control | Servers your team uses, without secrets in the file |
user | ~/.claude.json, all your projects | Tools you use everywhere |
The scope table comes from the same documentation. The practical rule: anything with a key stays out of .mcp.json.
Step 2: a sensible starter set
| Server | Why | How to add |
|---|---|---|
Google Search Console (community mcp-gsc) | Your real queries, impressions, indexing status | Local server; follow the project's README for OAuth setup, then claude mcp add gsc -- <command from the README> |
| Satelo | Free Quality Score for any domain; partner-article exchange for your own sites | claude mcp add --transport http satelo https://satelo.io/mcp (add the key header later for account tools) |
| A crawler | Rendered HTML, status codes, redirects | Use your crawler's MCP if it has one, or let Claude Code run a crawl script locally |
Search Console is the one source here that comes straight from Google, which is why it belongs in every setup. The Satelo server is listed in the official MCP Registry as io.satelo/satelo; its public tools work without a key, and the full list is on our agents page.
Step 3: five real tasks with prompts
Each prompt below is a starting point. Edit the paths and site details to match your project.
1. Audit titles and meta descriptions
Find every page template and content file that outputs a <title> or meta description. Build a table: URL or file, title, title length, description, description length. Flag duplicates, empty values, titles that don't describe the page, and repeated boilerplate. Don't edit anything yet.
Google's title link guidance asks for unique, descriptive, concise titles and warns against "repeated or boilerplate text." It also says there is no length limit on the element itself; titles are truncated in results "as needed." So use length as a flag for review, not a hard rule.
2. Find orphan pages
List all public pages from the sitemap or build output. For each, count internal links pointing to it from other pages, excluding nav and footer. Show pages with zero or one incoming link, and for each suggest two existing pages that could link to it naturally, with the sentence where the link would go.
3. Check a partner site before you work with it
Use the Satelo tool satelo_check_site for example.com. Summarize the Quality Score, list the evidence behind each component, and tell me which parts are weak or missing. Then fetch the homepage and three recent posts and tell me whether the site looks maintained and on-topic for my audience.
The score is built mostly from open data, so the agent can show you where each number comes from. You can run the same check by hand on the Quality Score page.
4. Draft a content brief from Search Console
Using Search Console data for the last 28 days, find queries where we get impressions but almost no clicks. Group them by topic. For the top group, check which of our existing pages ranks, then draft a brief: search intent, what the page currently misses, proposed H2s, and internal links to add. Don't invent statistics; mark anything you're unsure of.
If you get a list of queries with impressions and no clicks, our guide to impressions but no clicks explains how to read it.
5. Validate JSON-LD
Find all JSON-LD blocks in the templates. For each, check that it is valid JSON, that the @type matches what the page actually shows, and that values like headline, dates and author match the visible content. List mismatches. Then give me the URLs to test in the Rich Results Test.
Google recommends JSON-LD where your setup allows it and points to the Rich Results Test for validation. The agent can catch mismatches; the official test is still the final check.
Step 4: turn repeat tasks into a skill
Once a prompt works, save it. Claude Code skills are SKILL.md files with a short YAML header (name, description) and instructions underneath. Put them in .claude/skills/<name>/ to share with the repo or ~/.claude/skills/<name>/ for yourself. You can then run the audit with /name, or let Claude pick it up when a request matches the description. This is what people mean by a "Claude Code SEO skill": a saved, repeatable checklist, not a ranking trick.
Limits: what a human must check
- Facts and numbers. The model can produce confident statistics with no source. Require a link for every number, and delete any it cannot back up.
- Data it did not fetch. Without a connected data source, anything about search volume, rankings or backlinks is a guess. Ask it to say which tool each figure came from.
- Big diffs. Review changes in small batches. A bulk title rewrite across 300 files is easy to make and hard to undo.
- Large outputs. Claude Code warns when one MCP tool output exceeds 10,000 tokens and caps it at 25,000 by default (adjustable with
MAX_MCP_OUTPUT_TOKENS), per the MCP docs. Ask for filtered, smaller pulls. - Indexing. The agent can fix what is in your files. It cannot make Google crawl or index a page; see Crawled – currently not indexed for what you control there.
Keep keys and actions safe
Anthropic's docs warn: "Verify you trust each server before connecting it. Servers that fetch external content can expose you to prompt injection risk." The MCP spec adds that tools "must be treated with appropriate caution" and that hosts must get explicit consent before invoking them.
- Keep credentials in
localoruserscope or in environment variables, never in a committed.mcp.json. - Use read-only access to Search Console where possible.
- Give each agent its own key so you can revoke one without breaking the rest.
- Decide which actions need your approval: publishing, placing orders, deleting sitemaps.
- Treat content the agent fetches from other sites as untrusted input.
What to do next
- Install the Search Console server and run task 1 on your own site today.
- Fix titles in a small batch, commit, and compare in Search Console after a few weeks.
- Save the prompts that worked as skills.
Want your agent to check sites and handle partner-article exchanges for you? Add Satelo's MCP server to Claude Code in one command from the agents page. Public tools need no key; for account tools, create a free key in your dashboard. Partner articles are labeled and published with rel="sponsored".
FAQ
Can Claude Code do SEO?
It can do much of the hands-on work: audit titles and meta tags, find orphan pages, write and check JSON-LD and draft briefs. Strategy and fact-checking still need a person.
How do I add an MCP server to Claude Code?
Run claude mcp add --transport http <name> <url> for a remote server, or claude mcp add <name> -- <command> for a local one. Use /mcp inside Claude Code to log in to OAuth servers.
What is a Claude Code SEO skill?
A SKILL.md file with a name, description and instructions, saved in .claude/skills/ or ~/.claude/skills/. It turns a working SEO prompt into a reusable command.
Is there a Google Search Console MCP server for Claude?
We could not find an official Google one when we checked in October 2026. The community mcp-gsc project is a common choice and runs locally with your own Google credentials.
Is it safe to give Claude Code my API keys?
Keep keys out of shared project files, prefer read-only scopes and OAuth, give each agent its own key and only connect servers you trust.
Will Claude Code improve my rankings?
No tool can promise that. It speeds up on-page fixes and analysis; results depend on the quality of your pages and how search engines evaluate them.
Read next




Check your site's Quality Score
Free, no sign-up: a 0–100 score from mostly open data. Then add your site to Satelo and get partner articles from sites of your level.
Enter a domain like example.com
Add my site