SEO for Sites Built on Sanity

SEOAgent finds what your site should write and fix, then writes it as a draft in your own Sanity. You review it in Slack, the dashboard or Sanity Studio, and you click Publish.

Drafts
You click Publish
Your key
Stays on our server
Beta
Set up on a 30-minute call

What do you use to work on your site?

Pick one above and we take you to the right setup.

Beta: set up with you

Drafts in your Sanity, set up on one call

On the call you connect your GitHub repo, add your Sanity key in the dashboard and confirm where articles go. Your first drafts then arrive in your Studio.

$79/site/month

Autopilot, with a 14-day free trial, no card.

  • Articles written as drafts in your own Sanity dataset
  • Meta fixes and content refreshes of your live pages, as drafts
  • Publish, Discard and Request changes from Slack, the dashboard or Studio
  • Search Console analysis and a crawl of your live site
  • Your Sanity key stays on our server, never in the AI agent
Book a 30-minute setup call

Nothing goes live until you click Publish, unless you switch on auto-publish for new articles.

Why SEO Is Hard on a Sanity Site

Your code lives in a repo. Your content lives in Sanity. Most SEO tools only see one of them.

Your Posts Are Not in the Repo

Coding agents and repo-based SEO tools see your code, not your posts. The articles, their titles and their SEO fields live in your Sanity dataset.

SEO Fields Drift

An SEO title or description is only as good as the last person who filled it in. Over time they go stale, repeat the page title, or stay empty.

A Pull Request Cannot Publish a Post

On a Sanity site, a new article goes live with a click in Studio, not a deploy. Tools that stop at the repo stop before your content.

How SEOAgent Works With Sanity

It reads your site the way Google does, writes in your schema, and waits for your click.

Finds the Work From Your Real Data

SEOAgent uses your Search Console data, a crawl of your live site and, once your key is added, your published Sanity posts, so its plan knows what you already have.

  • Search Console queries and pages
  • A crawl of your live pages
  • Your published Sanity posts, imported every night
  • Topic clusters and internal links that know your posts

Writes Drafts in Your Schema

SEOAgent reads your Sanity schema and queries from your repo and proposes where articles go: the document type, the fields and the URL. You confirm it once. Then every article is a draft in your dataset, with your fields and your author.

  • Reads your schema from your repo
  • You confirm the field mapping once
  • New articles as drafts in your dataset
  • Meta fixes and refreshes of live pages as draft updates

You Publish: in Slack, the Dashboard or Studio

Each run sends you the drafts it wrote, with Preview, Publish and Discard. Ask for changes to a new article in a sentence. After a publish, SEOAgent checks that the page is live.

  • Preview, Publish or Discard from Slack (or email)
  • Request changes to a new article in plain words
  • A live check after every publish
  • Optional auto-publish for new articles only

Safe by Design

Your key
Stays on Our Server

It is stored encrypted and used only by SEOAgent's own server. The AI agent never gets it, and we never ask for it in Slack or email.

Your drafts
Never Written Over

If you have an unpublished draft of a page, SEOAgent leaves that page alone until you publish or discard it.

Your click
Decides What Goes Live

SEOAgent never publishes, unpublishes or deletes a page on its own, unless you switch on auto-publish for new articles.

Frequently Asked Questions

How does SEOAgent know my site uses Sanity?

When you connect your GitHub repo, SEOAgent looks for Sanity in it: a sanity.config file, a Sanity package such as next-sanity, or Sanity images on your live site. It also fills in your project ID and dataset for you.

What kind of Sanity key does it need?

An API token you make in sanity.io/manage → your project → API → Tokens. An Editor token lets SEOAgent write drafts and publish when you click Publish. A token that can write drafts but not publish also works: then you publish in Sanity Studio. You add the key in the SEOAgent dashboard, never in Slack or email.

Does the AI agent get my Sanity key?

No. The key is stored encrypted and used only by SEOAgent's own server. When the agent improves an existing page, it reads a copy of that page's fields and writes its change to a file. SEOAgent's server checks the change and writes it into your Sanity as a draft.

Will SEOAgent publish without me?

Not unless you ask it to. Every article and every page change is a draft until you click Publish. You can switch on auto-publish for new articles; changes to live pages always wait for you. Every auto-published article comes with an Unpublish button.

What if I am editing the same page in Studio?

SEOAgent never writes over your unpublished draft. A page you have a draft of waits until you publish or discard it.

Which Sanity sites does it work with?

Sites whose posts live in Sanity and whose code is on GitHub. Your post body can be Portable Text or markdown. Images, embeds and custom blocks are kept: when a page holds content a rewrite could change, SEOAgent only edits its title and SEO fields.

Do I need my own coding agent?

No. With the Sanity integration, SEOAgent runs the agent for you on its own machine. If you already use Claude Code, Cursor or Codex, the free SEOAgent Skill works in your repo too, and your own agent uses the Sanity setup your repo already has.

What does it cost?

Autopilot is $79 per site per month, with a 14-day free trial, no card. The Sanity integration is in beta: we set it up with you on a short call.

Start With Your Own Coding Agent Today

Enter your site. SEOAgent recognizes a Sanity build and gives your coding agent one block to paste, free. For drafts written into your Sanity, book the setup call above.

What do you use to work on your site?

Pick one above. Every door ends the same way: your site bound, the first audit running.

Start your 14-day free trial, no card · $79/site/month after · we stop if nothing improves