Opticweb SEO Core
Seo ai tool
by Vasilis Galanakis · github.com/galanakisbm/opticweb-seo-core · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/galanakisbm/opticweb-seo-core/archive/refs/heads/main.zipA comprehensive WordPress SEO plugin with AI-powered content optimization using OpenAI's GPT technology.
Features
- 🤖 AI-Powered SEO Generation - Automatically generate SEO titles and meta descriptions using OpenAI GPT-3.5
- 🌍 Multi-Language Support - Intelligent language detection maintains content in its original language
- 📊 Real-time Character Counters - Live feedback on title (60 chars) and description (160 chars) length
- 👀 Google Search Preview - Visual preview of how your content appears in search results
- 🎯 Smart Content Extraction - Works with standard WordPress content and Elementor page builder
- 🔒 Security First - Nonce verification, capability checks, and secure API handling
- 🎨 Clean UI - Modern, intuitive interface integrated into WordPress post editor
Requirements
- WordPress 5.8 or higher
- PHP 7.4 or higher
- OpenAI API key (Get one here)
Installation
From GitHub
-
Download the latest release or clone this repository:
git clone https://github.com/galanakisbm/opticweb-seo-core.git -
Upload the
opticweb-seo-corefolder to your/wp-content/plugins/directory -
Activate the plugin through the 'Plugins' menu in WordPress
-
Navigate to Settings > Opticweb SEO and enter your OpenAI API key
Using Composer
composer require galanakisbm/opticweb-seo-core
Configuration
Setting Up Your API Key
- Go to Settings > Opticweb SEO in your WordPress admin
- Enter your OpenAI API key
- Click Save Changes
Security Note: Your API key is stored securely and displayed as a password field for enhanced security.
Usage
Generating SEO Content
- Edit any post, page, or WooCommerce product
- Scroll to the Opticweb SEO AI metabox
- Click the ✨ Generate SEO Data button
- Review the AI-generated content preview
- Confirm to apply the generated SEO title and description
- Make any manual adjustments if needed
- Save/update your post
Manual Editing
You can always manually edit the SEO title and meta description fields. The character counters will update in real-time to help you stay within optimal limits.
Character Limits
- SEO Title: 70 characters max (optimal: 40-60)
- Meta Description: 160 characters max (optimal: 120-160)
Color-coded indicators show when you're in the optimal range (green) or exceeding limits (red).
How It Works
AI Language Detection
The plugin uses a strict language detection system to ensure generated content matches your original content's language:
- Detects the main language of your content
- Generates SEO metadata in the same language
- Never translates - maintains linguistic consistency
- Optimized for English and Greek, works with other languages too
Content Sources
The AI analyzes content from multiple sources:
- Post content (WordPress editor)
- Elementor page builder data (if empty)
- Up to 4,500 characters processed for optimal results
Frontend Integration
Custom SEO titles and descriptions automatically override WordPress defaults:
- Filters
pre_get_document_titlefor page titles - Outputs meta description tag in
<head>section - Works seamlessly with most WordPress themes
Security Best Practices
This plugin implements WordPress security best practices:
✅ Nonce Verification - All AJAX requests verified with WordPress nonces
✅ Capability Checks - Users must have edit_post permission
✅ Input Sanitization - All user input sanitized before storage
✅ API Key Security - Stored securely, displayed as password field
✅ Error Handling - Comprehensive error checking for API requests
✅ Escaping Output - All output properly escaped to prevent XSS
Architecture
The plugin follows modern WordPress development standards:
opticweb-seo-core/
├── opticweb-seo-core.php # Main plugin file (bootstrap)
├── includes/ # PHP classes
│ ├── class-ow-seo-core.php # Core bootstrap class
│ ├── class-ow-seo-settings.php # Settings page
│ ├── class-ow-seo-metabox.php # Metabox UI
│ ├── class-ow-seo-ajax-handler.php # AJAX processing
│ └── class-ow-seo-frontend.php # Frontend output
├── assets/ # Static assets
│ ├── css/
│ │ └── ow-seo-admin.css # Admin styles
│ └── js/
│ └── ow-seo-admin.js # Admin JavaScript
├── languages/ # Translation files
├── composer.json # PHP dependencies
├── uninstall.php # Cleanup on deletion
└── README.md # This file
Internationalization
The plugin is translation-ready:
- Text Domain:
opticweb-seo-core - Domain Path:
/languages - All user-facing strings are wrapped in translation functions
To translate:
- Use Poedit or similar tool
- Create translations in the
/languagesdirectory - Name files:
opticweb-seo-core-{locale}.poand.mo
Changelog
Version 8.0 (Current)
Security Enhancements:
- Added nonce verification to all AJAX handlers
- Implemented capability checks for edit permissions
- Changed API key input to password type
- Added comprehensive error handling for API requests
- Validated all user inputs and post IDs
Architecture Improvements:
- Converted to object-oriented architecture
- Separated concerns into dedicated classes
- Externalized CSS and JavaScript assets
- Replaced anonymous functions with named functions
- Added proper WordPress coding standards
Features:
- Complete internationalization support
- AI-powered content preview before generation
- Improved error messages and user feedback
- Enhanced Google search result preview
- Modal interface for content confirmation
Developer Experience:
- Added Composer support
- Comprehensive inline documentation
- PSR-4 autoloading compatible structure
- Uninstall script for clean removal
Contributing
Contributions are welcome! Please follow these guidelines:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Follow WordPress coding standards
- Add proper PHPDoc comments
- Test thoroughly
- 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
- Follow WordPress Coding Standards
- Use meaningful variable and function names
- Add inline comments for complex logic
- Ensure all strings are translatable
Support
- Issues: GitHub Issues
- Author: Vasilis Galanakis
- GitHub: @galanakisbm
License
This plugin is licensed under the GPL v2 or later.
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.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
Privacy & Data
This plugin:
- Does NOT collect or store user data
- Sends post content to OpenAI API only when you click "Generate SEO Data"
- Stores API key locally in your WordPress database
- Review OpenAI's Privacy Policy for API data handling
Credits
Built with ❤️ by Vasilis Galanakis
Powered by:
Star this repository if you find it useful! ⭐