Getting cited by AI answer engines without spamming: an SEO and GEO audit workflow

Опубликовано 2026-10-12

If you run marketing in-house, or you are the founder who also does the marketing, AI search probably reached you as a vague worry: a prospect mentioned that ChatGPT suggested a competitor, or clicks fell while impressions held. Here is an audit you can repeat each quarter with a coding agent such as Claude Code or Codex:

  1. Fix technical problems that stop any search engine from reading your pages.
  2. Check which AI crawlers your site lets in.
  3. Find out whether AI answers cite you today.
  4. Pull Search Console queries to pick the pages worth improving.
  5. Refresh those pages before writing new ones.
  6. Edit them for the people who click through.
  7. Earn honest mentions on the sites AI answers already cite.

GEO (generative engine optimization) and AEO (answer engine optimization) are two names for one goal: being the source an AI-generated answer quotes, links to or recommends. Below, a skill is a folder of instructions the agent loads for a task, and an MCP server connects the agent to an outside service such as Search Console. The npx and npm installs need Node.js.

The skills are free; the agent is not. Claude Code needs a Claude subscription or an Anthropic Console (API) account (Claude Code docs). Codex is included in ChatGPT plans, Free among them, or runs on an OpenAI API key billed at API prices (Codex pricing). Every step below draws on that plan's allowance or your API credits.

Why it is on the list this year

In HubSpot's 2026 State of Marketing report (1,500+ marketers, updated April 10, 2026), 40.6% of marketers cite updating SEO for search changes as one of the top trends they are tackling (HubSpot). Most of the groundwork is ordinary SEO: Google's guide to its generative AI features (updated July 10, 2026) says you don't need new machine-readable files, AI text files, markup or Markdown to appear in them, that Google Search doesn't use llms.txt, and that a page must be indexed and eligible to show with a snippet (Google Search Central). ChatGPT, Perplexity, Claude and Gemini have their own crawlers or crawler settings, which is why step 2 exists.

Where to start

Your situationStart withWhat it costs
One afternoon, no extra spendSEO Audit, then AI SEOFree skills; runs on your agent plan
You can sign in to Search ConsoleSEO Skill or Google Search Console MCP ServerFree tools; Node 22+ for SEO Skill, or uv and your own Google Cloud project
You owe someone a written auditClaude SEO or GEO-SEO ClaudeFree code plus Claude Code usage (Claude SEO's Opus agents use more); needs Python
You need keyword, rank or backlink dataOpenSEO or DataForSEO MCP ServerOpenSEO: trial credit, then a monthly plan plus usage. DataForSEO: pay-as-you-go, USD 50 minimum top-up

Step 1: Fix the technical basics

Hand the agent: your domain, the 5 to 10 pages that matter most (pricing, product pages, best posts) and any recent migration.

SEO Audit checks crawlability and indexation first, then speed, on-page elements and content, and returns prioritized fixes. It is instructions only, so it judges only what the agent fetches. Its README warns that agent fetch tools can strip the JSON-LD script tags that carry structured data and miss schema added by JavaScript, so confirm in Google's Rich Results Test before reporting missing schema.

SEO AuditSkillPrioritized technical and on-page audit; free, instructions only.coreyhaines31/marketingskills55k
# Claude Code
npx skills add coreyhaines31/marketingskills --skill seo-audit -a claude-code -y
# Codex
npx skills add coreyhaines31/marketingskills --skill seo-audit -a codex -y

For measured numbers, add Lighthouse, the Chrome team's auditing tool, which any agent that runs terminal commands can use. It needs Node 22+ and Chrome, runs locally, and its README says results are never sent to a remote server. Scores are lab measurements, not real-visitor data.

LighthouseCLILocal performance and SEO scores per page; needs Node 22+ and Chrome.GoogleChrome/lighthouse30.9k
npm install -g lighthouse

For one large report, Claude SEO (Claude Code only) runs parallel subagents across technical SEO, E-E-A-T (the experience, expertise, authoritativeness and trust signals Google's quality raters look for), schema, Core Web Vitals (Google's loading, responsiveness and visual-stability metrics) and GEO. Run /seo setup after installing. It needs Python 3.10 or newer, and its README recommends 3.11 or newer for new installs because 3.10 reaches end of life this month. Without Google API credentials, Core Web Vitals are lab estimates and indexation is inferred. Its README also notes that five agents now run on Opus, so a full /seo audit costs more than it did before version 2.3.1.

Claude SEOPluginFull-site audit with parallel subagents; Claude Code only, Python 3.11+ advised.AgriciDaniel/claude-seo19.1k
claude plugin marketplace add AgriciDaniel/claude-seo && claude plugin install claude-seo@agricidaniel-claude-seo
Use the seo-audit skill on https://example.com: /pricing, /product and /blog/top-post.
Check robots.txt, the sitemap, canonicals, noindex tags and redirects first. Then run
lighthouse on each page with --only-categories=performance,seo --output=json.
Don't report missing schema unless you checked a rendered page.
Return a table: issue, page, evidence, fix, effort. Don't edit files.

Step 2: Check what AI crawlers can read

Hand the agent: your robots.txt, plus a note from whoever runs your CDN or firewall on bot-blocking rules. Crawler names do different jobs:

User agentDocumented purposeIf you block it
OAI-SearchBotSurfaces sites in ChatGPT searchNot shown in ChatGPT search answers, though navigational links can appear (OpenAI)
GPTBotCrawls content that may be used to train OpenAI's modelsSignals your content should not be used for training; ChatGPT search is unaffected
PerplexityBotSurfaces and links sites in Perplexity search; not used to crawl content for AI foundation models (Perplexity)May not appear in Perplexity search results
Claude-SearchBotImproves Claude's search resultsMay reduce visibility there (Anthropic)
Claude-UserFetches pages when a Claude user asks a questionClaude can't retrieve your page for that user, which may reduce visibility
ClaudeBotCollects content that could be used for trainingSignals that future content should be excluded from Anthropic's training data
Google-ExtendedGemini model training, and grounding in Gemini Apps and Vertex AINo effect on Google Search inclusion or ranking; signals your content should not ground Gemini app answers (Google)

ChatGPT-User and Perplexity-User fetch a page because a person asked for it, and OpenAI and Perplexity say robots.txt rules may not apply to them. Anthropic says its bots, Claude-User included, honor robots.txt. Google's AI Overviews and AI Mode have their own switch, the Search generative AI control in Search Console: inclusion is the default, and excluding removes your links and content from those features (Search Console Help). Check nobody changed it.

GEO-SEO Claude checks robots.txt for 14+ AI crawlers with allow or block advice, analyzes or generates llms.txt, and scores passages for how easily AI can cite them. It is built for Claude Code: its README lists the Claude Code CLI as a requirement, and the /geo commands, citability scoring scripts, subagents and PDF reports come from the README's install script, which needs Python 3.8+ and Git. That script is piped from the repository straight into your shell, so open install.sh and read it (or have your agent summarize it) before running it. The npx lines below copy only the instruction files; in Codex that is all you get, so use the prompt below instead of its commands. Its README opens with unsourced market statistics; don't repeat them.

Google Search doesn't use llms.txt (see above), so treat generating one as optional and do it after the crawler and indexing fixes.

GEO-SEO ClaudeSkillAI crawler, llms.txt and citability checks; Claude Code; scoring and PDFs need Python.zubair-trabzada/geo-seo-claude11.1k
# Claude Code
npx skills add zubair-trabzada/geo-seo-claude --skill '*' -a claude-code -y
# Codex
npx skills add zubair-trabzada/geo-seo-claude --skill '*' -a codex -y

With the full install in Claude Code, /geo crawlers https://example.com runs the skill's own crawler check. In any agent, this prompt checks the file against your policy:

Read https://example.com/robots.txt and check OAI-SearchBot, GPTBot, ChatGPT-User,
PerplexityBot, Perplexity-User, Claude-SearchBot, Claude-User, ClaudeBot and Google-Extended.
Our policy (replace with yours): allow search crawlers, block training crawlers.
Google-Extended covers Gemini grounding as well as training; flag it for a separate decision.
For each bot, say allowed or blocked and quote the responsible line, then propose
exact robots.txt edits. Don't change anything; I will review and deploy.

Step 3: Check whether you are cited today

Hand the agent: 10 to 20 prompts a buyer would type, such as best scheduling software for dental clinics or YourBrand vs CompetitorBrand, with the answers and cited links you collected. AI SEO's README says to keep to prompts that would change revenue and to run each 3 to 5 times per platform, because answers vary: one run is an anecdote. Record "cited 3 of 5", not yes or no.

Start small: 10 prompts, 3 runs each, on the two assistants your buyers use most is 60 runs, which you can do by hand. Paid tools can run prompts for you; OpenSEO's hosted plan, for example, bills AI prompt checks per use (see the last section).

The skill does not query ChatGPT or Perplexity itself. You, or a paid tracker, run the prompts; the skill compares who gets cited and why their pages are easier to quote (direct answers, tables, sourced numbers, dates) and suggests rewrites, structured data and missing third-party mentions.

AI SEOSkillStructures the citation check and suggests quotable rewrites; free.coreyhaines31/marketingskills55k
# Claude Code
npx skills add coreyhaines31/marketingskills --skill ai-seo -a claude-code -y
# Codex
npx skills add coreyhaines31/marketingskills --skill ai-seo -a codex -y
Use the ai-seo skill. citations.csv has 10 prompts, each run 3 times in ChatGPT and
Perplexity, with the URLs each answer cited. Calculate our citation rate per prompt and
platform, list competitor pages cited where we are not, and for our 3 weakest prompts
compare our page with the cited one on structure, sourcing and freshness. Suggest edits
to existing pages only. Save the third-party pages that were cited (review sites,
comparison articles, forums, Wikipedia) to cited-sources.csv for step 7.

Step 4: Pull your Search Console queries

Hand the agent: access to your Search Console property. Two tools do this; pick by how much setup you can face.

SEO Skill is a command-line tool with its own MCP server, which works with any agent that can start a local MCP server. It needs Node 22+. seo start walks you through Google sign-in and your Search Console property, and offers to add its skill and MCP server to your agent (later: seo mcp install --claude-code or --codex). Its README says public releases can include a shared Google app; if yours does not, setup guides you through adding your own desktop OAuth client. seo report --url https://example.com gives a technical report with no sign-in, and seo quick-wins finds pages ranking 4 to 10 with low click-through. Google tokens, project profiles and crawl reports are stored on your machine. Keyword and competitor research needs a paid provider (DataForSEO, Semrush or Ahrefs); connecting one is optional.

SEO SkillCLICrawl plus Search Console data, ranked into fixes; Node 22+, Google sign-in.iannuttall/seo578
npm i -g seo && seo start

Google Search Console MCP Server lets the agent pull queries and pages with clicks, impressions, CTR and position, compare periods, check indexing for up to 10 URLs at once and list sitemaps. It is not a Google project. You need uv, a small tool that downloads and runs Python programs (its README gives the three Terminal commands to install it), a Google Cloud project with the Search Console API turned on, and an OAuth client of type Desktop app saved as a JSON file (the README walks through creating it). The first run opens a browser sign-in. The add-site, delete-site and delete-sitemap tools stay off unless you set GSC_ALLOW_DESTRUCTIVE; leave it unset. Submitting a sitemap works by default, so tell the agent to read only. Each request returns at most 500 rows, so on a large site ask for one folder or page group at a time.

Google Search Console MCP ServerMCPSearch Console queries, pages and indexing checks; needs your own OAuth file.AminForou/mcp-gsc1.9k
# Claude Code
claude mcp add -e GSC_OAUTH_CLIENT_SECRETS_FILE=/path/to/client_secrets.json gsc -- uvx mcp-search-console
# Codex
codex mcp add gsc --env GSC_OAUTH_CLIENT_SECRETS_FILE=/path/to/client_secrets.json -- uvx mcp-search-console

One gap: Search Console now has a Generative AI performance report for AI Overviews and AI Mode, showing impressions by page, country, device and date, with no queries (Search Console Help). Neither tool's README lists it, and AI SEO's README still says there is no AI-specific reporting, so open it in the browser.

Using the Search Console tools for sc-domain:example.com, compare the last 90 days with the
previous 90. Read only: don't submit, add or delete anything. List pages with steady
impressions but falling clicks, and the question-style queries (how, what, best, vs) each
gets. Check indexing for the top 10. Output a refresh shortlist: page, queries to answer,
current position.

Step 5: Refresh existing pages before writing new ones

Hand the agent: the shortlist, each page's current text and a file of facts that changed. Google's guide says you needn't break content into tiny pieces for AI, and that producing many variations mainly to manipulate rankings or AI responses violates its scaled content abuse policy. Improving a page that already earns impressions is safer than publishing ten new ones.

Copy Editing works through existing copy in seven sweeps (clarity, voice, so-what, proof, specificity, emotion, risk), runs a check for AI-writing tells on every edit, and includes a refresh framework for stale pages. Its specificity sweep pushes for concrete numbers; when a fact is missing it marks [NEED: ...] instead of inventing one, so supply real numbers or fill those gaps yourself.

Copy EditingSkillSeven-sweep edit and refresh of existing pages; free.coreyhaines31/marketingskills55k
# Claude Code
npx skills add coreyhaines31/marketingskills --skill copy-editing -a claude-code -y
# Codex
npx skills add coreyhaines31/marketingskills --skill copy-editing -a codex -y
Refresh /blog/top-post with the copy-editing skill, using the queries in shortlist.md.
Keep the URL, search intent and author voice. Answer each listed question in the first two
sentences of its section. Use only facts from facts.md and add a last-updated date. Where
a claim needs a number or source we lack, mark it [NEED: ...]. Show changes as a diff.

Step 6: Edit for the people who click through

Hand the agent: the refreshed draft and two or three paragraphs you wrote yourself. Orbit Media's 2026 survey of 1,042 content marketers found 92.4% use AI for blogging and 13.9% say their blog delivers strong results, an all-time low; Orbit reports that AI use "correlates with nothing" in those results (Orbit Media, September 8, 2026). A citation can earn the visit; the page still has to persuade a person.

Copy Editing has already checked for AI tells, so this step is an optional second pass. Humanizer's main extra is matching your voice from a writing sample. It flags and rewrites AI-writing patterns from Wikipedia's Signs of AI writing guide, and its README says it asks for missing details rather than inventing them, and that beating AI detectors is not a goal: detectors still flag most of its output. Read the result yourself before it goes live.

HumanizerSkillSecond pass that matches your voice and removes AI-writing tells; adds no facts.blader/humanizer57.5k
# Claude Code
npx skills add blader/humanizer --skill humanizer -a claude-code -y
# Codex
npx skills add blader/humanizer --skill humanizer -a codex -y
/humanizer
Here is a sample of my writing for voice matching: [paste 2-3 paragraphs]
Now humanize the prose in drafts/top-post.md. Keep headings, links, numbers and quotes.

Step 7: Earn mentions on the sites AI already cites

Hand the agent: cited-sources.csv from step 3 and links to your listings on review sites, directories and marketplaces.

The worry from the opening, ChatGPT suggesting a competitor, is often not about your pages at all. AI SEO's README separates the two: being cited means your content was useful to consult, while being recommended "is governed by web-wide consensus (reviews, forums, analysts, press) and is largely independent of your own content". It also says ChatGPT, Claude, Perplexity and Copilot cite third-party sources such as Reddit, Wikipedia and review sites more heavily than top-ranked pages.

The honest moves, most of them from that README:

  • Make your profiles agree. Your listings on review and directory sites (it names G2, Capterra, Crunchbase and LinkedIn) should describe you with the same segment and positioning as your About page; the README says models look for consensus.
  • Fix outdated facts. Correct the listings you control. If Wikipedia has an article about you, its conflict-of-interest guideline strongly discourages editing it yourself: disclose your interest and propose changes on the article's talk page (Wikipedia).
  • Ask real customers for reviews on the sites that get cited. Don't pay for positive reviews, write them for customers or post them yourself.
  • Offer something worth citing. Pitch original data or expert quotes to the roundups and comparison articles that are already cited.
  • Join communities as yourself. Post under your own name with your affiliation stated. The README treats Reddit as one surface in a portfolio, because citation mixes shift when retrieval changes.

With the full install in Claude Code, GEO-SEO Claude's /geo brands scans YouTube, Reddit, Wikipedia, LinkedIn and other platforms for brand mentions, according to its README, which shows where you are already discussed.

Use the ai-seo skill. From cited-sources.csv, group the third-party pages cited where we
are absent: review site, comparison article, forum thread, Wikipedia, directory. For each,
say what it says about us, if anything, and quote any fact that is wrong or out of date.
Draft short, factual correction requests or pitches for the ones we can honestly approach.
Don't draft reviews, forum posts or anything published under someone else's name.

The list under "What not to do" below is the boundary for this step.

Measure and repeat

Next quarter, rerun the same prompt set and the same Search Console comparison for the pages you changed, and compare rates, not single answers. Free tools show what Google and your own analytics record about your site. Competitor rankings, keyword volumes, backlinks and cross-engine AI visibility come from paid data.

Visits from AI answers

AI SEO's README suggests tracking referral traffic from AI sources to see which of your pages get cited. Google Analytics MCP Server, official from Google Analytics and marked experimental, lets the agent run Google Analytics 4 reports. It needs pipx, a Google Cloud project with the Google Analytics Admin API and Data API enabled, and Application Default Credentials with the read-only Analytics scope, which its README sets up with the gcloud command from the Google Cloud CLI. If you connected Google Analytics during SEO Skill's setup, seo analytics google report can pull GA4 reports too.

Google Analytics MCP ServerMCPOfficial but experimental GA4 reports; read-only scope; needs Google Cloud credentials.googleanalytics/google-analytics-mcp3.5k
# Claude Code
claude mcp add analytics-mcp --scope user -e "GOOGLE_APPLICATION_CREDENTIALS=PATH_TO_CREDENTIALS_JSON" -e "GOOGLE_PROJECT_ID=YOUR_PROJECT_ID" -- pipx run analytics-mcp
# Codex
codex mcp add analytics-mcp --env GOOGLE_APPLICATION_CREDENTIALS=PATH_TO_CREDENTIALS_JSON --env GOOGLE_PROJECT_ID=YOUR_PROJECT_ID -- pipx run analytics-mcp
Using the Google Analytics tools, run a report for the last 90 days: sessions by session
source and landing page, where the source contains chatgpt, perplexity, claude, gemini or
copilot. Compare with the previous 90 days and list the landing pages that gained.

This counts only visits that arrive with a referrer from those services. Visits that arrive without one are counted as direct traffic, so treat the number as a floor.

Paid keyword, rank and backlink data

OpenSEO is an open-source Semrush and Ahrefs alternative whose MCP server covers keyword research, rank tracking, competitor insights, backlinks, site audits and AI visibility. The hosted version (the commands below) starts with a small trial credit, then a monthly plan that includes a usage allowance, with paid top-up credits for heavier use (OpenSEO pricing, checked October 2026). Its README says the hosted service adds 28% to the cost of each DataForSEO request it makes. Self-hosting with Docker or Cloudflare means paying DataForSEO directly with your own key. Either way, have the agent list planned lookups before running them.

OpenSEOMCPKeywords, rankings, backlinks and AI visibility; trial credit, then paid.every-app/open-seo23.8k
# Claude Code
claude mcp add --transport http --scope user openseo https://app.openseo.so/mcp
# Codex
codex mcp add openseo --url https://app.openseo.so/mcp

DataForSEO MCP Server, maintained by DataForSEO, lets the agent read the API docs and make authenticated requests for keyword, SERP, backlink and site audit data. It needs a pay-as-you-go account: new accounts get a small trial credit for the API Playground, and the minimum top-up was USD 50 when checked in October 2026 (DataForSEO pricing). The hosted server signs in with OAuth. Have the agent list planned requests before running them, since each is billed.

DataForSEO MCP ServerMCPRaw keyword, SERP and backlink data; pay-as-you-go account.dataforseo/mcp-server-typescript254
# Claude Code
claude mcp add --transport http dataforseo https://mcp.dataforseo.com/v3/mcp
# Codex
codex mcp add dataforseo --url https://mcp.dataforseo.com/v3/mcp

What not to do

  • Mass-produce pages. Google's spam policies define scaled content abuse as many pages generated mainly to manipulate rankings rather than help users, citing "using generative AI tools or other similar tools to generate many pages without adding value for users" (Google spam policies). Near-identical pages for each city that funnel visitors to one page fall under a separate policy, doorway abuse.
  • Fake reviews or testimonials. The US Federal Trade Commission's final rule, announced August 14, 2024, bans fake reviews including AI-generated ones, company-controlled sites posing as independent reviewers and bought fake social media indicators, and lets the FTC seek civil penalties from knowing violators (FTC). Check your other markets' rules too.
  • Manufacture mentions. AI SEO's README rules out fabricated citations, invented awards, "independent" review sites you own and bulk posting on Reddit or Wikipedia.
  • Block crawlers by name without checking their purpose. Use the table in step 2.

Limits and risks

  • Citation checks are samples. Answers change between runs, places and accounts. Track rates over months, not screenshots.
  • Scores belong to the tool. A GEO score from GEO-SEO Claude or Claude SEO is that tool's weighting, not a Google or OpenAI metric. Report the findings underneath.
  • Agents misread pages. JavaScript-injected schema and client-rendered pages cause false findings. The SEO Audit README also treats fetched pages as untrusted data, since page text can carry instructions aimed at agents.
  • Install scripts run code on your machine. Read a piped install script, such as GEO-SEO Claude's, before running it, or stay with the instruction-only install.
  • Credentials and client data. Your Search Console OAuth file, Google Analytics credentials and DataForSEO login open real accounts; keep them out of shared folders and repositories. Get a client's permission before connecting their Search Console or Analytics to any hosted service.
  • A person ships the change. Have the agent propose robots.txt, schema and copy changes as diffs, and review them before anything goes live.
SEO and AI search visibilityFor in-house marketers, content leads and solo founders: connect Search Console, audit, check AI crawlers and citations, research keywords, refresh posts, edit. Most run in Claude Code. Search-volume data costs money; AI-citation tracking is immature. Improve your pages; don't mass-produce.13 ресурсов
Версия в Markdown (для агентов)