WP Manifestindependent plugin directory
manifest / ai / wp-seo-blog-automater-plugin

WP SEO Blog Automater self-updates

WordPress plugin to automate high-quality, SEO-optimized blog content creation using Google Gemini AI.

by Codezela Technologies · github.com/sayuru-akash/wp-seo-blog-automater-plugin · website

0stars
0forks

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/sayuru-akash/wp-seo-blog-automater-plugin/archive/refs/heads/main.zip

Ships its own WordPress updater (built-in updater), so new versions show up under Dashboard → Updates.

Enterprise-grade AI content automation for WordPress. Create high-quality, SEO-optimized blog posts in seconds.

Developed by Codezela Technologies


🚀 Features

Core Functionality

  • 🤖 Google Gemini AI Integration - Powered by the latest Gemini Pro models for sophisticated, human-like content generation
  • 📸 Automatic Image Integration - AI determines optimal search terms and automatically fetches royalty-free images from Unsplash
  • 🎯 Complete SEO Automation - Generates meta titles, descriptions, URL slugs, and structured data (JSON-LD Schema)
  • 🔗 SEO Plugin Integration - Native support for Yoast SEO and Rank Math with auto-detection
  • 📬 Search Engine Submission Tools - Bulk-submit published posts/pages to IndexNow, resubmit sitemaps to Google, and inspect Google index status from the Posts and Pages screens
  • 🖼️ AI Media SEO Text - Analyzes images in the Media Library and writes one factual, accessible text to the alt text, caption, and description fields
  • 📊 Activity Logging - Comprehensive logging system for monitoring all generation activities
  • ⚙️ Customizable AI Prompts - Full control over AI behavior with customizable master prompts

Technical Excellence

  • Security-First Design - WordPress nonces, capability checks, and proper data sanitization throughout
  • Production-Ready Code - Follows WordPress coding standards with comprehensive error handling
  • Internationalization Ready - Full i18n support for multilingual deployments
  • Clean Architecture - Well-structured, documented, and maintainable codebase
  • Responsive Admin UI - Modern, professional interface that works on all devices

📋 Requirements

  • WordPress: 5.8 or higher
  • PHP: 7.4 or higher (8.0+ recommended)
  • MySQL: 5.6 or higher (or MariaDB equivalent)
  • Google Gemini API Key: Get one free
  • Unsplash Access Key: Get one free (optional, for automatic images)
  • IndexNow Key: Optional, can be generated inside the plugin settings
  • Google Search Console Service Account JSON: Optional, required for Google sitemap submission and URL inspection bulk actions

📥 Installation

Method 1: WordPress Admin (Recommended)

  1. Download the plugin ZIP file
  2. Log in to your WordPress admin panel
  3. Navigate to Plugins → Add New → Upload Plugin
  4. Choose the downloaded ZIP file and click Install Now
  5. Click Activate after installation completes

Method 2: Manual Installation

  1. Download and extract the plugin ZIP file
  2. Upload the wp-seo-blog-automater folder to /wp-content/plugins/
  3. Activate the plugin through the Plugins menu in WordPress

Method 3: WP-CLI

wp plugin install wp-seo-blog-automater.zip --activate

⚙️ Configuration

Initial Setup

  1. Navigate to BP Automater → Settings in your WordPress dashboard
  2. Configure the following:

API Configuration

  • Gemini API Key (Required)
    • Get your free key from Google AI Studio
    • Used for both article generation and Media Library image analysis
  • Image SEO Model ID (Optional)
    • Defaults to gemini-3.6-flash, the current stable multimodal model used for image analysis
    • Uses the same Gemini API key; it does not create or store a second credential
  • Website and Brand Context for Image SEO (Optional)
    • Add confirmed business, product, audience, service-area, or brand details to help disambiguate visible logos and products
    • The prompt treats pixels as primary evidence and does not identify a logo from context alone
  • Unsplash Access Key (Optional)

Search Engine Submission

  • IndexNow Key (Optional)
    • Used by the bulk Submit to IndexNow action on Posts and Pages
    • You can paste your own key or generate one in Settings
    • The plugin serves the required verification .txt file automatically from your site root
  • Google Search Console Property (Optional)
    • Required for Google sitemap resubmission and URL inspection
    • Supports both URL-prefix properties such as https://example.com/ and domain properties such as sc-domain:example.com
  • Google Service Account JSON (Optional)
    • Required for Resubmit Sitemap to Google and Check Google Index Status
    • Create a Google Cloud service account, enable Search Console API access, and paste the full JSON credentials into Settings
    • Add the service account email as an owner or full user on the matching Search Console property
  • Google Sitemap URLs (Optional)
    • One sitemap URL per line
    • If left blank, the plugin tries /sitemap_index.xml, /wp-sitemap.xml, and /sitemap.xml automatically

SEO Plugin Integration

  • Auto Detect (Recommended) - Automatically detects Yoast SEO or Rank Math
  • Yoast SEO - Manually select if you use Yoast
  • Rank Math - Manually select if you use Rank Math

Master Prompt

  • Pre-loaded with a professional content generation prompt
  • Fully customizable to match your brand voice and requirements
  • Reset to default anytime with one click

✍️ Usage Guide

Generating Content

  1. Navigate to Generator

    • Go to BP Automater → Generator in your WordPress admin
  2. Enter Article Details

    • Article Concept/Title: Enter your topic (e.g., "Benefits of Titanium Glasses")
    • Target Keywords: Enter comma-separated keywords (e.g., "lightweight frames, durability, hypoallergenic")
  3. Generate

    • Click Generate Article
    • Wait 30-60 seconds for AI processing
    • The system will:
      • Generate comprehensive article content
      • Create SEO-optimized metadata
      • Find and fetch relevant images from Unsplash
      • Generate structured data (Schema.org JSON-LD)
  4. Review & Edit

    • Review the generated content in the preview
    • Edit any fields as needed:
      • Post title (H1)
      • SEO meta title and description
      • URL slug
      • Content body
      • Featured image
  5. Publish

    • Click Publish to WordPress
    • The post is created with:
      • All SEO metadata populated (Yoast/Rank Math)
      • Featured image uploaded and set
      • Schema markup injected
      • Content ready to go live
    • Click View Post to see it live

Monitoring Activity

  • Navigate to BP Automater → Logs
  • View detailed logs of all generation activities
  • Monitor API calls, errors, and successes
  • Troubleshoot any issues

Bulk Search Engine Actions

Once Search Engine Submission settings are configured, you can run bulk actions from both Posts → All Posts and Pages → All Pages:

  • Submit to IndexNow
    • Sends the selected published public URLs to the official IndexNow endpoint
    • Useful for Bing and other IndexNow-participating search engines
  • Resubmit Sitemap to Google
    • Resubmits your configured sitemap URLs to Google Search Console
    • This is site-level, so the selected items simply trigger the sitemap submission run
  • Check Google Index Status
    • Uses the Google URL Inspection API to check the indexed status of up to 10 selected published public URLs per run
    • Results are shown in an admin notice and logged in the plugin activity log

AI Image SEO Text

The Media Library feature creates one concise, factual text and saves it unchanged as the attachment alt text, caption, and description.

  1. Go to Media → Library.
  2. For one image, open Attachment Details and click Generate AI image SEO text. Click it again to regenerate.
  3. In list view, select image rows and choose Generate AI image SEO text from Bulk actions.
  4. In grid view, choose Bulk Select, select image tiles, then click Generate AI image SEO text below the Media Library filters. The action remains visible while Bulk Select is active.

Bulk processing runs one attachment at a time, shows live progress, continues after failures, and offers Retry failed images. It does not alter the original upload. If an image is large, animated, unsupported, or offloaded, the plugin safely creates or downloads a temporary analysis copy where WordPress can do so; otherwise it reports the affected item without changing its existing metadata.


Local Verification

The repository now includes CLI verification scripts that exercise the same preview payload used by the admin editor box.

Setup

  1. Copy .env.example to .env
  2. Add your keys:
    • WP_SEO_AUTOMATER_GEMINI_KEY
    • WP_SEO_AUTOMATER_UNSPLASH_KEY (optional, but required to verify image fetching)
  3. Adjust the default Lumiere Optique title/keywords in .env if needed

Commands

php tests/run-fixture-preview.php
php tests/run-gemini-continuation.php
php tests/run-image-alt-text.php
php tests/run-live-image-alt.php
node tests/run-media-alt-text-js-check.js
php tests/run-live-preview.php

What each script checks

  • php tests/run-fixture-preview.php
    • Verifies one-part and merged two-part raw model outputs
    • Confirms the editor payload keeps the article body, CTA, slug, meta fields, and schema
    • Confirms assistant-style trailing chatter is removed before it reaches the box
  • php tests/run-gemini-continuation.php
    • Simulates Gemini continuation behavior
    • Confirms the initial chunk and continuation chunk are stitched together once
    • Confirms the old over-continuation loop does not recur
  • php tests/run-image-alt-text.php
    • Verifies structured Gemini image-text response handling, sanitization, length limits, and the visual-evidence-first prompt contract
  • php tests/run-live-image-alt.php
    • Sends the local images/logo.png fixture to the configured Gemini image model through the production request path
    • Reports the candidate response format and normalized image text without printing the API key
  • node tests/run-media-alt-text-js-check.js
    • Guards the Media Library retry flow against removing its progress notice before the next queue starts
  • php tests/run-live-preview.php
    • Calls Gemini live using the title/keywords from .env
    • Produces the exact structured payload consumed by admin/js/admin.js
    • Saves the payload to tests/output/live-preview.json for inspection
    • Reports image keyword extraction and Unsplash status

Notes

  • These scripts are a manual verification harness, not a formal automated test suite.
  • tests/run-live-preview.php fails fast if the Gemini key is missing.
  • If the Unsplash key is omitted, the preview still verifies content parsing and reports Missing API Key for image fetching.

🏗️ Architecture

File Structure

wp-seo-blog-automater/
├── admin/
│   ├── css/
│   │   ├── media-alt-text.css  # Media Library image-text UI styles
│   │   └── style.css           # Admin UI styles
│   ├── js/
│   │   ├── admin.js            # Admin JavaScript
│   │   └── media-alt-text.js   # Sequential Media Library queue UI
│   └── partials/
│       ├── generator-display.php  # Generator page
│       ├── settings-display.php   # Settings page
│       └── logs-display.php       # Logs page
├── images/
│   └── logo.png                # Codezela Technologies logo
├── includes/
│   ├── class-wp-seo-automater-admin.php  # Main admin class
│   ├── class-gemini-api-handler.php      # Gemini API handler
│   └── class-wp-seo-automater-media-alt-text.php # Attachment image-text service
├── tests/
│   ├── fixtures/               # Raw Gemini-like fixture responses
│   ├── lib/                    # CLI verification bootstrap/shims
│   ├── run-fixture-preview.php # Fixture-driven preview payload checks
│   ├── run-gemini-continuation.php # Continuation loop verification
│   ├── run-image-alt-text.php # Image-text generation contract verification
│   ├── run-live-image-alt.php # Live Gemini image-text verification
│   ├── run-media-alt-text-js-check.js # Retry queue regression check
│   └── run-live-preview.php    # Live Gemini/Unsplash preview verification
├── languages/                  # Translation files (POT/PO/MO)
├── wp-seo-blog-automater.php  # Main plugin file
├── uninstall.php              # Uninstall cleanup
├── README.md                  # Documentation
└── LICENSE                    # GPL-2.0 License

Key Components

1. Main Plugin File (wp-seo-blog-automater.php)

  • Plugin initialization and hooks
  • Activation/deactivation handlers
  • Schema injection on frontend

2. Admin Class (class-wp-seo-automater-admin.php)

  • Admin menu and pages
  • AJAX handlers for generation and publishing
  • Settings management
  • Activity logging

3. Gemini API Handler (class-gemini-api-handler.php)

  • API communication
  • Content generation logic
  • Continuation handling for long content

🔒 Security Features

  • Nonce Verification - All AJAX requests protected with WordPress nonces
  • Capability Checks - Proper permission verification (manage_options, publish_posts)
  • Input Sanitization - All user inputs sanitized using WordPress functions
  • Output Escaping - All outputs properly escaped for XSS prevention
  • SQL Injection Protection - Uses WordPress database API exclusively
  • Secure API Key Storage - API keys stored securely in WordPress options

🌐 Internationalization

The plugin is fully translatable and ready for localization:

  • Text domain: wp-seo-blog-automater
  • POT file location: /languages/
  • All user-facing strings wrapped in translation functions
  • RTL-ready admin interface

To translate:

  1. Use Poedit or Loco Translate
  2. Create PO/MO files from the provided POT template
  3. Place files in /languages/ directory

🔧 Developer Resources

Hooks & Filters

Actions

// After content generation
do_action( 'wp_seo_automater_after_generation', $post_id, $content );

// After post published
do_action( 'wp_seo_automater_after_publish', $post_id );

Filters

// Modify generated content before display
apply_filters( 'wp_seo_automater_generated_content', $content, $title, $keywords );

// Modify master prompt
apply_filters( 'wp_seo_automater_master_prompt', $prompt );

// Customize Gemini API parameters
apply_filters( 'wp_seo_automater_api_params', $params );

Constants

WP_SEO_AUTOMATER_VERSION  // Plugin version
WP_SEO_AUTOMATER_PATH     // Plugin directory path
WP_SEO_AUTOMATER_URL      // Plugin directory URL
WP_SEO_AUTOMATER_BASENAME // Plugin basename
WP_SEO_AUTOMATER_FILE     // Main plugin file path

🐛 Troubleshooting

Common Issues

Content generation fails

  • Check your Gemini API key is valid
  • Verify your API quota hasn't been exceeded
  • Check error logs in BP Automater → Logs

Images not appearing

  • Verify Unsplash Access Key is configured
  • Check WordPress media folder permissions
  • Ensure allow_url_fopen is enabled in PHP

SEO metadata not saving

  • Confirm Yoast SEO or Rank Math is active
  • Check user has publish_posts capability
  • Review plugin logs for specific errors

Slow generation

  • Normal processing time is 30-60 seconds
  • Long articles may take up to 2 minutes
  • Check server timeout settings if needed

📊 Performance

  • Optimized Database Queries - Minimal database impact
  • Smart Image Caching - Prevents duplicate downloads from Unsplash
  • Efficient AJAX - Non-blocking UI operations
  • Proper Enqueueing - Scripts/styles loaded only on plugin pages

🤝 Support

For support, feature requests, or bug reports:


📝 Changelog

Version 1.0.4 (2025-01-20)

  • ✨ Production-ready release with enterprise features
  • 🔒 Enhanced security with comprehensive nonce validation
  • 🎨 Professional UI/UX with Codezela branding
  • 🌐 Full internationalization support
  • 📚 Comprehensive inline documentation
  • ♻️ Proper uninstall cleanup
  • 🔧 Activation/deactivation hooks
  • 📊 Improved error handling and logging
  • 🎯 Settings link on plugins page
  • 📱 Responsive admin interface
  • ⚡ Performance optimizations

Version 1.0.3

  • 🖼️ Added Unsplash integration
  • 🔍 Improved content extraction
  • 📝 Enhanced logging system

Version 1.0.0

  • 🎉 Initial release
  • 🤖 Google Gemini AI integration
  • 📊 Schema markup support
  • 🔗 SEO plugin integration

👨‍💻 About Codezela Technologies

Codezela Technologies is a leading software development company specializing in WordPress solutions, AI integration, and enterprise web applications. We build professional-grade tools that empower businesses to automate and scale their digital presence.

Our Services:

  • Custom WordPress Development
  • AI/ML Integration
  • Enterprise Web Applications
  • Digital Marketing Automation
  • Technical Consulting

Connect With Us:


📄 License

This plugin is licensed under the GPL v2 or later.

WP SEO Blog Automater
Copyright (C) 2026 Codezela Technologies

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.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.


🙏 Acknowledgments

  • Google Gemini AI - For powerful language models
  • Unsplash - For beautiful, free images
  • WordPress Community - For excellent documentation and support
  • All Contributors - Thank you for making this plugin better

🔮 Roadmap

Planned Features

  • [ ] Bulk content generation
  • [ ] Advanced scheduling options
  • [ ] Analytics dashboard
  • [ ] API endpoint for external integrations

Made with ❤️ by Codezela Technologies

⭐ Star us on GitHub if you find this useful!