Schedule SEO checks in Claude Code and ChatGPT
Set up scheduled SEO tasks in Claude Code and ChatGPT: a Monday digest, a regression watch and a technical sweep on Search Console data. With prompts.
Both Claude Code and ChatGPT can now run a prompt on a schedule. Point that schedule at your Search Console data and three jobs cover most routine SEO checking: a Monday digest, a regression watch and a monthly technical sweep. Claude Code's cloud routines are the more dependable home for them today; ChatGPT's scheduled tasks work with caveats. Setup, prompts and quota maths below. Product details were checked against the official docs on 2 October 2026.
What is worth scheduling
Schedule the checks that matter only if they happen every time. Three jobs earn a slot:
- Monday digest. Last 7 days against the 7 before, with the biggest movers. It catches slow drift: a page sliding from position 4 to 7, a section losing clicks after a redesign.
- Regression watch. Your top pages and striking-distance queries, compared with the last run. It catches recent, specific damage: a key page dropping, a query you were working on slipping back.
- Technical sweep. Monthly: index status of top pages, sitemaps, Core Web Vitals, robots.txt, redirects and TLS. It catches quiet breakages: an accidental noindex, sitemap errors, an expiring certificate.
All three are read-only. They observe and report; a person decides what to do. The same three jobs run on other agents too: the Grok Bot guide and the OpenClaw and Hermes guide set them up there.
Set it up in Claude Code
Claude Code has three ways to schedule a prompt, and they differ in one way that matters here: whether your computer has to be on. Per the Claude Code scheduling docs:
| Option | Runs on | Machine must be on | MCP servers | Fit for weekly SEO checks |
|---|---|---|---|---|
| Routines (cloud) | Anthropic's cloud | No | claude.ai connectors chosen per routine | Best fit |
| Desktop scheduled tasks (local) | Your machine | Yes, app open and awake | Config files and connectors | Works if your machine is reliably on |
/loop | Your open session | Yes, session open | Inherits from session | No: recurring tasks expire after 7 days |
1. The connection. Routines use the connectors on your claude.ai account, not MCP servers you added locally with claude mcp add; the docs say those "do not appear in the connectors list". So add the Google Search Console MCP server as a connector at claude.ai: Settings, Connectors, add a custom connector with https://mcpsearchconsole.com/mcp, and sign in with Google. If you already followed our Claude setup on claude.ai, it is already there.
2. The scheduled run. Create the routine at claude.ai/code/routines with New routine, from the Desktop app's Routines page (choose Cloud), or by typing /schedule in the Claude Code CLI. Routines are available on Pro, Max, Team and Enterprise plans and are in research preview, so details may change. The form takes a name, a prompt, repositories, an environment, a trigger and connectors. Points that matter for SEO checks:
- Schedule. Presets are hourly, daily, weekdays and weekly; anything else (such as the first of each month) is set with
/schedule updateand a cron expression. The minimum interval is one hour. The docs suggest a time like 9:07 rather than 9:00, as on-the-hour runs can start late. - Repositories. The docs describe a routine as including one or more GitHub repositories, cloned on each run. Whether a routine can be saved with none is not stated. If the form asks, pick your site's repository or a small one kept for reports.
- Connectors. All your connectors are included by default, and a run can use every tool on an included connector "without asking for permission". Keep only Search Console MCP and wherever output is delivered.
- Prompt. The docs ask for a prompt that is "self-contained and explicit about what to do and what success looks like". The prompts below are.
3. Where output goes. Each run creates a new session you can open. A green status only means no infrastructure error, not that the task succeeded, so read the first few runs. For delivery, include a Slack or email connector and say in the prompt where to post. Runs draw on your normal Claude usage.
A local Desktop scheduled task only fires while the app is open and the computer awake; a missed run is caught up once on wake (so a 9:00 digest might run at 23:00). Click Run now once and choose "always allow" for the Search Console tools, or later runs stall on permission prompts.
Set it up in ChatGPT
1. The connector. ChatGPT reaches remote MCP servers through Developer mode, which OpenAI's developer docs list for Pro, Plus, Business, Enterprise and Education accounts on the web, not the Free plan. Our ChatGPT setup guide walks through adding https://mcpsearchconsole.com/mcp and signing in with Google. On Business, Enterprise and Edu, an admin may need to allow it first.
2. The scheduled task. OpenAI's help article on scheduled tasks in ChatGPT says you create one by asking ChatGPT to do something on a schedule, then manage it from Scheduled. Per that article:
- Active task limits are 3 on Free and Go, 5 on Plus, 10 on Business and Edu, and 15 on Pro and Enterprise. Three SEO jobs fit every paid tier.
- Paid plans can run recurring tasks up to once an hour at exact times. Free tasks run at most daily in flexible windows (morning, afternoon, night).
- You are told when a task finishes by push, email or both, set under Settings, Notifications.
- A task may pause if it is inactive, needs further action, or its chat is deleted.
Start each task from a chat where the Search Console connector is on.
3. What it can and cannot do unattended. The help article says scheduled tasks "can use supported apps, including Gmail, Slack, and GitHub", and that if an action needs approval, "the task pauses until you review it". It does not say whether a custom MCP app added in Developer mode is available inside a scheduled task. That is not documented as of 2 October 2026, so check that the first run returns real Search Console numbers. Two related points:
- The data tools are annotated read-only. OpenAI's developer docs say tools not marked read-only are treated as writes and need approval by default.
add_noteis annotated as a write (it saves a note), so in a ChatGPT task expect an approval request, which pauses the task. Drop the note step there, or approve it when notified.
The three prompts
Each prompt is self-contained, names its own date windows (Search Console data trails by about two days, so never ask for "yesterday"), limits how many data pulls it makes, and ends by saving a short note so the next run can compare. Replace [your property] with the exact property name, such as sc-domain:example.com.
Where the results go
Three places work:
- Email. ChatGPT can notify you by email when a task completes. In Claude Code, include an email connector in the routine and ask the prompt to send the report.
- Chat. In a Claude Code routine, include a Slack connector and end the prompt with "post the report to #seo". In ChatGPT, the result arrives in the task's chat with a push notification.
- A note on the property. The prompts above end with
add_notefor a reason: a scheduled run starts with no memory of the last one. A dated note ("Watch 2026-10-08: ...") is what lets this week's run say "this page has slipped two weeks in a row". Notes are free (not data pulls), up to 2,000 characters each and 200 per account, so prune old run notes withdelete_note. On the Team plan everyone sees them.
For a fuller client-ready version of the digest, see the weekly SEO report use case.
How many data pulls it uses
Data pulls are successful calls to search_analytics, search_insights, search_chart, inspect_url, list_sitemaps and page_speed. Notes and the health checks (check_robots, check_redirects, check_tls, check_dns) are free. See what counts as a data pull. Written as above, for one property:
| Job | Data pulls per run | Runs per month | Data pulls per month |
|---|---|---|---|
| Monday digest | 2 (search_analytics, search_insights) | 4 to 5 | 8 to 10 |
| Regression watch | 2 (search_analytics, search_insights) | 4 to 5 | 8 to 10 |
| Technical sweep | 14 (1 search_analytics, 10 inspect_url, 1 list_sitemaps, 2 page_speed) | 1 | 14 |
| Total | 30 to 34 |
The free plan allows 15 data pulls a day and 40 a month. One property with all three jobs fits, with 6 to 10 pulls left for questions. Two cautions: schedule the sweep on a day with no other job, because 14 plus the digest's 2 would pass the daily 15; and a model that adds calls will use more, hence "once" in the prompts. For a second property, more frequent runs or everyday questions on top, Solo (4.99 € a month) removes the caps, and the Team plan does the same for everyone on a company domain.
Guardrails
Read-only. Sign-in asks Google for read-only Search Console access, so a scheduled run can read your data but cannot change anything in Search Console. Sitemap submission is a separate opt-in; leave it off for accounts that run scheduled jobs, since Claude Code routines use every tool on an included connector without asking.
When a run reports a regression. Treat it as a lead, not a verdict:
- Confirm the window. Data trails about two days, so a last-day "drop" may be incomplete data. Re-check in two days.
- Check the notes. A migration or deliberate noindex may explain it. If it is expected, add a note so the next run stops flagging it.
- Look before you change. Investigate interactively, then agree a fix with whoever owns the site.
- Record the fix. When a change ships, add a dated note. The next regression watch will then show whether it worked.
Ready to put your search data in your AI?
Set up the Search Console MCP, freeFree plan included. See pricing