GEO-First SEO Audit Tool
zubair-trabzada/geo-seo-claude
Audits a website for AI search visibility across ChatGPT, Claude, Perplexity and Google AI Overviews while checking traditional SEO, schema and E-E-A-T content quality.
Full-site blog health assessment scanning all blog files for quality scores, orphan pages, topic cannibalization, stale content, and AI citation readiness.
$ npx skills add AgriciDaniel/claude-blog --skill blog-audit -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install AgriciDaniel/claude-blog blog-audit --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/AgriciDaniel/claude-blog.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/blog-audit .claude/skills/blog-audit && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "blog-audit" agent skill from https://github.com/AgriciDaniel/claude-blog/tree/main/skills/blog-audit into .claude/skills/blog-audit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "blog-audit", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/AgriciDaniel/claude-blog/tree/main/skills/blog-auditType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add AgriciDaniel/claude-blog --skill blog-audit -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install AgriciDaniel/claude-blog blog-audit --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AgriciDaniel/claude-blog.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/blog-audit .agents/skills/blog-audit && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "blog-audit" agent skill from https://github.com/AgriciDaniel/claude-blog/tree/main/skills/blog-audit into .agents/skills/blog-audit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "blog-audit", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add AgriciDaniel/claude-blog --skill blog-audit -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install AgriciDaniel/claude-blog blog-audit --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AgriciDaniel/claude-blog.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/blog-audit .cursor/skills/blog-audit && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "blog-audit" agent skill from https://github.com/AgriciDaniel/claude-blog/tree/main/skills/blog-audit into .cursor/skills/blog-audit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "blog-audit", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/AgriciDaniel/claude-blog.git --path skills/blog-audit--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add AgriciDaniel/claude-blog --skill blog-audit -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install AgriciDaniel/claude-blog blog-audit --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AgriciDaniel/claude-blog.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/blog-audit .gemini/skills/blog-audit && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "blog-audit" agent skill from https://github.com/AgriciDaniel/claude-blog/tree/main/skills/blog-audit into .gemini/skills/blog-audit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "blog-audit", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install AgriciDaniel/claude-blog blog-auditInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add AgriciDaniel/claude-blog --skill blog-audit -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/AgriciDaniel/claude-blog.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/blog-audit .github/skills/blog-audit && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "blog-audit" agent skill from https://github.com/AgriciDaniel/claude-blog/tree/main/skills/blog-audit into .github/skills/blog-audit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "blog-audit", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add AgriciDaniel/claude-blog --skill blog-audit -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install AgriciDaniel/claude-blog blog-audit --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AgriciDaniel/claude-blog.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/blog-audit .opencode/skills/blog-audit && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "blog-audit" agent skill from https://github.com/AgriciDaniel/claude-blog/tree/main/skills/blog-audit into .opencode/skills/blog-audit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "blog-audit", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
blog-auditFull-site blog health assessment scanning all blog files for quality scores, orphan pages, topic cannibalization, stale content, and AI citation readiness.
Blog Audit is an agent skill from AgriciDaniel/claude-blog. Full-site blog health assessment scanning all blog files for quality scores, orphan pages, topic cannibalization, stale content, and AI citation readiness. Runs canonical batch analysis before site-wide checks. Produces per-post scores and a prioritized action queue. Use when user says "audit blog", "blog audit", "site audit", "blog health", "audit all posts", "check all blogs".
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Marketing & SEO, covering AI search optimization and SEO audit. The repository describes itself as: Claude Code blog skill suite: 30 sub-skills, 5 agents, 5-gate v1.9.0 Blog Delivery Contract, dual-optimized for Google rankings and AI citations. Active development at… The licence is MIT.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 2500d4c. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
python3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Blog Audit loads about 2.4k tokens when it runs. Until then it costs about 98 tokens; SKILL.md has 985 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
config files, SKILL.md, package files, `.env*`, keys, and private notesAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from AgriciDaniel/claude-blog at commit 2500d4c, republished under its MIT licence (© AgriciDaniel). 985 words, ~2,442 tokens.
.claude/skills/blog-audit/SKILL.md (or your agent's skills folder).Performs a comprehensive blog health assessment across all posts in the project. Scans for quality scores, orphan pages, topic cannibalization, stale content, and AI citation readiness. Uses the canonical analyzer JSON as the score source and produces a prioritized action queue.
Scan the project for all blog content files:
.md, .mdx, .html, .astro, .svelte, .vue,
.tsx, and .jsx in common blog directories and CMS export folderscontent/posts/blog/src/content/_posts/pages/blog/articles/content/blog/**src/pages/blog/.git/,
dot-directories, node_modules/, vendor/, dist/, build/, .next/,
coverage/, reports/, generated exports, README, CHANGELOG, LICENSE,
config files, SKILL.md, package files, .env*, keys, and private notesIf no blog files are found in standard locations, ask for an allow-listed root or only search user-approved content directories. Do not scan the entire project root by default.
Run canonical analyzer output first and use it as the source of per-post scores:
python3 scripts/analyze_blog.py <blog-root> --batch --format jsonProcess files in chunks, cap parallel follow-up work to a small fixed number,
respect context limits, and aggregate deterministic JSON with file, score,
categories, issues, and metadata. Layer the site-wide checks below on top
of analyzer JSON, not separate scoring rubrics.
dateModified, lastUpdated, updated, and lastmod, including
timezone-normalized generated schema, then require freshness parityAdd site-wide technical checks before final recommendations:
blog-google when available for Core Web Vitals, GSC queries, URL
Inspection, indexing status, and GA4 contextSKIPPED: credentials unavailableAnalyze across all posts for keyword competition:
Build and analyze the internal link graph:
{ page -> [pages it links to] }{ page -> [pages linking to it] }Audit content freshness across all posts:
lastUpdated, dateModified, date, updatedAggregate all results into a comprehensive report:
## Blog Audit Report
**Audit Date:** [date]
**Total Posts:** N
**Average Score:** XX/100
### Health Overview
| Metric | Count |
|--------|-------|
| Posts Scoring 90+ (Excellent) | N |
| Posts Scoring 70-89 (Good) | N |
| Posts Scoring 50-69 (Needs Work) | N |
| Posts Scoring <50 (Poor) | N |
| Orphan Pages | N |
| Dead-End Pages | N |
| Cannibalization Issues | N |
| Stale or Decaying Content | N |### Per-Post Scores
| Post | Score | Content | SEO | E-E-A-T | Technical | AI Citation | Issues |
|------|-------|---------|-----|---------|-----------|-------------|--------|
| [filename] | XX/100 | X/30 | X/25 | X/15 | X/15 | X/15 | [count] |### Prioritized Action Queue (Lowest Score First)
| Priority | Post | Score | Top Issue | Recommended Action |
|----------|------|-------|-----------|--------------------|
| 1 | [file] | XX | [issue] | [action] |
| 2 | [file] | XX | [issue] | [action] |### Topic Cannibalization
| Keyword | Competing Posts | Recommendation |
|---------|----------------|----------------|
| [keyword] | post-a.md, post-b.md | Merge / Redirect / Differentiate |### Orphan Pages (No Inbound Links)
| Page | Inbound Links | Recommended Link Sources |
|------|---------------|--------------------------|
| [file] | 0 | post-a.md, post-b.md, post-c.md |### Stale Content
| Post | Last Updated | Days Stale | Priority | Refresh Effort |
|------|-------------|------------|----------|----------------|
| [file] | [date] | [N] | High/Med/Low | Light/Moderate/Heavy |Save timestamped Markdown and JSON exports under reports/, for example
reports/blog-audit-YYYY-MM-DD.md and reports/blog-audit-YYYY-MM-DD.json.
Do not overwrite a previous audit report.
After saving, inform the user:
[project-root]/reports/blog-audit-YYYY-MM-DD.md and
[project-root]/reports/blog-audit-YYYY-MM-DD.json/blog analyze <file> on the lowest-scoring post first/blog flow optimize for AI-citation SEO checks on key postsFor evidence-led audit prompts beyond this site-wide health pass, see /blog flow optimize (visibility, CTR, schema, extraction audits) and /blog flow win (dual-surface scorecard, conversion audit).
© AgriciDaniel, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/blog-audit of AgriciDaniel/claude-blog.
Open the folder on GitHubat commit 2500d4c
Blog Audit next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Blog Audit this skillAgriciDaniel/claude-blog | 2.3k | — | ~2.4k | Automated safety check: Notes | MIT | |
| GEO-First SEO Audit Toolzubair-trabzada/geo-seo-claude | 11k | — | ~2.8k | Automated safety check: Notes | MIT | |
| GEO Monthly Delta Reportzubair-trabzada/geo-seo-claude | 11k | — | ~2.4k | Automated safety check: Notes | MIT | |
| SEO and GEO Auditdageno-agents/seo-geo-audit | 176 | — | ~2k | Automated safety check: Pass | MIT | |
| GEO Platform Optimizerzubair-trabzada/geo-seo-claude | 11k | 2 repos | ~4.7k | Automated safety check: Notes | MIT | |
| AI Discoverability AuditBrianRWagner/ai-marketing-claude-code-skills | 441 | — | ~2.3k | Automated safety check: Pass | None |
zubair-trabzada/geo-seo-claude
Audits a website for AI search visibility across ChatGPT, Claude, Perplexity and Google AI Overviews while checking traditional SEO, schema and E-E-A-T content quality.
zubair-trabzada/geo-seo-claude
Compares a baseline and a current GEO audit for a client, calculates score changes and action item progress, and writes a monthly progress report.
dageno-agents/seo-geo-audit
Runs one prioritized audit that combines technical SEO, content quality, trust signals, entity clarity and AI search readiness for a page, site or domain.
zubair-trabzada/geo-seo-claude
Audits a site for AI search visibility one platform at a time, scoring Google AI Overviews, ChatGPT, Perplexity, Gemini and Bing Copilot and listing gaps to fix.
BrianRWagner/ai-marketing-claude-code-skills
Audits how a brand is described by AI search tools such as ChatGPT, Perplexity and Gemini, then produces a scored report, action plan and re-audit schedule.
zubair-trabzada/geo-seo-claude
Combines the results of several GEO audits into one client-ready report with a weighted GEO Readiness Score, findings and prioritized actions.
AgriciDaniel/claude-blog
Google API integration for blog performance: PageSpeed Insights, CrUX Core Web Vitals with 25-week history, Search Console performance, URL Inspection, Indexing API, GA4 organic traffic, NLP entity…
AgriciDaniel/claude-blog
Generate audio narration of blog posts using Google Gemini TTS.
AgriciDaniel/claude-blog
FLOW framework integration for bloggers. An agent skill from AgriciDaniel/claude-blog.
AgriciDaniel/claude-blog
Query Google NotebookLM notebooks for source-grounded, citation-backed answers from user-uploaded documents.
AgriciDaniel/claude-blog
AI image generation and editing for blog content powered by Gemini via MCP.
AgriciDaniel/claude-blog
Semantic topic cluster planning and automated execution engine for claude-blog.
Categories
Full-site blog health assessment scanning all blog files for quality scores, orphan pages, topic cannibalization, stale content, and AI citation readiness. Blog Audit is an agent skill from AgriciDaniel/claude-blog. Full-site blog health assessment scanning all blog files for quality scores, orphan pages, topic cannibalization, stale content, and AI citation readiness.
Blog Audit fits situations like: user says audit blog; audit all posts; check all blogs.
Run `npx skills add AgriciDaniel/claude-blog --skill blog-audit -a claude-code`. Or copy the skill folder (skills/blog-audit in AgriciDaniel/claude-blog) into .claude/skills/blog-audit in your project. Claude Code loads it when a task matches its description.
Run `npx skills add AgriciDaniel/claude-blog --skill blog-audit -a codex`. Or copy the skill folder (skills/blog-audit in AgriciDaniel/claude-blog) into .agents/skills/blog-audit in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add AgriciDaniel/claude-blog --skill blog-audit -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/blog-audit, .gemini/skills/blog-audit, .github/skills/blog-audit and .opencode/skills/blog-audit in your project.
Going by SKILL.md and its folder, Blog Audit needs the command-line tools its instructions call (python3). Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Blog Audit is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Blog Audit: GEO-First SEO Audit Tool (zubair-trabzada/geo-seo-claude, 11k stars), GEO Monthly Delta Report (zubair-trabzada/geo-seo-claude, 11k stars), SEO and GEO Audit (dageno-agents/seo-geo-audit, 176 stars) and GEO Platform Optimizer (zubair-trabzada/geo-seo-claude, 11k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
AgriciDaniel (a GitHub user) maintains it in AgriciDaniel/claude-blog, which has 2,348 GitHub stars. The repository holds 39 skills in this directory. The repository was last updated on October 9, 2026.
Source: AgriciDaniel/claude-blog on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.