Smart SEO Fixer releasesself-updates
AI-powered SEO optimization plugin for WordPress
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/mbheramil/smart-seo-fixer-v2/archive/refs/heads/main.zipShips its own WordPress updater (built-in updater), so new versions show up under Dashboard → Updates.
Readme
=== Smart SEO Fixer === Contributors: mbheramil Tags: seo, ai, openai, meta description, schema, sitemap, search engine optimization, breadcrumbs, redirects, local seo Requires at least: 5.8 Tested up to: 6.7 Stable tag: 2.0.86 Requires PHP: 7.4 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html
AI-powered SEO optimization plugin that analyzes and fixes SEO issues using AWS Bedrock (Claude), OpenAI, Anthropic, or Google Gemini.
== Description ==
Smart SEO Fixer is a powerful WordPress plugin that uses AI to analyze and optimize your website's SEO. Choose your AI provider — AWS Bedrock (Claude, the default), OpenAI, Anthropic Claude, or Google Gemini. It automatically detects issues and generates optimized titles, meta descriptions, and alt text — with zero gaps.
Key Features:
- SEO Analysis - Comprehensive analysis of titles, meta descriptions, content, headings, images, and links
- AI-Powered Generation - Generate optimized SEO titles, meta descriptions, and focus keywords using AWS Bedrock (Claude), OpenAI, Anthropic, or Gemini
- 4-Layer SEO Protection - Auto-generate on publish/update, background cron, dashboard alerts, and bulk fix
- SEO Score - Get a score from 0-100 for each post/page with detailed feedback
- Readability Scoring - Flesch Reading Ease, sentence length, passive voice detection
- Bulk Analysis & Fix - Analyze and AI-fix all posts at once
- Schema Markup - Automatic JSON-LD structured data for articles, pages, products, and local business
- XML Sitemap - Built-in sitemap generator with automatic search engine pinging
- Meta Tags - Full control over titles, descriptions, canonical URLs, and robots meta
- Open Graph & Twitter Cards - Automatic social media meta tags with image fallbacks
- Social Previews - Live Google, Facebook, and Twitter preview in the editor
- Redirect Manager - 301/302 redirects, auto-detect slug changes, 404 tracking
- Breadcrumbs - Schema-enriched breadcrumbs via shortcode or PHP function
- Local SEO - Multiple business locations with LocalBusiness schema
- WooCommerce SEO - Product schema, category SEO, brand/GTIN fields
- Search Console Fixer - Detect and fix trailing slash issues, redirect chains, canonical conflicts
- Migration Tool - Import from Yoast, Rank Math, AIOSEO, SEOPress, The SEO Framework
- Auto-Updater - GitHub-based updates with private repo support
- Theme Compatibility - Works with any theme, including those without title-tag support
What Gets Analyzed:
- Title length and keyword placement
- Meta description length and content
- Content length and keyword density
- Heading structure (H1, H2, H3)
- Image alt text
- Internal and external links
- URL/slug optimization
- Readability metrics
== Installation ==
- Upload the plugin files to
/wp-content/plugins/smart-seo-fixer/ - Activate the plugin through the 'Plugins' menu in WordPress
- Go to Smart SEO → Settings and configure your AI provider (AWS Bedrock, OpenAI, Anthropic Claude, or Google Gemini)
- Click Analyze All Posts on the dashboard to get started
- Enable Auto Meta Generation in Settings for hands-free SEO
== Frequently Asked Questions ==
= Do I need an AI API key? =
Yes, to use the AI-powered features (title generation, meta description generation, keyword suggestions), you need credentials for one provider: AWS Bedrock (access key + secret), OpenAI, Anthropic Claude, or Google Gemini.
The plugin will still work for manual SEO analysis without an API key.
= What OpenAI model should I use? =
We recommend GPT-4o Mini for the best balance of quality and cost. It's fast, affordable, and produces excellent SEO content.
= How much does it cost to use? =
The plugin itself is free. OpenAI charges based on usage. GPT-4o Mini costs approximately $0.15 per million input tokens and $0.60 per million output tokens - very affordable for SEO content generation.
= Will this conflict with other SEO plugins? =
Smart SEO Fixer includes a migration tool to import data from Yoast, Rank Math, and others. You can also enable "Disable Other SEO Output" in settings to prevent duplicate meta tags.
= Is my content sent to OpenAI? =
When you use AI features, relevant content is sent to OpenAI for processing. OpenAI does not use API data for training.
= Does this work with any theme? =
Yes. The plugin forces title-tag support for themes that don't declare it, and includes a fallback output buffer to ensure titles always render correctly.
== Screenshots ==
- Dashboard showing SEO health scores and statistics
- SEO analysis metabox in post editor with social previews
- Bulk analysis and AI fix of all posts
- Search Console Fixer for URL consistency
- Redirect Manager with 404 tracking
- Settings page with API configuration
== Changelog == = 2.0.86 =
- IMPORTANT FIX: The Settings page's AI Provider status badge showed "Not configured" for a Bedrock site with no AWS keys of its own, even when that site is actually working correctly via the automatic broker connection added in 2.0.85 — the badge only ever checked for a raw access/secret key pair and had no idea the broker exists. It now reflects the real, broker-aware configuration state, and shows a clear note when a site is running on the automatic connection with no AWS keys of its own. "Test Connection" also no longer requires typing in an Access Key/Secret Key just to test the connection a site is actually using — leave both blank to test the real, current connection (broker or otherwise).
= 2.0.85 =
- Bedrock now automatically tries a central broker first on every AI request, with zero configuration. On infrastructure the broker recognizes, AI works the moment the plugin is active — no wp-config.php changes at all. On any other site, this is invisible: it falls straight through to that site's own configured AWS credentials, or the normal "not configured" message, exactly as before this existed. SSF_BEDROCK_BROKER_TOKEN remains available for individually granting a specific site access outside that recognized infrastructure.
- Bulk/parallel AI runs now use the fast concurrent path whenever a site has its own AWS credentials configured, regardless of the broker; only a site with no credentials of its own falls back to the slower sequential path.
= 2.0.84 =
- Bedrock broker mode is now simpler to turn on: only SSF_BEDROCK_BROKER_TOKEN needs to be set in wp-config.php. The broker's URL ships as a built-in default — it's not sensitive on its own (a request without a valid per-site token gets nothing but a 401), only the token needs to stay out of the codebase. SSF_BEDROCK_BROKER_URL remains available to override the default if you ever point a site at a different broker deployment.
= 2.0.83 =
- NEW: AWS Bedrock broker mode. Set SSF_BEDROCK_BROKER_URL and SSF_BEDROCK_BROKER_TOKEN in wp-config.php to route Bedrock requests through a small proxy that holds the real AWS credential centrally (never on any WordPress site). Each site instead gets a cheap, disposable per-site token — worthless if copied via a migration/backup/clone, and instantly revocable without touching AWS. Fully backward compatible: without these constants defined, behavior is unchanged. Bulk/parallel AI runs fall back to sequential requests when broker mode is active (correct, just not the fast concurrent path).
= 2.0.82 =
- Internal: This release retargets the auto-updater to a new repository (mbheramil/Smart-SEO-Fixer-v2). No functional changes. Future updates will be checked and downloaded from the new repository going forward.
= 2.0.81 =
- Fix: Content Suggestions treated a WooCommerce product exactly like a blog post — a suggestion could read "change title from 'Wedding Cigar Station' to 'Cigar Station for Weddings & Events'", which looks like it's proposing to rename the product itself. It never actually touched the product name (title suggestions only ever update the separate SEO title tag), but the wording didn't say that. Suggestions for products (and any custom post type you register via the ssf_content_suggestions_named_entity_post_types filter) now say explicitly that the name/title stays unchanged, and the AI is instructed never to propose a rename for these post types in the first place.
- NEW: Suggestions that can't be generated automatically (missing image, missing internal/external link) now include a "View Live" link to the actual page, so there's a real next step instead of a dead-end error message.
= 2.0.80 =
- NEW: "Generate & Insert" button on every Content Suggestions card. Click it and AI writes the fix and saves it immediately — a new SEO title, a new meta description, or an added content section, depending on what the suggestion is about. Suggestions about a missing image or a missing link are left advisory-only, since fabricating a fake image or link target would do more harm than good.
- Fix: The content score circle only ever reflected the rules pass and went stale the moment AI suggestions were added below it — a page could show a healthy "85" while several AI-found high-priority issues sat unfactored beneath it. The score now recalculates from every suggestion actually on the page.
- Fix: The "Select a post to analyze" search gave no feedback for zero matches or a failed request — it just silently showed nothing, indistinguishable from a broken search box. It now shows "Searching…", "No posts found.", or the actual error.
= 2.0.79 =
- Fix: The "View Details" popup on the Plugins page no longer shows a clickable link on the author name or a "Plugin Homepage »" link in the sidebar.
= 2.0.78 =
- Fix: The "View Details" popup on the Plugins page (Plugins → Smart SEO Fixer → View details) showed "mbheramil" as the author, out of sync with the plugin header's "Author: mbh". Now shows "mbh" consistently.
= 2.0.77 =
- NEW: Address autocomplete on the Local SEO page. Start typing a street address and pick a suggestion to auto-fill city, state, ZIP, country, and coordinates — for both the main business address and additional locations. Manual typing still works exactly as before either way.
- Requires a Google Maps/Places API key set via the SSF_GOOGLE_MAPS_API_KEY constant in wp-config.php — not a Settings field. This key is billed per request, so it is never stored in the database or committed to this (public) repository; it lives only in wp-config.php on each site, the same way AWS Bedrock credentials can be set via SSF_BEDROCK_ACCESS_KEY. Without that constant defined, the address fields behave exactly as before.
= 2.0.76 =
- Local SEO: Saving now shows exactly what schema markup was generated, right on the settings page — a "Generated Schema" panel appears with the JSON-LD after every save, so you can confirm it worked without having to check your site's page source. If "Enable Local Business Schema" is off, the panel says so clearly.
- Local SEO: Added a proper error message if a save request fails over the network, instead of the button just re-enabling with no explanation.
- Fix: Local Business schema generation could throw PHP warnings (visible in debug logs, and potentially leaking into page output) if the stored settings were ever missing their "hours" or "social" keys.
= 2.0.75 =
- IMPORTANT FIX: Content Suggestions never worked — every request hit a PHP fatal error (the AJAX handler called a method that doesn't exist on the analyzer class) and the page was stuck on "Analyzing content..." forever with no error shown, because the request also had no failure handler to report it. Fixed the method call so analysis actually runs, and added an error message for network/server failures instead of an infinite spinner.
= 2.0.74 =
- Removed the two remaining links to Client Report — the row on the Settings page and the shortcut tile on the Dashboard. Client Report is no longer reachable from anywhere in the admin UI.
= 2.0.73 =
- Admin menu: Removed "Client Report" from the Smart SEO sidebar menu — it's linked from the bottom of Settings instead, so it isn't a separate nav item. The page itself still works exactly as before for anyone using that Settings link.
= 2.0.72 =
- Settings: Removed the GitHub Token field. It only mattered if this plugin's update repository were private, and it is public, so the field was unused. The last row on the Settings page now links to Client Report instead.
- Admin menu: Removed "Code Audit" and "Performance" from the Smart SEO menu, along with their Dashboard shortcuts.
= 2.0.71 =
- Cleanup: When AWS Bedrock credentials are set via wp-config.php constants, Settings no longer shows the masked Access Key ID / Secret Access Key / AWS Region fields (which were disabled and uneditable anyway). It now shows a simple Configured / Not configured status instead, with Test Connection still available.
= 2.0.70 =
- Fix: One-click GA4 property creation could fail with "The value for the 'time_zone' field must be a valid value from the IANA timezone database." This happened on sites where Settings > General > Timezone is set to a manual UTC offset (e.g. "UTC+2") rather than a city — WordPress returns that as a raw offset string, which Google Analytics rejects outright. Auto-setup now converts whole-hour manual offsets to the equivalent IANA zone and falls back to UTC for anything else, so property creation succeeds regardless of how the site's timezone is configured.
= 2.0.69 =
- IMPORTANT FIX: When the AI could not actually look at an image, the plugin used to ask it to describe the picture from the file address alone. A model that cannot see the image will happily invent what is in it, and that invented description was saved and reported as an AI description. Alt text that confidently describes the wrong thing is worse than none — it misleads screen-reader users and search engines. The plugin now refuses to guess: if the image cannot be seen, it falls back to the filename and tells you so.
- NEW: "Test AI
Read the full README on GitHub →
Releases
| Tag | Published |
|---|---|
| v2.1.2 | Aug 31, 2026 |
| v2.1.1 | Aug 31, 2026 |
| v2.1.0 | Aug 29, 2026 |
| v2.0.99 | Aug 29, 2026 |
| v2.0.98 | Aug 29, 2026 |
| v2.0.97 | Aug 29, 2026 |
| v2.0.96 | Aug 29, 2026 |
| v2.0.95 | Aug 29, 2026 |
| v2.0.94 | Aug 29, 2026 |
| v2.0.93 | Aug 29, 2026 |
| v2.0.92 | Aug 29, 2026 |
| v2.0.91 | Aug 29, 2026 |
| v2.0.90 | Aug 29, 2026 |
| v2.0.89 | Aug 29, 2026 |
| v2.0.88 | Aug 29, 2026 |
| v2.0.87 | Aug 29, 2026 |
| v2.0.86 | Aug 28, 2026 |
| v2.0.85 | Aug 28, 2026 |
| v2.0.84 | Aug 28, 2026 |
| v2.0.83 | Aug 28, 2026 |
| v2.0.82 | Aug 27, 2026 |
These releases are tags only. The author does not attach a packaged zip, so there are no download counts to report.