nPage.dev Use in Claude & ChatGPT

OnPage.dev inside your AI assistant.

Ask Claude, ChatGPT or Cursor how a page does in Google and AI search. Your AI agent scans it with OnPage.dev, writes the fixes and checks they worked, and remembers every site across chats. Free, no account.

Or install in one clickImageInstall inCursorImageInstall inVS Code

Add it in one minute

Pick where you work. One URL, no account, no key.

Claude

  1. Open Settings, then Connectors, on claude.ai or in the desktop app.
  2. Choose Add custom connector, name it OnPage.dev and paste the server URL:
    https://onpage.dev/mcp
  3. Turn the connector on in a chat. Ask: Scan example.com with OnPage.dev. You get a score and the fixes.

Claude Code

  1. Run this once:
    claude mcp add --transport http onpage https://onpage.dev/mcp
  2. Start Claude Code and type /mcp to see onpage connected.
  3. Ask: Scan example.com with OnPage.dev. You get a score and the fixes. Want slash commands and the fix skill too? See the plugin below.

ChatGPT

  1. Open Settings, then Connectors, and turn on developer mode. Which plans can do this is up to OpenAI.
  2. Create a connector with the server URL:
    https://onpage.dev/mcp
  3. Add the connector to a chat. Ask: Scan example.com with OnPage.dev. You get a score and the fixes.

Cursor

  1. ImageInstall inCursor
  2. Or add it to ~/.cursor/mcp.json:
    {
      "mcpServers": {
        "onpage": { "url": "https://onpage.dev/mcp" }
      }
    }
  3. Open the Agent chat. Ask: Scan example.com with OnPage.dev. You get a score and the fixes.

VS Code

  1. ImageInstall inVS Code
  2. Or add it to .vscode/mcp.json:
    {
      "servers": {
        "onpage": { "type": "http", "url": "https://onpage.dev/mcp" }
      }
    }
  3. Open Copilot Chat in agent mode. Ask: Scan example.com with OnPage.dev. You get a score and the fixes.

Other clients

Any client that supports remote MCP servers over HTTP works with https://onpage.dev/mcp, no key. Pick yours for the exact setup:

Windsurf~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "onpage": { "serverUrl": "https://onpage.dev/mcp" }
  }
}

Then click Refresh under Manage MCPs. Windsurf uses serverUrl, not url.

Gemini CLI~/.gemini/settings.json
{
  "mcpServers": {
    "onpage": { "httpUrl": "https://onpage.dev/mcp" }
  }
}

Restart the CLI and check with /mcp.

OpenAI CodexTerminal, or ~/.codex/config.toml
codex mcp add onpage --url https://onpage.dev/mcp

Or add [mcp_servers.onpage] with url = "https://onpage.dev/mcp" to config.toml. Check with codex mcp list.

Clinecline_mcp_settings.json
{
  "mcpServers": {
    "onpage": {
      "type": "streamableHttp",
      "url": "https://onpage.dev/mcp"
    }
  }
}
Zedsettings.json (zed: open settings file)
{
  "context_servers": {
    "onpage": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://onpage.dev/mcp"]
    }
  }
}

Zed calls them context servers. This runs a small bridge with Node.js.

n8nMCP Client Tool node
Server URL: https://onpage.dev/mcp
Transport: HTTP Streamable
Authentication: None

Add the MCP Client Tool to an AI Agent node, so a workflow can scan, audit and report on a schedule.

Any other clientMost clients read this format
{
  "mcpServers": {
    "onpage": { "url": "https://onpage.dev/mcp" }
  }
}

Your agent already loads many servers? Use https://onpage.dev/mcp?tools=core for the 8 main tools.

GitHub logoGitHub

Even closer to your code

The same tools, wired into where you build and ship. Docs and examples on GitHub logoGitHub.

In Claude Code

Plugin

The server plus /seo-check, /ai-visibility and a skill that fixes your source, checks the build before deploy and confirms after.

/plugin marketplace add seoonpage/seo-mcp-server
/plugin install onpage@onpage-dev

On every pull request

SEO gate

Scans the HTML your build produces, comments the scores on the pull request and fails below your minimum.

- uses: seoonpage/seo-mcp-server@v1
  with:
    paths: "dist/**/*.html"
    min-score: "80"

On every deploy preview

Preview check

Compares your Vercel, Netlify or Cloudflare preview with production before you merge, and comments the blockers on the pull request.

- uses: seoonpage/seo-mcp-server/preview@v1
  with:
    preview-url: "YOUR_PREVIEW_URL"
    production-url: "https://example.com"

Every day

Fix guard

Checks your fix log and opens an issue with the restore code when a deploy undid a fix. Closes it once all are live.

- uses: seoonpage/seo-mcp-server/guard@v1
  with:
    fix-log-id: "YOUR_FIX_LOG_ID"

Not a report. A fix, checked and confirmed.

Your assistant runs the tools in a loop until the page is right. This is what that looks like in Claude Code.

  1. 46First scan
  2. 92Checked before deploy
  3. 94Confirmed live

Built for agents, not dashboards

And the rest of the toolbox. Every tool, step by step

Ships anywhere

  • One-click approval in WordPress
  • Checks deploy previews
  • Shopify, Webflow, Wix, Storyblok and headless CMS
  • Outreach emails
  • Replies to reviews
  • Week plans as tickets
  • Gets fixes recrawled
  • Disavow without the risk
  • Writes the sitemap
  • Applies internal links
  • Speed fixes as code
  • Writes the alt texts
  • Finds links to win
  • What changed across the site
  • Bring your own crawl
  • Wins back lost links
  • Verifies templates at scale
  • Checks the sitemap
  • Fixes a whole section at once
  • Ships to WordPress and 9 more CMS
  • Ships as a pull request
  • From finding to done
  • Closes the loop after shipping
  • Every fix in your GA4 charts
  • Checks the code it writes
  • Keeps watching after you ship

AI search

  • Questions AI answers, per page
  • Finds where AI skips you
  • What bots really get
  • Pay-per-crawl and x402
  • JavaScript apps readable for AI
  • Makes AI read and quote you
  • Ready for AI Mode
  • Learns from what AI already cites
  • Wins the snippet
  • Multilingual and trusted

Diagnoses

  • Drops matched to Google updates
  • Lost and split queries
  • Google against Bing
  • Manual action cleanup
  • Search Console vs GA4
  • Bing and Copilot
  • Content pruning
  • Discover and News
  • Dead outbound links
  • Keyword cannibalization
  • Spelling and grammar
  • Issues per section
  • You vs a competitor site
  • Tames parameters and filters
  • Finds duplicate pages
  • A head that ends early
  • Why Google skips a page
  • Debugs your GA4
  • Real users, real bots
  • Sees every screen
  • Reads it like a screen reader
  • Handles JavaScript apps
  • Accessibility for the EAA
  • Ecommerce and consent
  • Local and linked
  • Share previews that work

Made for agents

  • Light on context
  • Brief answers on request
  • Next call in every partial result
  • 14 ready workflows
  • MCP 2026-07-28 and earlier
  • Stable issue codes
  • No made-up advice

Strategy and data

  • Writes in your site’s voice
  • A content calendar that learns
  • Checks drafts before approval
  • Smart rank tracker
  • Paid and organic together
  • Local demand into pages
  • Deploy guard
  • What competitors publish
  • Visits from AI assistants
  • Brand vs non-brand
  • Share of voice
  • Split tests templates
  • Client reports and PDF
  • Finds content decay
  • Keyword gap vs competitors
  • Works without Search Console
  • Uses the data you already have
  • Ranked by revenue
  • Maps your topics
  • Matches search intent
  • Readability that fits the page
  • Reads every language right
  • You vs the pages that rank
  • Briefs, migrations and proof
  • Launch and migration
  • Whole sites, step by step

116 jobs, one loop

Every step from finding a problem to proving the fix worked is a job your AI agent can do, in 37 tools that stay light in its context. Pick a step to see what it does.

Find

What is wrong, for Google, AI search, phones and screen readers, and what matters most.

  • Scan a page

    A 0 to 100 score for one page, the issues to fix first with why and how, AI readiness and the key facts: title, description, headings, words, speed and structured data. Client-side apps are scanned as rendered.

    scan_page46/100, 5 fixes
  • Audit a whole site

    Up to 25 pages from the sitemap, or from the home page links when there is none, worked through step by step. Finds issues across the site, broken, orphan and duplicate pages, and powers link equity, internal links and edge rules.

    site_audit · start25 pages, avg 92
  • Bring your own crawl

    Already crawled the site with Screaming Frog, Ahrefs or Semrush? Send up to 500 page rows and the internal links, and every audit tool works on the whole site, not just the first 25 pages.

    site_audit · import480 pages, 6,912 links
  • Continue the audit

    Scans the next pages of a running audit on every call, so a whole site fits a free service. When it is complete you get the issues by code with the pages they affect, plus the average score.

    site_audit · continue9 of 25 scanned
  • Everything measured

    Everything OnPage.dev measures on one page, by section: speed hints from the HTML, links and anchor texts, accessibility basics, image SEO, rich results and security headers. Use it when scan_page is not detailed enough.

    scan_page · deep8 sections
  • Check AI visibility

    Which AI crawlers may read the page per robots.txt (GPTBot, ClaudeBot, PerplexityBot, Google-Extended and more), whether llms.txt exists, 15 checks for being quoted in AI answers, and the page as a model reads it.

    ai_visibility · check7 of 8 crawlers
  • Rank fixes by traffic

    Takes the clicks, positions and revenue from your Search Console, GA4, Ahrefs or Semrush and ranks every fix by the traffic it can win. Also explains a drop: pass last period's clicks and decaying pages come first.

    prioritize_fixes#6 → top 3, ~336 clicks
  • Compare with competitors

    Your page next to up to 3 competitors that rank for the same search: score, AI readiness, words, headings, rich results and speed side by side, the facts only they give, and the fixes to catch up.

    compare · pagesYou lead 12 of 14
  • Learn from AI citations

    With citation counts from Ahrefs Brand Radar or a similar tool, scans the pages ChatGPT, Perplexity and Google AI cite and the ones they skip, and shows which checks the cited pages pass that yours do not.

    ai_visibility · citationsCited: 100% vs 0%
  • Where AI names competitors, not you

    Takes real AI answers from Ahrefs Brand Radar or another AI visibility tool and shows your share per engine, the questions where only competitors are named, what the AI searched, and the sites it cites to get onto.

    ai_visibility · gaps14 gaps, 9 sources
  • Check a focus keyword

    Eight checks for one search term: title, meta description, H1, URL, the first 100 words, subheadings, image alt texts and keyword density, with a flag for stuffing over 3%. Each check comes with a tip.

    check_keyword · focus6 of 8
  • Which of your pages wins, and why

    Puts the page that should rank next to the pages of yours that outrank it, signal by signal: title, URL, headings, mentions, bold, italics, alt texts and internal anchors, with the plan to fix it.

    check_keyword · cannibalization#1 wins on 6 signals
  • Match search intent

    Scans the pages that rank for a keyword and works out the page type Google rewards: guide, listicle, product, category, service page, forum or video. Then tells you whether your page matches, and what to change if not.

    content · intent5 of 7 results are listicles
  • Map your topics

    Groups your Search Console queries into topics and shows which page owns each one, where two pages compete for the same topic, which topics have no page yet, and which internal links to add.

    content · topics3 topics compete
  • Ready for AI Mode

    Your assistant writes the sub-questions AI Mode and AI Overviews fan out for a topic. OnPage.dev rates each one answered, buried, partial or missing on your page and on up to 2 competitors, with the sections to add.

    answer_readiness · questions6 of 10 answered
  • Link equity

    Internal PageRank and click depth from a site audit: pages the home page cannot reach, pages too many clicks deep, dead ends, strong pages that pass little on, and important pages that need more links.

    internal_links · equity3 pages need links
  • Local demand into pages

    Search terms from your Business Profile and map rankings per area become the service and location pages to write and the areas where you rank poorly.

    local · demand5 new pages, 2 weak areas
  • Audit example.com and rank the fixes by the traffic they can win.

    Your agent runssite_audit · startprioritize_fixes

Diagnose

Specialist checks: speed, tracking, accessibility, languages, local search and what bots and screen readers really get.

  • See the first screen

    A real browser on phone, tablet and desktop: is the H1 and call to action visible, does a cookie wall cover it. With screenshots. With screenshots, plus design checks such as low contrast and uneven spacing.

    layout · renderCTA below the fold
  • Read it like a screen reader

    The page the way screen readers and browsing AI agents read it, from the accessibility tree: landmarks, the heading outline, and every link, button, image and field with the name it gets, including the ones announced as just "link".

    accessibility · screen_reader3 links without a name
  • Check the entity graph

    How the structured data describes who and what the page is about, the way AI knowledge graphs read it: which entities there are, how they connect, dead profile links, and the JSON-LD that is missing.

    entity · graph5 entities, 2 fixes
  • Find quotable answers

    Finds the passages on a page that best answer a question, the way AI answer engines pick text to quote, with their length and fit. Shows whether the answer is easy to lift out or buried in a long block.

    answer_readiness · passagesBest passage, 64 words
  • Check readability

    Reading ease with the formula made for the page language, measured against the right target: the pages that rank for the keyword, or the norm for the page type. Lists the sentences that are hardest to read.

    text_quality · readability59 vs 52, 5 sentences to rewrite
  • Spelling and grammar

    Checks the main text of a page in its own language for real errors only: spelling, grammar, confused words and compound words, with the sentence and the fix, leaving brand names and style advice out.

    text_quality · spelling4 errors, 3 spelling
  • Check the share card

    Every Open Graph and Twitter Card tag, and the share image itself: does it load, its real size in pixels, type and weight, against what Facebook, LinkedIn, X, WhatsApp and Slack need. Also a free REST API.

    snippet · socialImage 404, score 73
  • Debug GA4 tracking

    Opens the page in a real browser and captures the hits it really sends to Google: on a first visit, after accepting cookies and on a return visit. Finds double counting, tracking before consent, a banner that never updates Consent Mode and debug mode left on.

    tracking · ga42 page_views per load
  • Real-user speed

    Core Web Vitals from real Chrome visitors, the field data Google uses: LCP, INP, CLS, FCP and TTFB on phone and desktop, with a pass or fail and the share of good visits. For the trend over time, use check_vitals_trend.

    web_vitals · nowLCP 2.1 s, passed
  • Read the server logs

    Reads your server access log lines and shows what Googlebot, Bingbot and AI crawlers really request: hits per bot, the errors and redirects they get, crawl budget lost on parameters, and sitemap pages Googlebot never visits.

    technical · logsGPTBot: 9% errors
  • Accessibility for the EAA

    A WCAG 2.1 AA report for the European Accessibility Act, every check mapped to its success criterion: language, alt texts, form labels, link names, headings and contrast, plus a list of what to test by hand.

    accessibility · wcag4 criteria fail
  • Cookie banner and Consent Mode

    Quick check of the cookie setup from the HTML: which consent platform runs, whether Consent Mode v2 is set to denied before the tags load, and whether the v2 signals are there. For live hits, use check_ga4_tracking.

    tracking · consentdefault set too late
  • Product pages

    Product structured data checked for Google: name, image, price, currency and availability, identifiers like SKU and GTIN, shipping and returns, variants, and the fields merchant listings need. Missing values come with the fix.

    schema · product_pageno shippingDetails
  • Win the snippet

    For a question people search, finds the section that answers it on the pages that rank and on yours, and compares the format: a paragraph and its length, a list and its items, or a table. Then tells you how to rewrite yours.

    answer_readiness · formatWinning: list of 7
  • Multilingual sites

    Valid language and region codes, x-default and the self-reference on a multilingual page, then every language version: does it load, is it indexable, does it link back, and do the canonical and html lang match. Writes the corrected tag set.

    technical · hreflang1 missing return tag
  • Trust signals

    The trust signals Google and AI models look for across the site: About, Contact, Privacy and Terms pages, email, phone and address, company and VAT numbers, Organization markup and social profiles, and on articles the author and dates.

    entity · trust6 of 8 pass
  • Local SEO

    LocalBusiness markup, name, address and phone across the site, opening hours, geo and a page per location, and with your Google Business Profile: the same name, phone, address and hours on both, day by day.

    localNAP mismatch: phone
  • Why Google skips a page

    Turns Search Console URL Inspection results and Pages or Enhancements report rows into causes and fixes: why a page is not indexed, and which template breaks stars, prices or FAQs in rich results.

    explain_google · index_status12 crawled, not indexed
  • Clean up a manual action

    For every type of Google manual action: what it means, the cleanup steps in order, the tools that check them, what to keep as proof, and a reconsideration request draft to fill in.

    explain_google · manual_actionUnnatural links: 5 steps
  • Find duplicate pages

    Groups the pages of a site audit by text similarity and shows which ones say almost the same thing, with their titles, words and canonicals. Per group the page to keep, and whether to merge with a 301, set a canonical or rewrite.

    technical · duplicates2 groups, 5 pages
  • Tame parameters and filters

    Classifies every query parameter in the site's links as tracking, session, search, sort, pagination or filter, and finds crawl traps: tracking in internal links, crawlable search results, filter combinations and pagination that canonicalises to page 1. Writes the robots.txt rules.

    technical · parametersutm in 14 internal links
  • What each bot really gets

    Fetches the page as Googlebot, GPTBot, ClaudeBot, PerplexityBot and more, next to a browser: firewall blocks, challenge pages, cloaking and bot-only redirects that robots.txt never shows.

    ai_visibility · botsGPTBot blocked: 403
  • Ready for Discover and News

    Checks article templates for what Google Discover and News need: large image previews, a 1200 px image, a date, Article markup and a clear title, with your Discover rows.

    find_opportunities · discover4 of 6, image too small
  • Do the numbers add up?

    Search Console clicks against GA4 sessions per page: a missing tag, consent loss, a redirect that drops the source, or mislabelled traffic.

    tracking · gsc_vs_ga43 pages lose 40% of visits
  • Bing and Copilot

    Bing Webmaster crawl and index issues grouped with the fix, and the queries that do well in Google but barely in Bing.

    explain_google · bing14 issues, 6 weak queries
  • Our GA4 numbers look doubled. Check the tracking and whether the cookie banner passes consent on.

    Your agent runstracking · ga4tracking · consent

Fix

Ready code and plans, written from the page itself.

  • Get the fix code

    The fixes for every issue: as HTML to paste, as a pull request, applied in WordPress, or served at the edge by a Cloudflare Worker on any CMS.

    get_fix_pack<title>, <meta>, canonical
  • Speed fixes as code

    Turns a slow page into code, ordered by the Core Web Vital that fails: main image first, scripts deferred, early connections, font swap and image sizes, also as a Cloudflare Worker.

    get_fix_pack · web_vitalsLCP: 4 fixes
  • Approve in WordPress

    Sends the fixes to the OnPage.dev WordPress plugin. The site owner sees old and new value per field and approves with one click. The plugin writes them through Yoast, Rank Math or its own tags, and can undo every change.

    get_fix_pack · wordpress3 fixes waiting
  • Generate structured data

    Writes JSON-LD for Article, Product, FAQPage, Organization or BreadcrumbList from the page's own content and checks it against Google's rich result rules. Values it cannot read are marked TODO, so nothing is guessed.

    schema · generateProduct: eligible
  • Alt texts, written and shipped

    Lists the images without alt text, your assistant looks at each one and writes it, then OnPage.dev checks the texts and ships them as HTML, a Cloudflare Worker, WordPress or code.

    get_fix_pack · alt_texts12 alts, 2 decorative
  • Write an llms.txt

    A ready-to-upload llms.txt built from the sitemap and home page: the site name, a short summary, and the main pages grouped by section with their titles. Check it afterwards with validate_llms_txt.

    llms_txt · generatellms.txt, 42 pages
  • Set the AI crawler rules

    Writes robots.txt rules for 13 AI crawlers from a policy you choose: allow all, AI search only, block training, or block all. Merged into the site's current robots.txt, so your existing rules stay in place.

    robots_txt · ai_policy13 bots, merged
  • Plan the redirects

    For a migration or a restructure: matches old URLs to new ones by path and title with a confidence score, lists the ones to check by hand, and writes the rules for _redirects, nginx, Apache or Next.js.

    plan · redirects212 matched, 9 to review
  • Sites that should link to you

    Sites that link to two or more competitors but not to you, ranked and typed with how to approach each, plus pages that mention your brand without a link, read live, with the sentence to quote in the email.

    backlinks · opportunities38 sites, 6 unlinked
  • Write titles that fit

    Shows how a title and meta description appear in Google: the pixel width against the cut-off on desktop and mobile, and the truncated text a searcher would see. Iterate on variants until they fit.

    snippet · search612 px, cut off
  • Brief the next page

    A writing brief for a search term from the pages that rank for it: the subtopics and questions they cover, the facts and figures they give, the length and the schema they use, and what your page could add.

    content · brief8 topics, 5 questions
  • Learn the site's voice

    Sentence and paragraph length, section size, question headings and how the site addresses its reader, learned from its best articles, so new drafts sound like the rest of the site.

    content · voice2 to 5 articles
  • Plan the content calendar

    Refreshes for queries almost on page 1 and new pages for missing topics, dated per week, steered by the formats that lifted traffic on this site.

    content · calendarlearns from results
  • Check the draft

    Your agent writes, OnPage.dev checks: voice match with what to change, figures without a source and an SEO scan, before you approve.

    content · draftbefore approval
  • Suggest internal links

    Finds the audited pages that should link to a page, with the anchor text, and applies the links if you like: a Cloudflare Worker that links the first mention on each page, a WordPress plan or code edits.

    internal_links · suggest3 links to add
  • Keep, refresh, merge or remove

    One decision per page from a year of clicks, links and conversions: keep, refresh, merge with a 301, noindex or remove with a 410. Pages with value are never removed.

    find_opportunities · prune38 merges, 112 removals
  • Write the fixes for our pricing page and the JSON-LD it is missing.

    Your agent runsget_fix_packschema · generate

Check

Test the work before it goes live, then confirm it on the live page.

  • Scan HTML before deploy

    Scans HTML that is not live yet: a local build, a template or a draft from your editor. The same score and issues as scan_page, so your agent can check its own work before anything is deployed.

    scan_page · html92/100 before deploy
  • Compare two versions

    An SEO diff between two versions of a page, for example before and after a code change: the score change, issues fixed and introduced, and regressions like a stray noindex or a lost canonical, flagged before merging.

    compare · html72 → 18, noindex added
  • Check a deploy preview

    Compares a Vercel, Netlify or Cloudflare Pages preview with production, path by path: pages that break, titles or canonicals that vanish, noindex, lost structured data and canonicals that point to the preview host. Also runs as a GitHub Action on every preview.

    compare · preview0 blockers, merge
  • Validate JSON-LD

    Checks JSON-LD before you publish it: JSON syntax, @context and @type, full URLs, ISO dates, valid prices and currency codes, and Google's required and recommended fields for each rich result.

    schema · validate2 errors
  • Validate llms.txt

    Checks a site's llms.txt against the llmstxt.org format: served as plain text, one H1 with the site name, a summary, sections with proper links, its size, and whether the links it lists actually load.

    llms_txt · validateValid, 3 sections
  • Test robots.txt

    May Googlebot, GPTBot or ClaudeBot fetch this URL? Tests it against the live robots.txt with Google's own matching rules, and shows the exact user-agent group and rule that decides, so you know what to change.

    robots_txt · testBlocked by /search?
  • Check redirects

    Status codes and the full redirect chain for up to 20 URLs at once, and where each one ends up. Give the expected targets after a migration and every URL that lands somewhere else is flagged.

    check_links · urls19 of 20 OK
  • Dead links to other sites

    Checks every link from a page to other sites live: dead sources, cited pages that now redirect to a home page, moved pages and bot blocks, with an archived copy as a replacement for each dead one.

    check_links · outbound3 dead, 1 moved
  • Confirm it is fixed

    Scans a live page again and compares it with the previous scan: the score change, the issues that got fixed, new issues that appeared and the change in AI readiness. The proof that a deploy did what it should.

    scan_page · rescan46 → 94
  • Measure in your own browser

    A small measurement script for your own browser tool, such as Claude in Chrome or Playwright, for staging sites, localhost and pages behind a login, where OnPage.dev cannot reach. No daily limit.

    layout · probeNo daily limit
  • Analyse those measurements

    Runs the first-screen checks of render_page on the results from your own browser: is the H1 and call to action visible, pop-ups and cookie walls, tap targets, small text and what crawlers without JavaScript miss.

    layout · analyze3 devices
  • Check the sitemap

    Finds the sitemap through robots.txt, follows the index and checks the format, the 50,000 URL limit, foreign hosts and lastmod dates that are all the same. Then checks a sample of URLs for redirects, errors, noindex and canonicals elsewhere, with corrected entries.

    sitemap · check4 of 12 URLs do not belong
  • Write a clean sitemap

    Builds sitemap.xml from a site audit with only the pages that belong in it: status 200, indexable and canonical to themselves, lists every page it left out and why, and never invents lastmod dates.

    sitemap · generate212 pages, 9 left out
  • Pull a value from many pages

    Custom extraction for up to 20 pages: a CSS selector, a regular expression or a JSON-LD path such as Product.offers.price. See which pages have the value, which miss it and how many distinct values there are, to verify a template fix at scale.

    technical · extract18 of 20 have a price
  • Check the new build before we deploy, and confirm the live page after.

    Your agent runsscan_page · htmlscan_page · rescan

Act

Hand the plan to the tools your team already works in.

  • Send it to the team

    Google Sheets rows and a CSV link, a Slack message, one task per issue for Linear, Jira or Asana, and a checklist. Your agent sends it with the tools it already has.

    share · exportSheet, Slack, 12 tasks
  • A report for the client

    Publishes a finished site audit as a clean report page with your agency name, ready to send as a link or save as a PDF: score, issues to fix first, sections and broken pages.

    site_audit · reportLink and PDF
  • Share the before and after

    Scans a page again and publishes a shareable proof page on onpage.dev with the score before and after, the issues fixed and the ones still open. Made for clients. Not indexed, and it expires after 90 days.

    share · link46 → 94, shareable
  • Log what shipped

    Records every fix that shipped with its old and new value, the date and how it went out. OnPage.dev then keeps it live, measure_impact saves the result per fix, and get_fix_log turns it into a client report.

    fix_log · log4 fixes logged, all live
  • Tell search engines

    Tells Bing, Yandex, Naver, Seznam and Yep that the fixed pages changed, so they recrawl within minutes instead of days. The first call sets up the key file to upload. For Google, use URL Inspection in Search Console.

    request_recrawl · indexnow12 URLs accepted
  • Win back lost links

    Takes broken and lost backlinks from Ahrefs or Semrush and the 404 hits from GA4, ranks dead pages by linking sites and visits, writes the 301s and link edits, and lists sites to ask for a link back.

    backlinks · broken14 pages, 38 sites back
  • Disavow without the risk

    Builds disavow.txt from your backlink data with only clear spam in it, puts anything with authority up for review, and warns you off uploading it without a manual action or real negative SEO.

    backlinks · disavow14 domains, 3 to review
  • Fix a whole section at once

    From a site audit, one Cloudflare Worker rule per section: titles, descriptions, canonicals and social tags fixed on every matching page, with a preview. Only missing or out-of-range values change.

    edge_worker · rules/products/*: 212 pages
  • Make a JavaScript app readable for AI

    A Worker that serves GPTBot, ClaudeBot and PerplexityBot the rendered page from your own Cloudflare account, while visitors and Google get the normal one. It says so when a page does not need it.

    edge_worker · prerender12 → 900 words for GPTBot
  • Outreach emails that win links

    Turns link prospects from your backlink tool into one short, personal email per site: the broken or missing link, your page and the anchor. They go to Gmail or Outlook as drafts once you approve.

    backlinks · outreach14 drafts, 9 sites
  • Plan the work, not just the fixes

    Sorts fixes into a week-by-week plan for developer, content and outreach within the hours they have, quick wins first, and creates one ticket each in Linear, Jira, Asana or GitHub.

    plan · sprint23 tasks over 4 weeks
  • Get fixes recrawled fast

    Checks that each changed page is indexable, gives the sitemap entries with a fresh lastmod, submits them to IndexNow and lists the pages to request in Search Console.

    request_recrawl8 of 9 ready
  • Replies to every review

    Drafts a short, personal reply for each Google review without one, unhappy customers first, with your contact for complaints. Posted through your Business Profile connector after you approve.

    local · reviews12 replies, 3 urgent
  • Put every fix in a Google Sheet and post the summary in #seo.

    Your agent runssite_audit · startshare · export

Watch

Catch what breaks after launch.

  • Watch a page

    A daily check for regressions, with a private RSS feed and optional Slack or Discord alerts. Watch a competitor and every change they make comes with the counter-move for your page.

    watch · pagenoindex added, alert sent
  • Audit the site every week

    Audits the whole site every day, week or month, compares it with the last audit and posts what broke, turned noindex or got new issues to Slack, Discord or any webhook, without anyone asking.

    watch · site_auditWeekly, 2 regressions sent
  • Read the history

    Every change found on a watched page, newest first: the page going down or redirecting, a new noindex, blocked AI crawlers, a changed canonical or title, the score dropping, new and fixed issues, and the counter-moves for competitors.

    watch · page_status3 changes this week
  • Stop watching

    Stops a watch and deletes its history, including the private RSS feed. Each connection can watch 3 pages at a time, so use it to swap a finished page for the next one you want to keep an eye on.

    watch · page_stopStopped
  • Keep fixes live

    Every logged fix is checked about every 6 hours. When a deploy undoes one, the restore code goes to your webhook or, with the fix guard GitHub Action, into an issue in your repo.

    fix_log · report1 undone, restore ready
  • Feed a live dashboard

    Picks the home page and up to 10 key pages and checks them every day: score, AI readiness, issues with their codes, AI crawler access and Core Web Vitals per week. The history builds up for dashboards and client reports.

    dashboard · feed10 pages, checked daily
  • What changed across the site

    Compares a site audit with the previous one of the same site, kept 90 days: pages that broke, turned noindex or changed canonical, issues that are new or fixed per code, and pages added or gone.

    site_audit · compare3 regressions, 41 fixed
  • Catches deploy accidents

    Every 6 hours: robots.txt that blocks the site, a lost sitemap, noindex or a moved canonical on key pages, http without https. Alerts with the fix before rankings drop.

    watch · guard1 new problem: noindex
  • See what competitors publish

    Reads competitors' sitemaps every week: new, updated and removed pages, flagged when they touch your topics.

    watch · competitors6 new, 2 on your topics
  • Keep an eye on our top pages and tell me in Slack if something breaks.

    Your agent runswatch · page

Measure

Prove what the fixes did for traffic.

  • Measure the impact

    Search Console, GA4 or Ahrefs numbers from before and after, against pages you did not touch, so seasonality is not counted as your win. With a fix log, the result is saved per fix.

    measure · impact+66% clicks vs control
  • Split test a template

    Splits 20 or more pages of one template into two groups with equal traffic, gives a Worker that changes the title or description on one group only, and measures the result against the other.

    plan · split_test12 vs 12 pages
  • Find why traffic dropped

    Two periods from Search Console, compared page by page: lost rankings, lower search demand, fewer clicks at the same position because of an AI Overview, or pages that dropped out. Ranked by lost clicks, with the next tool per cause.

    find_opportunities · traffic_drop3 pages lost rankings
  • Spot spikes and drops

    Daily Search Console or GA4 rows in, the days that broke from their normal weekday pattern out, with the pages behind each one and the Google core updates, spam updates and Search incidents that ran within 3 days.

    find_opportunities · anomaliesDrop 29 Mar, core update
  • Find AI-style queries

    The questions, comparisons and long conversational queries in your Search Console or Bing rows, per page, with the pages that rank but lose the click to an AI answer.

    find_opportunities · ai_queries18% of impressions
  • Find pages nobody clicks

    Results on page 1 whose click-through rate is far below normal for their position, with the clicks a better title and description could win. Quick wins that need no ranking change, tested with check_snippet.

    find_opportunities · ctr_gaps+700 clicks from 4 titles
  • Find queries almost on page 1

    Queries at positions 8 to 20 with real impressions, grouped per page, with the clicks a move into the top 5 could win and the pages that compete for the same query. The fastest ranking wins first.

    find_opportunities · striking_distance23 queries, +1,900 clicks
  • Pages that slowly lose traffic

    Monthly clicks per page from Search Console, Ahrefs or GA4 become a refresh queue: pages that peaked and kept falling, with the clicks lost per month, and seasonal dips left out.

    find_opportunities · content_decay9 pages, −1,840 clicks
  • See speed change over time

    Core Web Vitals from real Chrome users, weekly for about 9 months, on phone and desktop. Give the date a speed fix went live and see the weeks before and after, and since when each metric passes.

    web_vitals · trendLCP 4.2 s → 2.2 s since July
  • Rankings that track themselves

    Search Console plus your Ahrefs or Semrush tracker, with the keywords picked for you: pages you worked on, money terms, near wins and top 3. Each run lists what entered, dropped or switched page, and the next tool.

    track_rankings3 into top 10, 1 lost
  • Prove the AI citations

    How often AI assistants cited your pages before and after the fixes, per engine, against pages you did not change, so a general rise in AI traffic is not counted as your result.

    measure · ai_citations+190% vs control
  • Fill the dashboard

    The feed as clean tables: overview, pages, issues over time, open issues, vitals, AI access and fixes. Dates and full URLs, so they join with GA4 and Search Console or their BigQuery exports in Claude Dashboards.

    dashboard · data90 days, 7 datasets
  • Build the SEO command center

    A complete blueprint for a live dashboard in Claude: realtime visitors from your own GA4, traffic from Search Console, and SEO health, fixes, speed and AI visibility from OnPage.dev, with ready BigQuery SQL and the prompt.

    dashboard · buildRealtime + SEO, one view
  • Visits from AI assistants

    ChatGPT, Perplexity, Gemini, Copilot and Claude visits from your GA4: per assistant and landing page, and how they convert against other visitors.

    measure · ai_referrals1,240 visits, +38%
  • Brand versus non-brand

    Shows whether growth comes from SEO or from people searching your name: clicks, CTR and position for both, and how each side moved.

    measure · brand_splitNon-brand +22%
  • Share of voice

    Your share of the clicks for a keyword set against competitors, weighted by position, with the keywords where a rival takes the clicks you could get.

    measure · share_of_voice31% → 36%
  • Paid and organic together

    Google Ads terms next to Search Console: where you rank top 3 and still pay, and which converting ad terms need a page.

    find_opportunities · paid_organic€1,240 a month to test
  • Did last month’s fixes win us more clicks than the pages we did not touch?

    Your agent runsmeasure · impact

Remember

A memory per site that every tool writes to, so the agent never starts from zero.

  • Remembers every site

    One memory per site, across chats and clients: every OnPage.dev tool you call records what it found, shipped or measured. Open it once and the agent knows the history.

    site_memory · open41 steps since July
  • Learns what works here

    Measured results are tied to the fixes before them, so fix packs and priorities say what moved traffic on this site. Next steps follow: unmeasured fixes, open alerts, fixes worth rolling out.

    site_memory · next3 steps, 1 urgent
  • Connects the dots

    A drop, alert or regression comes with the fixes, deploys and decisions of the last three weeks, and the whole timeline per page or kind.

    site_memory · timelinePricing: 46 → 91, +38%
  • Decisions the tools cannot see

    Notes like "no prices in titles" or "migrated on 3 October" that every later brief and next step takes into account.

    site_memory · noteSaved
  • Yours to delete, yours to share

    Behind a secret memory_key only you hold, deleted in one call or after 400 days without use. Opt in to share measured results anonymously (only the fix type and the rounded change) and learn what worked across sites.

    site_memory · forgetDeleted
  • Pick up where we left off on example.com: what did we ship, what worked, and what is next?

    Your agent runssite_memory · open

Try asking

Once OnPage.dev is connected, type one of these in Claude, ChatGPT, Cursor or VS Code. Your assistant picks the tools.

Limits and privacy

  • Only public pages are scanned, and only the HTML the server returns. Scans are read-only and change nothing on the site.
  • About 20 scans per minute per connection, with a shared cap for everyone. No account and no key.
  • No page content is stored. Traffic numbers passed to prioritize_fixes are used for that answer only. Your assistant receives the results; what it does with them falls under its own privacy rules.