# CoreSpeed for SEO (/blog/corespeed-for-seo)

CoreSpeed for SEO gives any MCP-compatible agent the data an SEO workflow needs, through one endpoint, paid as you go. Your agent can run managed scrapers for public Similarweb, Ahrefs, Semrush, Moz and Ubersuggest data, with no vendor account. It reads Google's live results, crawls any page, and updates your Webflow or Contentful site. Each paid call bills your organization in credits, under a cap you set.

This post follows one loop on a fictional site, Fernway Coffee at `fernway.example`. The site, keywords and numbers are invented. The tool names are real.

**Any agent, one endpoint, your SEO stack**

Each agent adds CoreSpeed once. Every source below is one call away.

Any MCP-compatible agent (Claude Code, Codex, Cursor, Claude, ChatGPT, OpenClaw, Hermes, Grok Bot) → CoreSpeed (api.corespeed.io/mcp: one sign-in, one bill in credits, a cap on every paid call) → these sources:

| Source                  | Through                                                           | Examples                                           |
| ----------------------- | ----------------------------------------------------------------- | -------------------------------------------------- |
| Managed SEO scrapers    | web\_\_run\_scraper, no vendor account                            | Similarweb, Ahrefs, Semrush, Moz, Ubersuggest      |
| Google and the open web | web\_\_google\_search, web\_\_google\_maps\_search, web\_\_scrape | Google results, AI Overview, Google Maps, any page |
| Your site               | your Webflow or Contentful sign-in                                | Webflow, Contentful                                |
| Your workspace          | your own sign-in                                                  | PostHog, Google Ads, Google Sheets, Notion, Slack  |

Scrapers read the public pages of these sites; they are not the vendors' official APIs. Coverage varies by site, and a run can return no data. Logos are trademarks of their owners, not partnerships.

## What can your agent reach? \[#what-can-your-agent-reach]

Four kinds of sources, all through `https://api.corespeed.io/mcp`:

* **Managed SEO scrapers.** `web__list_scrapers` finds vetted scrapers for public Similarweb, Ahrefs, Semrush, Moz and Ubersuggest pages. `web__run_scraper` runs one under your credit cap. You need no account with those vendors.
* **Google and the open web.** `web__google_search` returns Google's own results page, with People Also Ask and the AI Overview. `web__google_maps_search` covers local results. `web__scrape` reads any public page as text.
* **Your site.** `webflow__*` and `contentful__*` read and change your own Webflow or Contentful site, with your sign-in.
* **Your workspace.** Your own PostHog, Google Ads, Google Sheets, Notion and Slack connect the same way.

The scrapers read the public pages of those sites. They are not the vendors' official APIs. Coverage varies by site, and a run can return no data. Your agent never holds a vendor key, a CMS token or a Google password; CoreSpeed makes each call.

## Pay for the lookups you need \[#pay-for-the-lookups-you-need]

A scraper run holds `max_cost_credits` before it starts. It stops before it goes over, and it bills only what the run recorded. A run that fails is not charged. A run that returns no records can still carry a small charge. `web__get_scraper` shows each scraper's charges before you run it, and 1,000 credits are $1.

Here is what one entry-level subscription costs at each of the five vendors, beside one real CoreSpeed lookup on that vendor's public data:

| Vendor and entry plan, per month                                                                       | One observed CoreSpeed lookup  |
| ------------------------------------------------------------------------------------------------------ | ------------------------------ |
| Ahrefs [Starter](https://ahrefs.com/pricing): $29                                                      | $0.00075                       |
| Semrush [SEO](https://www.semrush.com/pricing/seo-ai-search/): $139.95                                 | $0.000075, returned no records |
| Moz [Pro Starter](https://moz.com/products/pro/pricing), one site: $49                                 | $0.0225                        |
| Ubersuggest [Individual](https://app.neilpatel.com/en/pricing): $29                                    | $0.0165                        |
| Similarweb [Competitive Intelligence](https://www.similarweb.com/packages/web/?type=Individuals): $199 | $0.003, for two domains        |
| **All five: $445.95 a month**                                                                          | Pay per lookup                 |

The Ahrefs, Semrush, Moz and Ubersuggest lookups ran together on October 12, 2026, and cost $0.039825 in total; three of the four returned data. The Similarweb lookup ran separately the same day.

This compares paying for specific public data when you need it with keeping five subscriptions open. It is not a feature match. The subscriptions include projects, history, alerts and far more data, and the scrapers are not the vendors' official APIs. For an occasional check, a vendor's free tools can be enough. The lookup charges are observed examples, not fixed prices. Plan prices are each vendor's month-to-month entry plan in US dollars, checked on October 12, 2026, before taxes and extra seats. The price on each vendor's checkout page is the one that applies. Your agent's own model costs are not included.

## One prompt starts the loop \[#one-prompt-starts-the-loop]

```text
Research fernway.example and two rivals for US search. Use the SEO scrapers and
Google results. Keep each paid call under 20 credits. Draft fixes for the five
weakest pages in Webflow and show me each change before you make it.
```

"Under 20 credits" becomes `max_cost_credits: 20` on each paid call. A run never costs more than its cap. The agent then works through six steps.

**One SEO loop through one MCP endpoint**

Each step, the tools it calls, and how it is paid.

1. **Size the market** (visits, keywords and authority for you and your rivals) — web\_\_list\_scrapers, web\_\_run\_scraper. Credits per run.
2. **Check what Google shows** (rank, People Also Ask and AI Overview, by country and device) — web\_\_google\_search. Credits per results page.
3. **Audit your pages** (titles, descriptions, canonicals, JSON-LD and page text) — webflow\_\_data\_pages\_tool, web\_\_scrape. Credits per scraped page.
4. **Plan the content** (one page per gap, kept for the next run) — memory\_\_remember, notion\_\_create\_page. Your workspace.
5. **Draft and apply the fix** (exact before and after for each page) — webflow\_\_data\_pages\_tool, contentful\_\_patch\_entry. Your site.
6. **Track what changed** (rank, estimates and your own analytics, each kept apart) — web\_\_google\_search, posthog\_\_get\_insight. Credits per check.

Fictional site, fernway.example. Every step goes through [https://api.corespeed.io/mcp](https://api.corespeed.io/mcp).

## Step 1: size the market \[#step-1-size-the-market]

`web__list_scrapers` searches CoreSpeed's catalog by site and record, such as "similarweb website traffic". `web__get_scraper` shows a scraper's input, an example and its charges. `web__run_scraper` runs it:

```json
{
  "scraper": "datascraperes/similarweb-website-scraper",
  "input": { "domains": ["fernway.example", "northpour.example"] },
  "max_cost_credits": 5
}
```

Each vendor's scrapers answer a different question:

* A Similarweb scraper returns modeled visits, traffic sources and top countries for a list of domains.
* Semrush and Ahrefs scrapers return public keyword volume, difficulty, Domain Rating and backlink counts.
* Moz and Ubersuggest scrapers return Domain Authority, and Ubersuggest adds keyword ideas.

Each figure is that site's own public estimate at the time of the run. Sources can disagree, so keep the scraper's name beside each number and check a figure before you act on it.

## Step 2: check what Google shows \[#step-2-check-what-google-shows]

`web__google_search` returns Google's results page for one query, from the country and device you pick:

```json
{ "query": "pour over coffee ratio", "country": "US", "mobile": true, "include_ai_overview": true }
```

The answer lists the organic results with their positions, People Also Ask and related searches. With `include_ai_overview`, it also captures Google's AI Overview when one appears, so you see whether an AI answer sits above the results and what it says. For local search, `web__google_maps_search` lists places for a query and a location, and `web__google_maps_reviews` reads one place's reviews.

## Step 3: audit your pages \[#step-3-audit-your-pages]

In Webflow, `webflow__data_pages_tool` lists your pages and reads each page's SEO title, meta description, Open Graph settings and JSON-LD. For any public page, `web__scrape` returns its text, so the agent can compare your page with the pages that outrank it. A `web__google_search` call with `site` set to your domain shows which of your pages Google returns for a query.

From those reads, the agent lists what is wrong: a missing description, a missing canonical, a broken page, a title that does not match the query.

## Step 4: plan the content \[#step-4-plan-the-content]

The agent groups the gaps by intent and maps each group to one page: an existing page to improve, or a new page to write. A gap list for Fernway against a fictional rival, `northpour.example`, starts like this:

| Keyword                    | US searches a month | Rival's position |
| -------------------------- | ------------------- | ---------------- |
| pour over coffee ratio     | 8,100               | 3                |
| how to descale a kettle    | 2,900               | 6                |
| burr grinder for pour over | 1,600               | 4                |

The search volume comes from a keyword scraper, and the rival's position from `web__google_search`. The plan goes where your team works, such as a Notion page or a Google Sheet. The agent saves the decisions with `memory__remember`, so next month's run starts from them.

## Step 5: draft and apply the fix \[#step-5-draft-and-apply-the-fix]

**From an audit finding to a fix**

Illustrative example. The site, pages and copy are fictional.

1. Findings, from webflow\_\_data\_pages\_tool, web\_\_scrape and web\_\_google\_search: /brew-guides/pour-over (no meta description, no canonical); /shop/kettles (returns 404); /brew-guides/cold-brew (not in Google's top 10 for its keyword); /blog/descaling (a five-word title for a long guide).
2. Priorities: (1) pour-over guide, add a description and a canonical, the most search demand and the smallest fix; (2) kettles, fix the 404, a broken page still in the sitemap; (3) cold-brew guide, answer the ratio in the first lines, because the pages above it answer it directly.
3. The fix: the SEO title "Pour over" becomes "Pour over coffee: ratio, grind and time", and the missing meta description becomes "A 1:16 ratio, a medium-fine grind and a three-minute brew, step by step." The agent writes it with webflow\_\_data\_pages\_tool (update\_page\_settings).

For each page, the agent writes the exact change. It shows the current title, meta description and JSON-LD, and the new ones, before it writes anything.

In Webflow, `webflow__data_pages_tool` writes them with `update_page_settings`, and `bulk_update_pages` changes up to 100 pages in one call. In Contentful, `contentful__patch_entry` edits an entry and `contentful__publish_entry` publishes it.

## Step 6: track what changed \[#step-6-track-what-changed]

Four kinds of numbers measure progress. They count different things, so the agent keeps them apart.

**Four numbers, four different things**

Fictional demo data for one site. Not a measured result.

| Measure          | Value               | What it counts                                      | Source                                   |
| ---------------- | ------------------- | --------------------------------------------------- | ---------------------------------------- |
| Rank             | 8                   | One Google results page for one keyword, US, mobile | web\_\_google\_search, one moment        |
| Search demand    | about 8,100 a month | Estimated monthly searches for that keyword         | a Semrush or Ahrefs scraper              |
| Estimated visits | about 6,100 a month | A third-party model of the whole domain             | a Similarweb scraper, a month            |
| Your sessions    | 7,215               | Visits your own analytics tag counted               | your analytics, such as PostHog, 28 days |

Estimates and your own counts are never added together or swapped. A scraped figure is the source site's estimate, so it keeps that site's name beside it.

Re-run `web__google_search` with the same query, country and device to compare rank. Re-run the same scrapers once a month for the estimates. If you use PostHog, `posthog__get_insight` reads an insight you already built, so your own counts sit beside the estimates without being mixed with them.

These tools measure and suggest. They cannot promise a ranking. Google decides rankings.

### Run it every week \[#run-it-every-week]

Your scheduler starts the agent: cron, a CI runner, or your agent client's own scheduled tasks. Give the job an [agent key](/blog/an-unattended-job-with-an-agent-key) with a monthly spend cap. An agent key reaches only shared connections, so [share](/docs/connectors#private-and-shared-accounts) the Webflow and PostHog connections it needs with that agent.

## Set it up once, use it from any agent \[#set-it-up-once-use-it-from-any-agent]

Give your agent one line:

```text
set up https://corespeed.io/SKILL.md
```

The agent reads [the skill](/blog/what-is-skill-md-and-the-one-line-setup) and adds the CoreSpeed MCP server, `https://api.corespeed.io/mcp`. It signs you in in the browser and saves the skill for later sessions. Claude Code, Codex, Cursor, OpenClaw and Hermes take this one line; the [MCP server docs](/docs/mcp) show each client's entry. In the Claude app and [ChatGPT](/blog/use-corespeed-in-chatgpt-developer-mode), add CoreSpeed as a custom connector. xAI documents that Grok Bot supports the same MCP servers as Cursor.

Then connect Webflow, Contentful and your workspace tools on the [Connectors page](https://app.corespeed.io/connectors). The scrapers and web tools need no other account.

## FAQ \[#faq]

**Do I need an Ahrefs, Semrush or Similarweb subscription?** Not for the public data these scrapers read. Each run bills your organization in credits. If you need a vendor's full product, with its projects, history and alerts, that is its subscription.

**Are the scrapers the vendors' official APIs?** No. They read the public pages of those sites, and the logos are their owners' trademarks, not partnerships.

**Is the data accurate and current?** Each figure is the source site's public estimate at the time of the run. Coverage varies, a run can return no data, and sources can disagree. Check a figure before you act on it.

**Will this improve my rankings?** It cannot promise that. The tools show what Google shows, what competitors rank for and what is wrong on a page. You decide what to change, and Google decides the rankings.

**Does it cover local SEO?** Yes. `web__google_maps_search` lists the places Google Maps shows for a query and a location, and `web__google_maps_reviews` reads one place's reviews.

**Does it cover AI search?** In part. `web__google_search` with `include_ai_overview` captures Google's AI Overview for a query when one appears. Other AI assistants are not covered.

**Which agents work?** Any MCP-compatible agent: Claude Code, Codex, Cursor, OpenClaw, Hermes, the Claude app, ChatGPT, Grok Bot through its MCP servers, and any other client that can add a remote MCP server.