SEO & GEO (Generative Engine Optimization) for websites. Optimize for AI search engines and traditional search.
GEO = Generative Engine Optimization — AI engines cite sources, not rank pages. Being cited is the new #1.
Run the free audit script:
python3 scripts/seo_audit.py "https://example.com"
Manual quick checks:
curl -sL "URL" | grep -E "<title>|<meta name=\"description\"|application/ld\+json" | head -20
curl -s "URL/robots.txt"
curl -s "URL/sitemap.xml" | head -50
Ensure AI bots allowed in robots.txt: Googlebot, Bingbot, PerplexityBot, ChatGPT-User, ClaudeBot, GPTBot, anthropic-ai.
Full technical checklist (Core Web Vitals, crawl budget, mobile-first): references/technical-seo.md
With DataForSEO API (DATAFORSEO_LOGIN + DATAFORSEO_PASSWORD env vars):
python3 scripts/keyword_research.py "keyword" --location 2840 --language en
python3 scripts/competitor_gap.py "yourdomain.com" "competitor.com"
python3 scripts/serp_analysis.py "target keyword"
Without API — use web search for volume/difficulty estimates.
Cluster by intent: informational → blog, transactional → landing pages, navigational → product pages. Full methodology: references/keyword-research.md
Apply Princeton 9 GEO Methods — best combo: Fluency + Statistics:
| Method | Boost | Action |
|---|---|---|
| Cite Sources | +40% | Authoritative references with links |
| Statistics | +37% | Specific numbers and data points |
| Quotations | +30% | Expert quotes with attribution |
| Authoritative Tone | +25% | Confident expert language |
| Simplify | +20% | Plain language for complex topics |
| Technical Terms | +18% | Domain-specific vocabulary |
| Fluency | +15-30% | Readability and flow |
| -10% | NEVER |
Structure content for AI citation: answer-first format, clear H1>H2>H3, bullet/numbered lists, tables, short paragraphs (2-3 sentences), FAQ sections with schema.
Platform-specific strategies: references/geo-optimization.md
Full guide: references/eeat-guide.md
Generate structured data for every page type:
WebPage/Article — content pagesFAQPage — FAQ sections (+40% AI visibility)HowTo — tutorials and guidesProduct + AggregateRating — product pagesOrganization/LocalBusiness — about/contact pagesSoftwareApplication — tools and appsBreadcrumbList — navigationVideoObject — video contentReview/AggregateRating — review pagesTemplates: references/schema-templates.md
Validate at: https://search.google.com/test/rich-results?url={url}
<title>{Primary Keyword} — {Brand} | {Secondary}</title>
<meta name="description" content="{150-160 chars with keyword}">
<meta property="og:title" content="{Title}">
<meta property="og:description" content="{Description}">
<meta property="og:image" content="{1200x630 image URL}">
<meta name="twitter:card" content="summary_large_image">
Checklist:
rel="noopener noreferrer"For multilingual sites, implement hreflang:
<link rel="alternate" hreflang="en" href="https://example.com/en/" />
<link rel="alternate" hreflang="fr" href="https://example.com/fr/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/" />
Full guide: references/international-seo.md
Scan competitor and referenced URLs with VirusTotal:
vt scan url "https://competitor.com"
vt url "https://competitor.com" --include=last_analysis_stats
Flag any URLs with detections > 0 in recommendations.