SEO GEO
Audit and improve content for AI Overviews and answer engines, including citability, entity clarity, crawler access, brand signals, and passage structure.
Scores a page on how easily ChatGPT, Perplexity, Claude and Google's AI Overviews can quote it, checks AI crawler access, and rewrites the weak passages.
Listed ·Updated
$ npx skills add https://seoskills.sh --skill ai-search-optimizerAI Search Optimizer is an AI SEO (GEO and AEO) skill for AI agents, published in the seoskills.sh catalog. Reach for it when your work involves answer and generative engine optimization for AI Overviews, Perplexity, and ChatGPT. Install it with one command and it runs inside your own agent, so the work happens in your workflow, not a separate SEO tool.
AGENT ROLE: Autonomous AI-search content agent. Measure each page with the script, emit the JSON in references/output.schema.json, then rewrite the passages it flags so the page is easier for AI engines to lift and cite.
Answer "why would an AI answer quote this page, or not, and what exactly should change?" Every finding comes from the page as served: its opening paragraph, headings, sentences, JSON-LD, robots meta and the site's robots.txt.
url (REQUIRED via --url, repeatable or comma-separated, up to 10): the pages to optimize. Use content pages such as guides, articles, product, service and FAQ pages. Homepages and listings score lower by nature.query (OPTIONAL via --query, repeatable, up to 10): the questions the page should be cited for. With queries, the output shows how well the title, H1, opening paragraph, headings and body use each question's words.seoskills-ai-search-optimizer/1.0./robots.txt, checked for 13 crawler tokens: OAI-SearchBot, ChatGPT-User, GPTBot, Claude-SearchBot, Claude-User, ClaudeBot, PerplexityBot, Perplexity-User, Googlebot, Google-Extended, Bingbot, Applebot-Extended and CCBot. Each is labelled search, user or training, with what a block means according to the vendor's own documentation./llms.txt, reported for information only. Google says AI Overviews and AI Mode need no special files or markup, so it does not change the score.scripts/ai_search_optimizer.py --url https://example.com/guide [--url ...] [--query "..."].STEP 1: FETCH each page. Split it into text blocks and keep the main content (<main> or <article> when present), dropping navigation, site header, footer and asides.
STEP 2: ELIGIBILITY. Read meta robots, googlebot and X-Robots-Tag. noindex and nosnippet are critical, because Google applies them to AI Overviews and AI Mode too. A max-snippet under 160 is high.
STEP 3: SCORE five areas out of 20 each, for a total out of 100:
<time> or a visible "Updated" line, at 180 days or less (10), 365 days or less (6) or older (2); dateModified in JSON-LD (5); a visible date (5).sameAs links (2 each, up to 6), BreadcrumbList (6).
STEP 4: QUERY FIT, only with --query. Measure the share of each question's words found in the title, H1, opening paragraph, best heading and body.
STEP 5: CRAWLERS. Match every page path against each crawler token with Google's robots.txt rules (the longest matching rule wins; Allow wins a tie).
STEP 6: REWRITE. For each item in rewrite_targets, write the replacement:answer_first: a 40 to 60 word direct answer to the page's main question, which opens with the subject and states the answer in the first sentence.question_heading: the heading rephrased as the question a searcher asks, plus the one-sentence answer that should open the section.split_paragraph: the paragraph broken into two to four short, self-contained paragraphs, or a list where it is a sequence.
Then draft the missing JSON-LD (Article or the right page type with author, datePublished and dateModified; Organization with sameAs) using only facts the page or the user provides.unreachable with its http_status, and the other pages continue. A 403 usually means the site blocks automated requests, not that the page is missing.error.code="PAGES_UNREACHABLE". A --url that is not an absolute http(s) URL STOPs INPUT_INVALID.[source needed] and ask the user for real data.what_blocking_means, and change robots.txt only if the user wants that visibility.One JSON object per references/output.schema.json. Then a short report for the user: each page's score and weakest areas, any critical eligibility or crawler problems, and the rewrites as before and after pairs, followed by the JSON-LD to add.
scripts/ai_search_optimizer.py: page segmentation, eligibility, five-area scoring, query fit, robots.txt crawler matching and llms.txt check.references/output.schema.json: output contract.Not using the CLI? Copy the SKILL.md and paste it straight into ChatGPT, Claude, or any agent.
$ npx skills add https://seoskills.sh --skill ai-search-optimizer -a claude-codeAudit and improve content for AI Overviews and answer engines, including citability, entity clarity, crawler access, brand signals, and passage structure.
Live SEO data via DataForSEO MCP server: SERP analysis, keyword research (volume, difficulty, intent, trends), backlink profiles, on-page analysis, competitor and content analysis, business listings, AI visibility (LLM mention tracking), and domain analytics.
Generate AEO-optimized content (Answer Engine Optimization) for AI search visibility - ChatGPT, Claude, Gemini, AI Overviews.
Technical SEO audit with GEO-specific checks — crawlability, indexability, security, performance, SSR, and AI crawler access
AI citability scoring and optimization.
Optimize for search engine visibility, ranking, and AI citations.