{"id":"c1f12e28-77c8-4652-9ef9-27088f14942f","entityType":"agent","slug":"clawhub-aaron-he-zhu-technical-seo-checker","name":"Technical Seo Checker","canonicalUrl":"https://www.xpersona.co/agent/clawhub-aaron-he-zhu-technical-seo-checker","canonicalPath":"/agent/clawhub-aaron-he-zhu-technical-seo-checker","generatedAt":"2026-10-10T01:44:13.670Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"description":"Performs technical SEO audits covering site speed, crawlability, indexability, mobile-friendliness, security, and structured data. Identifies technical issue... Skill: Technical Seo Checker Owner: aaron-he-zhu Summary: Performs technical SEO audits covering site speed, crawlability, indexability, mobile-friendliness, security, and structured data. Identifies technical issue... Tags: latest:2.0.0 Version history: v2.0.0 | 2026-02-14T04:22:12.046Z | auto Version 2.0.0 - Major update with improved discoverability: added clear usage triggers and cross-skill references for relate","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.9K downloads reported by the source. Last updated 4/15/2026.","installCommand":"clawhub skill install kn73qjxwmbna25qq8q051epqt980sys5:technical-seo-checker","sourceUrl":"https://clawhub.ai/aaron-he-zhu/technical-seo-checker","homepage":"https://clawhub.ai/aaron-he-zhu/technical-seo-checker","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/aaron-he-zhu/technical-seo-checker","kind":"source"}],"safetyScore":84,"overallRank":62,"popularityScore":66,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Performs technical SEO audits covering site speed, crawlability, indexability, mobile-friendliness, security, and structured data. Identifies technical issue..."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"stars":null,"forks":null,"downloads":1912,"packageName":null,"latestVersion":"2.0.0","tractionLabel":"1.9K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-02-28T19:46:01.625Z","emptyReason":null},"lastUpdatedAt":"2026-04-15T00:45:39.800Z","lastCrawledAt":"2026-02-28T19:46:01.625Z","lastIndexedAt":null,"nextCrawlAt":"2026-03-01T19:46:01.625Z","lastVerifiedAt":null,"highlights":[{"version":"2.0.0","createdAt":"2026-02-14T04:22:12.046Z","changelog":"Version 2.0.0 - Major update with improved discoverability: added clear usage triggers and cross-skill references for related SEO tasks. - Added author, version, license, and detailed metadata (tags, triggers) to the skill manifest. - Linked to related skills for on-page and internal linking audits. - Included references to new documentation: HTTP status codes and robots.txt reference files. - Added a navigable library of 20 SEO/GEO skills in the docs.","fileCount":4,"zipByteSize":18509},{"version":"0.1.2","createdAt":"2026-02-11T15:38:33.404Z","changelog":"- Added `geo-relevance: \"low\"` to skill metadata. - Removed version field from SKILL.md frontmatter. - Removed redundant documentation files: references/http-status-codes.md and references/robots-txt-reference.md.","fileCount":2,"zipByteSize":7610},{"version":"0.1.1","createdAt":"2026-02-10T16:06:43.157Z","changelog":"- Added a version field (\"1.0\") to the SKILL.md metadata. - No other functional or instructional changes; content and audit process remain the same.","fileCount":null,"zipByteSize":null},{"version":"0.1.0","createdAt":"2026-02-08T14:07:16.397Z","changelog":"Initial release of Technical SEO Checker – comprehensive technical SEO audit tool. - Performs in-depth audits on site speed, crawlability, indexability, mobile-friendliness, security, and structured data. - Identifies key technical issues impacting search performance. - Provides audit templates and instructions for robots.txt, sitemap, Core Web Vitals, mobile optimization, and more. - Works with either connected SEO tools or manual data input. - Includes use cases, detailed instructions, and structured markdown output formats for all major technical SEO checks.","fileCount":null,"zipByteSize":null}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install kn73qjxwmbna25qq8q051epqt980sys5:technical-seo-checker","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-aaron-he-zhu-technical-seo-checker/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-aaron-he-zhu-technical-seo-checker/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-aaron-he-zhu-technical-seo-checker/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-aaron-he-zhu-technical-seo-checker/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-aaron-he-zhu-technical-seo-checker/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-aaron-he-zhu-technical-seo-checker/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T01:44:13.670Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-aaron-he-zhu-technical-seo-checker/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-aaron-he-zhu-technical-seo-checker/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-aaron-he-zhu-technical-seo-checker/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-aaron-he-zhu-technical-seo-checker/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"readme":"Skill: Technical Seo Checker\n\nOwner: aaron-he-zhu\n\nSummary: Performs technical SEO audits covering site speed, crawlability, indexability, mobile-friendliness, security, and structured data. Identifies technical issue...\n\nTags: latest:2.0.0\n\nVersion history:\n\nv2.0.0 | 2026-02-14T04:22:12.046Z | auto\n\nVersion 2.0.0\n\n- Major update with improved discoverability: added clear usage triggers and cross-skill references for related SEO tasks.\n- Added author, version, license, and detailed metadata (tags, triggers) to the skill manifest.\n- Linked to related skills for on-page and internal linking audits.\n- Included references to new documentation: HTTP status codes and robots.txt reference files.\n- Added a navigable library of 20 SEO/GEO skills in the docs.\n\nv0.1.2 | 2026-02-11T15:38:33.404Z | auto\n\n- Added `geo-relevance: \"low\"` to skill metadata.\n- Removed version field from SKILL.md frontmatter.\n- Removed redundant documentation files: references/http-status-codes.md and references/robots-txt-reference.md.\n\nv0.1.1 | 2026-02-10T16:06:43.157Z | auto\n\n- Added a version field (\"1.0\") to the SKILL.md metadata.\n- No other functional or instructional changes; content and audit process remain the same.\n\nv0.1.0 | 2026-02-08T14:07:16.397Z | auto\n\nInitial release of Technical SEO Checker – comprehensive technical SEO audit tool.\n\n- Performs in-depth audits on site speed, crawlability, indexability, mobile-friendliness, security, and structured data.\n- Identifies key technical issues impacting search performance.\n- Provides audit templates and instructions for robots.txt, sitemap, Core Web Vitals, mobile optimization, and more.\n- Works with either connected SEO tools or manual data input.\n- Includes use cases, detailed instructions, and structured markdown output formats for all major technical SEO checks.\n\nArchive index:\n\nArchive v2.0.0: 4 files, 18509 bytes\n\nFiles: references/http-status-codes.md (16175b), references/robots-txt-reference.md (12442b), SKILL.md (25386b), _meta.json (140b)\n\nFile v2.0.0:SKILL.md\n\n---\nname: technical-seo-checker\ndescription: 'Use when the user asks to \"technical SEO audit\", \"check page speed\", \"crawl issues\", \"Core Web Vitals\", \"site indexing problems\", \"my site is slow\", \"Google cannot crawl my site\", \"mobile issues\", or \"indexing problems\". Performs technical SEO audits covering site speed, crawlability, indexability, mobile-friendliness, security, and structured data. Identifies technical issues preventing optimal search performance. For content and heading element issues, see on-page-seo-auditor. For link architecture, see internal-linking-optimizer.'\nlicense: Apache-2.0\nmetadata:\n  author: aaron-he-zhu\n  version: \"2.0.0\"\n  geo-relevance: \"low\"\n  tags:\n    - seo\n    - technical seo\n    - page speed\n    - core web vitals\n    - crawlability\n    - indexability\n    - mobile-friendly\n    - site speed\n    - security audit\n  triggers:\n    - \"technical SEO audit\"\n    - \"check page speed\"\n    - \"crawl issues\"\n    - \"Core Web Vitals\"\n    - \"site indexing problems\"\n    - \"mobile-friendly check\"\n    - \"site speed\"\n    - \"my site is slow\"\n    - \"Google can't crawl my site\"\n    - \"mobile issues\"\n    - \"indexing problems\"\n---\n\n# Technical SEO Checker\n\n\n> **[SEO & GEO Skills Library](https://skills.sh/aaron-he-zhu/seo-geo-claude-skills)** · 20 skills for SEO + GEO · Install all: `npx skills add aaron-he-zhu/seo-geo-claude-skills`\n\n<details>\n<summary>Browse all 20 skills</summary>\n\n**Research** · [keyword-research](../../research/keyword-research/) · [competitor-analysis](../../research/competitor-analysis/) · [serp-analysis](../../research/serp-analysis/) · [content-gap-analysis](../../research/content-gap-analysis/)\n\n**Build** · [seo-content-writer](../../build/seo-content-writer/) · [geo-content-optimizer](../../build/geo-content-optimizer/) · [meta-tags-optimizer](../../build/meta-tags-optimizer/) · [schema-markup-generator](../../build/schema-markup-generator/)\n\n**Optimize** · [on-page-seo-auditor](../on-page-seo-auditor/) · **technical-seo-checker** · [internal-linking-optimizer](../internal-linking-optimizer/) · [content-refresher](../content-refresher/)\n\n**Monitor** · [rank-tracker](../../monitor/rank-tracker/) · [backlink-analyzer](../../monitor/backlink-analyzer/) · [performance-reporter](../../monitor/performance-reporter/) · [alert-manager](../../monitor/alert-manager/)\n\n**Cross-cutting** · [content-quality-auditor](../../cross-cutting/content-quality-auditor/) · [domain-authority-auditor](../../cross-cutting/domain-authority-auditor/) · [entity-optimizer](../../cross-cutting/entity-optimizer/) · [memory-management](../../cross-cutting/memory-management/)\n\n</details>\n\nThis skill performs comprehensive technical SEO audits to identify issues that may prevent search engines from properly crawling, indexing, and ranking your site.\n\n## When to Use This Skill\n\n- Launching a new website\n- Diagnosing ranking drops\n- Pre-migration SEO audits\n- Regular technical health checks\n- Identifying crawl and index issues\n- Improving site performance\n- Fixing Core Web Vitals issues\n\n## What This Skill Does\n\n1. **Crawlability Audit**: Checks robots.txt, sitemaps, crawl issues\n2. **Indexability Review**: Analyzes index status and blockers\n3. **Site Speed Analysis**: Evaluates Core Web Vitals and performance\n4. **Mobile-Friendliness**: Checks mobile optimization\n5. **Security Check**: Reviews HTTPS and security headers\n6. **Structured Data Audit**: Validates schema markup\n7. **URL Structure Analysis**: Reviews URL patterns and redirects\n8. **International SEO**: Checks hreflang and localization\n\n## How to Use\n\n### Full Technical Audit\n\n```\nPerform a technical SEO audit for [URL/domain]\n```\n\n### Specific Issue Check\n\n```\nCheck Core Web Vitals for [URL]\n```\n\n```\nAudit crawlability and indexability for [domain]\n```\n\n### Pre-Migration Audit\n\n```\nTechnical SEO checklist for migrating [old domain] to [new domain]\n```\n\n## Data Sources\n\n> See [CONNECTORS.md](../../CONNECTORS.md) for tool category placeholders.\n\n**With ~~web crawler + ~~page speed tool + ~~CDN connected:**\nClaude can automatically crawl the entire site structure via ~~web crawler, pull Core Web Vitals and performance metrics from ~~page speed tool, analyze caching headers from ~~CDN, and fetch mobile-friendliness data. This enables comprehensive automated technical audits.\n\n**With manual data only:**\nAsk the user to provide:\n1. Site URL(s) to audit\n2. PageSpeed Insights screenshots or reports\n3. robots.txt file content\n4. sitemap.xml URL or file\n\nProceed with the full audit using provided data. Note in the output which findings are from automated crawl vs. manual review.\n\n## Instructions\n\nWhen a user requests a technical SEO audit:\n\n1. **Audit Crawlability**\n\n   ```markdown\n   ## Crawlability Analysis\n   \n   ### Robots.txt Review\n   \n   **URL**: [domain]/robots.txt\n   **Status**: [Found/Not Found/Error]\n   \n   **Current Content**:\n   ```\n   [robots.txt content]\n   ```\n   \n   | Check | Status | Notes |\n   |-------|--------|-------|\n   | File exists | ✅/❌ | [notes] |\n   | Valid syntax | ✅/⚠️/❌ | [errors found] |\n   | Sitemap declared | ✅/❌ | [sitemap URL] |\n   | Important pages blocked | ✅/⚠️/❌ | [blocked paths] |\n   | Assets blocked | ✅/⚠️/❌ | [CSS/JS blocked?] |\n   | Correct user-agents | ✅/⚠️/❌ | [notes] |\n   \n   **Issues Found**:\n   - [Issue 1]\n   - [Issue 2]\n   \n   **Recommended robots.txt**:\n   ```\n   User-agent: *\n   Allow: /\n   Disallow: /admin/\n   Disallow: /private/\n   \n   Sitemap: https://example.com/sitemap.xml\n   ```\n   \n   ---\n   \n   ### XML Sitemap Review\n   \n   **Sitemap URL**: [URL]\n   **Status**: [Found/Not Found/Error]\n   \n   | Check | Status | Notes |\n   |-------|--------|-------|\n   | Sitemap exists | ✅/❌ | [notes] |\n   | Valid XML format | ✅/⚠️/❌ | [errors] |\n   | In robots.txt | ✅/❌ | [notes] |\n   | Submitted to ~~search console | ✅/⚠️/❌ | [notes] |\n   | URLs count | [X] | [appropriate?] |\n   | Only indexable URLs | ✅/⚠️/❌ | [notes] |\n   | Includes priority | ✅/⚠️ | [notes] |\n   | Includes lastmod | ✅/⚠️ | [accurate?] |\n   \n   **Issues Found**:\n   - [Issue 1]\n   \n   ---\n   \n   ### Crawl Budget Analysis\n   \n   | Factor | Status | Impact |\n   |--------|--------|--------|\n   | Crawl errors | [X] errors | [Low/Med/High] |\n   | Duplicate content | [X] pages | [Low/Med/High] |\n   | Thin content | [X] pages | [Low/Med/High] |\n   | Redirect chains | [X] found | [Low/Med/High] |\n   | Orphan pages | [X] found | [Low/Med/High] |\n   \n   **Crawlability Score**: [X]/10\n   ```\n\n2. **Audit Indexability**\n\n   ```markdown\n   ## Indexability Analysis\n   \n   ### Index Status Overview\n   \n   | Metric | Count | Notes |\n   |--------|-------|-------|\n   | Pages in sitemap | [X] | |\n   | Pages indexed | [X] | [source: site: search] |\n   | Index coverage ratio | [X]% | [good if >90%] |\n   \n   ### Index Blockers Check\n   \n   | Blocker Type | Found | Pages Affected |\n   |--------------|-------|----------------|\n   | noindex meta tag | [X] | [list or \"none\"] |\n   | noindex X-Robots | [X] | [list or \"none\"] |\n   | Robots.txt blocked | [X] | [list or \"none\"] |\n   | Canonical to other | [X] | [list or \"none\"] |\n   | 4xx/5xx errors | [X] | [list or \"none\"] |\n   | Redirect loops | [X] | [list or \"none\"] |\n   \n   ### Canonical Tags Audit\n   \n   | Check | Status | Notes |\n   |-------|--------|-------|\n   | Canonicals present | ✅/⚠️/❌ | [X]% of pages |\n   | Self-referencing | ✅/⚠️/❌ | [notes] |\n   | Consistent (HTTP/HTTPS) | ✅/⚠️/❌ | [notes] |\n   | Consistent (www/non-www) | ✅/⚠️/❌ | [notes] |\n   | No conflicting signals | ✅/⚠️/❌ | [notes] |\n   \n   ### Duplicate Content Issues\n   \n   | Issue Type | Count | Examples |\n   |------------|-------|----------|\n   | Exact duplicates | [X] | [URLs] |\n   | Near duplicates | [X] | [URLs] |\n   | Parameter duplicates | [X] | [URLs] |\n   | WWW/non-WWW | [X] | [notes] |\n   | HTTP/HTTPS | [X] | [notes] |\n   \n   **Indexability Score**: [X]/10\n   ```\n\n3. **Audit Site Speed & Core Web Vitals**\n\n   ```markdown\n   ## Performance Analysis\n   \n   ### Core Web Vitals\n   \n   | Metric | Mobile | Desktop | Target | Status |\n   |--------|--------|---------|--------|--------|\n   | LCP (Largest Contentful Paint) | [X]s | [X]s | <2.5s | ✅/⚠️/❌ |\n   | FID (First Input Delay) | [X]ms | [X]ms | <100ms | ✅/⚠️/❌ |\n   | CLS (Cumulative Layout Shift) | [X] | [X] | <0.1 | ✅/⚠️/❌ |\n   | INP (Interaction to Next Paint) | [X]ms | [X]ms | <200ms | ✅/⚠️/❌ |\n   \n   ### Additional Performance Metrics\n   \n   | Metric | Value | Status |\n   |--------|-------|--------|\n   | Time to First Byte (TTFB) | [X]ms | ✅/⚠️/❌ |\n   | First Contentful Paint (FCP) | [X]s | ✅/⚠️/❌ |\n   | Speed Index | [X] | ✅/⚠️/❌ |\n   | Total Blocking Time | [X]ms | ✅/⚠️/❌ |\n   | Page Size | [X]MB | ✅/⚠️/❌ |\n   | Requests | [X] | ✅/⚠️/❌ |\n   \n   ### Performance Issues\n   \n   **LCP Issues**:\n   - [Issue]: [Impact] - [Solution]\n   - [Issue]: [Impact] - [Solution]\n   \n   **CLS Issues**:\n   - [Issue]: [Impact] - [Solution]\n   \n   **Resource Loading**:\n   | Resource Type | Count | Size | Issues |\n   |---------------|-------|------|--------|\n   | Images | [X] | [X]MB | [notes] |\n   | JavaScript | [X] | [X]MB | [notes] |\n   | CSS | [X] | [X]KB | [notes] |\n   | Fonts | [X] | [X]KB | [notes] |\n   \n   ### Optimization Recommendations\n   \n   **High Impact**:\n   1. [Recommendation] - Est. improvement: [X]s\n   2. [Recommendation] - Est. improvement: [X]s\n   \n   **Medium Impact**:\n   1. [Recommendation]\n   2. [Recommendation]\n   \n   **Performance Score**: [X]/10\n   ```\n\n4. **Audit Mobile-Friendliness**\n\n   ```markdown\n   ## Mobile Optimization Analysis\n   \n   ### Mobile-Friendly Test\n   \n   | Check | Status | Notes |\n   |-------|--------|-------|\n   | Mobile-friendly overall | ✅/❌ | [notes] |\n   | Viewport configured | ✅/❌ | [viewport tag] |\n   | Text readable | ✅/⚠️/❌ | Font size: [X]px |\n   | Tap targets sized | ✅/⚠️/❌ | [notes] |\n   | Content fits viewport | ✅/❌ | [notes] |\n   | No horizontal scroll | ✅/❌ | [notes] |\n   \n   ### Responsive Design Check\n   \n   | Element | Desktop | Mobile | Issues |\n   |---------|---------|--------|--------|\n   | Navigation | [status] | [status] | [notes] |\n   | Images | [status] | [status] | [notes] |\n   | Forms | [status] | [status] | [notes] |\n   | Tables | [status] | [status] | [notes] |\n   | Videos | [status] | [status] | [notes] |\n   \n   ### Mobile-First Indexing\n   \n   | Check | Status | Notes |\n   |-------|--------|-------|\n   | Mobile version has all content | ✅/⚠️/❌ | [notes] |\n   | Mobile has same structured data | ✅/⚠️/❌ | [notes] |\n   | Mobile has same meta tags | ✅/⚠️/❌ | [notes] |\n   | Mobile images have alt text | ✅/⚠️/❌ | [notes] |\n   \n   **Mobile Score**: [X]/10\n   ```\n\n5. **Audit Security & HTTPS**\n\n   ```markdown\n   ## Security Analysis\n   \n   ### HTTPS Status\n   \n   | Check | Status | Notes |\n   |-------|--------|-------|\n   | SSL certificate valid | ✅/❌ | Expires: [date] |\n   | HTTPS enforced | ✅/❌ | [redirects properly?] |\n   | Mixed content | ✅/⚠️/❌ | [X] issues |\n   | HSTS enabled | ✅/⚠️ | [notes] |\n   | Certificate chain | ✅/⚠️/❌ | [notes] |\n   \n   ### Security Headers\n   \n   | Header | Present | Value | Recommended |\n   |--------|---------|-------|-------------|\n   | Content-Security-Policy | ✅/❌ | [value] | [recommendation] |\n   | X-Frame-Options | ✅/❌ | [value] | DENY or SAMEORIGIN |\n   | X-Content-Type-Options | ✅/❌ | [value] | nosniff |\n   | X-XSS-Protection | ✅/❌ | [value] | 1; mode=block |\n   | Referrer-Policy | ✅/❌ | [value] | [recommendation] |\n   \n   **Security Score**: [X]/10\n   ```\n\n6. **Audit URL Structure**\n\n   ```markdown\n   ## URL Structure Analysis\n   \n   ### URL Pattern Review\n   \n   | Check | Status | Notes |\n   |-------|--------|-------|\n   | HTTPS URLs | ✅/⚠️/❌ | [X]% HTTPS |\n   | Lowercase URLs | ✅/⚠️/❌ | [notes] |\n   | No special characters | ✅/⚠️/❌ | [notes] |\n   | Readable/descriptive | ✅/⚠️/❌ | [notes] |\n   | Appropriate length | ✅/⚠️/❌ | Avg: [X] chars |\n   | Keywords in URLs | ✅/⚠️/❌ | [notes] |\n   | Consistent structure | ✅/⚠️/❌ | [notes] |\n   \n   ### URL Issues Found\n   \n   | Issue Type | Count | Examples |\n   |------------|-------|----------|\n   | Dynamic parameters | [X] | [URLs] |\n   | Session IDs in URLs | [X] | [URLs] |\n   | Uppercase characters | [X] | [URLs] |\n   | Special characters | [X] | [URLs] |\n   | Very long URLs (>100) | [X] | [URLs] |\n   \n   ### Redirect Analysis\n   \n   | Check | Status | Notes |\n   |-------|--------|-------|\n   | Redirect chains | [X] found | [max chain length] |\n   | Redirect loops | [X] found | [URLs] |\n   | 302 → 301 needed | [X] found | [URLs] |\n   | Broken redirects | [X] found | [URLs] |\n   \n   **URL Score**: [X]/10\n   ```\n\n7. **Audit Structured Data**\n\n   > **CORE-EEAT alignment**: Schema markup quality maps to O05 (Schema Markup) in the CORE-EEAT benchmark. See [content-quality-auditor](../../cross-cutting/content-quality-auditor/) for full content quality audit.\n\n   ```markdown\n   ## Structured Data Analysis\n   \n   ### Schema Markup Found\n   \n   | Schema Type | Pages | Valid | Errors |\n   |-------------|-------|-------|--------|\n   | [Type 1] | [X] | ✅/❌ | [errors] |\n   | [Type 2] | [X] | ✅/❌ | [errors] |\n   \n   ### Validation Results\n   \n   **Errors**:\n   - [Error 1]: [affected pages] - [solution]\n   - [Error 2]: [affected pages] - [solution]\n   \n   **Warnings**:\n   - [Warning 1]: [notes]\n   \n   ### Missing Schema Opportunities\n   \n   | Page Type | Current Schema | Recommended |\n   |-----------|----------------|-------------|\n   | Blog posts | [current] | Article + FAQ |\n   | Products | [current] | Product + Review |\n   | Homepage | [current] | Organization |\n   \n   **Structured Data Score**: [X]/10\n   ```\n\n8. **Audit International SEO (if applicable)**\n\n   ```markdown\n   ## International SEO Analysis\n   \n   ### Hreflang Implementation\n   \n   | Check | Status | Notes |\n   |-------|--------|-------|\n   | Hreflang tags present | ✅/❌ | [notes] |\n   | Self-referencing | ✅/⚠️/❌ | [notes] |\n   | Return tags present | ✅/⚠️/❌ | [notes] |\n   | Valid language codes | ✅/⚠️/❌ | [notes] |\n   | x-default tag | ✅/⚠️ | [notes] |\n   \n   ### Language/Region Targeting\n   \n   | Language | URL | Hreflang | Status |\n   |----------|-----|----------|--------|\n   | [en-US] | [URL] | [tag] | ✅/⚠️/❌ |\n   | [es-ES] | [URL] | [tag] | ✅/⚠️/❌ |\n   \n   **International Score**: [X]/10\n   ```\n\n9. **Generate Technical Audit Summary**\n\n   ```markdown\n   # Technical SEO Audit Report\n   \n   **Domain**: [domain]\n   **Audit Date**: [date]\n   **Pages Analyzed**: [X]\n   \n   ## Overall Technical Health: [X]/100\n   \n   ```\n   Score Breakdown:\n   ████████░░ Crawlability: 8/10\n   ███████░░░ Indexability: 7/10\n   █████░░░░░ Performance: 5/10\n   ████████░░ Mobile: 8/10\n   █████████░ Security: 9/10\n   ██████░░░░ URL Structure: 6/10\n   █████░░░░░ Structured Data: 5/10\n   ```\n   \n   ## Critical Issues (Fix Immediately)\n   \n   1. **[Issue]**: [Impact] \n      - Affected: [pages/scope]\n      - Solution: [specific fix]\n      - Priority: 🔴 Critical\n   \n   2. **[Issue]**: [Impact]\n      - Affected: [pages/scope]\n      - Solution: [specific fix]\n      - Priority: 🔴 Critical\n   \n   ## High Priority Issues\n   \n   1. **[Issue]**: [Solution]\n   2. **[Issue]**: [Solution]\n   \n   ## Medium Priority Issues\n   \n   1. **[Issue]**: [Solution]\n   2. **[Issue]**: [Solution]\n   \n   ## Quick Wins\n   \n   These can be fixed quickly for immediate improvement:\n   \n   1. [Quick fix 1]\n   2. [Quick fix 2]\n   3. [Quick fix 3]\n   \n   ## Implementation Roadmap\n   \n   ### Week 1: Critical Fixes\n   - [ ] [Task 1]\n   - [ ] [Task 2]\n   \n   ### Week 2-3: High Priority\n   - [ ] [Task 1]\n   - [ ] [Task 2]\n   \n   ### Week 4+: Optimization\n   - [ ] [Task 1]\n   - [ ] [Task 2]\n   \n   ## Monitoring Recommendations\n\n   Set up alerts for:\n   - Core Web Vitals drops\n   - Crawl error spikes\n   - Index coverage changes\n   - Security issues\n   ```\n\n## Validation Checkpoints\n\n### Input Validation\n- [ ] Site URL or domain clearly specified\n- [ ] Access to technical data (robots.txt, sitemap, or crawl results)\n- [ ] Performance metrics available (via ~~page speed tool or screenshots)\n\n### Output Validation\n- [ ] Every recommendation cites specific data points (not generic advice)\n- [ ] All issues include affected URLs or page counts\n- [ ] Performance metrics include actual numbers with units (seconds, KB, etc.)\n- [ ] Source of each data point clearly stated (~~web crawler data, ~~page speed tool, user-provided, or estimated)\n\n## Example\n\n**User**: \"Check the technical SEO of cloudhosting.com\"\n\n**Output**:\n\n```markdown\n# Technical SEO Audit Report\n\n**Domain**: cloudhosting.com\n**Audit Date**: 2024-09-15\n**Pages Analyzed**: 312\n\n## Crawlability Analysis\n\n### Robots.txt Review\n\n**URL**: cloudhosting.com/robots.txt\n**Status**: Found\n\n| Check | Status | Notes |\n|-------|--------|-------|\n| File exists | ✅ | 200 response |\n| Valid syntax | ⚠️ | Wildcard pattern `Disallow: /*?` too aggressive — blocks faceted pages |\n| Sitemap declared | ❌ | No Sitemap directive in robots.txt |\n| Important pages blocked | ⚠️ | /pricing/ blocked by `Disallow: /pricing` rule |\n| Assets blocked | ✅ | CSS/JS accessible |\n\n**Issues Found**:\n- Sitemap URL not declared in robots.txt\n- `/pricing/` inadvertently blocked — high-value commercial page\n\n### XML Sitemap Review\n\n**Sitemap URL**: cloudhosting.com/sitemap.xml\n**Status**: Found (not referenced in robots.txt)\n\n| Check | Status | Notes |\n|-------|--------|-------|\n| Sitemap exists | ✅ | Valid XML, 287 URLs |\n| Only indexable URLs | ❌ | 23 noindex URLs included |\n| Includes lastmod | ⚠️ | All dates set to 2023-01-01 — not accurate |\n\n**Crawlability Score**: 5/10\n\n## Performance Analysis\n\n### Core Web Vitals\n\n| Metric | Mobile | Desktop | Target | Status |\n|--------|--------|---------|--------|--------|\n| LCP (Largest Contentful Paint) | 4.8s | 2.1s | <2.5s | ❌ Mobile / ✅ Desktop |\n| FID (First Input Delay) | 45ms | 12ms | <100ms | ✅ / ✅ |\n| CLS (Cumulative Layout Shift) | 0.24 | 0.08 | <0.1 | ❌ Mobile / ✅ Desktop |\n| INP (Interaction to Next Paint) | 380ms | 140ms | <200ms | ❌ Mobile / ✅ Desktop |\n\n### Additional Performance Metrics\n\n| Metric | Value | Status |\n|--------|-------|--------|\n| Time to First Byte (TTFB) | 1,240ms | ❌ |\n| Page Size | 3.8MB | ❌ |\n| Requests | 94 | ⚠️ |\n\n**LCP Issues**:\n- Uncompressed hero image (2.4MB PNG): Convert to WebP, est. save 1.9MB\n- No CDN detected: TTFB 1,240ms from origin server\n\n**CLS Issues**:\n- Ad banner at top of page injects without reserved height (0.18 shift contribution)\n\n**Performance Score**: 3/10\n\n## Security Analysis\n\n### HTTPS Status\n\n| Check | Status | Notes |\n|-------|--------|-------|\n| SSL certificate valid | ✅ | Expires: 2025-03-22 |\n| HTTPS enforced | ⚠️ | http://cloudhosting.com returns 200 instead of 301 redirect |\n| Mixed content | ❌ | 7 images loaded over HTTP on /features/ page |\n| HSTS enabled | ❌ | Header not present |\n\n**Security Score**: 5/10\n\n## Structured Data Analysis\n\n### Schema Markup Found\n\n| Schema Type | Pages | Valid | Errors |\n|-------------|-------|-------|--------|\n| Organization | 1 (homepage) | ✅ | None |\n| Article | 0 | — | Missing on 48 blog posts |\n| Product | 0 | — | Missing on 5 plan pages |\n| FAQ | 0 | — | Missing on 12 pages with FAQ content |\n\n**Structured Data Score**: 3/10\n\n## Overall Technical Health: 42/100\n\n```\nScore Breakdown:\n█████░░░░░ Crawlability: 5/10\n██████░░░░ Indexability: 6/10\n███░░░░░░░ Performance: 3/10\n██████░░░░ Mobile: 6/10\n█████░░░░░ Security: 5/10\n██████░░░░ URL Structure: 6/10\n███░░░░░░░ Structured Data: 3/10\n```\n\n## Priority Issues\n\n### 🔴 Critical (Fix Immediately)\n1. **Mobile LCP 4.8s (target <2.5s)** — Compress hero image to WebP (est. save 1.9MB) and implement a CDN to reduce TTFB from 1,240ms to <400ms.\n\n### 🟡 Important (Fix Soon)\n2. **HTTP not redirecting to HTTPS** — Add 301 redirect from http:// to https:// and enable HSTS header. 7 mixed-content images on /features/ need URL updates.\n\n### 🟢 Minor (Optimize)\n3. **No Article/FAQ schema on blog posts** — Add Article schema to 48 blog posts and FAQ schema to 12 FAQ pages for rich result eligibility.\n```\n\n## Technical SEO Checklist\n\n```markdown\n### Crawlability\n- [ ] robots.txt is valid and not blocking important content\n- [ ] XML sitemap exists and is submitted to ~~search console\n- [ ] No crawl errors in ~~search console\n- [ ] No redirect chains or loops\n\n### Indexability  \n- [ ] Important pages are indexable\n- [ ] Canonical tags are correct\n- [ ] No duplicate content issues\n- [ ] Pagination is handled correctly\n\n### Performance\n- [ ] Core Web Vitals pass\n- [ ] Page speed under 3 seconds\n- [ ] Images are optimized\n- [ ] JS/CSS are minified\n\n### Mobile\n- [ ] Mobile-friendly test passes\n- [ ] Viewport is configured\n- [ ] Touch elements are properly sized\n\n### Security\n- [ ] HTTPS is enforced\n- [ ] SSL certificate is valid\n- [ ] No mixed content\n- [ ] Security headers present\n\n### Structure\n- [ ] URLs are clean and descriptive\n- [ ] Site architecture is logical\n- [ ] Internal linking is strong\n```\n\n## Tips for Success\n\n1. **Prioritize by impact** - Fix critical issues first\n2. **Monitor continuously** - Use ~~search console alerts\n3. **Test changes** - Verify fixes work before deploying widely\n4. **Document everything** - Track changes for troubleshooting\n5. **Regular audits** - Schedule quarterly technical reviews\n\n## Technical SEO Severity Framework\n\n### Issue Classification\n\n| Severity | Impact Description | Examples | Response Time |\n|----------|-------------------|---------|---------------|\n| **Critical** | Prevents indexation or causes site-wide issues | Robots.txt blocking site, noindex on key pages, site-wide 500 errors | Same day |\n| **High** | Significantly impacts rankings or user experience | Slow page speed, missing hreflang, duplicate content, redirect chains | Within 1 week |\n| **Medium** | Affects specific pages or has moderate impact | Missing schema, suboptimal canonicals, thin content pages | Within 1 month |\n| **Low** | Minor optimization opportunities | Image compression, minor CLS issues, non-essential schema missing | Next quarter |\n\n### Technical Debt Prioritization Matrix\n\n| Factor | Weight | Assessment |\n|--------|--------|-----------|\n| Pages affected | 30% | Site-wide > Section > Single page |\n| Revenue impact | 25% | Revenue pages > Blog > Utility pages |\n| Fix difficulty | 20% | Config change < Template change < Code rewrite |\n| Competitive impact | 15% | Competitors passing you > parity > you ahead |\n| Crawl budget waste | 10% | High waste > Moderate > Minimal |\n\n## Core Web Vitals Optimization Quick Reference\n\n### LCP (Largest Contentful Paint) Optimization\n\n| Root Cause | Detection | Fix |\n|-----------|-----------|-----|\n| Large hero image | PageSpeed Insights | Serve WebP, resize to container, add loading=\"lazy\" |\n| Render-blocking CSS/JS | DevTools Coverage | Defer non-critical, inline critical CSS |\n| Slow server response | TTFB >800ms | CDN, server-side caching, upgrade hosting |\n| Third-party scripts | DevTools Network | Defer/async, use facade pattern |\n\n### CLS (Cumulative Layout Shift) Optimization\n\n| Root Cause | Detection | Fix |\n|-----------|-----------|-----|\n| Images without dimensions | DevTools | Add explicit width/height attributes |\n| Ads/embeds without reserved space | Visual inspection | Set min-height on containers |\n| Web fonts causing FOUT | DevTools | font-display: swap + preload fonts |\n| Dynamic content injection | Visual inspection | Reserve space with CSS |\n\n### INP (Interaction to Next Paint) Optimization\n\n| Root Cause | Detection | Fix |\n|-----------|-----------|-----|\n| Long JavaScript tasks | DevTools Performance | Break into smaller tasks, use requestIdleCallback |\n| Heavy event handlers | DevTools | Debounce/throttle, use passive listeners |\n| Main thread blocking | DevTools | Web workers for heavy computation |\n\n## Reference Materials\n\n- [robots.txt Reference](./references/robots-txt-reference.md) - Syntax guide, templates, common configurations\n- [HTTP Status Codes](./references/http-status-codes.md) - SEO impact of each status code, redirect best practices\n\n## Related Skills\n\n- [on-page-seo-auditor](../on-page-seo-auditor/) — On-page SEO audit\n- [schema-markup-generator](../../build/schema-markup-generator/) — Fix schema issues\n- [performance-reporter](../../monitor/performance-reporter/) — Monitor improvements\n- [internal-linking-optimizer](../internal-linking-optimizer/) — Fix link issues\n- [alert-manager](../../monitor/alert-manager/) — Set up alerts for technical issues found\n- [content-quality-auditor](../../cross-cutting/content-quality-auditor/) — Full 80-item CORE-EEAT audit\n\nFile v2.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn73qjxwmbna25qq8q051epqt980sys5\",\n  \"slug\": \"technical-seo-checker\",\n  \"version\": \"2.0.0\",\n  \"publishedAt\": 1771042932046\n}\n\nFile v2.0.0:references/http-status-codes.md\n\n# HTTP Status Codes for SEO\n\nSEO-relevant HTTP status codes, their implications, and how to diagnose and fix issues.\n\n## Status Code Categories\n\n- **2xx**: Success - Request succeeded\n- **3xx**: Redirection - Further action needed\n- **4xx**: Client Error - Problem with the request\n- **5xx**: Server Error - Server failed to fulfill request\n\n---\n\n## 2xx Success Codes\n\n### 200 OK\n\n**What it means**: Request succeeded, content returned normally.\n\n**SEO impact**: Positive - page is accessible and indexable.\n\n**When to use**: Standard response for all working pages.\n\n**When it's a problem**: When different URLs return 200 for same content (should use 301 redirect).\n\n---\n\n### 204 No Content\n\n**What it means**: Request succeeded but no content to return.\n\n**SEO impact**: Neutral - rarely used for pages meant to be indexed.\n\n**Common use**: API responses, AJAX requests.\n\n---\n\n## 3xx Redirection Codes\n\n### 301 Moved Permanently\n\n**What it means**: Resource permanently moved to new URL. All link equity transfers.\n\n**SEO impact**: Positive when used correctly - passes 90-99% of link equity.\n\n**When to use**:\n- Permanently changing URL structure\n- Consolidating duplicate content\n- Moving to new domain\n- Changing HTTP to HTTPS\n- Changing www to non-www (or vice versa)\n\n**Example header**:\n```\nHTTP/1.1 301 Moved Permanently\nLocation: https://example.com/new-page\n```\n\n**Common mistakes**:\n- Using 302 instead of 301 for permanent changes\n- Creating redirect chains (A→B→C)\n- Redirecting to irrelevant pages\n- Not redirecting HTTP to HTTPS\n\n**How to implement**:\n- **.htaccess** (Apache): `Redirect 301 /old-page /new-page`\n- **nginx**: `rewrite ^/old-page$ /new-page permanent;`\n- **Server-side**: Set Location header with 301 status\n\n---\n\n### 302 Found (Temporary Redirect)\n\n**What it means**: Resource temporarily at different URL. Original URL should still be used.\n\n**SEO impact**: Neutral to negative - does NOT pass full link equity. Search engines keep indexing original URL.\n\n**When to use**:\n- A/B testing\n- Temporary promotions\n- Maintenance redirects\n- Geolocation redirects (sometimes)\n\n**When NOT to use**: Permanent URL changes (use 301).\n\n**Warning**: Google may treat long-standing 302s as 301s, but better to be explicit.\n\n---\n\n### 303 See Other\n\n**What it means**: Response can be found at another URI using GET.\n\n**SEO impact**: Minimal - rarely used for SEO purposes.\n\n**Common use**: After form submissions, redirect to results page.\n\n---\n\n### 307 Temporary Redirect\n\n**What it means**: Temporary redirect that preserves request method (POST stays POST).\n\n**SEO impact**: Similar to 302 - temporary, doesn't pass full link equity.\n\n**Difference from 302**: Guarantees request method won't change (more precise than 302).\n\n**When to use**: Temporary redirects where HTTP method preservation matters.\n\n---\n\n### 308 Permanent Redirect\n\n**What it means**: Permanent redirect that preserves request method.\n\n**SEO impact**: Similar to 301 - passes link equity.\n\n**Difference from 301**: Guarantees request method won't change (POST stays POST).\n\n**When to use**: Permanent redirects where method preservation matters (rare for SEO).\n\n---\n\n### Redirect Chain Issues\n\n**Problem**: Multiple redirects before reaching final destination.\n\n**Example chain**:\n```\nhttp://example.com/page\n  → https://example.com/page (redirect 1)\n  → https://www.example.com/page (redirect 2)\n  → https://www.example.com/new-page (redirect 3)\n```\n\n**SEO impact**:\n- Slows page load (each redirect = new HTTP request)\n- Dilutes link equity with each hop\n- Wastes crawl budget\n- Poor user experience\n\n**How to fix**: Redirect directly from original URL to final destination.\n\n**Fixed version**:\n```\nhttp://example.com/page\n  → https://www.example.com/new-page (single redirect)\n```\n\n---\n\n### Redirect Loops\n\n**Problem**: Redirects create infinite loop.\n\n**Example**:\n```\n/page-a → /page-b\n/page-b → /page-a\n```\n\n**SEO impact**: Severe - page completely inaccessible.\n\n**Symptoms**:\n- Browser shows \"Too many redirects\" error\n- Page never loads\n- Search Console shows crawl errors\n\n**How to diagnose**:\n1. Use redirect checker tool\n2. Check .htaccess or nginx config for conflicting rules\n3. Review server-side redirect logic\n\n**How to fix**:\n1. Identify conflicting redirect rules\n2. Remove or correct the loop\n3. Test thoroughly\n4. Request recrawl in Search Console\n\n---\n\n## 4xx Client Error Codes\n\n### 404 Not Found\n\n**What it means**: Requested resource doesn't exist.\n\n**SEO impact**: Neutral to negative depending on context.\n\n**When 404s are OK**:\n- Legitimately deleted pages with no equivalent\n- Never-existed URLs from typos\n- Temporary content that expired (old promotions)\n- Intentionally removed low-quality content\n\n**When 404s are problems**:\n- Pages that should exist are returning 404\n- Previously working pages now broken\n- Important pages missing from navigation\n- High-traffic pages deleted without redirect\n\n**How to fix**:\n1. **If content moved**: Set up 301 redirect to new location\n2. **If content deleted**: Either keep 404 or redirect to relevant category\n3. **If never existed**: Leave as 404\n4. **If important**: Restore the page\n\n**Monitoring 404s**:\n- Check Search Console → Coverage → Not found (404)\n- Review referrer data to see what's linking to 404s\n- Fix high-value 404s first (most traffic/backlinks)\n\n**Soft 404s** (BAD):\n- Page returns 200 but shows \"not found\" message\n- Search engines may keep page indexed\n- Creates duplicate content issues\n- Fix: Return proper 404 status code\n\n---\n\n### 410 Gone\n\n**What it means**: Resource permanently deleted, never coming back.\n\n**SEO impact**: Stronger signal than 404 - tells search engines not to return.\n\n**When to use**:\n- Discontinued products\n- Expired promotions\n- Permanently removed content\n- Outdated information\n\n**Difference from 404**:\n- 404: \"Not found\" (might exist at another URL)\n- 410: \"Gone forever\" (don't look for it)\n\n**When to use 410 vs 301**:\n- Use 410: No equivalent replacement exists\n- Use 301: Relevant alternative exists\n\n**How search engines respond**:\n- Faster de-indexing than 404\n- Stop crawling sooner\n- Better for crawl budget\n\n---\n\n### 403 Forbidden\n\n**What it means**: Server understood request but refuses to authorize it.\n\n**SEO impact**: Negative - page inaccessible and won't be indexed.\n\n**Common causes**:\n- Permission restrictions\n- IP blocking\n- .htaccess restrictions\n- File permissions (chmod)\n- Authentication required\n\n**When it's intentional**:\n- Admin areas\n- Member-only content\n- Geographic restrictions\n\n**When it's a problem**:\n- Public pages returning 403\n- Search engine bots blocked\n- Accidental permission changes\n\n**How to diagnose**:\n1. Check .htaccess for IP restrictions\n2. Verify file permissions (should be 644 for files, 755 for directories)\n3. Check server-level access rules\n4. Test with different IPs/user-agents\n\n**How to fix**:\n1. Adjust file permissions: `chmod 644 filename`\n2. Remove blocking rules from .htaccess\n3. Whitelist search engine bots\n4. Review server firewall rules\n\n---\n\n### 401 Unauthorized\n\n**What it means**: Authentication required but not provided or failed.\n\n**SEO impact**: Negative - page won't be indexed.\n\n**Common causes**:\n- Password-protected pages\n- HTTP Basic Authentication\n- Expired sessions\n- Missing credentials\n\n**When it's intentional**: Member areas, staging sites, admin panels.\n\n**How to handle for SEO**:\n- Don't password-protect pages you want indexed\n- Use separate staging domain with 401\n- For members-only content, show teaser with meta robots noindex\n\n---\n\n### 429 Too Many Requests\n\n**What it means**: User/bot sent too many requests in given timeframe (rate limiting).\n\n**SEO impact**: Negative if search engines can't crawl.\n\n**Common causes**:\n- Aggressive crawling\n- DDoS protection triggered\n- API rate limits\n- Server throttling\n\n**How to handle**:\n1. Check Googlebot isn't being rate-limited (use Search Console)\n2. Whitelist verified search engine bots\n3. Configure rate limits appropriately\n4. Monitor crawl rate in Search Console\n\n---\n\n## 5xx Server Error Codes\n\n### 500 Internal Server Error\n\n**What it means**: Generic server error, something went wrong.\n\n**SEO impact**: Very negative if persistent - prevents indexing and ranking.\n\n**Common causes**:\n- PHP/code errors\n- Database connection issues\n- .htaccess syntax errors\n- Resource limits exceeded\n- Plugin/theme conflicts (WordPress)\n\n**How to diagnose**:\n1. Check server error logs\n2. Review recent code/config changes\n3. Test locally or on staging\n4. Disable plugins one by one (if CMS)\n5. Check .htaccess syntax\n\n**How to fix**:\n1. Review error logs for specific error\n2. Roll back recent changes\n3. Fix code errors\n4. Increase resource limits if needed\n5. Test thoroughly before re-deploying\n\n**Monitoring**: Set up alerts for 500 errors (sudden spike = problem).\n\n---\n\n### 502 Bad Gateway\n\n**What it means**: Server received invalid response from upstream server.\n\n**SEO impact**: Negative if persistent - prevents crawling/indexing.\n\n**Common causes**:\n- Proxy/load balancer issues\n- Upstream server down\n- Timeout issues\n- Firewall blocking\n\n**Common scenarios**:\n- CDN can't reach origin server\n- Application server crashed\n- Database server unresponsive\n\n**How to fix**:\n1. Check upstream server status\n2. Verify firewall rules\n3. Check timeout settings\n4. Restart proxy/load balancer if needed\n5. Review CDN configuration\n\n---\n\n### 503 Service Unavailable\n\n**What it means**: Server temporarily unable to handle request.\n\n**SEO impact**: Neutral if truly temporary with Retry-After header. Negative if prolonged.\n\n**Common causes**:\n- Maintenance mode\n- Server overload\n- Database down\n- Resource exhaustion\n\n**Proper use for maintenance**:\n```\nHTTP/1.1 503 Service Unavailable\nRetry-After: 3600\n```\n\n**Best practices for maintenance**:\n1. Use 503 (not 404 or 500)\n2. Include Retry-After header\n3. Keep maintenance brief (<24 hours)\n4. Schedule during low-traffic times\n5. Inform users with clear message\n\n**How search engines handle 503**:\n- Short-term (hours): Will retry, no ranking impact\n- Long-term (days+): May drop rankings, de-index pages\n\n---\n\n### 504 Gateway Timeout\n\n**What it means**: Server didn't receive timely response from upstream server.\n\n**SEO impact**: Negative - prevents crawling.\n\n**Common causes**:\n- Slow database queries\n- External API timeouts\n- Insufficient server resources\n- Network issues\n\n**How to fix**:\n1. Optimize slow queries\n2. Increase timeout limits\n3. Add caching\n4. Scale server resources\n5. Review external dependencies\n\n---\n\n## Status Code Decision Flowchart\n\n### Content Moved Permanently?\n→ YES: Use **301 redirect**\n→ NO: Continue\n\n### Content Moved Temporarily?\n→ YES: Use **302 redirect**\n→ NO: Continue\n\n### Content Deleted with No Replacement?\n→ YES: Use **404** (or **410** if permanently gone)\n→ NO: Continue\n\n### Content Exists at This URL?\n→ YES: Use **200 OK**\n→ NO: Use **404**\n\n### Need Authentication?\n→ YES: Use **401**\n→ NO: Continue\n\n### Access Forbidden?\n→ YES: Use **403**\n→ NO: Continue\n\n### Server Error?\n→ YES: Use **500**, **502**, **503**, or **504** depending on cause\n→ NO: Use **200 OK**\n\n---\n\n## Diagnosing Status Code Issues\n\n### Tools\n\n**Browser DevTools**:\n1. Open DevTools (F12)\n2. Go to Network tab\n3. Reload page\n4. Check status code in first request\n\n**cURL command**:\n```bash\ncurl -I https://example.com/page\n```\n\n**Online checkers**:\n- httpstatus.io\n- redirect-checker.org\n- websiteplanet.com/webtools/redirects/\n\n**Google Search Console**:\n- Coverage report → Error/Excluded sections\n- URL Inspection tool → Check specific URLs\n\n---\n\n### Common Diagnostic Scenarios\n\n### \"Page Won't Index\"\n\n**Check**:\n1. Status code (should be 200)\n2. Redirects (shouldn't redirect away)\n3. 4xx/5xx errors\n4. robots.txt blocking\n5. noindex meta tag\n\n### \"Page Disappeared from Results\"\n\n**Check**:\n1. Returns 404/410/5xx\n2. Redirecting elsewhere (301/302)\n3. Changed to 403/401\n4. Server timing out (504)\n\n### \"Traffic Dropped After Migration\"\n\n**Check**:\n1. Old URLs return 404 (should be 301)\n2. Redirect chains (should be direct)\n3. Redirect loops\n4. Wrong redirect type (302 vs 301)\n5. Incorrect redirect targets\n\n---\n\n## Status Codes and Crawl Budget\n\n### Impact on Crawl Budget\n\n**Efficient (minimal impact)**:\n- 200 OK\n- 301 redirects (if minimal chains)\n- 410 Gone (removes from crawl queue)\n\n**Moderate impact**:\n- 302 redirects (search engine may keep checking)\n- 404 errors (search engines periodically recheck)\n- Redirect chains (multiple requests per URL)\n\n**High impact (wasteful)**:\n- 5xx errors (search engines retry frequently)\n- Redirect loops (waste crawl budget)\n- Soft 404s (search engine confused, keeps crawling)\n- 429 rate limiting (prevents efficient crawling)\n\n---\n\n## SEO Status Code Best Practices\n\n### For Migrations\n\n- [ ] Use 301 redirects for all permanently moved pages\n- [ ] Redirect directly to final destination (no chains)\n- [ ] Test all redirects before launching\n- [ ] Keep redirects in place for at least 1 year\n- [ ] Monitor 404 errors in Search Console post-launch\n- [ ] Map 1:1 where possible (old URL → equivalent new URL)\n\n### For Deleted Content\n\n- [ ] Use 301 if relevant replacement exists\n- [ ] Use 404 if no replacement and might return\n- [ ] Use 410 if permanently gone, never returning\n- [ ] Don't redirect to irrelevant pages (creates soft 404)\n- [ ] Create custom 404 page with search and navigation\n\n### For Maintenance\n\n- [ ] Use 503 with Retry-After header\n- [ ] Keep maintenance window brief (<24 hours)\n- [ ] Create user-friendly maintenance page\n- [ ] Inform users of expected downtime\n- [ ] Monitor Search Console for crawl issues\n\n### For Performance\n\n- [ ] Minimize redirect chains\n- [ ] Fix redirect loops immediately\n- [ ] Monitor 5xx errors closely\n- [ ] Set up alerts for sudden status code changes\n- [ ] Optimize to reduce 504 timeouts\n\n---\n\n## Status Code Monitoring\n\n### Key Metrics to Track\n\n**In Search Console**:\n- Crawl errors by type\n- Server errors (5xx) trend\n- Not found (404) trend\n- Redirect errors\n\n**In analytics**:\n- 404 page views\n- Entry pages with high exit rate (might be errors)\n- Sudden traffic drops (could indicate status code issues)\n\n**Server logs**:\n- Status code distribution\n- 5xx error frequency\n- Unusual patterns\n\n### Setting Up Alerts\n\n**Alert on**:\n- Sudden increase in 5xx errors\n- Increase in 404 errors\n- New redirect chains\n- Crawl error spikes in Search Console\n\n**Tools**:\n- Google Search Console email alerts\n- Server monitoring (UptimeRobot, Pingdom)\n- Log analysis tools\n- Custom scripts for log monitoring\n\n---\n\n## Quick Reference Table\n\n| Code | Name | SEO Impact | Use When | Passes Link Equity? |\n|------|------|------------|----------|---------------------|\n| 200 | OK | ✅ Positive | Page works normally | N/A (original URL) |\n| 301 | Moved Permanently | ✅ Positive | Permanent URL change | ✅ Yes (~90-99%) |\n| 302 | Found | ⚠️ Neutral | Temporary redirect | ❌ No |\n| 307 | Temporary Redirect | ⚠️ Neutral | Temporary (method preserved) | ❌ No |\n| 308 | Permanent Redirect | ✅ Positive | Permanent (method preserved) | ✅ Yes |\n| 404 | Not Found | ⚠️ Neutral | Content doesn't exist | N/A |\n| 410 | Gone | ⚠️ Neutral | Permanent deletion | N/A |\n| 403 | Forbidden | ❌ Negative | Access denied | N/A |\n| 401 | Unauthorized | ❌ Negative | Auth required | N/A |\n| 500 | Internal Server Error | ❌ Negative | Server error | N/A |\n| 502 | Bad Gateway | ❌ Negative | Upstream error | N/A |\n| 503 | Service Unavailable | ⚠️ Neutral | Temporary downtime | N/A |\n| 504 | Gateway Timeout | ❌ Negative | Timeout error | N/A |\n\n---\n\n## Status Code Testing Checklist\n\nBefore launching site changes:\n\n- [ ] Test all redirects return correct status codes\n- [ ] Verify no redirect chains exist\n- [ ] Check no redirect loops present\n- [ ] Confirm important pages return 200\n- [ ] Ensure deleted pages return 404/410 (not 200)\n- [ ] Verify 301s point to correct destinations\n- [ ] Test with multiple user-agents\n- [ ] Check status codes in Search Console\n- [ ] Monitor server logs for unusual patterns\n- [ ] Set up alerts for error spikes\n\nFile v2.0.0:references/robots-txt-reference.md\n\n# Robots.txt Reference Guide\n\nComplete reference for creating, testing, and troubleshooting robots.txt files.\n\n## Syntax Guide\n\n### Basic Structure\n\n```\nUser-agent: [bot name]\nDisallow: [path to block]\nAllow: [path to allow]\nSitemap: [sitemap URL]\nCrawl-delay: [seconds]\n```\n\n---\n\n## Core Directives\n\n### User-agent\n\nSpecifies which bot the rules apply to.\n\n**Syntax**: `User-agent: [bot-name]`\n\n**Common user-agents**:\n```\nUser-agent: *                    # All bots\nUser-agent: Googlebot            # Google's crawler\nUser-agent: Bingbot              # Bing's crawler\nUser-agent: GPTBot               # OpenAI's crawler\nUser-agent: CCBot                # Common Crawl bot\nUser-agent: anthropic-ai         # Anthropic's crawler\nUser-agent: PerplexityBot        # Perplexity AI crawler\nUser-agent: ClaudeBot            # Claude's web crawler\n```\n\n**Multiple user-agents**: Group rules by leaving no blank lines between user-agent declarations.\n\n```\nUser-agent: Googlebot\nUser-agent: Bingbot\nDisallow: /admin/\n```\n\n---\n\n### Disallow\n\nBlocks bots from crawling specified paths.\n\n**Syntax**: `Disallow: [path]`\n\n**Examples**:\n```\nDisallow: /                      # Block entire site\nDisallow: /admin/                # Block admin directory\nDisallow: /private               # Block private directory (and subdirectories)\nDisallow: /*.pdf$                # Block all PDF files\nDisallow: /*?                    # Block all URLs with parameters\nDisallow:                        # Allow everything (empty disallow)\n```\n\n**Path matching**:\n- `/` at end = block directory and all subdirectories\n- Without `/` at end = block all paths starting with string\n- `*` = wildcard, matches any sequence\n- `$` = end of URL\n\n---\n\n### Allow\n\nExplicitly allows crawling (overrides Disallow).\n\n**Syntax**: `Allow: [path]`\n\n**Common use**: Allow specific subdirectories within blocked parent.\n\n```\nUser-agent: *\nDisallow: /admin/\nAllow: /admin/public/\n```\n\n**Note**: Allow is not standard but supported by Google, Bing, and most major crawlers.\n\n---\n\n### Sitemap\n\nSpecifies location of XML sitemap.\n\n**Syntax**: `Sitemap: [absolute URL]`\n\n**Examples**:\n```\nSitemap: https://example.com/sitemap.xml\nSitemap: https://example.com/sitemap_index.xml\nSitemap: https://example.com/blog/sitemap.xml\n```\n\n**Best practices**:\n- Use absolute URLs (not relative)\n- Can include multiple Sitemap directives\n- Place at end of file\n- Submit same sitemap(s) to Google Search Console\n\n---\n\n### Crawl-delay\n\nAdds delay between requests (seconds).\n\n**Syntax**: `Crawl-delay: [seconds]`\n\n**Example**:\n```\nUser-agent: *\nCrawl-delay: 10\n```\n\n**Warning**: Not supported by Googlebot (use Search Console rate limiting instead). Supported by Bing, Yandex, and others.\n\n---\n\n## Common Configurations\n\n### 1. Allow All Bots (Default)\n\n```\nUser-agent: *\nDisallow:\n\nSitemap: https://example.com/sitemap.xml\n```\n\nUse when you want all bots to crawl entire site.\n\n---\n\n### 2. Block All Bots\n\n```\nUser-agent: *\nDisallow: /\n```\n\nUse for development/staging sites or private content.\n\n---\n\n### 3. Block Specific Directories\n\n```\nUser-agent: *\nDisallow: /admin/\nDisallow: /private/\nDisallow: /temp/\nDisallow: /cgi-bin/\n\nSitemap: https://example.com/sitemap.xml\n```\n\nStandard configuration blocking admin and utility directories.\n\n---\n\n### 4. Block All AI Crawlers\n\n```\n# Block OpenAI\nUser-agent: GPTBot\nDisallow: /\n\n# Block Anthropic\nUser-agent: anthropic-ai\nUser-agent: ClaudeBot\nDisallow: /\n\n# Block Common Crawl\nUser-agent: CCBot\nDisallow: /\n\n# Block Perplexity\nUser-agent: PerplexityBot\nDisallow: /\n\n# Block Google-Extended (Bard training)\nUser-agent: Google-Extended\nDisallow: /\n\n# Allow search engines\nUser-agent: Googlebot\nDisallow:\n\nUser-agent: Bingbot\nDisallow:\n\nSitemap: https://example.com/sitemap.xml\n```\n\nUse when you want search indexing but not AI training.\n\n---\n\n### 5. Allow Search Engines, Block Everything Else\n\n```\n# Block all by default\nUser-agent: *\nDisallow: /\n\n# Allow Google\nUser-agent: Googlebot\nDisallow:\n\n# Allow Bing\nUser-agent: Bingbot\nDisallow:\n\n# Allow DuckDuckGo\nUser-agent: DuckDuckBot\nDisallow:\n\nSitemap: https://example.com/sitemap.xml\n```\n\n---\n\n### 6. Block URL Parameters\n\n```\nUser-agent: *\nDisallow: /*?                    # Block all URLs with parameters\nAllow: /?                        # Allow homepage with parameters\n\nSitemap: https://example.com/sitemap.xml\n```\n\nPrevents duplicate content from parameter variations.\n\n---\n\n### 7. Block File Types\n\n```\nUser-agent: *\nDisallow: /*.pdf$\nDisallow: /*.doc$\nDisallow: /*.xls$\nDisallow: /*.zip$\n\nSitemap: https://example.com/sitemap.xml\n```\n\n---\n\n### 8. E-commerce Configuration\n\n```\nUser-agent: *\n# Block search/filter pages\nDisallow: /*?q=\nDisallow: /*?sort=\nDisallow: /*?filter=\n\n# Block account pages\nDisallow: /account/\nDisallow: /cart/\nDisallow: /checkout/\n\n# Block admin\nDisallow: /admin/\n\n# Allow product pages\nAllow: /products/\n\nSitemap: https://example.com/sitemap.xml\n```\n\n---\n\n### 9. WordPress Configuration\n\n```\nUser-agent: *\n# WordPress core\nDisallow: /wp-admin/\nAllow: /wp-admin/admin-ajax.php\n\n# WordPress directories\nDisallow: /wp-includes/\nDisallow: /wp-content/plugins/\nDisallow: /wp-content/themes/\n\n# Allow uploads\nAllow: /wp-content/uploads/\n\n# Block parameter pages\nDisallow: /?s=\nDisallow: /feed/\nDisallow: /trackback/\n\nSitemap: https://example.com/sitemap_index.xml\n```\n\n---\n\n### 10. Shopify Configuration\n\n```\nUser-agent: *\n# Block admin and account\nDisallow: /admin\nDisallow: /account\nDisallow: /cart\nDisallow: /checkout\n\n# Block search\nDisallow: /search\n\n# Block collections with filters\nDisallow: /collections/*+*\nDisallow: /collections/*?*\n\nSitemap: https://example.com/sitemap.xml\n```\n\n---\n\n## Platform-Specific Templates\n\n### Wix\n\n```\nUser-agent: *\nDisallow: /_api/\nDisallow: /_partials/\n\nSitemap: https://example.com/sitemap.xml\n```\n\n### Squarespace\n\n```\nUser-agent: *\nDisallow: /config/\nDisallow: /search\n\nSitemap: https://example.com/sitemap.xml\n```\n\n### Webflow\n\n```\nUser-agent: *\nAllow: /\n\nSitemap: https://example.com/sitemap.xml\n```\n\n### Drupal\n\n```\nUser-agent: *\nDisallow: /admin/\nDisallow: /user/\nDisallow: /node/add/\nDisallow: /?q=\n\nSitemap: https://example.com/sitemap.xml\n```\n\n---\n\n## Testing and Validation\n\n### Google Search Console Robots.txt Tester\n\n1. Go to: Search Console → Settings → robots.txt\n2. View current robots.txt\n3. Test specific URLs\n4. See which user-agents are affected\n\n### Manual Testing\n\nTest URL pattern: `https://example.com/robots.txt`\n\nCheck file is:\n- Accessible (returns 200 status)\n- Plain text format\n- UTF-8 encoded\n- Located at root domain\n- No more than 500KB (Google limit)\n\n### Common Testing Scenarios\n\nTest these URLs in tester:\n- Homepage: `/`\n- Product page: `/products/example`\n- Admin page: `/admin/`\n- Parameter page: `/search?q=test`\n- File: `/document.pdf`\n\n---\n\n## Common Mistakes and Fixes\n\n### Mistake 1: Blocking CSS/JS Files\n\n**Wrong**:\n```\nUser-agent: *\nDisallow: /css/\nDisallow: /js/\n```\n\n**Why it's wrong**: Google needs CSS/JS to render pages properly.\n\n**Fix**:\n```\nUser-agent: *\nAllow: /css/\nAllow: /js/\n```\n\n---\n\n### Mistake 2: Using Relative URLs for Sitemap\n\n**Wrong**:\n```\nSitemap: /sitemap.xml\n```\n\n**Fix**:\n```\nSitemap: https://example.com/sitemap.xml\n```\n\n---\n\n### Mistake 3: Spaces in Directives\n\n**Wrong**:\n```\nUser-agent : Googlebot\nDisallow : /admin/\n```\n\n**Fix** (no spaces before colons):\n```\nUser-agent: Googlebot\nDisallow: /admin/\n```\n\n---\n\n### Mistake 4: Forgetting Trailing Slash\n\n**Intention**: Block /admin directory\n\n**Wrong**:\n```\nDisallow: /admin\n```\n\n**Result**: Also blocks /admin-panel, /administrator, etc.\n\n**Fix**:\n```\nDisallow: /admin/\n```\n\n---\n\n### Mistake 5: Blocking Entire Site Accidentally\n\n**Wrong**:\n```\nUser-agent: *\nDisallow: /\nAllow: /blog/\n```\n\n**Why it's wrong**: Many bots don't support Allow directive.\n\n**Fix**: Use noindex meta tags for pages you don't want indexed, not robots.txt.\n\n---\n\n### Mistake 6: Not Blocking Development Environments\n\n**Wrong**: No robots.txt on staging.example.com\n\n**Result**: Staging site gets indexed.\n\n**Fix**:\n```\nUser-agent: *\nDisallow: /\n```\n\nOn all non-production environments.\n\n---\n\n### Mistake 7: Case Sensitivity Errors\n\n**Note**: Directives are case-insensitive, but paths are case-sensitive.\n\n**Example**:\n```\nDisallow: /Admin/        # Blocks /Admin/ but not /admin/\n```\n\n**Fix**: Block both if needed:\n```\nDisallow: /admin/\nDisallow: /Admin/\n```\n\n---\n\n## Advanced Patterns\n\n### Wildcard Examples\n\n```\n# Block all PDFs\nDisallow: /*.pdf$\n\n# Block all URLs with parameters\nDisallow: /*?\n\n# Block all URLs ending in .php\nDisallow: /*.php$\n\n# Block all admin paths regardless of location\nDisallow: /*/admin/\n```\n\n### Multiple Sitemaps\n\n```\nSitemap: https://example.com/sitemap-pages.xml\nSitemap: https://example.com/sitemap-posts.xml\nSitemap: https://example.com/sitemap-products.xml\n```\n\n### Bot-Specific Rules\n\n```\n# Aggressive bot - slow it down\nUser-agent: BadBot\nCrawl-delay: 60\nDisallow: /\n\n# Good bots - full access\nUser-agent: Googlebot\nUser-agent: Bingbot\nDisallow:\n\n# Default for others\nUser-agent: *\nCrawl-delay: 10\nDisallow: /admin/\n```\n\n---\n\n## Robots.txt vs Meta Robots vs X-Robots-Tag\n\n### When to use each:\n\n**Robots.txt**:\n- Block crawling of entire directories\n- Reduce crawl budget waste\n- Block parameter variations\n- Does NOT prevent indexing if page is linked from elsewhere\n\n**Meta robots tag**:\n- Prevent specific pages from being indexed\n- Control snippet display\n- Control following links\n- Example: `<meta name=\"robots\" content=\"noindex,follow\">`\n\n**X-Robots-Tag HTTP header**:\n- Control non-HTML files (PDFs, images)\n- Server-level control\n- Example: `X-Robots-Tag: noindex`\n\n**Important**: If you don't want a page indexed, use noindex (meta tag or header), NOT robots.txt.\n\n---\n\n## Monitoring and Maintenance\n\n### Regular Checks\n\n**Monthly**:\n- [ ] Verify robots.txt is accessible\n- [ ] Check Search Console for blocked URLs\n- [ ] Review crawl stats for blocked resources\n\n**Quarterly**:\n- [ ] Audit blocked paths - still relevant?\n- [ ] Check for new admin/private sections to block\n- [ ] Review AI crawler landscape (new bots?)\n\n**After site changes**:\n- [ ] Update robots.txt if URL structure changed\n- [ ] Test new sections (should they be blocked?)\n- [ ] Verify sitemaps still referenced\n\n### Search Console Monitoring\n\nCheck these reports:\n- **Coverage** → Excluded by robots.txt\n- **Settings** → Crawl stats\n- **URL Inspection** → Test specific URLs\n\n---\n\n## Robots.txt Checklist\n\nBefore deploying:\n\n- [ ] File is named exactly `robots.txt` (lowercase)\n- [ ] Located at root domain (`example.com/robots.txt`)\n- [ ] Plain text format (not HTML or PDF)\n- [ ] UTF-8 encoding\n- [ ] No HTML tags in file\n- [ ] All paths start with `/`\n- [ ] Sitemap URLs are absolute\n- [ ] No spaces before colons\n- [ ] Tested in Search Console robots.txt tester\n- [ ] Not blocking important CSS/JS/images\n- [ ] Not blocking content you want indexed\n- [ ] Trailing slashes used correctly for directories\n- [ ] Wildcard patterns tested\n- [ ] File size under 500KB\n\n---\n\n## Emergency Fixes\n\n### Accidentally Blocked Entire Site\n\n**Symptom**: All pages blocked in Search Console\n\n**Fix**:\n1. Edit robots.txt to:\n```\nUser-agent: *\nDisallow:\n\nSitemap: https://example.com/sitemap.xml\n```\n2. Test in Search Console\n3. Request urgent recrawl for key pages\n4. Monitor Coverage report for recovery\n\n**Recovery time**: 1-7 days\n\n---\n\n### Blocked CSS/JS Files\n\n**Symptom**: \"Blocked by robots.txt\" in Mobile-Friendly Test\n\n**Fix**:\n1. Add Allow directives:\n```\nUser-agent: *\nAllow: /css/\nAllow: /js/\nAllow: /wp-content/uploads/\n```\n2. Test in robots.txt tester\n3. Request re-render in URL Inspection tool\n\n---\n\n### Staging Site Indexed\n\n**Symptom**: staging.example.com appears in search results\n\n**Fix**:\n1. Add to staging robots.txt:\n```\nUser-agent: *\nDisallow: /\n```\n2. Add noindex meta tag to all staging pages\n3. Remove staging URLs in Search Console (Removals tool)\n\n---\n\n## Resources and Tools\n\n**Testing**:\n- Google Search Console robots.txt tester\n- Bing Webmaster Tools robots.txt analyzer\n- Technical SEO browser extensions\n\n**Validation**:\n- https://www.google.com/webmasters/tools/robots-testing-tool\n- https://en.ryte.com/free-tools/robots-txt/\n- https://technicalseo.com/tools/robots-txt/\n\n**Documentation**:\n- Google: https://developers.google.com/search/docs/crawling-indexing/robots/intro\n- Bing: https://www.bing.com/webmasters/help/robots-txt-validation\n- Robots.txt spec: https://www.robotstxt.org/\n\nArchive v0.1.2: 2 files, 7610 bytes\n\nFiles: SKILL.md (23028b), _meta.json (140b)\n\nFile v0.1.2:SKILL.md\n\n---\nname: technical-seo-checker\ndescription: Performs technical SEO audits covering site speed, crawlability, indexability, mobile-friendliness, security, and structured data. Identifies technical issues preventing optimal search performance.\ngeo-relevance: \"low\"\n---\n\n# Technical SEO Checker\n\nThis skill performs comprehensive technical SEO audits to identify issues that may prevent search engines from properly crawling, indexing, and ranking your site.\n\n## When to Use This Skill\n\n- Launching a new website\n- Diagnosing ranking drops\n- Pre-migration SEO audits\n- Regular technical health checks\n- Identifying crawl and index issues\n- Improving site performance\n- Fixing Core Web Vitals issues\n\n## What This Skill Does\n\n1. **Crawlability Audit**: Checks robots.txt, sitemaps, crawl issues\n2. **Indexability Review**: Analyzes index status and blockers\n3. **Site Speed Analysis**: Evaluates Core Web Vitals and performance\n4. **Mobile-Friendliness**: Checks mobile optimization\n5. **Security Check**: Reviews HTTPS and security headers\n6. **Structured Data Audit**: Validates schema markup\n7. **URL Structure Analysis**: Reviews URL patterns and redirects\n8. **International SEO**: Checks hreflang and localization\n\n## How to Use\n\n### Full Technical Audit\n\n```\nPerform a technical SEO audit for [URL/domain]\n```\n\n### Specific Issue Check\n\n```\nCheck Core Web Vitals for [URL]\n```\n\n```\nAudit crawlability and indexability for [domain]\n```\n\n### Pre-Migration Audit\n\n```\nTechnical SEO checklist for migrating [old domain] to [new domain]\n```\n\n## Data Sources\n\n> See [CONNECTORS.md](../../CONNECTORS.md) for tool category placeholders.\n\n**With ~~web crawler + ~~page speed tool + ~~CDN connected:**\nClaude can automatically crawl the entire site structure via ~~web crawler, pull Core Web Vitals and performance metrics from ~~page speed tool, analyze caching headers from ~~CDN, and fetch mobile-friendliness data. This enables comprehensive automated technical audits.\n\n**With manual data only:**\nAsk the user to provide:\n1. Site URL(s) to audit\n2. PageSpeed Insights screenshots or reports\n3. robots.txt file content\n4. sitemap.xml URL or file\n\nProceed with the full audit using provided data. Note in the output which findings are from automated crawl vs. manual review.\n\n## Instructions\n\nWhen a user requests a technical SEO audit:\n\n1. **Audit Crawlability**\n\n   ```markdown\n   ## Crawlability Analysis\n   \n   ### Robots.txt Review\n   \n   **URL**: [domain]/robots.txt\n   **Status**: [Found/Not Found/Error]\n   \n   **Current Content**:\n   ```\n   [robots.txt content]\n   ```\n   \n   | Check | Status | Notes |\n   |-------|--------|-------|\n   | File exists | ✅/❌ | [notes] |\n   | Valid syntax | ✅/⚠️/❌ | [errors found] |\n   | Sitemap declared | ✅/❌ | [sitemap URL] |\n   | Important pages blocked | ✅/⚠️/❌ | [blocked paths] |\n   | Assets blocked | ✅/⚠️/❌ | [CSS/JS blocked?] |\n   | Correct user-agents | ✅/⚠️/❌ | [notes] |\n   \n   **Issues Found**:\n   - [Issue 1]\n   - [Issue 2]\n   \n   **Recommended robots.txt**:\n   ```\n   User-agent: *\n   Allow: /\n   Disallow: /admin/\n   Disallow: /private/\n   \n   Sitemap: https://example.com/sitemap.xml\n   ```\n   \n   ---\n   \n   ### XML Sitemap Review\n   \n   **Sitemap URL**: [URL]\n   **Status**: [Found/Not Found/Error]\n   \n   | Check | Status | Notes |\n   |-------|--------|-------|\n   | Sitemap exists | ✅/❌ | [notes] |\n   | Valid XML format | ✅/⚠️/❌ | [errors] |\n   | In robots.txt | ✅/❌ | [notes] |\n   | Submitted to ~~search console | ✅/⚠️/❌ | [notes] |\n   | URLs count | [X] | [appropriate?] |\n   | Only indexable URLs | ✅/⚠️/❌ | [notes] |\n   | Includes priority | ✅/⚠️ | [notes] |\n   | Includes lastmod | ✅/⚠️ | [accurate?] |\n   \n   **Issues Found**:\n   - [Issue 1]\n   \n   ---\n   \n   ### Crawl Budget Analysis\n   \n   | Factor | Status | Impact |\n   |--------|--------|--------|\n   | Crawl errors | [X] errors | [Low/Med/High] |\n   | Duplicate content | [X] pages | [Low/Med/High] |\n   | Thin content | [X] pages | [Low/Med/High] |\n   | Redirect chains | [X] found | [Low/Med/High] |\n   | Orphan pages | [X] found | [Low/Med/High] |\n   \n   **Crawlability Score**: [X]/10\n   ```\n\n2. **Audit Indexability**\n\n   ```markdown\n   ## Indexability Analysis\n   \n   ### Index Status Overview\n   \n   | Metric | Count | Notes |\n   |--------|-------|-------|\n   | Pages in sitemap | [X] | |\n   | Pages indexed | [X] | [source: site: search] |\n   | Index coverage ratio | [X]% | [good if >90%] |\n   \n   ### Index Blockers Check\n   \n   | Blocker Type | Found | Pages Affected |\n   |--------------|-------|----------------|\n   | noindex meta tag | [X] | [list or \"none\"] |\n   | noindex X-Robots | [X] | [list or \"none\"] |\n   | Robots.txt blocked | [X] | [list or \"none\"] |\n   | Canonical to other | [X] | [list or \"none\"] |\n   | 4xx/5xx errors | [X] | [list or \"none\"] |\n   | Redirect loops | [X] | [list or \"none\"] |\n   \n   ### Canonical Tags Audit\n   \n   | Check | Status | Notes |\n   |-------|--------|-------|\n   | Canonicals present | ✅/⚠️/❌ | [X]% of pages |\n   | Self-referencing | ✅/⚠️/❌ | [notes] |\n   | Consistent (HTTP/HTTPS) | ✅/⚠️/❌ | [notes] |\n   | Consistent (www/non-www) | ✅/⚠️/❌ | [notes] |\n   | No conflicting signals | ✅/⚠️/❌ | [notes] |\n   \n   ### Duplicate Content Issues\n   \n   | Issue Type | Count | Examples |\n   |------------|-------|----------|\n   | Exact duplicates | [X] | [URLs] |\n   | Near duplicates | [X] | [URLs] |\n   | Parameter duplicates | [X] | [URLs] |\n   | WWW/non-WWW | [X] | [notes] |\n   | HTTP/HTTPS | [X] | [notes] |\n   \n   **Indexability Score**: [X]/10\n   ```\n\n3. **Audit Site Speed & Core Web Vitals**\n\n   ```markdown\n   ## Performance Analysis\n   \n   ### Core Web Vitals\n   \n   | Metric | Mobile | Desktop | Target | Status |\n   |--------|--------|---------|--------|--------|\n   | LCP (Largest Contentful Paint) | [X]s | [X]s | <2.5s | ✅/⚠️/❌ |\n   | FID (First Input Delay) | [X]ms | [X]ms | <100ms | ✅/⚠️/❌ |\n   | CLS (Cumulative Layout Shift) | [X] | [X] | <0.1 | ✅/⚠️/❌ |\n   | INP (Interaction to Next Paint) | [X]ms | [X]ms | <200ms | ✅/⚠️/❌ |\n   \n   ### Additional Performance Metrics\n   \n   | Metric | Value | Status |\n   |--------|-------|--------|\n   | Time to First Byte (TTFB) | [X]ms | ✅/⚠️/❌ |\n   | First Contentful Paint (FCP) | [X]s | ✅/⚠️/❌ |\n   | Speed Index | [X] | ✅/⚠️/❌ |\n   | Total Blocking Time | [X]ms | ✅/⚠️/❌ |\n   | Page Size | [X]MB | ✅/⚠️/❌ |\n   | Requests | [X] | ✅/⚠️/❌ |\n   \n   ### Performance Issues\n   \n   **LCP Issues**:\n   - [Issue]: [Impact] - [Solution]\n   - [Issue]: [Impact] - [Solution]\n   \n   **CLS Issues**:\n   - [Issue]: [Impact] - [Solution]\n   \n   **Resource Loading**:\n   | Resource Type | Count | Size | Issues |\n   |---------------|-------|------|--------|\n   | Images | [X] | [X]MB | [notes] |\n   | JavaScript | [X] | [X]MB | [notes] |\n   | CSS | [X] | [X]KB | [notes] |\n   | Fonts | [X] | [X]KB | [notes] |\n   \n   ### Optimization Recommendations\n   \n   **High Impact**:\n   1. [Recommendation] - Est. improvement: [X]s\n   2. [Recommendation] - Est. improvement: [X]s\n   \n   **Medium Impact**:\n   1. [Recommendation]\n   2. [Recommendation]\n   \n   **Performance Score**: [X]/10\n   ```\n\n4. **Audit Mobile-Friendliness**\n\n   ```markdown\n   ## Mobile Optimization Analysis\n   \n   ### Mobile-Friendly Test\n   \n   | Check | Status | Notes |\n   |-------|--------|-------|\n   | Mobile-friendly overall | ✅/❌ | [notes] |\n   | Viewport configured | ✅/❌ | [viewport tag] |\n   | Text readable | ✅/⚠️/❌ | Font size: [X]px |\n   | Tap targets sized | ✅/⚠️/❌ | [notes] |\n   | Content fits viewport | ✅/❌ | [notes] |\n   | No horizontal scroll | ✅/❌ | [notes] |\n   \n   ### Responsive Design Check\n   \n   | Element | Desktop | Mobile | Issues |\n   |---------|---------|--------|--------|\n   | Navigation | [status] | [status] | [notes] |\n   | Images | [status] | [status] | [notes] |\n   | Forms | [status] | [status] | [notes] |\n   | Tables | [status] | [status] | [notes] |\n   | Videos | [status] | [status] | [notes] |\n   \n   ### Mobile-First Indexing\n   \n   | Check | Status | Notes |\n   |-------|--------|-------|\n   | Mobile version has all content | ✅/⚠️/❌ | [notes] |\n   | Mobile has same structured data | ✅/⚠️/❌ | [notes] |\n   | Mobile has same meta tags | ✅/⚠️/❌ | [notes] |\n   | Mobile images have alt text | ✅/⚠️/❌ | [notes] |\n   \n   **Mobile Score**: [X]/10\n   ```\n\n5. **Audit Security & HTTPS**\n\n   ```markdown\n   ## Security Analysis\n   \n   ### HTTPS Status\n   \n   | Check | Status | Notes |\n   |-------|--------|-------|\n   | SSL certificate valid | ✅/❌ | Expires: [date] |\n   | HTTPS enforced | ✅/❌ | [redirects properly?] |\n   | Mixed content | ✅/⚠️/❌ | [X] issues |\n   | HSTS enabled | ✅/⚠️ | [notes] |\n   | Certificate chain | ✅/⚠️/❌ | [notes] |\n   \n   ### Security Headers\n   \n   | Header | Present | Value | Recommended |\n   |--------|---------|-------|-------------|\n   | Content-Security-Policy | ✅/❌ | [value] | [recommendation] |\n   | X-Frame-Options | ✅/❌ | [value] | DENY or SAMEORIGIN |\n   | X-Content-Type-Options | ✅/❌ | [value] | nosniff |\n   | X-XSS-Protection | ✅/❌ | [value] | 1; mode=block |\n   | Referrer-Policy | ✅/❌ | [value] | [recommendation] |\n   \n   **Security Score**: [X]/10\n   ```\n\n6. **Audit URL Structure**\n\n   ```markdown\n   ## URL Structure Analysis\n   \n   ### URL Pattern Review\n   \n   | Check | Status | Notes |\n   |-------|--------|-------|\n   | HTTPS URLs | ✅/⚠️/❌ | [X]% HTTPS |\n   | Lowercase URLs | ✅/⚠️/❌ | [notes] |\n   | No special characters | ✅/⚠️/❌ | [notes] |\n   | Readable/descriptive | ✅/⚠️/❌ | [notes] |\n   | Appropriate length | ✅/⚠️/❌ | Avg: [X] chars |\n   | Keywords in URLs | ✅/⚠️/❌ | [notes] |\n   | Consistent structure | ✅/⚠️/❌ | [notes] |\n   \n   ### URL Issues Found\n   \n   | Issue Type | Count | Examples |\n   |------------|-------|----------|\n   | Dynamic parameters | [X] | [URLs] |\n   | Session IDs in URLs | [X] | [URLs] |\n   | Uppercase characters | [X] | [URLs] |\n   | Special characters | [X] | [URLs] |\n   | Very long URLs (>100) | [X] | [URLs] |\n   \n   ### Redirect Analysis\n   \n   | Check | Status | Notes |\n   |-------|--------|-------|\n   | Redirect chains | [X] found | [max chain length] |\n   | Redirect loops | [X] found | [URLs] |\n   | 302 → 301 needed | [X] found | [URLs] |\n   | Broken redirects | [X] found | [URLs] |\n   \n   **URL Score**: [X]/10\n   ```\n\n7. **Audit Structured Data**\n\n   > **CORE-EEAT alignment**: Schema markup quality maps to O05 (Schema Markup) in the CORE-EEAT benchmark. See [content-quality-auditor](../../cross-cutting/content-quality-auditor/) for full content quality audit.\n\n   ```markdown\n   ## Structured Data Analysis\n   \n   ### Schema Markup Found\n   \n   | Schema Type | Pages | Valid | Errors |\n   |-------------|-------|-------|--------|\n   | [Type 1] | [X] | ✅/❌ | [errors] |\n   | [Type 2] | [X] | ✅/❌ | [errors] |\n   \n   ### Validation Results\n   \n   **Errors**:\n   - [Error 1]: [affected pages] - [solution]\n   - [Error 2]: [affected pages] - [solution]\n   \n   **Warnings**:\n   - [Warning 1]: [notes]\n   \n   ### Missing Schema Opportunities\n   \n   | Page Type | Current Schema | Recommended |\n   |-----------|----------------|-------------|\n   | Blog posts | [current] | Article + FAQ |\n   | Products | [current] | Product + Review |\n   | Homepage | [current] | Organization |\n   \n   **Structured Data Score**: [X]/10\n   ```\n\n8. **Audit International SEO (if applicable)**\n\n   ```markdown\n   ## International SEO Analysis\n   \n   ### Hreflang Implementation\n   \n   | Check | Status | Notes |\n   |-------|--------|-------|\n   | Hreflang tags present | ✅/❌ | [notes] |\n   | Self-referencing | ✅/⚠️/❌ | [notes] |\n   | Return tags present | ✅/⚠️/❌ | [notes] |\n   | Valid language codes | ✅/⚠️/❌ | [notes] |\n   | x-default tag | ✅/⚠️ | [notes] |\n   \n   ### Language/Region Targeting\n   \n   | Language | URL | Hreflang | Status |\n   |----------|-----|----------|--------|\n   | [en-US] | [URL] | [tag] | ✅/⚠️/❌ |\n   | [es-ES] | [URL] | [tag] | ✅/⚠️/❌ |\n   \n   **International Score**: [X]/10\n   ```\n\n9. **Generate Technical Audit Summary**\n\n   ```markdown\n   # Technical SEO Audit Report\n   \n   **Domain**: [domain]\n   **Audit Date**: [date]\n   **Pages Analyzed**: [X]\n   \n   ## Overall Technical Health: [X]/100\n   \n   ```\n   Score Breakdown:\n   ████████░░ Crawlability: 8/10\n   ███████░░░ Indexability: 7/10\n   █████░░░░░ Performance: 5/10\n   ████████░░ Mobile: 8/10\n   █████████░ Security: 9/10\n   ██████░░░░ URL Structure: 6/10\n   █████░░░░░ Structured Data: 5/10\n   ```\n   \n   ## Critical Issues (Fix Immediately)\n   \n   1. **[Issue]**: [Impact] \n      - Affected: [pages/scope]\n      - Solution: [specific fix]\n      - Priority: 🔴 Critical\n   \n   2. **[Issue]**: [Impact]\n      - Affected: [pages/scope]\n      - Solution: [specific fix]\n      - Priority: 🔴 Critical\n   \n   ## High Priority Issues\n   \n   1. **[Issue]**: [Solution]\n   2. **[Issue]**: [Solution]\n   \n   ## Medium Priority Issues\n   \n   1. **[Issue]**: [Solution]\n   2. **[Issue]**: [Solution]\n   \n   ## Quick Wins\n   \n   These can be fixed quickly for immediate improvement:\n   \n   1. [Quick fix 1]\n   2. [Quick fix 2]\n   3. [Quick fix 3]\n   \n   ## Implementation Roadmap\n   \n   ### Week 1: Critical Fixes\n   - [ ] [Task 1]\n   - [ ] [Task 2]\n   \n   ### Week 2-3: High Priority\n   - [ ] [Task 1]\n   - [ ] [Task 2]\n   \n   ### Week 4+: Optimization\n   - [ ] [Task 1]\n   - [ ] [Task 2]\n   \n   ## Monitoring Recommendations\n\n   Set up alerts for:\n   - Core Web Vitals drops\n   - Crawl error spikes\n   - Index coverage changes\n   - Security issues\n   ```\n\n## Validation Checkpoints\n\n### Input Validation\n- [ ] Site URL or domain clearly specified\n- [ ] Access to technical data (robots.txt, sitemap, or crawl results)\n- [ ] Performance metrics available (via ~~page speed tool or screenshots)\n\n### Output Validation\n- [ ] Every recommendation cites specific data points (not generic advice)\n- [ ] All issues include affected URLs or page counts\n- [ ] Performance metrics include actual numbers with units (seconds, KB, etc.)\n- [ ] Source of each data point clearly stated (~~web crawler data, ~~page speed tool, user-provided, or estimated)\n\n## Example\n\n**User**: \"Check the technical SEO of cloudhosting.com\"\n\n**Output**:\n\n```markdown\n# Technical SEO Audit Report\n\n**Domain**: cloudhosting.com\n**Audit Date**: 2024-09-15\n**Pages Analyzed**: 312\n\n## Crawlability Analysis\n\n### Robots.txt Review\n\n**URL**: cloudhosting.com/robots.txt\n**Status**: Found\n\n| Check | Status | Notes |\n|-------|--------|-------|\n| File exists | ✅ | 200 response |\n| Valid syntax | ⚠️ | Wildcard pattern `Disallow: /*?` too aggressive — blocks faceted pages |\n| Sitemap declared | ❌ | No Sitemap directive in robots.txt |\n| Important pages blocked | ⚠️ | /pricing/ blocked by `Disallow: /pricing` rule |\n| Assets blocked | ✅ | CSS/JS accessible |\n\n**Issues Found**:\n- Sitemap URL not declared in robots.txt\n- `/pricing/` inadvertently blocked — high-value commercial page\n\n### XML Sitemap Review\n\n**Sitemap URL**: cloudhosting.com/sitemap.xml\n**Status**: Found (not referenced in robots.txt)\n\n| Check | Status | Notes |\n|-------|--------|-------|\n| Sitemap exists | ✅ | Valid XML, 287 URLs |\n| Only indexable URLs | ❌ | 23 noindex URLs included |\n| Includes lastmod | ⚠️ | All dates set to 2023-01-01 — not accurate |\n\n**Crawlability Score**: 5/10\n\n## Performance Analysis\n\n### Core Web Vitals\n\n| Metric | Mobile | Desktop | Target | Status |\n|--------|--------|---------|--------|--------|\n| LCP (Largest Contentful Paint) | 4.8s | 2.1s | <2.5s | ❌ Mobile / ✅ Desktop |\n| FID (First Input Delay) | 45ms | 12ms | <100ms | ✅ / ✅ |\n| CLS (Cumulative Layout Shift) | 0.24 | 0.08 | <0.1 | ❌ Mobile / ✅ Desktop |\n| INP (Interaction to Next Paint) | 380ms | 140ms | <200ms | ❌ Mobile / ✅ Desktop |\n\n### Additional Performance Metrics\n\n| Metric | Value | Status |\n|--------|-------|--------|\n| Time to First Byte (TTFB) | 1,240ms | ❌ |\n| Page Size | 3.8MB | ❌ |\n| Requests | 94 | ⚠️ |\n\n**LCP Issues**:\n- Uncompressed hero image (2.4MB PNG): Convert to WebP, est. save 1.9MB\n- No CDN detected: TTFB 1,240ms from origin server\n\n**CLS Issues**:\n- Ad banner at top of page injects without reserved height (0.18 shift contribution)\n\n**Performance Score**: 3/10\n\n## Security Analysis\n\n### HTTPS Status\n\n| Check | Status | Notes |\n|-------|--------|-------|\n| SSL certificate valid | ✅ | Expires: 2025-03-22 |\n| HTTPS enforced | ⚠️ | http://cloudhosting.com returns 200 instead of 301 redirect |\n| Mixed content | ❌ | 7 images loaded over HTTP on /features/ page |\n| HSTS enabled | ❌ | Header not present |\n\n**Security Score**: 5/10\n\n## Structured Data Analysis\n\n### Schema Markup Found\n\n| Schema Type | Pages | Valid | Errors |\n|-------------|-------|-------|--------|\n| Organization | 1 (homepage) | ✅ | None |\n| Article | 0 | — | Missing on 48 blog posts |\n| Product | 0 | — | Missing on 5 plan pages |\n| FAQ | 0 | — | Missing on 12 pages with FAQ content |\n\n**Structured Data Score**: 3/10\n\n## Overall Technical Health: 42/100\n\n```\nScore Breakdown:\n█████░░░░░ Crawlability: 5/10\n██████░░░░ Indexability: 6/10\n███░░░░░░░ Performance: 3/10\n██████░░░░ Mobile: 6/10\n█████░░░░░ Security: 5/10\n██████░░░░ URL Structure: 6/10\n███░░░░░░░ Structured Data: 3/10\n```\n\n## Priority Issues\n\n### 🔴 Critical (Fix Immediately)\n1. **Mobile LCP 4.8s (target <2.5s)** — Compress hero image to WebP (est. save 1.9MB) and implement a CDN to reduce TTFB from 1,240ms to <400ms.\n\n### 🟡 Important (Fix Soon)\n2. **HTTP not redirecting to HTTPS** — Add 301 redirect from http:// to https:// and enable HSTS header. 7 mixed-content images on /features/ need URL updates.\n\n### 🟢 Minor (Optimize)\n3. **No Article/FAQ schema on blog posts** — Add Article schema to 48 blog posts and FAQ schema to 12 FAQ pages for rich result eligibility.\n```\n\n## Technical SEO Checklist\n\n```markdown\n### Crawlability\n- [ ] robots.txt is valid and not blocking important content\n- [ ] XML sitemap exists and is submitted to ~~search console\n- [ ] No crawl errors in ~~search console\n- [ ] No redirect chains or loops\n\n### Indexability  \n- [ ] Important pages are indexable\n- [ ] Canonical tags are correct\n- [ ] No duplicate content issues\n- [ ] Pagination is handled correctly\n\n### Performance\n- [ ] Core Web Vitals pass\n- [ ] Page speed under 3 seconds\n- [ ] Images are optimized\n- [ ] JS/CSS are minified\n\n### Mobile\n- [ ] Mobile-friendly test passes\n- [ ] Viewport is configured\n- [ ] Touch elements are properly sized\n\n### Security\n- [ ] HTTPS is enforced\n- [ ] SSL certificate is valid\n- [ ] No mixed content\n- [ ] Security headers present\n\n### Structure\n- [ ] URLs are clean and descriptive\n- [ ] Site architecture is logical\n- [ ] Internal linking is strong\n```\n\n## Tips for Success\n\n1. **Prioritize by impact** - Fix critical issues first\n2. **Monitor continuously** - Use ~~search console alerts\n3. **Test changes** - Verify fixes work before deploying widely\n4. **Document everything** - Track changes for troubleshooting\n5. **Regular audits** - Schedule quarterly technical reviews\n\n## Technical SEO Severity Framework\n\n### Issue Classification\n\n| Severity | Impact Description | Examples | Response Time |\n|----------|-------------------|---------|---------------|\n| **Critical** | Prevents indexation or causes site-wide issues | Robots.txt blocking site, noindex on key pages, site-wide 500 errors | Same day |\n| **High** | Significantly impacts rankings or user experience | Slow page speed, missing hreflang, duplicate content, redirect chains | Within 1 week |\n| **Medium** | Affects specific pages or has moderate impact | Missing schema, suboptimal canonicals, thin content pages | Within 1 month |\n| **Low** | Minor optimization opportunities | Image compression, minor CLS issues, non-essential schema missing | Next quarter |\n\n### Technical Debt Prioritization Matrix\n\n| Factor | Weight | Assessment |\n|--------|--------|-----------|\n| Pages affected | 30% | Site-wide > Section > Single page |\n| Revenue impact | 25% | Revenue pages > Blog > Utility pages |\n| Fix difficulty | 20% | Config change < Template change < Code rewrite |\n| Competitive impact | 15% | Competitors passing you > parity > you ahead |\n| Crawl budget waste | 10% | High waste > Moderate > Minimal |\n\n## Core Web Vitals Optimization Quick Reference\n\n### LCP (Largest Contentful Paint) Optimization\n\n| Root Cause | Detection | Fix |\n|-----------|-----------|-----|\n| Large hero image | PageSpeed Insights | Serve WebP, resize to container, add loading=\"lazy\" |\n| Render-blocking CSS/JS | DevTools Coverage | Defer non-critical, inline critical CSS |\n| Slow server response | TTFB >800ms | CDN, server-side caching, upgrade hosting |\n| Third-party scripts | DevTools Network | Defer/async, use facade pattern |\n\n### CLS (Cumulative Layout Shift) Optimization\n\n| Root Cause | Detection | Fix |\n|-----------|-----------|-----|\n| Images without dimensions | DevTools | Add explicit width/height attributes |\n| Ads/embeds without reserved space | Visual inspection | Set min-height on containers |\n| Web fonts causing FOUT | DevTools | font-display: swap + preload fonts |\n| Dynamic content injection | Visual inspection | Reserve space with CSS |\n\n### INP (Interaction to Next Paint) Optimization\n\n| Root Cause | Detection | Fix |\n|-----------|-----------|-----|\n| Long JavaScript tasks | DevTools Performance | Break into smaller tasks, use requestIdleCallback |\n| Heavy event handlers | DevTools | Debounce/throttle, use passive listeners |\n| Main thread blocking | DevTools | Web workers for heavy computation |\n\n## Reference Materials\n\n- [robots.txt Reference](../../references/robots-txt-reference.md) - Syntax guide, templates, common configurations\n- [HTTP Status Codes](../../references/http-status-codes.md) - SEO impact of each status code, redirect best practices\n\n## Related Skills\n\n- [on-page-seo-auditor](../on-page-seo-auditor/) — On-page SEO audit\n- [schema-markup-generator](../../build/schema-markup-generator/) — Fix schema issues\n- [performance-reporter](../../monitor/performance-reporter/) — Monitor improvements\n- [internal-linking-optimizer](../internal-linking-optimizer/) — Fix link issues\n- [alert-manager](../../monitor/alert-manager/) — Set up alerts for technical issues found\n- [content-quality-auditor](../../cross-cutting/content-quality-auditor/) — Full 80-item CORE-EEAT audit\n\nFile v0.1.2:_meta.json\n\n{\n  \"ownerId\": \"kn73qjxwmbna25qq8q051epqt980sys5\",\n  \"slug\": \"technical-seo-checker\",\n  \"version\": \"0.1.2\",\n  \"publishedAt\": 1770824313404\n}","readmeExcerpt":"Skill: Technical Seo Checker Owner: aaron-he-zhu Summary: Performs technical SEO audits covering site speed, crawlability, indexability, mobile-friendliness, security, and structured data. Identifies technical issue... Tags: latest:2.0.0 Version history: v2.0.0 | 2026-02-14T04:22:12.046Z | auto Version 2.0.0 - Major update with improved discoverability: added clear usage triggers and cross-skill references for relate","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"Perform a technical SEO audit for [URL/domain]"},{"language":"text","snippet":"Check Core Web Vitals for [URL]"},{"language":"text","snippet":"Audit crawlability and indexability for [domain]"},{"language":"text","snippet":"Technical SEO checklist for migrating [old domain] to [new domain]"},{"language":"markdown","snippet":"## Crawlability Analysis\n   \n   ### Robots.txt Review\n   \n   **URL**: [domain]/robots.txt\n   **Status**: [Found/Not Found/Error]\n   \n   **Current Content**:"},{"language":"text","snippet":"| Check | Status | Notes |\n   |-------|--------|-------|\n   | File exists | ✅/❌ | [notes] |\n   | Valid syntax | ✅/⚠️/❌ | [errors found] |\n   | Sitemap declared | ✅/❌ | [sitemap URL] |\n   | Important pages blocked | ✅/⚠️/❌ | [blocked paths] |\n   | Assets blocked | ✅/⚠️/❌ | [CSS/JS blocked?] |\n   | Correct user-agents | ✅/⚠️/❌ | [notes] |\n   \n   **Issues Found**:\n   - [Issue 1]\n   - [Issue 2]\n   \n   **Recommended robots.txt**:"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: technical-seo-checker\ndescription: 'Use when the user asks to \"technical SEO audit\", \"check page speed\", \"crawl issues\", \"Core Web Vitals\", \"site indexing problems\", \"my site is slow\", \"Google cannot crawl my site\", \"mobile issues\", or \"indexing problems\". Performs technical SEO audits covering site speed, crawlability, indexability, mobile-friendliness, security, and structured data. Identifies technical issues preventing optimal search performance. For content and heading element issues, see on-page-seo-auditor. For link architecture, see internal-linking-optimizer.'\nlicense: Apache-2.0\nmetadata:\n  author: aaron-he-zhu\n  version: \"2.0.0\"\n  geo-relevance: \"low\"\n  tags:\n    - seo\n    - technical seo\n    - page speed\n    - core web vitals\n    - crawlability\n    - indexability\n    - mobile-friendly\n    - site speed\n    - security audit\n  triggers:\n    - \"technical SEO audit\"\n    - \"check page speed\"\n    - \"crawl issues\"\n    - \"Core Web Vitals\"\n    - \"site indexing problems\"\n    - \"mobile-friendly check\"\n    - \"site speed\"\n    - \"my site is slow\"\n    - \"Google can't crawl my site\"\n    - \"mobile issues\"\n    - \"indexing problems\"\n---\n\n# Technical SEO Checker\n\n\n> **[SEO & GEO Skills Library](https://skills.sh/aaron-he-zhu/seo-geo-claude-skills)** · 20 skills for SEO + GEO · Install all: `npx skills add aaron-he-zhu/seo-geo-claude-skills`\n\n<details>\n<summary>Browse all 20 skills</summary>\n\n**Research** · [keyword-research](../../research/keyword-research/) · [competitor-analysis](../../research/competitor-analysis/) · [serp-analysis](../../research/serp-analysis/) · [content-gap-analysis](../../research/content-gap-analysis/)\n\n**Build** · [seo-content-writer](../../build/seo-content-writer/) · [geo-content-optimizer](../../build/geo-content-optimizer/) · [meta-tags-optimizer](../../build/meta-tags-optimizer/) · [schema-markup-generator](../../build/schema-markup-generator/)\n\n**Optimize** · [on-page-seo-auditor](../on-page-seo-auditor/) · **technical-seo-checker** · [internal-linking-optimizer](../internal-linking-optimizer/) · [content-refresher](../content-refresher/)\n\n**Monitor** · [rank-tracker](../../monitor/rank-tracker/) · [backlink-analyzer](../../monitor/backlink-analyzer/) · [performance-reporter](../../monitor/performance-reporter/) · [alert-manager](../../monitor/alert-manager/)\n\n**Cross-cutting** · [content-quality-auditor](../../cross-cutting/content-quality-auditor/) · [domain-authority-auditor](../../cross-cutting/domain-authority-auditor/) · [entity-optimizer](../../cross-cutting/entity-optimizer/) · [memory-management](../../cross-cutting/memory-management/)\n\n</details>\n\nThis skill performs comprehensive technical SEO audits to identify issues that may prevent search engines from properly crawling, indexing, and ranking your site.\n\n## When to Use This Skill\n\n- Launching a new website\n- Diagnosing ranking drops\n- Pre-migration SEO audits\n- Regular technical health checks\n- Identifying crawl and index issues\n- Improving site per"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn73qjxwmbna25qq8q051epqt980sys5\",\n  \"slug\": \"technical-seo-checker\",\n  \"version\": \"2.0.0\",\n  \"publishedAt\": 1771042932046\n}"},{"path":"references/http-status-codes.md","content":"# HTTP Status Codes for SEO\n\nSEO-relevant HTTP status codes, their implications, and how to diagnose and fix issues.\n\n## Status Code Categories\n\n- **2xx**: Success - Request succeeded\n- **3xx**: Redirection - Further action needed\n- **4xx**: Client Error - Problem with the request\n- **5xx**: Server Error - Server failed to fulfill request\n\n---\n\n## 2xx Success Codes\n\n### 200 OK\n\n**What it means**: Request succeeded, content returned normally.\n\n**SEO impact**: Positive - page is accessible and indexable.\n\n**When to use**: Standard response for all working pages.\n\n**When it's a problem**: When different URLs return 200 for same content (should use 301 redirect).\n\n---\n\n### 204 No Content\n\n**What it means**: Request succeeded but no content to return.\n\n**SEO impact**: Neutral - rarely used for pages meant to be indexed.\n\n**Common use**: API responses, AJAX requests.\n\n---\n\n## 3xx Redirection Codes\n\n### 301 Moved Permanently\n\n**What it means**: Resource permanently moved to new URL. All link equity transfers.\n\n**SEO impact**: Positive when used correctly - passes 90-99% of link equity.\n\n**When to use**:\n- Permanently changing URL structure\n- Consolidating duplicate content\n- Moving to new domain\n- Changing HTTP to HTTPS\n- Changing www to non-www (or vice versa)\n\n**Example header**:\n```\nHTTP/1.1 301 Moved Permanently\nLocation: https://example.com/new-page\n```\n\n**Common mistakes**:\n- Using 302 instead of 301 for permanent changes\n- Creating redirect chains (A→B→C)\n- Redirecting to irrelevant pages\n- Not redirecting HTTP to HTTPS\n\n**How to implement**:\n- **.htaccess** (Apache): `Redirect 301 /old-page /new-page`\n- **nginx**: `rewrite ^/old-page$ /new-page permanent;`\n- **Server-side**: Set Location header with 301 status\n\n---\n\n### 302 Found (Temporary Redirect)\n\n**What it means**: Resource temporarily at different URL. Original URL should still be used.\n\n**SEO impact**: Neutral to negative - does NOT pass full link equity. Search engines keep indexing original URL.\n\n**When to use**:\n- A/B testing\n- Temporary promotions\n- Maintenance redirects\n- Geolocation redirects (sometimes)\n\n**When NOT to use**: Permanent URL changes (use 301).\n\n**Warning**: Google may treat long-standing 302s as 301s, but better to be explicit.\n\n---\n\n### 303 See Other\n\n**What it means**: Response can be found at another URI using GET.\n\n**SEO impact**: Minimal - rarely used for SEO purposes.\n\n**Common use**: After form submissions, redirect to results page.\n\n---\n\n### 307 Temporary Redirect\n\n**What it means**: Temporary redirect that preserves request method (POST stays POST).\n\n**SEO impact**: Similar to 302 - temporary, doesn't pass full link equity.\n\n**Difference from 302**: Guarantees request method won't change (more precise than 302).\n\n**When to use**: Temporary redirects where HTTP method preservation matters.\n\n---\n\n### 308 Permanent Redirect\n\n**What it means**: Permanent redirect that preserves request method.\n\n**SEO impact**: Similar to 301 - passes link equity.\n\n**Difference fr"},{"path":"references/robots-txt-reference.md","content":"# Robots.txt Reference Guide\n\nComplete reference for creating, testing, and troubleshooting robots.txt files.\n\n## Syntax Guide\n\n### Basic Structure\n\n```\nUser-agent: [bot name]\nDisallow: [path to block]\nAllow: [path to allow]\nSitemap: [sitemap URL]\nCrawl-delay: [seconds]\n```\n\n---\n\n## Core Directives\n\n### User-agent\n\nSpecifies which bot the rules apply to.\n\n**Syntax**: `User-agent: [bot-name]`\n\n**Common user-agents**:\n```\nUser-agent: *                    # All bots\nUser-agent: Googlebot            # Google's crawler\nUser-agent: Bingbot              # Bing's crawler\nUser-agent: GPTBot               # OpenAI's crawler\nUser-agent: CCBot                # Common Crawl bot\nUser-agent: anthropic-ai         # Anthropic's crawler\nUser-agent: PerplexityBot        # Perplexity AI crawler\nUser-agent: ClaudeBot            # Claude's web crawler\n```\n\n**Multiple user-agents**: Group rules by leaving no blank lines between user-agent declarations.\n\n```\nUser-agent: Googlebot\nUser-agent: Bingbot\nDisallow: /admin/\n```\n\n---\n\n### Disallow\n\nBlocks bots from crawling specified paths.\n\n**Syntax**: `Disallow: [path]`\n\n**Examples**:\n```\nDisallow: /                      # Block entire site\nDisallow: /admin/                # Block admin directory\nDisallow: /private               # Block private directory (and subdirectories)\nDisallow: /*.pdf$                # Block all PDF files\nDisallow: /*?                    # Block all URLs with parameters\nDisallow:                        # Allow everything (empty disallow)\n```\n\n**Path matching**:\n- `/` at end = block directory and all subdirectories\n- Without `/` at end = block all paths starting with string\n- `*` = wildcard, matches any sequence\n- `$` = end of URL\n\n---\n\n### Allow\n\nExplicitly allows crawling (overrides Disallow).\n\n**Syntax**: `Allow: [path]`\n\n**Common use**: Allow specific subdirectories within blocked parent.\n\n```\nUser-agent: *\nDisallow: /admin/\nAllow: /admin/public/\n```\n\n**Note**: Allow is not standard but supported by Google, Bing, and most major crawlers.\n\n---\n\n### Sitemap\n\nSpecifies location of XML sitemap.\n\n**Syntax**: `Sitemap: [absolute URL]`\n\n**Examples**:\n```\nSitemap: https://example.com/sitemap.xml\nSitemap: https://example.com/sitemap_index.xml\nSitemap: https://example.com/blog/sitemap.xml\n```\n\n**Best practices**:\n- Use absolute URLs (not relative)\n- Can include multiple Sitemap directives\n- Place at end of file\n- Submit same sitemap(s) to Google Search Console\n\n---\n\n### Crawl-delay\n\nAdds delay between requests (seconds).\n\n**Syntax**: `Crawl-delay: [seconds]`\n\n**Example**:\n```\nUser-agent: *\nCrawl-delay: 10\n```\n\n**Warning**: Not supported by Googlebot (use Search Console rate limiting instead). Supported by Bing, Yandex, and others.\n\n---\n\n## Common Configurations\n\n### 1. Allow All Bots (Default)\n\n```\nUser-agent: *\nDisallow:\n\nSitemap: https://example.com/sitemap.xml\n```\n\nUse when you want all bots to crawl entire site.\n\n---\n\n### 2. Block All Bots\n\n```\nUser-agent: *\nDisallow: /\n```\n\nUse for development/staging si"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Performs technical SEO audits covering site speed, crawlability, indexability, mobile-friendliness, security, and structured data. Identifies technical issue... Skill: Technical Seo Checker Owner: aaron-he-zhu Summary: Performs technical SEO audits covering site speed, crawlability, indexability, mobile-friendliness, security, and structured data. Identifies technical issue... Tags: latest:2.0.0 Version history: v2.0.0 | 2026-02-14T04:22:12.046Z | auto Version 2.0.0 - Major update with improved discoverability: added clear usage triggers and cross-skill references for relate","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1472,"uniquenessScore":47,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T01:44:13.670Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}