Guide

How to use Claude for SEO

Claude is good at reading SEO data, spotting patterns, and writing briefs. It is only as accurate as the data in front of it. This guide covers the open-source Claude SEO plugin, the three ways to run Claude for SEO work, a fictional research session that shows how the connected tools are used, and the parts Claude cannot do.

Two meanings

What “Claude SEO” means: the project and the workflow

The phrase refers to two different things, and it helps to separate them before reading anything else.

  • The project. Claude SEO on GitHub is an open-source, MIT-licensed skill for Claude Code, published under the AgriciDaniel account. It adds slash commands such as /seo audit and /seo schema and is one of the things people mean when they search “claude seo”.
  • The workflow. Using Claude, in chat or in Claude Code, to do SEO work: keyword research, content briefs, on-page audits, Search Console analysis, and the decisions that follow.

The two overlap but are not the same. You can use Claude for SEO without the plugin, and you can use the plugin alongside other data sources. This page covers both, starting with how to pick an approach.

Pick a setup

Choose your approach: Claude chat, Claude Code, or SEO skills

The right setup depends on whether you are analysing data, changing a site, or running a repeatable checklist. Each column below is a real constraint, not a sales pitch.

ApproachGood forWhat it needsLimits
Claude chat (claude.ai, Desktop)One-off analysis, rewriting titles and meta descriptions, turning a spreadsheet into a shortlist, drafting briefsUploaded CSV exports from Search Console or a keyword tool, or a connected MCP server for live dataWithout a connector, every number is whatever you pasted. Search Console report exports have row limits, the API supports larger pulls, and downloaded files do not update on their own
Claude CodeWorking on the site itself: fixing titles, canonicals, internal links, schema, and sitemaps in the repo while checking data in the same sessionA local checkout of the site, plus MCP servers or skills for outside dataA terminal workflow, so it suits developers and technical marketers more than editors. Deploying is still a separate step
SEO skills and pluginsRepeatable checklists: on-page audits, schema generation, E-E-A-T review, content structure, reportingClaude Code, the installed skill, and usually your own API keys for any enriched dataA skill is a set of instructions and scripts. It sees pages it fetches; it does not see rankings, volume, or your Search Console unless you wire in a data source

These combine. A common setup is Claude Code with an SEO skill for the checklist work and an MCP server for the numbers. The rest of this page assumes you want data in the loop, whichever client you use.

The plugin

What the open-source Claude SEO plugin provides

The Claude SEO repository describes itself as a universal SEO skill for Claude Code, with 25 sub-skills and 18 sub-agents. It installs through the Claude Code plugin marketplace or a shell script and adds a family of /seo commands.

What it covers

At the time of writing the command list includes site and page audits, schema markup, technical SEO, content and E-E-A-T review, GEO and AEO for answer engines, local SEO, backlinks, image and hreflang checks, e-commerce and international SEO, semantic clustering, sitemap checks, and PDF or Excel reporting. That is a wide surface, and the checklists are the main value: they encode a consistent way of reviewing a page rather than leaving it to a prompt.

What it can see on its own

Out of the box the plugin fetches the URLs you point it at and reasons over the HTML, so audits, schema, and on-page checks work without any keys. Rankings, keyword volume, Search Console metrics, and backlink data are optional integrations. The README lists Google APIs such as Search Console and PageSpeed Insights, DataForSEO, Firecrawl, and several commercial SEO tools, and each one needs your own credentials. Without them, any number the plugin reports about demand or rankings is an estimate from the model, not a measurement.

It runs only inside Claude Code. If you use Claude on the web or in Claude Desktop, the plugin does not apply, though the same checklist ideas can be pasted in as instructions.

Live data

Where CalmSEO complements skills and plugins with live data

CalmSEO is a hosted SEO MCP server that works with Claude on the web, Claude Desktop, and Claude Code, with no API keys to manage and nothing to install locally. Once connected, Claude gains tools it can call for numbers.

  • Free, read-only Search Console. Six tools that return your own clicks, impressions, CTR, position, pages, queries, and sitemap status. Google grants only the read-only scope, so nothing can be changed through the connection. Tool by tool reference: Google Search Console MCP.
  • Paid SERP, keyword, and audit tools. search_serp (1 to 3 credits), get_keyword_search_volume (15), find_keyword_ideas (15 to 50), get_ranked_keywords (5 to 20), and audit_page (5). New accounts start with 20 free credits.

This sits next to a skill rather than replacing it. The plugin decides how to audit; CalmSEO answers what people search for, who ranks today, and how your pages are performing. Claude Code can use both in the same session. Adding the endpoint to each Claude client is covered in connecting Google Search Console to Claude.

Worked example

Research a topic and decide whether it needs a page

A realistic session from start to decision. All numbers are illustrative and rounded; the shape of each step is what matters. The site is a small accounting SaaS with an existing article at /blog/invoice-template. The question: does “freelance invoice template” deserve its own page?

Inputs

  • Date of the session: 8 September 2026.
  • Property: sc-domain:example.com.
  • Date range for Search Console: 9 August to 5 September 2026, 28 days ending three days back to allow for Google’s reporting lag.
  • Candidate topic: freelance invoice template.

Step 1: what the existing page already ranks for

Prompt: “What queries does /blog/invoice-template get impressions for, and which mention freelancers?” Claude calls get_gsc_page_queries (free) and filters the rows.

Illustrative data
QueryClicksImpressionsCTRPosition
invoice template1,24048,9002.5%8.1
free invoice template61031,2002.0%9.6
freelance invoice template614,9001.2%12.3
invoice template for freelancers181,7001.1%14.8
freelancer invoice example46200.6%19.2

Reading: the page already appears for the freelance variants but sits on page two with a CTR around 1%. Google associates the page with the topic without rewarding it.

Step 2: what the SERP wants

Prompt: “Search ‘freelance invoice template’ and summarise what the top ten pages are.” Claude calls search_serp at depth 10 (1 credit). Illustrative result: eight of ten are pages titled specifically for freelancers, with sections on hourly versus project billing, late fees, and tax IDs; two are general invoice template pages. The intent is specific, and the general page you already have looks like the minority pattern.

Step 3: is the demand real

Prompt: “Get search volume for the freelance variants and the head term.” One get_keyword_search_volume call (15 credits) for the batch.

Illustrative data
KeywordMonthly volume (US)Paid competition
freelance invoice template2,400Low
invoice template for freelancers590Low
freelancer invoice example210Low
invoice template74,000Medium

Reading: about 3,200 monthly searches across the freelance cluster, small next to the head term, which the existing page already serves. The illustrative volumes show demand; whether the cluster is winnable organically still needs a SERP and authority check.

Step 4: check nothing else already covers it

Prompt: “Do any other pages on the site get impressions for these freelance queries?” Claude calls query_gsc_search_analytics (free) grouped by page with a query filter containing “freelanc”. Illustrative result: only /blog/invoice-template and a pricing page with 40 impressions. No competing page exists.

The decision

Build a dedicated page at /templates/freelance-invoice, match the SERP’s structure (hourly and project billing, late fees, tax fields), and link to it from the freelancer paragraph on the existing article. Expected outcome: the new page takes over the freelance queries and the existing page keeps the head term.

The rejected alternative

Expand the existing article with a freelancer section instead. Rejected because the SERP is dominated by dedicated pages, the existing page averaged position 12 to 15 in this window (compare earlier windows before calling it stuck), and adding a second intent to a page that ranks well for the head term risks the term you already own. That is a judgement call, not a guarantee, and the measurement step below is how you find out if it was right.

Ship and measure

Audit a draft, review recommendations, and measure results

Audit the draft

Once the page is live at a reachable URL, prompt “Audit /templates/freelance-invoice and list the issues that matter.” audit_page (5 credits) returns the title, headings, links, status code, canonical, and on-page problems. If you use the Claude SEO plugin, /seo page gives you a checklist pass over the same HTML. Both are useful; they check different things.

Review the recommendations

Claude will suggest fixes. A human still decides which ones to apply, because some are trade-offs the model cannot see: a shorter title may lose brand terms you need, a canonical change may affect a page that converts, an internal link may not fit the design. Ask Claude to show the data behind each recommendation and reject the ones that only have an opinion behind them.

Measure

Search Console data lags two to three days, and a new page needs weeks to settle. Set a reminder for four to six weeks after publishing, then run get_gsc_page_queries for both the new page and the original article over the same 28-day window and compare with the Step 1 table.

Keep measurements and hypotheses apart. “The new page has 210 clicks for freelance queries and the original lost 40” is a measurement. “The new page caused the original’s drop” is a hypothesis, and so is “the original would have grown anyway.” Claude is quick to turn the first into the second; ask it to label which is which.

Limits

What Claude cannot do for SEO

  • Guarantee rankings. Live data improves the decision; it does not change what Google does with the page. Any tool that promises otherwise is selling something.
  • Change your site. Through CalmSEO, Claude reads data only. Claude Code can edit files in a repository, but reviewing, deploying, and submitting URLs are still yours.
  • Know numbers it was not given. Without a data source, volumes, positions, and competitor claims are plausible guesses. The failure is quiet: the answer reads the same either way. If a number matters, make sure a tool call produced it.
  • See backlinks through CalmSEO. CalmSEO has no backlink index. For link profiles you still need Ahrefs, Semrush, or a similar suite, and the Claude SEO plugin’s backlink command depends on one of those integrations.
  • Read everything in Search Console. CalmSEO’s tools return performance, sitemaps, and site lists. They do not expose manual actions, Core Web Vitals reports, or URL inspection; Google offers a separate URL Inspection API.
FAQ

Frequently asked.

Is Claude good at SEO?+
Claude is good at the reasoning parts: reading Search Console rows, comparing a SERP with your page, structuring a brief, and explaining an audit. It is not a source of SEO data. Give it live numbers through a tool or an export and check that its conclusions point back to those numbers.
Is the Claude SEO plugin free?+
Yes. It is open source under the MIT license on GitHub. You still need Claude Code, which uses your Claude subscription or API usage, and some of its optional integrations require paid third-party API keys.
Do I need Claude Code?+
Only for the plugin, which runs inside Claude Code. The general workflow works in Claude on the web and Claude Desktop too. CalmSEO connects to all three, so you can do data-driven SEO work in chat without a terminal.
Can Claude read my Search Console?+
Not on its own. Claude has no built-in Google connection. Through an MCP server such as CalmSEO, it can call read-only Search Console tools for clicks, impressions, CTR, position, pages, queries, and sitemaps. The Google scope is read-only, so nothing can be changed.
Does Claude replace Ahrefs or Semrush?+
No. Those suites hold backlink indexes, historical rank tracking, and large-scale reporting. Claude with CalmSEO covers SERP checks, keyword volume and ideas, ranked keywords, single-page audits, and your own Search Console data inside a conversation. Many teams use both.
Can I use this with ChatGPT instead?+
The Claude SEO plugin is Claude Code only. CalmSEO is a standard MCP server, so the same live data workflow runs in ChatGPT developer mode, Cursor, Codex, and other MCP clients.
How much does a research session like the worked example cost?+
The two Search Console calls are free. The SERP check at depth 10 is 1 credit and the volume batch is 15, so 16 credits for the research and 5 more for the audit. New accounts start with 20 free credits and paid plans start at $19 per month.
Is CalmSEO affiliated with Anthropic or the Claude SEO plugin?+
No. CalmSEO is an independent hosted MCP server. It is not affiliated with or endorsed by Anthropic, and it has no relationship with the open-source Claude SEO plugin. It works with Claude because Claude supports the open MCP standard.

Give Claude live SEO data

20 free credits + free Google Search Console tools. No card required.