SEO and Answer Engine Optimization tooling for GRC Engineering Club chapter sites, and for any member who wants it on their own site. Two ports of the same thing: a Claude Code skill and a Cursor rules pack. Use whichever editor you already use.
Everything here runs from your codebase. No API keys, no analytics account, nothing to configure before the first run.
Cursor
git clone https://github.com/GRCEngClub/seo-skills.git
cp -R seo-skills/.cursor <your-repo>/Cursor auto-loads .cursor/rules/*.mdc and exposes .cursor/commands/*.md as slash commands.
Then open .cursor/rules/seo-aeo.mdc and replace {CITY}, {SLUG}, and {SITE_URL}.
Claude Code
git clone https://github.com/GRCEngClub/seo-skills.git
cp -R seo-skills/claude/skills/chapter-seo <your-repo>/.claude/skills/| Command | What it does |
|---|---|
audit |
Technical SEO audit. Ten checks across metadata, sitemap, robots, structured data, internal links, images, headings, content depth, and duplication. Findings grouped critical / warning / info / pass, each with file, line, and fix. |
aeo |
Answer Engine Optimization review. Infrastructure check, target-query ownership, and per-page readiness scoring for how well ChatGPT, Perplexity, Claude, and Gemini can extract and cite your content. |
plan |
Content plan. Separates local intent from topic intent, flags pages that compete with grcengclub.com, and proposes gaps ranked by effort. |
In Cursor these are /seo-audit, /seo-aeo, /seo-plan. In Claude Code they are
/chapter-seo audit, /chapter-seo aeo, /chapter-seo plan.
The Cursor pack also ships an always-on rules file that applies to every edit: metadata requirements, JSON-LD by page type, entity linkage, AI-crawler rules, and copy conventions.
The Claude Code skill detects your stack before auditing and translates the checks: Next.js App Router, Next.js Pages Router, React SPA, Astro, Eleventy, Jekyll. The Cursor rules file is written for Next.js App Router specifically, since that is what the chapter site template uses. On another stack, use the Claude version or adapt the rules file.
One entity, two properties. A chapter site is only worth more than a standalone microsite if
structured data says it belongs to the club. That means parentOrganization pointing at
https://grcengclub.com in your Organization schema, plus a sameAs array. Without it you have
built a microsite with extra steps.
Do not compete with the parent. The chapter site owns local intent: "GRC meetup ", local employers, event recaps, the local job market. The club owns topic intent: what GRC engineering is, salary, certifications, the Academy. Two pages targeting one query means both rank worse. Link to the club instead of restating it.
Live traffic reporting. The club's internal version also pulls GA4 and Search Console data through a service account scoped to the club's own properties, which is not shareable and would not point at your site anyway. If you want traffic reporting, set up your own GA4 property and Search Console verification.
The audit, AEO, and plan commands are where most of the value is regardless. They tell you what to fix, not what already happened.
Open an issue or a PR. If you run these on a chapter site and a check misfires on your stack, that is worth reporting.