--- name: 30x-seo-geo-technical description: > Technical SEO for AI search engines. Checks AI crawler accessibility, llms.txt compliance, robots.txt configuration, server-side rendering. Outputs problems + fixes (generates llms.txt, robots.txt modifications). Use when user says "AI crawlers", "llms.txt", "GPTBot", "GEO technical". allowed-tools: - WebFetch - Read --- # GEO Technical (AI Search Technical Check) ## What This Skill Does Check website's **technical accessibility** for AI search engines, find issues and help fix them. **Does NOT do**: - Content quality analysis → use `seo-content-audit` (E-E-A-T + AI citability) --- ## Process ### Step 1: Check AI Crawler Access Read `robots.txt` and check if these crawlers are allowed: | Crawler | Owner | Purpose | Recommendation | |---------|-------|---------|----------------| | GPTBot | OpenAI | ChatGPT Search | ✅ Allow | | OAI-SearchBot | OpenAI | OpenAI Search | ✅ Allow | | ChatGPT-User | OpenAI | ChatGPT Browsing | ✅ Allow | | ClaudeBot | Anthropic | Claude Search | ✅ Allow | | PerplexityBot | Perplexity | Perplexity AI | ✅ Allow | | CCBot | Common Crawl | Training data | ⚠️ Optional block | | anthropic-ai | Anthropic | Claude Training | ⚠️ Optional block | | Bytespider | ByteDance | TikTok AI | ⚠️ Optional block | **Problem Examples**: ``` ❌ GPTBot blocked → ChatGPT can't cite your content ❌ PerplexityBot blocked → Perplexity can't cite you ``` **Fix Output**: ``` # robots.txt modification suggestion User-agent: GPTBot Allow: / User-agent: ClaudeBot Allow: / User-agent: PerplexityBot Allow: / ``` ### Step 2: Check llms.txt Check if `/llms.txt` exists: | Status | Description | |--------|-------------| | ✅ Exists and complete | Has title, description, key page list | | ⚠️ Exists but incomplete | Missing key information | | ❌ Does not exist | Needs creation | **Fix Output** (generate llms.txt): ```markdown # [Website Name] > [One-line description] ## Core Pages - [Homepage](https://example.com/): Website homepage - [Products](https://example.com/products): Product list - [About Us](https://example.com/about): Company introduction ## Key Information - Founded in XXXX - Serving XXX customers - Main business: XXX ``` ### Step 3: Check Server-Side Rendering **AI crawlers don't execute JavaScript** - key content must be directly visible in HTML. Check method: 1. Access page with JavaScript disabled 2. Check if key content is visible | Status | Description | |--------|-------------| | ✅ SSR | Key content in HTML | | ❌ CSR | Key content requires JS to load | **Problem Examples**: ``` ❌ Product descriptions only appear after JS rendering ❌ Article body depends on React hydration ``` **Fix Recommendations**: - Use SSR/SSG frameworks (Next.js, Nuxt, Astro) - Pre-render key pages - Ensure `