Technical SEO Mastery

# Technical SEO Mastery

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "Technical SEO Mastery" with this command: npx skills add 1kalin/afrexai-technical-seo

Technical SEO Mastery

Complete technical SEO audit, fix, and monitoring system. From crawlability to Core Web Vitals to international SEO — everything search engines need to find, crawl, index, and rank your site.

When to Use

  • "Technical SEO audit for my site"
  • "Why isn't Google indexing my pages?"
  • "Fix Core Web Vitals issues"
  • "Pre-migration SEO checklist"
  • "My site is slow / rankings dropped"
  • "Check robots.txt / sitemap / schema markup"
  • "International SEO / hreflang setup"

Phase 1: Quick Health Check (5-Minute Triage)

Before a full audit, run a rapid assessment. Fetch the site and check:

quick_health:
  url: "[domain]"
  checks:
    robots_txt: "[accessible / blocked / missing]"
    sitemap_xml: "[found / missing / errors]"
    https: "[yes / mixed content / no]"
    mobile_viewport: "[set / missing]"
    page_load: "[fast <2s / moderate 2-4s / slow >4s]"
    h1_present: "[yes / missing / multiple]"
    canonical: "[set / missing / self-referencing]"
    structured_data: "[present / missing / errors]"
  
  severity: "[healthy / needs work / critical]"
  priority_fix: "[top issue to address first]"

Severity guide:

  • 🟢 Healthy: 0-1 issues — minor optimizations only
  • 🟡 Needs work: 2-4 issues — schedule fixes this week
  • 🔴 Critical: 5+ issues or any blocking issue — fix immediately

Phase 2: Crawlability Audit

2.1 Robots.txt Analysis

Fetch [domain]/robots.txt and evaluate:

robots_txt_audit:
  exists: true/false
  valid_syntax: true/false
  issues:
    - type: "[blocked_important_page / missing_sitemap / wildcard_block / syntax_error]"
      detail: "[specific line or pattern]"
      severity: "critical/warning/info"
      fix: "[exact fix]"
  
  checks:
    - "Sitemap directive present"
    - "No accidental blocking of CSS/JS/images"
    - "No blocking of important page directories"
    - "Correct user-agent targeting (Googlebot, Bingbot, etc.)"
    - "No conflicting rules (allow + disallow same path)"
    - "Crawl-delay only if needed (slows indexing)"

Common mistakes:

MistakeImpactFix
Disallow: / blocking everythingNo pages indexedRemove or narrow scope
Blocking CSS/JSPoor rendering = ranking dropAllow: /assets/
No sitemap referenceSlower discoveryAdd Sitemap: directive
Multiple sitemaps not declaredPartial crawlingDeclare all sitemaps
Blocking search/filter pages poorlyCrawl wasteUse Disallow: /*? patterns

Recommended template:

User-agent: *
Allow: /
Disallow: /admin/
Disallow: /api/
Disallow: /checkout/
Disallow: /*?sort=
Disallow: /*?filter=

Sitemap: https://example.com/sitemap.xml
Sitemap: https://example.com/sitemap-images.xml

2.2 XML Sitemap Audit

Fetch sitemap(s) and evaluate:

sitemap_audit:
  url: "[sitemap URL]"
  type: "[index / single / none]"
  url_count: 0
  issues:
    - type: "[missing / too_large / includes_noindex / stale_lastmod / broken_urls]"
      severity: "critical/warning/info"
      fix: "[specific action]"
  
  quality_checks:
    - "All URLs return 200 (no 404s, 301s, or 5xx)"
    - "No noindex pages included"
    - "lastmod dates are accurate (not all same date)"
    - "Under 50,000 URLs per sitemap file"
    - "Under 50MB uncompressed per file"
    - "Sitemap index if >50K URLs"
    - "Matches canonical URLs (not alternate versions)"
    - "Images/video sitemaps if applicable"

Sitemap best practices:

  • One URL per <url> entry — canonical version only
  • lastmod should reflect actual content change date
  • Priority and changefreq are largely ignored by Google — optional
  • Compress with gzip for large sitemaps
  • Submit in Google Search Console AND robots.txt

2.3 Crawl Budget Optimization

crawl_budget_analysis:
  total_pages: 0
  indexable_pages: 0
  crawl_waste_ratio: "[indexable / total — target >80%]"
  
  waste_sources:
    - source: "[faceted navigation / pagination / parameters / duplicate content / thin pages]"
      page_count: 0
      action: "[noindex / canonical / robots block / parameter handling / consolidate]"
  
  optimization_priority:
    1: "Remove/noindex thin and duplicate pages"
    2: "Consolidate parameter variations with canonicals"
    3: "Implement pagination best practices (rel=next or load-more)"
    4: "Fix redirect chains (max 1 hop)"
    5: "Eliminate orphan pages or link them into site structure"

Crawl budget matters when: Site has >10K pages OR crawl rate is notably low in Search Console.


Phase 3: Indexability Audit

3.1 Index Status Check

For each important page type, verify:

indexability_check:
  page_type: "[homepage / product / blog / category / landing]"
  sample_url: "[URL]"
  
  signals:
    meta_robots: "[index,follow / noindex / nofollow / none]"
    x_robots_tag: "[present / absent — check HTTP headers]"
    canonical: "[self / points to other URL / missing]"
    http_status: "[200 / 301 / 302 / 404 / 410 / 5xx]"
    in_sitemap: true/false
    internal_links_to: "[count of internal links pointing here]"
    robots_txt_allowed: true/false
  
  verdict: "[indexable / blocked / conflicting signals]"
  fix: "[action if not indexable]"

3.2 Common Indexing Blockers

BlockerDetectionFixPriority
noindex meta tagCheck <meta name="robots">Remove tag or move to correct pagesP0
X-Robots-Tag: noindex headerCheck HTTP response headersRemove header from server configP0
Canonical pointing elsewhereCheck <link rel="canonical">Fix to self-reference or correct targetP0
Blocked in robots.txtCross-reference robots.txtUpdate robots.txt rulesP0
Not in sitemapCheck sitemap inclusionAdd to sitemapP1
No internal links (orphan)Crawl internal link graphAdd contextual internal linksP1
Soft 404 (200 with no content)Check page contentReturn proper 404 or add contentP1
Duplicate contentCompare page similarityCanonical or consolidateP2
Thin content (<200 words, no value)Word count + quality checkExpand or merge with related pageP2

3.3 Redirect Audit

redirect_audit:
  chains_found: 0  # A→B→C (should be A→C)
  loops_found: 0   # A→B→A (broken)
  temporary_redirects: 0  # 302s that should be 301s
  
  rules:
    - "Max 1 redirect hop (no chains)"
    - "Use 301 for permanent moves, 308 for POST-preserving"
    - "302 only for genuinely temporary redirects"
    - "Update internal links to point to final destination"
    - "Redirect HTTP → HTTPS at server level"
    - "Redirect www ↔ non-www consistently"

Phase 4: Core Web Vitals & Performance

4.1 Core Web Vitals Targets

MetricGoodNeeds ImprovementPoor
LCP (Largest Contentful Paint)≤2.5s2.5-4.0s>4.0s
INP (Interaction to Next Paint)≤200ms200-500ms>500ms
CLS (Cumulative Layout Shift)≤0.10.1-0.25>0.25

4.2 LCP Fix Playbook

lcp_diagnosis:
  current_lcp: "[Xs]"
  lcp_element: "[identify the largest element — usually hero image or heading]"
  
  fix_priority:
    1:
      issue: "Slow server response (TTFB >800ms)"
      fixes:
        - "Enable server-side caching (Redis, Varnish)"
        - "Use CDN for static assets"
        - "Optimize database queries"
        - "Upgrade hosting if shared"
    2:
      issue: "Render-blocking resources"
      fixes:
        - "Defer non-critical CSS: `<link rel='preload' as='style'>`"
        - "Async/defer JavaScript: `<script defer>`"
        - "Inline critical CSS (above-the-fold)"
        - "Remove unused CSS/JS"
    3:
      issue: "Slow resource load (images, fonts)"
      fixes:
        - "Preload LCP image: `<link rel='preload' as='image' href='...'>`"
        - "Use WebP/AVIF format (30-50% smaller)"
        - "Responsive images with srcset"
        - "Font-display: swap for web fonts"
        - "Preconnect to CDN: `<link rel='preconnect' href='...'>`"
    4:
      issue: "Client-side rendering delay"
      fixes:
        - "Server-side render (SSR) or static generate (SSG) above-fold content"
        - "Avoid lazy-loading the LCP element"
        - "Reduce JavaScript execution before paint"

4.3 INP Fix Playbook

inp_diagnosis:
  current_inp: "[Xms]"
  
  fix_priority:
    1: "Break long tasks (>50ms) into smaller chunks using `requestIdleCallback` or `setTimeout`"
    2: "Reduce main thread JavaScript — defer non-essential scripts"
    3: "Use `content-visibility: auto` for off-screen content"
    4: "Debounce/throttle event handlers (scroll, resize, input)"
    5: "Move heavy computation to Web Workers"
    6: "Optimize event delegation — avoid attaching listeners to every element"
    7: "Reduce DOM size (target <1,500 elements)"

4.4 CLS Fix Playbook

cls_diagnosis:
  current_cls: "[X.XX]"
  
  common_causes:
    - cause: "Images without dimensions"
      fix: "Always set width/height attributes OR use aspect-ratio CSS"
    - cause: "Ads/embeds without reserved space"
      fix: "Use min-height on ad containers"
    - cause: "Web fonts causing FOIT/FOUT"
      fix: "`font-display: swap` + `<link rel='preload' as='font'>`"
    - cause: "Dynamically injected content above viewport"
      fix: "Reserve space or inject below the fold"
    - cause: "Late-loading CSS changing layout"
      fix: "Inline critical CSS, load rest async"

4.5 Performance Budget

performance_budget:
  total_page_weight: "< 1.5MB (ideal < 1MB)"
  html: "< 100KB"
  css: "< 100KB (ideally < 50KB)"
  javascript: "< 300KB (compressed)"
  images: "< 500KB total above fold"
  fonts: "< 100KB (max 2 families)"
  third_party: "< 200KB total"
  
  requests:
    total: "< 50 HTTP requests"
    third_party: "< 10 external domains"
  
  timing:
    ttfb: "< 800ms"
    fcp: "< 1.8s"
    lcp: "< 2.5s"
    tti: "< 3.8s"

Phase 5: Mobile Optimization

mobile_audit:
  viewport_meta: "[present with correct values / missing / malformed]"
  # Correct: <meta name="viewport" content="width=device-width, initial-scale=1">
  
  checklist:
    - check: "Viewport meta tag set correctly"
      pass: true/false
    - check: "No horizontal scroll on mobile"
      pass: true/false
    - check: "Touch targets ≥48x48px with ≥8px spacing"
      pass: true/false
    - check: "Font size ≥16px base (no zoom on iOS input)"
      pass: true/false
    - check: "No fixed-width elements wider than viewport"
      pass: true/false
    - check: "Images responsive (max-width: 100%)"
      pass: true/false
    - check: "No intrusive interstitials / popups"
      pass: true/false
    - check: "Readable without zooming"
      pass: true/false
    - check: "Mobile page speed < 3s on 4G"
      pass: true/false
    - check: "No Flash or unsupported plugins"
      pass: true/false
  
  mobile_score: "[X/10]"

Phase 6: HTTPS & Security

security_audit:
  https:
    enabled: true/false
    certificate_valid: true/false
    certificate_expiry: "[date]"
    mixed_content: "[none / warnings / errors]"
    http_to_https_redirect: "[301 / 302 / none]"
    hsts_header: "[present with max-age / missing]"
  
  security_headers:
    - header: "Strict-Transport-Security"
      present: true/false
      recommended: "max-age=31536000; includeSubDomains; preload"
    - header: "Content-Security-Policy"
      present: true/false
      recommended: "[appropriate policy for site]"
    - header: "X-Content-Type-Options"
      present: true/false
      recommended: "nosniff"
    - header: "X-Frame-Options"
      present: true/false
      recommended: "SAMEORIGIN"
    - header: "Referrer-Policy"
      present: true/false
      recommended: "strict-origin-when-cross-origin"
    - header: "Permissions-Policy"
      present: true/false
      recommended: "camera=(), microphone=(), geolocation=()"
  
  security_score: "[X/10]"

HTTPS migration checklist (if not yet on HTTPS):

  1. Obtain SSL certificate (Let's Encrypt = free)
  2. Install on server / CDN
  3. Update all internal links to HTTPS
  4. 301 redirect all HTTP URLs to HTTPS
  5. Update canonical tags to HTTPS
  6. Update sitemap URLs to HTTPS
  7. Update Google Search Console property
  8. Update robots.txt Sitemap directive
  9. Check for mixed content (HTTP resources on HTTPS pages)
  10. Enable HSTS header after confirming everything works

Phase 7: Structured Data / Schema Markup

7.1 Schema Audit

schema_audit:
  implementation_method: "[JSON-LD / Microdata / RDFa]"  # JSON-LD recommended
  
  pages_with_schema: "[X / total pages]"
  
  schemas_found:
    - type: "[Organization / LocalBusiness / Product / Article / FAQ / etc.]"
      url: "[sample URL]"
      valid: true/false
      errors: ["[list of validation errors]"]
      warnings: ["[list of warnings]"]
  
  missing_opportunities:
    - page_type: "[product / article / recipe / event / FAQ / how-to / local]"
      recommended_schema: "[schema type]"
      rich_result_eligible: "[yes — which type]"
      priority: "high/medium/low"

7.2 Schema Templates (JSON-LD)

Organization:

{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "[Company Name]",
  "url": "https://example.com",
  "logo": "https://example.com/logo.png",
  "sameAs": [
    "https://twitter.com/example",
    "https://linkedin.com/company/example"
  ],
  "contactPoint": {
    "@type": "ContactPoint",
    "telephone": "+1-XXX-XXX-XXXX",
    "contactType": "customer service"
  }
}

Article:

{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "[Title]",
  "author": {"@type": "Person", "name": "[Author]"},
  "datePublished": "2026-01-15",
  "dateModified": "2026-02-18",
  "image": "https://example.com/image.jpg",
  "publisher": {
    "@type": "Organization",
    "name": "[Publisher]",
    "logo": {"@type": "ImageObject", "url": "https://example.com/logo.png"}
  }
}

Product:

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "[Product Name]",
  "image": "https://example.com/product.jpg",
  "description": "[Description]",
  "brand": {"@type": "Brand", "name": "[Brand]"},
  "offers": {
    "@type": "Offer",
    "price": "29.99",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "url": "https://example.com/product"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.5",
    "reviewCount": "127"
  }
}

FAQ:

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "[Question 1]",
      "acceptedAnswer": {"@type": "Answer", "text": "[Answer 1]"}
    }
  ]
}

Rich result eligibility by schema type:

SchemaRich ResultImpact
ProductPrice, rating stars, availabilityHigh CTR boost
FAQExpandable questions in SERPMore SERP real estate
HowToStep-by-step in SERPFeatured snippet potential
ArticleAuthor, date, imageNews/Discover eligibility
LocalBusinessKnowledge panel, mapsLocal pack ranking
EventDate, location, ticket infoEvent carousel
RecipeCook time, rating, caloriesRecipe carousel
VideoThumbnail, durationVideo carousel
BreadcrumbListBreadcrumb trail in SERPBetter navigation display
ReviewStar ratingTrust + CTR

Phase 8: URL Structure & Architecture

url_audit:
  structure_pattern: "[clean / parameter-heavy / mixed]"
  
  checklist:
    - rule: "Lowercase only (no mixed case)"
      pass: true/false
    - rule: "Hyphens as separators (not underscores)"
      pass: true/false
    - rule: "No special characters or spaces"
      pass: true/false
    - rule: "Descriptive and keyword-rich"
      pass: true/false
    - rule: "Short (< 75 characters ideal)"
      pass: true/false
    - rule: "Logical hierarchy (/category/subcategory/page)"
      pass: true/false
    - rule: "No session IDs or tracking parameters in indexed URLs"
      pass: true/false
    - rule: "Trailing slash consistent (pick one, redirect the other)"
      pass: true/false
    - rule: "No .html/.php extensions (clean URLs)"
      pass: true/false
  
  # Bad: /p?id=12345&cat=3&ref=home
  # Good: /shoes/running/nike-air-max
  
  internal_linking:
    orphan_pages: 0  # Pages with 0 internal links
    deep_pages: 0    # Pages >4 clicks from homepage
    broken_links: 0  # Internal 404s
    
    fix_priority:
      1: "Fix all broken internal links (404s)"
      2: "Link orphan pages from relevant content"
      3: "Flatten deep pages — add to navigation or hub pages"
      4: "Add contextual cross-links between related content"

Site architecture best practices:

  • Flat structure: every page reachable within 3 clicks from homepage
  • Hub & spoke: category pages link to all children; children link back
  • Breadcrumbs: implement on every page (with BreadcrumbList schema)
  • Pagination: use rel="next" / rel="prev" or infinite scroll with progressive enhancement
  • Faceted navigation: canonicalize or noindex filter combinations

Phase 9: International SEO

9.1 Hreflang Implementation

international_seo:
  approach: "[subdirectories /en/ / subdomains en. / ccTLDs .co.uk]"
  # Recommended: subdirectories (easiest to manage, inherits domain authority)
  
  hreflang_audit:
    implemented: true/false
    method: "[HTML link tags / HTTP headers / sitemap]"
    issues:
      - "Missing return links (A→B exists but B→A missing)"
      - "Wrong language/region codes"
      - "Missing x-default tag"
      - "Self-referencing hreflang missing"

Hreflang template:

<link rel="alternate" hreflang="en-us" href="https://example.com/en-us/page" />
<link rel="alternate" hreflang="en-gb" href="https://example.com/en-gb/page" />
<link rel="alternate" hreflang="es" href="https://example.com/es/page" />
<link rel="alternate" hreflang="x-default" href="https://example.com/page" />

Rules:

  • Every page must reference ALL language versions including itself
  • Always include x-default (fallback for unmatched languages)
  • Use ISO 639-1 for language, ISO 3166-1 Alpha 2 for region
  • Hreflang must be bidirectional (if A references B, B must reference A)
  • Canonical and hreflang should align — canonical should point to same-language version

9.2 International Targeting Checklist

  • Correct hreflang on all pages (bidirectional)
  • x-default specified
  • Content genuinely translated (not just auto-translated)
  • Local currency, date format, phone numbers
  • Geo-targeting set in Search Console (for ccTLDs/subdirectories)
  • Local server / CDN node in target country
  • Local backlinks from target region
  • Language-specific sitemap or sitemap section

Phase 10: Site Migration SEO Checklist

Use when changing domains, restructuring URLs, or redesigning:

migration_checklist:
  pre_migration:
    - "Crawl current site — full URL inventory"
    - "Export all current rankings and traffic data"
    - "Map every old URL to new URL (1:1 redirect map)"
    - "Backup robots.txt, sitemaps, .htaccess"
    - "Document all existing 301 redirects"
    - "Note top 100 pages by traffic — verify redirects"
    - "Test staging site (is it blocked from indexing?)"
    - "Verify new site has all schema markup"
    - "Check canonical tags on new site"
    - "Prepare new sitemap"
  
  migration_day:
    - "Implement all 301 redirects"
    - "Update robots.txt (unblock new site)"
    - "Submit new sitemap to Search Console"
    - "Update Google Search Console property if domain changed"
    - "Verify HTTPS redirect chain is clean"
    - "Test 50 random old URLs — confirm redirects work"
    - "Check for redirect chains or loops"
    - "Monitor server errors / 5xx in real-time"
  
  post_migration:
    week_1:
      - "Monitor Search Console for crawl errors daily"
      - "Check index coverage report"
      - "Verify organic traffic hasn't cratered"
      - "Fix any 404s appearing in crawl reports"
    month_1:
      - "Compare rankings: pre vs post migration"
      - "Check all structured data still validates"
      - "Verify internal links updated (no redirect-through links)"
      - "Monitor Core Web Vitals on new infrastructure"
    month_3:
      - "Full ranking comparison"
      - "Traffic recovery assessment (expect 80-100% recovery)"
      - "Clean up any remaining redirect chains"
  
  expected_traffic_impact:
    best_case: "2-4 weeks dip, full recovery"
    typical: "1-3 months for full recovery"
    worst_case: "6+ months if redirects missed — audit immediately"

Phase 11: Technical SEO Scoring System

Overall Technical Health Score (0-100)

scoring:
  crawlability:          # Weight: 20%
    robots_txt: "/5"
    sitemap: "/5"
    crawl_budget: "/5"
    internal_linking: "/5"
  
  indexability:           # Weight: 20%
    meta_robots: "/5"
    canonicals: "/5"
    redirects: "/5"
    duplicate_content: "/5"
  
  performance:            # Weight: 25%
    lcp: "/5"
    inp: "/5"
    cls: "/5"
    ttfb: "/5"
    page_weight: "/5"
  
  mobile:                 # Weight: 10%
    viewport: "/5"
    touch_targets: "/5"
    responsive: "/5"
    speed: "/5"
  
  security:               # Weight: 10%
    https: "/5"
    headers: "/5"
    certificate: "/5"
    mixed_content: "/5"
  
  structured_data:        # Weight: 10%
    implementation: "/5"
    validation: "/5"
    coverage: "/5"
    rich_results: "/5"
  
  url_architecture:       # Weight: 5%
    structure: "/5"
    depth: "/5"
    broken_links: "/5"

  total: "/100"
  grade: "[A (90+) / B (75-89) / C (60-74) / D (40-59) / F (<40)]"

Priority Fix Matrix

After scoring, generate a prioritized action plan:

action_plan:
  p0_critical:  # Fix this week — directly blocking ranking
    - issue: "[description]"
      impact: "high"
      effort: "[low/medium/high]"
      fix: "[specific steps]"
  
  p1_important:  # Fix this month — significant ranking impact
    - issue: "[description]"
      impact: "medium-high"
      effort: "[low/medium/high]"
      fix: "[specific steps]"
  
  p2_optimization:  # Fix this quarter — incremental improvement
    - issue: "[description]"
      impact: "medium"
      effort: "[low/medium/high]"
      fix: "[specific steps]"
  
  p3_nice_to_have:  # Backlog — minimal direct ranking impact
    - issue: "[description]"
      fix: "[specific steps]"

Priority rules:

  • Anything blocking indexing = P0 always
  • Core Web Vitals failing = P1 minimum
  • Security issues = P0 if no HTTPS, P1 for headers
  • Schema missing = P2 unless competitor has rich results (then P1)
  • URL structure issues = P2 unless causing duplicate content

Phase 12: Ongoing Monitoring

Weekly Technical SEO Checklist

weekly_check:
  search_console:
    - "Index coverage: any new errors?"
    - "Core Web Vitals: any regressions?"
    - "Manual actions: any penalties?"
    - "Security issues: any warnings?"
  
  site_health:
    - "Spot-check 5 random pages load correctly"
    - "Check for new 404 errors"
    - "Verify sitemap is current and accessible"
    - "Monitor HTTPS certificate expiry"
  
  tracking:
    - "Organic traffic trend (vs. last week, vs. last year)"
    - "Crawl stats in Search Console"
    - "Any new structured data errors"

Monthly Deep Dive

monthly_review:
  - "Full crawl of site — compare page count to last month"
  - "Core Web Vitals lab + field data comparison"
  - "New broken links check"
  - "Redirect chain audit"
  - "Schema markup validation"
  - "Competitor technical comparison (1 competitor)"
  - "Update sitemap if new pages added"
  - "Review Search Console performance for anomalies"

Phase 13: Advanced Technical SEO

13.1 JavaScript SEO

javascript_seo:
  rendering: "[CSR / SSR / SSG / ISR / hybrid]"
  
  checklist:
    - "Critical content visible in initial HTML (view-source test)"
    - "Googlebot can render JS — check with URL Inspection tool"
    - "No content behind user interaction (click to load)"
    - "Internal links are `<a href>` tags (not JS click handlers)"
    - "Lazy-loaded content uses Intersection Observer (not scroll events)"
    - "Dynamic rendering for critical pages if needed"
    - "Meta tags in initial HTML (not injected by JS)"
    - "Canonical tags in initial HTML"
  
  framework_specific:
    nextjs: "Use SSG/ISR for content pages, SSR for dynamic"
    react_spa: "Consider prerender.io or dynamic rendering"
    angular: "Angular Universal for SSR"
    vue: "Nuxt.js for SSR/SSG"

13.2 Log File Analysis

log_analysis:
  what_to_look_for:
    - "Googlebot crawl frequency and pattern"
    - "Pages crawled vs not crawled"
    - "Crawl of non-canonical or low-value pages (waste)"
    - "Server errors returned to Googlebot"
    - "Response time for bot requests vs users"
    - "Bot crawl of resources (CSS/JS/images)"
  
  healthy_signals:
    - "Googlebot visits important pages frequently"
    - "New content crawled within 24-48h"
    - "Low error rate (<1% of requests)"
    - "Response time <500ms for bot requests"
  
  warning_signals:
    - "Googlebot stuck on parameter URLs"
    - "High 5xx error rate for bot"
    - "Important pages not crawled in 30+ days"
    - "Crawl rate declining over time"

13.3 Edge SEO (CDN-Level Optimizations)

OptimizationImplementationImpact
Inject hreflang at edgeCloudflare Workers / Lambda@EdgeFaster international SEO
Add schema markupEdge injection for legacy CMSSchema without code changes
Redirect managementCDN rulesFaster redirects, less server load
A/B test SEO changesEdge-based split testingTest title tags, meta descriptions
Pre-render for botsDetect UA, serve cached HTMLFix JS rendering issues

Phase 14: Common Technical SEO Mistakes

#MistakeWhy It MattersFix
1Blocking staging site from indexing, forgetting to unblock at launchZero pages indexedCheck robots.txt + meta robots at launch
2Using 302 instead of 301 for permanent redirectsLink equity not passedSwitch to 301
3Multiple versions of homepage indexed (www/non-www, HTTP/HTTPS, trailing slash)Diluted authorityPick one canonical, redirect all others
4Orphan pages with no internal linksNever found by crawlersAdd to navigation or contextual links
5Sitemap includes noindex pagesConflicting signalsFilter sitemap to indexable pages only
6Missing alt text on imagesAccessibility + image SEO lossAdd descriptive alt text to all images
7Not monitoring Core Web Vitals after deployPerformance regressionsSet up CrUX monitoring + alerts
8Redirect chains (A→B→C→D)Slow + link equity lossFlatten to single hop
9Large unoptimized imagesSlow LCP, page weightWebP/AVIF + responsive srcset
10No HTTPS or mixed contentTrust signal lost, browser warningsFull HTTPS migration

Edge Cases

E-commerce (1000s of product pages)

  • Faceted navigation: canonical to base category, noindex filter combos
  • Out-of-stock pages: keep page, show "out of stock" (don't 404)
  • Pagination: use rel=canonical to collection page or implement load-more

Single Page Applications (SPAs)

  • Pre-rendering or SSR is mandatory for SEO
  • Check that <a href> tags exist in HTML (not just JS routing)
  • Test with JavaScript disabled — is critical content visible?

Large sites (100K+ pages)

  • Sitemap index with multiple child sitemaps
  • Crawl budget optimization is critical
  • Consider dynamic XML sitemaps that auto-update
  • Log file analysis to understand actual crawl behavior

WordPress specific

  • Install Yoast/RankMath for technical SEO basics
  • Check theme isn't injecting bad schema
  • Minimize plugins (each adds JS/CSS weight)
  • Use object caching (Redis) + page caching (WP Super Cache/W3 Total Cache)

After a Google algorithm update

  • Don't panic — wait 2 weeks for volatility to settle
  • Compare affected pages vs unaffected — find the pattern
  • Check Search Console for manual actions
  • Focus on content quality and E-E-A-T, not just technical fixes

Natural Language Commands

"Run a technical SEO audit for [URL]"
"Check Core Web Vitals for [URL]"
"Audit my robots.txt and sitemap"
"Find indexing issues on my site"
"Check structured data / schema markup"
"Generate schema markup for [page type]"
"Pre-migration SEO checklist for [old] → [new]"
"Check security headers for [URL]"
"Find broken links and redirect chains"
"International SEO audit for [URL]"
"Score my site's technical SEO health"
"What's causing my slow page speed?"

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Security

Web Performance Engine

Performs comprehensive web performance audits, diagnoses bottlenecks, and provides targeted fixes for server, rendering, hero element, JavaScript, and layout...

Registry SourceRecently Updated
0456
Profile unavailable
Research

SEO Optimizer Pro

AI-powered SEO content analysis and optimization for improved Google ranking and visibility in emerging AI search platforms like ChatGPT and Claude.

Registry SourceRecently Updated
92.3K
Profile unavailable
Security

AI Local SEO Dominator — Rank #1 on Google Maps & Steal Customers From Every Competitor in Your Area

Scrapes competitors and local data to audit and optimize your Google Business Profile, fix citation errors, build review strategy, and generate a 90-day loca...

Registry SourceRecently Updated
018
Profile unavailable