api-integration
Use this skill when the user says 'API integration', 'connect APIs', 'sync data', 'data mapping', 'rate limiting', or needs…
Use this skill when the user says 'SEO audit', 'site audit', 'check SEO', 'audit my site', 'SEO check', 'technical SEO', or is evaluating a website's search engine optimization health, meta tags, performance, or structured data. Do NOT use for keyword research or schema markup
$ npx -y skills add cwinvestments/memstack --skill site-audit --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/site-auditContext preview
The summary Claude sees to decide when to auto-load this skill.
Use this skill when the user says 'SEO audit', 'site audit', 'check SEO', 'audit my site', 'SEO check', 'technical SEO', or is evaluating a website's search engine optimization health, meta tags, performance, or structured data. Do NOT use for keyword research or schema markup
name: memstack-seo-site-audit description: "Use this skill when the user says 'SEO audit', 'site audit', 'check SEO', 'audit my site', 'SEO check', 'technical SEO', or is evaluating a website's search engine optimization health, meta tags, performance, or structured data. Do NOT use for keyword research or schema markup generation alone." version: 1.0.0 license: "Proprietary, MemStack™ Pro by CW Affiliate Investments LLC. See LICENSE.txt"
*Scans every page for meta tags, heading hierarchy, broken links, image optimization, Core Web Vitals, robots/sitemap, performance, and structured data, producing a prioritized fix list.*
When this skill activates, output:
`🔎 Site Audit, Scanning site for SEO issues...`
Then execute the protocol below.
| Context | Status | |---------|--------| | User says "SEO audit" or "site audit" or "check SEO" | ACTIVE | | User says "technical SEO" or "audit my site" | ACTIVE | | Evaluating a website's overall search health | ACTIVE | | Optimizing specific meta tags (not full audit) | DORMANT: use meta-tag-optimizer | | Adding schema markup (not auditing) | DORMANT: use schema-markup | | Researching keywords (not auditing) | DORMANT: use keyword-research |
| Trap | Reality Check | |------|---------------| | "The site looks fine in the browser" | Crawlers and users see different things. Missing meta tags, broken links, and slow JS are invisible to humans. | | "We'll optimize after launch" | Technical debt compounds. Fixing 5 issues now prevents 50 issues later when Google has already indexed the problems. | | "One audit is enough" | Sites change with every deploy. Audit after major content or code changes, minimum quarterly. | | "Performance doesn't affect SEO" | Core Web Vitals are ranking signals. Slow sites rank lower regardless of content quality. | | "Robots.txt is set and forget" | One wrong rule can deindex your entire site. Review after every major structural change. |
For how each AI search engine ranks and cites content (ChatGPT, Perplexity, Google AI Overview, Copilot, Claude, and Google traditional as baseline), see [`references/platform-ranking-factors.md`](./references/platform-ranking-factors.md). Use it to prioritize fixes, a client whose audience is primarily on Perplexity benefits most from FAQ schema and PDF-friendly pages, while a ChatGPT-first audience needs backlinks and 30-day-fresh content.
If the site is already deployed, run the bundled stdlib-only audit script for a one-shot snapshot before walking the source-tree checks below:
python scripts/live_audit.py https://example.com
No API keys, no pip installs, no external dependencies: pure Python 3 stdlib (`urllib`, `html.parser`, `json`). It fetches the page once and checks title, meta description, heading hierarchy, image alt attributes, JSON-LD structured data, canonical URL, Open Graph tags, robots meta, viewport, `robots.txt` (including AI bot rules), `sitemap.xml`, page load time, and internal vs. external link counts. Output uses the same severity format (🔴 Critical / 🟠 High / 🟡 Medium / 🔵 Low) as the scorecard in Step 9, and the script exit code reflects severity (`0` clean, `1` high, `2` critical) so it can also gate CI.
Use this for deployed-URL audits; use Steps 1-8 below for source-tree scans of unshipped code. The two are complementary, the live script confirms what actually reaches crawlers, the grep steps catch issues before they ship.
---
Scan every page for required meta tags:
# Find all page files find app/ pages/ src/ -name "*.tsx" -o -name "*.jsx" -o -name "*.html" | grep -v node_modules # Search for meta tag patterns grep -rn "title\|<meta\|og:title\|og:description\|og:image\|canonical" --include="*.tsx" --include="*.jsx" --include="*.html" . | grep -v node_modules
**Required meta tags per page:**
| Tag | Required | Rule | |-----|----------|------| | `<title>` | Yes | Unique per page, 50-60 chars, includes primary keyword | | `<meta name="description">` | Yes | Unique per page, 150-155 chars, includes CTA | | `<link rel="canonical">` | Yes | Points to the canonical URL (prevents duplicate content) | | `<meta property="og:title">` | Yes | Social sharing title (can differ from page title) | | `<meta property="og:description">` | Yes | Social sharing description | | `<meta property="og:image">` | Yes | Social sharing image (1200x630px recommended) | | `<meta property="og:url">` | Yes | Canonical URL | | `<meta name="robots">` | Conditional | `noindex` on admin, auth, and internal pages | | `<meta name="viewport">` | Yes | `width=device-width, initial-scale=1` |
**Score per page:**
# Find heading usage across all pages grep -rn "<h[1-6]\|<H[1-6]" --include="*.tsx" --include="*.jsx" --include="*.html" . | grep -v node_modules
**Heading rules:**
| Rule | Check | Why | |------|-------|-----| | Single H1 per page | Count H1 tags | Multiple H1s confuse crawlers about the page topic | | H1 matches page title (roughly) | Compare H1 to `<title>` | Consistency signals relevance | | No skipped levels | H1 → H2 → H3, not H1 → H3 | Broken hierarchy hurts accessibility and SEO | | Keywords in H1 and H2 | Check for target keyword | Headings are high-weight ranking signals | | No empty headings | Check for `<h2></h2>` | Empty headings are wasted signals | | Headings aren't used for styling | Check if headings are decorative | Use CSS for size, headings for structure |
# Find all links in the codebase
grep -rn 'href="\|href={' --include="*.tsx" --include="*.jsx" --include="*.html" --include="*.md" . | grep -v node_modules | grep -v "mailto:\|tel:\|#The structured skill framework for Claude Code: 131 professional skills for deployment, security, databases, content, marketing, and more. Skills activate automatically when you need them. Say "deploy this to Railway" and the right skill loads on demand.
Use this skill when the user says 'API integration', 'connect APIs', 'sync data', 'data mapping', 'rate limiting', or needs…
Use this skill when the user says 'content pipeline', 'content automation', 'auto-publish', 'repurpose content', 'multi-platform…
Use this skill when the user says 'cron job', 'scheduled task', 'run every', 'cron expression', 'recurring job', or needs…
Use when the user says 'what MCP servers', 'find an MCP for', 'hosted MCP', 'list MCP servers', 'MCP catalog', 'available MCP…
Use this skill when the user says 'n8n workflow', 'build a workflow', 'automation workflow', 'connect services', or needs visual…
Use this skill when the user says 'webhook', 'webhook handler', 'webhook endpoint', 'receive events', 'HMAC verification',…