Fix GitHub Site SEO from Claude
Claude SEO on your real Search Console data, with fixes you approve in the same chat.

Each local area page used to take us half a day to create and optimize.
With SEOmatic, we can create hundreds of pages in the same time, which helps our clients make the best use of their budget.
It's transformed how we deliver scalable SEO solutions.
Will Hawkins
Marketing Director, Digi-Business UK
Agents read your Search Console data, do the work, and prove what actually moved. You decide what ships.
14-Day Trial for $1, credited to your first payment.
Cursor reads your real Google Search Console data through SEOmatic, finds what is holding your GitHub HTML pages and Markdown posts back, stages the fix, and tells you whether it worked. In Approval mode nothing goes live on GitHub until you approve it.

November 2026
One mcp.json entry, or Customize > MCPs in the sidebar, with OAuth sign-in. If the browser does not open, start the sign-in from the seomatic entry.
Free to connect and to read your Search Console. Staged fixes are part of paid plans, with a 14-Day Trial for $1, credited to your first payment. See pricing.
Cursor already works in your repository, and SEOmatic works there too: its edits arrive as pull requests on the same repo, never on your default branch. So Cursor fixes what lives in code, like a layout title pattern or a canonical rule, and SEOmatic covers the content side from your Search Console data. You review both the same way, as diffs.
You: Check /blog/drain-cleaning-cost in Search Console and fix its title.
Cursor: From Sep 13 to Oct 10 (28 days), /blog/drain-cleaning-cost had 2,640 impressions and 21 clicks at position 8.7 for "drain cleaning cost". That is a low click rate for page one, so the title is the first thing to test: it reads "Drain Cleaning". I staged a new title, "Drain Cleaning Cost: What You Will Pay", to be written to the title in the post's front matter, opened as a pull request. Approve it and SEOmatic opens the pull request; it goes live when you merge.
An example on a demo site; your numbers come from your own Search Console.
In SEOmatic, go to Connections, select GitHub, and click Continue with GitHub. On GitHub, install the app on the one repository your site lives in. GitHub sends you back to SEOmatic. The full walkthrough, with every screen, is on the GitHub integration page.
Add this to ~/.cursor/mcp.json for every project, or .cursor/mcp.json in one repo, or open Customize in the sidebar and add the same URL under MCPs. Cursor opens the SEOmatic sign-in in your browser; approve it and pick your site. If it does not open, find seomatic under Customize > MCPs and start the sign-in there.
{
"mcpServers": {
"seomatic": { "url": "https://app.seomatic.ai/api/mcp" }
}
}Other ways to connect are on the Cursor page.
Paste any of these into Cursor. It answers from your data and stages the fix; you approve it before it reaches GitHub.
More that work well in Cursor:
After you approve, SEOmatic writes the change through pull requests on your repository and checks that it is live. Then it measures the result against the page's own baseline and your site's trend: 14 days after a title change, 28 after a content refresh, 90 after a new page. Each change is marked verified, ineffective or regressed, and a low-risk change that loses traffic is rolled back on its own. Ask Cursor "Did my GitHub title changes work?" and it answers from those verdicts.
On plain HTML files, agents set the title, meta description, canonical tag and structured data, and rewrite content inside your page's existing main element. Structured data sits in a clearly marked block, so your own markup is never touched.
On Markdown and MDX files, agents update the title and description in the front matter. The body is left alone, because converting it through HTML and back breaks its formatting and can break an MDX build, and a lossy edit is worse than none.
On a Markdown blog, programmatic pages arrive as one pull request per batch, all in a single commit with a manifest. The next batch is queued only once you merge the last one, and undoing a batch is reverting one commit.
A repository has no fields and no API for SEO, only files. So the agent has to earn the right to edit one: it maps each live URL to the file that produces it, checks that the file's title matches the page, and opens a pull request only when the match holds up (a page with no title to compare is matched on its path alone). When it is not, you get a note instead of a guess.
Every field, limit and safeguard is on the GitHub integration page.
GitHub
A site whose pages live in a GitHub repository as HTML or Markdown files, and permission to install a GitHub App on that repository. The app asks for access to contents and pull requests on the one repository you choose.
Cursor
Cursor and a free SEOmatic account, which you can create during sign-in. Use OAuth, not an API key: because SEOmatic advertises OAuth, Cursor starts the sign-in before it sends any configured Authorization header.
Cursor works the same way on WordPress, Webflow, Shopify, Ghost, Blogger, Wix, Squarespace, Framer, Drupal, BigCommerce, HubSpot CMS, Contentful, Strapi, Sanity, Next.js, Lovable, Craft CMS.
Can Cursor fix SEO on my GitHub site?
Yes, through SEOmatic. Cursor reads your Search Console data, finds the HTML pages and Markdown posts losing clicks and stages the fix, which SEOmatic writes to GitHub once you approve. The three setup steps are on this page.
What can Cursor change on GitHub?
SEOmatic works on your HTML pages and Markdown posts through pull requests on your repository: titles, descriptions and content first, and more where GitHub allows it. Every field and limit is listed on the GitHub integration page.
How do I know if a GitHub fix worked?
SEOmatic measures every change it ships against the page's own baseline and your site's trend, 14 days after a title change, 28 after a content refresh and 90 after a new page, and marks it verified, ineffective or regressed. Cursor can read those verdicts for you.
What do I need on the Cursor side?
Cursor and a free SEOmatic account, which you can create during sign-in. Use OAuth, not an API key: because SEOmatic advertises OAuth, Cursor starts the sign-in before it sends any configured Authorization header.
Will Cursor publish to GitHub without asking?
No. By default every change SEOmatic proposes waits for your approval before it touches your site, and your assistant is told never to approve on its own. Approved changes are stored with the page's previous state, so any edit to an existing page can be rolled back. If you later want low-risk fixes to go ahead on their own, you can turn that on in your autonomy settings; changes to your URLs or indexing, and new content, still wait for you.
Is it free?
Connecting is free with no card. Search Console reports, page checks and 30-page site audits are free, as often as you like; live market data uses free questions, 5 a month plus a one-time 10 when you connect Search Console. Staging and publishing fixes is part of paid plans, which start with a 14-Day Trial for $1, credited to your first payment.
The same SEOmatic server and approval rules, from the agent you prefer.
Claude SEO on your real Search Console data, with fixes you approve in the same chat.
One command connects your Search Console to the terminal, so Claude Code fixes SEO in the code.
Hand Claude Cowork the SEO grunt work: it pulls your real numbers, writes the report into your files, and stages fixes you approve.
ChatGPT SEO on your real Search Console data, with fixes you approve in the same chat.
Two commands give Codex your Search Console data, so it fixes SEO where the bug lives: in your code.
Your real Search Console data in the Gemini app and in Gemini CLI, with fixes you approve.