Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/fredoyetayo/geo-ai/archive/refs/heads/main.zipGEO AI (AI SEO) - WordPress Plugin
Modern WordPress SEO plugin optimized for AI answer engines (Google AI Overviews, Perplexity, ChatGPT) with all the essential classic SEO features.
🚀 Features
AI Answerability
- Google Gemini-powered audits with transparent scoring
- 4-dimensional analysis: Answerability (40%), Structure (20%), Trust (25%), Technical (15%)
- One-click quick fixes (e.g., insert Answer Card, add citations)
- Auto-run on save (optional)
Author UX
- Gutenberg Answer Card block: TL;DR + Key Facts in a beautiful, accessible layout
- Editor sidebar panel: Run audits, view scores, apply fixes without leaving the editor
Schema Assistant
- Guided JSON-LD: Article, FAQ, HowTo, Product, LocalBusiness, Organization, WebSite + SearchAction
- Conflict detection: Warns when other plugins are outputting schema
- Validation hints: Common error checking
SEO Essentials
- ✅ Titles & Meta: Templates with variables (
%%title%%,%%sitename%%, etc.) - ✅ Social Cards: OpenGraph & Twitter with preview
- ✅ XML Sitemaps: Posts, pages, CPTs, taxonomies, images
- ✅ Breadcrumbs: Block, shortcode, PHP function with BreadcrumbList schema
- ✅ Robots & Indexing: Per-post robots meta, canonical URLs
- ✅ Redirects: 301/302 manager with wildcard support
- ✅ 404 Monitor: Opt-in logging with retention controls
AI Crawler Controls
- robots.txt suggestions for PerplexityBot, GPTBot, CCBot, anthropic-ai
- HTTP header snippets (for server admins)
- Honest caveats: We're transparent that blocks may not be respected
Compatibility
- Coexist mode: Auto-detects Yoast/Rank Math/SEOPress and suppresses overlapping outputs
- Import wizard: Pull settings from other SEO plugins
- Export/Import: JSON backup of all settings
📋 Requirements
- WordPress: 6.2+
- PHP: 8.1+
- Gutenberg: Block editor (for Answer Card and sidebar)
- Google Gemini API Key: Free tier available at Google AI Studio
🛠️ Installation
From WordPress Admin
- Download the latest release
- Go to Plugins → Add New → Upload Plugin
- Upload the
.zipfile and activate - Navigate to Settings → GEO AI to configure
Manual Installation
- Clone or download this repository
- Run
npm install && npm run build - Upload the entire folder to
/wp-content/plugins/ - Activate via Plugins menu
- Configure at Settings → GEO AI
🏗️ Development Setup
Prerequisites
- Node.js 18+
- npm or yarn
- WordPress development environment
Build Instructions
# Install dependencies
npm install
# Development build with watch mode
npm start
# Production build (optimized)
npm run build
# Lint JavaScript
npm run lint:js
# Lint CSS
npm run lint:css
# Format code
npm run format
Project Structure
geo-ai/
├── geo-ai.php # Main plugin file
├── includes/ # PHP classes
│ ├── class-geoai-admin.php
│ ├── class-geoai-rest.php
│ ├── class-geoai-analyzer.php
│ ├── class-geoai-compat.php
│ ├── class-geoai-schema.php
│ ├── class-geoai-sitemaps.php
│ ├── class-geoai-meta.php
│ ├── class-geoai-social.php
│ ├── class-geoai-breadcrumbs.php
│ ├── class-geoai-redirects.php
│ ├── class-geoai-404.php
│ ├── class-geoai-cli.php
│ └── traits/
│ └── trait-encryption.php
├── blocks/ # Gutenberg blocks
│ └── answer-card/
│ ├── block.json
│ ├── index.js
│ ├── edit.js
│ ├── save.js
│ ├── style.css
│ └── editor.css
├── src/ # JavaScript source
│ └── editor.js # Editor sidebar plugin
├── assets/ # Compiled assets
│ ├── admin.css
│ ├── admin.js
│ ├── editor.css
│ └── editor.js # Built from src/
├── vendor/ # Third-party libraries
│ └── action-scheduler/ # Bundled
├── package.json
└── readme.txt
🎯 Usage
Running Your First Audit
- Add API Key: Settings → GEO AI → General → Enter your Gemini API key
- Edit a Post: Open any post in Gutenberg
- Open GEO AI Panel: Click the GEO AI icon in the sidebar (or ⋮ → GEO AI)
- Run Audit: Click "Run AI Audit"
- Review Scores: See your 4-dimensional breakdown and issues
- Apply Fixes: Click "Apply Quick Fix" on suggested actions
Inserting an Answer Card
Via Quick Fix:
- Run audit → Click "Apply Quick Fix" on "missing_tldr" issue
Manually:
- In editor, click + → Search "Answer Card"
- Fill in TL;DR (max 200 words)
- Add Key Facts with the "Add Key Fact" button
Setting Up Sitemaps
- Settings → GEO AI → Sitemaps
- Enable sitemaps
- Choose post types & taxonomies to include
- Toggle image inclusion
- Your sitemap is live at
https://yoursite.com/sitemap.xml
Managing AI Crawlers
- Settings → GEO AI → Crawlers & Robots
- Check which bots to block (PerplexityBot, GPTBot, etc.)
- Copy the generated robots.txt rules
- Add them to your site's
robots.txtfile
Note: GEO AI does not write server files. Rules are previews only.
WP-CLI Commands
# Audit a single post
wp geoai audit 123
# Audit all posts
wp geoai audit all
# Audit posts with min score filter
wp geoai audit all --min-score=80
🔐 Security & Privacy
Encryption
- API keys encrypted with libsodium when available
- Fallback XOR obfuscation on older systems
- Keys never transmitted to frontend
Data Flow
- Audit requests: Post content → Gemini API → Audit scores (stored in postmeta)
- No tracking: We don't collect usage data
- User consent: API usage is opt-in via manual key entry
Permissions
- Audit endpoint: Requires
edit_postcapability - Settings page: Requires
manage_options - All forms protected with nonces
🤝 Compatibility
Works With
- ✅ Yoast SEO (coexist mode)
- ✅ Rank Math (coexist mode)
- ✅ SEOPress (coexist mode)
- ✅ All in One SEO (coexist mode)
- ✅ Classic Editor (meta box only)
- ✅ Multisite
Tested With
- WordPress 6.2, 6.3, 6.4
- PHP 8.1, 8.2, 8.3
- Block themes (Twenty Twenty-Four)
- Classic themes
📊 Settings Tabs
- General: API key, auto-run, compatibility mode
- Titles & Meta: Templates with variables
- Social: OpenGraph/Twitter defaults
- Schema: Enable/disable types, sitewide defaults
- Sitemaps: CPTs/taxonomies, image inclusion, ping
- Crawlers & Robots: AI bot controls, robots.txt preview
- Redirects & 404: Redirect manager, 404 logging
- Bulk Editor: Inline edit titles/meta (coming soon)
- Tools: Import/Export, migration, cache clearing
- Advanced: Debug mode, role capabilities
🐛 Troubleshooting
Audit returns mock data
Cause: No API key or invalid key
Fix: Add a valid Gemini API key in Settings → General
Meta tags duplicated
Cause: Running alongside another SEO plugin in standalone mode
Fix: Enable "Coexist Mode" in Settings → General
Sitemap 404
Cause: Rewrite rules not flushed
Fix: Go to Settings → Permalinks → Click "Save Changes"
Editor sidebar not showing
Cause: Block editor not active
Fix: Ensure Gutenberg is enabled (not Classic Editor)
🗺️ Roadmap
V1.1 (Planned)
- [ ] Bulk SEO editor UI
- [ ] CSV import/export for meta
- [ ] Enhanced redirect manager UI
- [ ] 404 monitor admin interface
V1.2 (Planned)
- [ ] FAQ & HowTo schema wizards
- [ ] Product schema support
- [ ] LocalBusiness schema
- [ ] Google Search Console integration
V2.0 (Future)
- [ ] Multi-language support (Polylang/WPML)
- [ ] Content quality suggestions
- [ ] Keyword research integration
- [ ] Link building assistant
🤝 Contributing
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Follow WordPress Coding Standards (PHPCS)
- Write tests if adding new features
- Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Coding Standards
- PHP: WordPress PHPCS
- JavaScript: ESLint (WordPress preset)
- CSS: Stylelint (WordPress preset)
📝 License
This plugin is licensed under the GPL v2 or later.
GEO AI (AI SEO)
Copyright (C) 2025 GEO AI Team
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
📧 Support
- Documentation: [Coming Soon]
- Issues: GitHub Issues
- Discussions: GitHub Discussions
🙏 Acknowledgments
- Built with @wordpress/scripts
- Powered by Google Gemini API
- Background tasks via Action Scheduler
- Inspired by Yoast, Rank Math, and the WordPress community
Made with ❤️ by 'Fred Oyetayo for the WordPress community