My chief of SEO, claude code opus 5.5
文章目录
THIS IS THE SETUP WE WEREN'T GOING TO SHARE. everyone's using Claude Code as a copywriter --> it can run your whole SEO department.
These 6 skills are how.
i'm giving every single one away for free ✅
To get similar results for your business: Try CHATSEO.APP free for 7 days
my co-founder Paul has been doing SEO since 2021. he learned it in a Paris agency, ranked his own consultant site on the keywords that pay, and basically destroyed all French SEO's.
We put his whole process Claude Code and made Opus 5.5 our Chief of SEO.
these 6 skills are the ones we actually run.
before you install a single skill, get the org chart right.
The org chart, before anything else
The job splits in three.
-> Opus 5.5 in Claude Code is the Chief of SEO. It plans, orchestrates, edits your site, runs the routines. -> ChatSEO, through its MCP, is the intelligence layer. Your Search Console, keyword volumes, the live SERP, competitor pages scraped to the source code, domain authority, and a process built from how a consultant actually works. -> You approve anything that touches a live page.
Setup is two minutes. Create a free ChatSEO account, add your site, connect Search Console (skip this and half of what follows runs blind). Then in your terminal:
give this to your claude: https://api.chatseo.app/mcp
Open Claude Code, switch to Opus with /model, and type /mcp to log in once.
Last thing. Each skill below is a file.
Save it as .claude/skills/<name>/SKILL.md in your site's repo and Claude Code picks it up. You call it by name, or it triggers when you ask for the job it describes.
1. Target the card in hand, not the curve
Most SEO traffic is vanity.
"What is SEO". "CBD benefits". Your Search Console curve goes up, you feel great, and nobody buys. Paul puts it bluntly: is that traffic for your ego or for your business?
The only keywords worth your first six months are the ones where the searcher already has the card in hand. "SEO consultant Paris". "Coffee table". "Shopify SEO agency".
You do not need a tool to read intent. Google already did the testing. Type the keyword and look at what ranks.
-> Blog posts and a definition box at the top: informational. Skip for now. -> Landing pages, service pages, category pages with prices: commercial. That is your target.
Then think in patterns, not keywords. A keyword gets you a page. A pattern gets you a machine. Consultant + city. Agency + CMS. Product type + material. Each one replicates as far as the market goes.
The free way to find them is Google Suggest. Type your seed, then add a * at the end, then at the start. Each one surfaces a different batch. Google Ads' Keyword Planner adds the volumes.
The fast way is to let the Chief ask the analyst.
---
name: money-keywords
description: Find the commercial keyword patterns for this site. Use when asked which keywords to target, for an SEO strategy, or "where is the money".
---
1. Call ChatSEO list_sites and pick this site's ID.
2. Send ChatSEO (send_message, with the siteId), word for word:
"Give me the best SEO strategy for my site. Group the opportunities
by keyword pattern, and only keep the ones with commercial intent."
3. Poll get_conversation_messages until the reply is complete.
4. For each pattern, keep only keywords where the current top 3 are
landing, service, category or product pages. Drop anything where
blog posts dominate.
5. Write keywords.md: pattern, keyword, monthly volume, page type
Google ranks, and whether we already have a URL for it.
6. Never invent a volume. If ChatSEO did not return it, write "n/a".
Step 6 is there for a reason. Claude will happily fill a blank column with a plausible number. The analyst exists so it never has to.
2. One keyword, one page. Decide before you write.
The most expensive SEO mistake is writing a page you already had.
Here is the check Paul does by hand. Search Console, Performance, filter on the exact query, then the Pages tab.
-> A page already gets clicks for it: optimise that page. -> A page gets plenty of impressions but few clicks: it is already somewhere in the top 10. Optimise it. -> Nothing: create a new page.
Get this wrong and you build cannibalisation. Two of your pages fight for the same query and Google cannot choose. Paul's example: both sit 7th and 8th, when one page would have been 3rd.
Then the part most consultants skip: secondary keywords. Take whoever ranks 1st for your keyword and list every other query that exact URL ranks top 5 for. That list is what Google already considers the same page. Target it all with one URL.
It all lands in the title. The title is the page's identity card, the strongest on-page element you have. One word decides whether a page ranks for one query or five. "SEO Consultant Paris (Freelance)" covers two patterns at once. If pixels remain, spend them on the click: a rating, a star, a reason to pick you over the nine other results.
The meta description barely moves rankings. Its job is to sell the click.
---
name: page-brief
description: Build the SEO brief for one target keyword. Use when asked to rank for a keyword, optimise a page, or before creating any new page.
---
1. Send ChatSEO (send_message, siteId), word for word:
"I want to rank first on <keyword>. Tell me if I should optimise an
existing page or create a new one, then give me the full brief."
2. Poll until complete. From the reply, extract:
- create or optimise, and which URL
- primary keyword and every secondary keyword
- the page type and sections the top 3 all have
- the title and meta description ChatSEO proposes
3. If an existing URL already gets clicks or impressions for the
keyword, STOP any plan to create a new page. We optimise.
4. Check the title contains the primary keyword, fits the pixel limit
without truncating in a SERP preview, and carries the secondary
modifiers where they fit.
5. Save the brief to briefs/<keyword-slug>.md. Do not edit the site yet.
When Paul ran this live on his Lyon consultant page, ChatSEO flagged a canonical tag he had never noticed. He has been doing SEO since 2021. That is what the analyst is for.
3. Build the page the top 3 are almost building
The best on-page advice is also the least technical: open the top 3 and put yourself in the searcher's head.
Someone typing "SEO consultant Paris" wants to know why you, what it costs, how it works and how long until results. Answer those, in the order the SERP answers them, and you are level.
Then do it better. Paul's teardown of a competitor ranking 1st: no photo of the person you would hire, and no way to self-qualify. Add the face. Add a three-question quiz, "Am I the right consultant for you". People stay, they interact, Google reads it.
If you want to see what "better" looks like, study SERPs where the money is brutal, even outside your niche. Debt consolidation, finance, CBD. Infographics, comparison tables, embedded video. That is the ceiling.
The rest of on-page is mostly noise.
One H1 with your primary keyword. The H2 and H3 tree takes care of itself when Claude writes the page, so do not spend a weekend on it. Structured data, one instruction and forget it.
Internal links are a threshold, not a lever. Google discovers pages by clicking every link from your homepage like an idiot. A page nothing links to barely exists. Paul's floor is five internal links to every new page, from pages on a close topic. Your money pages go in the header. The long tail goes in the footer. The best ones sit inside body text, because the words around the link add context. Internal anchors can be the exact keyword. That freedom stops at your own domain.
The day Claude deleted the rankings
Paul plugged Claude into his site to edit his city pages.
Recording a podcast, he went to show the "best SEO consultants" ranking on one of those pages. It was gone. He opened the Paris page. Gone too.
Claude had rewritten the pages and dropped the ranking tables. No error, no warning. And those rankings are the bait for the GEO swaps in section 4.
An agent that can edit your live site can also quietly remove the one thing the page existed for. So our ship skill has a gate.
---
name: ship-page
description: Write or update a page from its brief and publish it safely. Use after page-brief, when asked to build, rewrite or publish a page.
---
1. Read briefs/<keyword-slug>.md. Write or rewrite the page to cover
every section the top 3 share, plus one thing they do not have
(quiz, calculator, photo + credentials, real case numbers, video).
2. One H1 containing the primary keyword. Title and meta from the brief.
3. Add JSON-LD structured data that fits the page type.
4. Add at least 5 internal links TO this page from the most related
existing pages, exact-match anchors, inside body text.
5. DIFF GATE. Before publishing, list every element present in the old
version and missing from the new one: tables, rankings, forms,
quizzes, embeds, images, internal links. Show me that list.
6. Publish only after I say yes. If ChatSEO wrote the article, push it
with publish_artifact_to_wordpress, status "draft" first.
Otherwise commit to a branch or save a CMS draft, never straight live.
Step 5 is the whole lesson. The day it catches nothing is the day you stop needing it, and that day does not come.
4. Authority, and why GEO is mostly SEO
A perfect page on a weak domain ranks 40th. Nothing in section 3 fixes that.
Google does not give a new site the time of day for roughly six months. It has no reason to index every site Claude can generate in an afternoon. Authority is how you get past that. Links from other sites, and your brand showing up across the web: YouTube, LinkedIn, X, podcasts.
Every score for it is an estimate. Ahrefs has DR, Semrush has Authority Score, Majestic has Trust Flow. None of them is Google. Paul trusts Ahrefs DR the most, and it is the one ChatSEO shows you, but someone once told Paul, worried, that their DR dropped from 70 to 65. His answer: look at your Search Console. More clicks? On business keywords? More top 3? That is the scoreboard.
Before you buy links, be patient. Google deliberately delays the effect of changes, so you cannot reverse-engineer it in a week. After a change, a dip is normal. Give it up to two months. Reverting in a panic is how you teach Google you are testing it.
Still stuck after three months on a page you know is good? Then links.
Buying them is its own profession. Marketplaces sell €300 links on sites that rank for nothing. What to look for: a site on your topic, and a linking page that itself ranks for something. Google already trusts that page, so the vote counts.
Anchors are where people get penalised. Google's spam policies list buying or selling links for ranking purposes as link spam. Theory says don't. Practice says if you do, leave no footprint, and a wall of exact-match anchors is the easiest footprint there is. From outside, mostly "here", your brand, your URL, "source". Exact-match only from your very best links.
GEO is a Google query in disguise
GEO is a lot of hype and very little data.
In SEO, Google tells you what people search and how often. In GEO you cannot know the prompt. A plumber in Lille sends ChatGPT a voice note about ads being too expensive and wanting "a guy in my city I can meet".
ChatGPT does not know the answer. So it searches Google. And it does not search the voice note. It searches something like "best SEO consultant Lille 2026". Best, because the user wants a recommendation. The year, because it wants fresh sources.
So GEO starts as SEO on "best + money keyword + year".
Add "best" and the year to the titles of your commercial pages. Publish rankings on those queries. Then the lever that really moves it: get other sites' rankings to list you.
Ranking yourself 1st on your own site used to work. It does not really any more. What works is what Paul does with his rankings of agencies: agencies email to be included, he asks for no money, only that they list him, or ChatSEO, in a ranking on their own site. A third party saying it is the source ChatGPT cites.
---
name: geo-rankings
description: Plan GEO for this site. Use when asked about ChatGPT, AI Overviews, Perplexity, GEO, or getting cited by AI.
---
1. From keywords.md, take the top 5 commercial keywords.
2. For each, form the AI query: "best <keyword> <current year>".
3. Send ChatSEO, word for word:
"Who ranks top 10 on <best keyword year>? Which of those pages are
rankings or listicles, and do they mention my site?"
4. Build geo.md: query, the listicles ranking, whether we are in them,
the site behind each one, and a contact to reach.
5. Suggest title edits adding "best" and the year to our matching pages.
Run them through page-brief and ship-page. Never edit directly.
6. Draft one short, personal outreach email per listicle we are missing
from. I send them myself.
5. Scale the pattern, one page a day
This is where Claude Code stops being an assistant and becomes a department.
Once one page in a pattern is right, the next forty are the same page. Consultant + Lyon has the same intent as consultant + Lille. Paul's advice: tell Claude to do every major city. Then do not publish forty the same afternoon. On a new site that pattern screams automation.
One page a day, on a schedule.
---
name: pattern-drip
description: Publish the next page of a keyword pattern. Use for scheduled runs, or when asked to scale a pattern or duplicate a page.
---
1. Open keywords.md. Take the next pattern keyword with no URL yet,
highest volume first.
2. Run page-brief on it. If the brief says "optimise", stop and flag it.
3. Duplicate the reference page for this pattern. Replace everything
specific: city facts, prices, examples, testimonials. A page that
only swaps the city name does not ship.
4. Run ship-page. Diff it against the REFERENCE page as well: anything
the reference has that this one lost gets restored.
5. One page per run. Never more.
Put it on a routine (/schedule in Claude Code, or a plain cron) and it runs every morning without you.
Then the part that compounds: the weekly review.
---
name: weekly-seo
description: Weekly SEO review from Search Console. Use every Monday, or when asked how SEO is going.
---
1. Send ChatSEO (siteId), word for word:
"Compare my last 28 days to the previous 28. Which pages gained
impressions, which lost clicks, and which keywords entered the top 10?"
2. Flag any page whose impressions jumped: it just entered the top 10.
Queue it for page-brief. Pushing top 10 to top 3 is the cheapest win.
3. Flag pages edited in the last 60 days as "wait". Do not touch them.
4. Flag pages edited 90+ days ago, still stuck outside the top 3, with a
good brief: candidates for links.
5. Write reviews/<date>.md and give me 5 actions, ranked by business
value, not traffic.
That is the loop. Paul's own site now takes him about ten minutes a week. The first six months will feel like nothing is happening. Then you hit a pivot where every new page ranks top 5 on arrival, and that is when you turn the drip up.
What this does not prove
None of this is magic, and I would rather say it than have it said in the replies.
Paul learned SEO in an agency and has been doing it since 2021. His site has years of authority and an audience that searches his name. We started with that advantage and you might not.
On a fresh domain going after competitive head terms, this exact setup produces pages that rank 40th. The skills will not fix authority. They only make sure you do not waste it.
And an agent with write access to your site is a risk. The diff gate exists because it already went wrong once. Keep it, even when it feels slow.
The part I am confident generalises is the ordering. The part I am not confident generalises is the speed.
What I would do tomorrow on a new site
Install the ChatSEO MCP and connect Search Console before writing a single page Run money-keywords and delete every informational keyword it tempts you with Build one reference page per pattern by hand, with page-brief and ship-page Put pattern-drip on a daily routine, one page a day Run weekly-seo every Monday and never touch a page edited in the last 60 days Start geo-rankings in month three, once the pages worth citing exist
In that order, because each one only works if the previous one exists.
Pick the money. Decide before you write. Build better than the top 3. Wait. Repeat daily.
Thanks for reading!











