Claude as Your Persistent SEO Agent
Memory, context, and the MCP loop that makes Claude the SEO expert who never forgets your sites.
April 4, 2026 · 6 min read
Claude is a powerful reasoning engine. But out of the box, it has no memory of your sites. Every conversation starts from scratch. You paste reports, re-explain context, and repeat yourself every session.
SEOLint changes this. By connecting to Claude via MCP, it gives Claude a persistent memory layer for SEO — one that updates with every scan, tracks every fix, and builds a picture of each site over time.
The result: you can ask Claude “is mysite.com improving?” in any conversation, and it already knows.
How the memory loop works
Every scan result is stored in SEOLint's memory. When Claude calls any of the MCP tools, it retrieves that memory — trend data, open issues, fixed issues, recurring patterns — from the SEOLint server. Claude never needs to “remember” in the traditional sense because the memory lives outside the conversation window.
The typical loop looks like this:
- You ask Claude a question about a site's SEO health.
- Claude calls
get_site_status()— gets the trend, open issue count, last scan date, and a rescan recommendation. - If a rescan is recommended, Claude calls
scan_website()— which compares the new scan against history and labels each issue as new, regressed, or persisting. - Claude fixes critical issues by editing your code directly (in Claude Code) or showing you exactly what to change.
- Claude calls
mark_issues_fixed()to update the memory. If those issues reappear later, they'll be flagged as regressions.
From your perspective: one prompt, full context, actionable fixes, memory updated. The next conversation picks up where this one left off.
The 7 MCP tools
scan_website
Run a fresh scan. Compares with history — labels issues as New, Regressed, or Persisting.
scan_website("https://mysite.com")
get_site_status
Get the full memory picture: trend, open issues, recurring patterns, days since last scan, and a rescan recommendation.
get_site_status("https://mysite.com")
list_my_sites
List all tracked sites with health status. Use to find which site needs attention most.
list_my_sites()
get_open_issues
Get current unresolved issues without running a new scan. Use to resume a fix session.
get_open_issues("https://mysite.com")
get_site_history
Full history: all scans, what was fixed, recurring issues, what regressed.
get_site_history("https://mysite.com")
mark_issues_fixed
Update memory after resolving issues. Resurface count incremented if issue was previously fixed.
mark_issues_fixed(scanId, ["missing-h1", "missing-title"])
Issue labels that carry context
The most important thing scan_website() does is annotate each issue with its history. Without this, every scan looks the same — a flat list you have to mentally compare to last time.
With history-aware scanning, Claude can tell you:
- “The missing H1 is regressed — it was fixed 2 weeks ago and came back.”
- “The canonical error is new — first time we've seen this.”
- “The LCP issue is persisting — it's been in 4 consecutive scans.”
This gives Claude enough context to prioritize intelligently: fix regressions first (they shouldn't exist), then new issues, then persisting ones that have been stable.
Setting it up in Claude Code
One command:
After that, Claude Code has all 7 SEOLint tools available in every conversation. No configuration, no restart needed for new scans — just ask Claude to check your sites.
Your API key is at seolint.dev/dashboard/settings. Or get one at seolint.dev/pricing.
Example prompts that work
Because Claude now has persistent memory through the MCP tools, these prompts actually work:
- “Is mysite.com getting better or worse? Fix anything critical.”
- “Which of my sites needs attention most urgently?”
- “What were the SEO issues on staging.mysite.com last week?”
- “I just deployed — scan mysite.com and check for regressions.”
- “Mark the H1 and canonical issues as fixed, I just resolved them.”
Why this is different from pasting a report
Pasting a scan report into Claude gives it a one-time snapshot. Claude can analyze it, suggest fixes, even write the code — but it can't compare it to previous scans, doesn't know what was already fixed, and can't update its memory when you resolve issues.
With the MCP integration, Claude can:
- Fetch live context without you providing anything
- Compare current issues against previous scans automatically
- Label issues by their history (new / regressed / persisting)
- Update the memory after fixing issues
- Answer questions about trend and health without running a new scan
It's the difference between a consultant who reads your file each meeting versus one who's been watching your site for months and already knows the story.
Common questions
- What MCP tools does SEOLint expose to Claude?
- SEOLint exposes 7 MCP tools: scan_website (run a fresh scan with history comparison), get_site_status (trend, open issues, rescan recommendation), list_my_sites (all tracked sites with health flags), get_open_issues (current open issues without rescanning), get_site_history (full scan history and resolution state), get_scan (retrieve a previous scan by ID), and mark_issues_fixed (update memory after resolving issues).
- Does Claude remember SEO issues between conversations?
- Claude itself doesn't retain memory between conversations, but SEOLint does. Every scan result, fix, and trend is stored server-side. When Claude calls get_site_status() or get_site_history() in any conversation, it retrieves that persistent memory — so from Claude's perspective, it always knows your site's full history.
- How is this different from just pasting a scan report into Claude?
- When you paste a report, Claude sees a static snapshot. It can't compare against previous scans, doesn't know what was already fixed, and can't update its memory when you mark issues as resolved. With the MCP integration, Claude can fetch live context, label issues by history, call mark_issues_fixed() to update the memory, and answer 'is my site improving?' without you pasting anything.
- Can Claude fix SEO issues directly in my codebase?
- Yes, when using Claude Code. Claude Code has access to your filesystem via its built-in Edit and Write tools. When SEOLint returns an issue with a fix instruction, Claude Code can apply the fix directly — editing layout.tsx to fix a title tag, for example — and then call mark_issues_fixed() to update the SEOLint memory. No copy-pasting required.
Give Claude a persistent SEO memory
One command to connect. Every scan builds memory. Claude knows your sites without you repeating yourself.