CloudScale SEO AI Optimizer: Free WordPress SEO Plugin with AI, Sitemap, Category Tools & Performance
CloudScale SEO AI Optimizer
Most AI SEO tools charge $30β$100/month and send your content to a third-party cloud. CloudScale SEO AI Optimizer brings Claude 4 and Gemini 2.5 Pro directly into WordPress using your own API key: generate meta descriptions, ALT text, article summaries, and SEO-optimised titles in bulk at zero per-request cost. Includes an auto-pipeline that applies every AI step to new posts automatically. Beyond AI, the plugin covers XML sitemap management, a robots.txt editor, an llms.txt generator for AI web crawlers, automatic redirect rules, font loading optimisation, and JS/CSS/HTML minification for performance. Category tools handle health checks, drift detection, bulk reassignment, and migration. Also included: a broken link checker, image SEO audit, related articles widget with smart matching, and a batch scheduler to run AI tasks on thousands of posts overnight. No subscription, no premium tier, no per-site fee.
- AI Settings
- Site Identity & Schema
- Person Schema
- Auto Pipeline
- AI Meta Description Writer
- AI ALT Text Generator
- AI Summary Box
- Related Articles: Settings
- Related Articles: Management
- SEO Features
- XML Sitemap
- Robots.txt Editor
- llms.txt
- Automatic Redirects
- Font Optimiser
- JS, CSS & HTML Optimisation
- Category Fixer
- Category Health
- Category Drift Detection
- Migrate Categories
- Broken Link Checker
- Image SEO Audit
- Title Optimiser
- Batch Schedule
- Last Run Log
Why Is AI SEO Still Behind a Paywall?
Yoast SEO, Rank Math, and All in One SEO all gate their AI features behind $59β$99/year subscriptions. For a site with 100 posts you pay those fees before a single word of AI copy is generated, and then pay the AI provider on top. CloudScale SEO AI uses a different model: bring your own API key, pay Anthropic or Google directly at cost (~$0.10 per 100 posts), and pay nothing to the plugin.
| Feature | Yoast SEO | Rank Math | All in One SEO | CloudScale |
|---|---|---|---|---|
| AI meta description generation | $99/yr | $59/yr | $50/yr | Free (BYOK) |
| Bulk ALT text generation | None | $59/yr | None | Free (BYOK) |
| AI article summaries (AEO) | None | None | None | Free (BYOK) |
| llms.txt for AI search (AEO) | None | None | None | Free |
| Category management suite | None | None | None | Free |
| Google Fonts β local (GDPR) | None | None | None | Free |
5-minute setup checklist:
- AI Settings: add an Anthropic or Gemini API key and click Test Key.
- Site Identity: fill in Target audience and Writing tone. These two fields are injected into every AI request and are the biggest quality lever in the plugin.
- SEO Features: enable OpenGraph, sitemap, and noindex options. One save covers your whole site.
- Meta Description Writer: click Generate Missing. For a 100-post site this takes about 3 minutes and costs under $0.10.
- Auto Pipeline: enable it. Every post you publish from now on gets a meta description automatically.
AI Settings
Connect your Anthropic or Google Gemini API key here before using any AI feature. The plugin uses your key to call the AI provider directly, with no middleman fee and no subscription.

All AI features in this plugin (meta descriptions, ALT text, article summaries, SEO scoring, title optimisation, and category analysis) run through a single connection to your chosen AI provider. This plugin does not run its own AI service and does not charge for AI usage. You bring your own API key from either Anthropic Claude or Google Gemini, and the plugin sends your content directly to that provider’s API. Your key is stored in your WordPress database and never shared with anyone.
The cost of AI through your own key is very small. Generating meta descriptions for 100 posts using Claude Haiku costs under $0.10. Google Gemini has a free tier sufficient for most personal blogs.
- AI provider: Choose Anthropic Claude or Google Gemini. Get a free Anthropic key at console.anthropic.com β API Keys β Create Key. Get a free Gemini key at aistudio.google.com/app/apikey.
- Model:
claude-sonnet-4-6is the recommended default, fast and accurate. Useclaude-haiku-4-5-20251001for bulk processing on large sites. For Gemini,gemini-2.0-flashis the stable choice with a generous free tier. - Meta description character range: Google truncates descriptions beyond ~155 characters. The default range of 140β155 reliably fits. If descriptions are being cut off in search results, lower the max.
- ALT text excerpt length: Characters of surrounding post content sent to the AI as context when writing image ALT text. Default 600 is enough without wasting tokens.
- System prompt: Instructions sent to the AI for every meta description request. The default is carefully crafted; don’t change it unless you have a specific structural requirement (non-English output, format constraints). The plugin always appends your site context (target audience, writing tone) automatically. Click Reset to default to restore if you’ve changed it.
Always click Test Key after adding your API key before running any bulk operation. This makes a minimal API call to confirm the key is valid and the selected model is available.
Site Identity & Schema
Sets your site name, locale, social handles, and default OG image, embedded into every page as meta tags and JSON-LD schema. Fill in Target audience and Writing tone before generating anything: they are injected into every AI request.

When Google searches for signals about your site (its name, its language, its author, its social profiles), it reads structured data embedded in your pages. Without those signals, Google guesses, and it often gets things wrong. The Site Identity panel is where you set the record straight: everything here is automatically embedded into every page as meta tags, OpenGraph tags, and JSON-LD structured data.
- Site name: Your website’s name as it should appear in Google results and social link previews.
- Locale: Your language and region code, e.g.
en-US,en-GB,fr-FR. - Title suffix: Text appended after every page title, e.g.
| Andrew Baker. Identifies your tab when visitors have ten tabs open. - Twitter handle: Your @username. Added to the
twitter:sitemeta tag so Twitter attributes shared content to your account. - Home title / Home description: The SEO title and meta description specifically for your homepage.
- Default OG image URL: Fallback image for social shares when a page has no featured image. Use 1200 Γ 630 pixels.
- Target audience: Who reads your site, e.g. “software engineers, CTOs, freelance developers”. This is the highest-impact setting in the plugin. Every AI request is sent with this as site context. The difference in output quality between filling this in and leaving it blank is immediately noticeable. Fill it in before running any bulk generation.
- Writing tone: The voice of your content, e.g. “direct and technical” or “warm and encouraging”. Combined with target audience, this gives the AI the brand context it needs to write copy that sounds like you.
Fill in Target audience and Writing tone before generating anything. These two fields are injected into every single AI request as site context. They are the single biggest quality lever available without touching the system prompt.
Person Schema
Embeds your name, job title, photo, and social profile links as Person JSON-LD structured data, the foundation of your E-E-A-T author identity signal with Google.

Some authors have a “Knowledge Panel” on Google, the box showing their photo, title, and social profiles. That’s powered by Person structured data. Even without a Knowledge Panel, telling Google who you are strengthens your E-E-A-T signals (Experience, Expertise, Authoritativeness, Trustworthiness), one of Google’s key quality criteria for ranking content in technical and professional niches.
The Person Schema panel embeds this identity into your pages as JSON-LD. Nothing visible is added to your pages; it sits in the source where Google reads it. The key is the sameAs field: by linking to your LinkedIn, GitHub, and Twitter profiles, you give Google the cross-references it needs to confirm your identity.
- Full name: Your name exactly as you want it attributed. Use the same form consistently everywhere.
- Job title: Your professional title. Appears in Person JSON-LD and can show in rich results.
- Profile URL: The canonical URL for your identity, usually your homepage.
- Person image URL: A URL to your headshot. A square image at least 400 Γ 400 pixels works best.
- sameAs URLs (one per line): Links to your LinkedIn, GitHub, Twitter/X, Wikipedia, or any authoritative platform. Each link is a cross-reference Google can verify. LinkedIn and GitHub are especially valuable for technical authors.
Auto Pipeline
Runs automatically when you hit Publish. Every new post gets a meta description, SEO score, and summary box generated in the background, no manual step required.

If you’re starting from scratch with a new post, the Auto Pipeline means you never have to think about SEO again. Write your post, hit Publish, and within seconds the plugin has generated your meta description, scored your content, and created your AI summary box, all without you touching anything.
The pipeline runs as a background HTTP request immediately after WordPress saves the post, so the Publish button itself does not feel slow. Each step runs independently. If meta description generation succeeds but SEO scoring fails, the description is still saved. By default the pipeline only fills in missing content and will not overwrite descriptions you’ve already written manually.
- Enable Auto Pipeline on first publish: Processes every post that goes from any non-published status to Published. New posts only; it does not re-run on edits to already-published posts unless “Re-run on update” is also enabled.
- Re-run on update: Re-runs the pipeline every time you save an already-published post. Use this if you frequently make major content updates. Be aware it regenerates AI content on every save.
- Overwrite existing descriptions: Forces new descriptions even if one already exists. Leave unticked (the default) to protect manually written descriptions.
The pipeline fires a background HTTP request so it won’t block your post save. If you check the meta description immediately after publishing, wait a few seconds and refresh, as it may still be generating.
AI Meta Description Writer
Bulk-generate AI meta descriptions for every post and page. Status badges show length, missing, and just-generated states. For a 100-post site this typically takes 3 minutes and costs under $0.10.

The meta description is the short snippet under your page title in Google results. When you don’t write one, Google generates its own, usually a random sentence from your content that is rarely your best pitch to a potential reader.
The AI Meta Description Writer solves this in bulk. It shows every post and page, the current status of each description, and lets you generate AI-written descriptions for all of them in one operation. For a site with 100 posts this typically takes 2β3 minutes and costs under $0.10.
Status badges:
- No AI description: Highest priority to fix. Google is writing its own snippet for these pages.
- β [number]c (green): Description exists and is within your character range. No action needed.
- Short Β· [number]c (amber): Description is shorter than your minimum; it may appear thin.
- Long Β· [number]c (amber): Description exceeds your maximum; Google will truncate it.
- β¦ Generated Β· [number]c (blue): Just generated in this session, saved but not yet reloaded.
Bulk actions:
- Generate Missing: Recommended starting point. Generates for every post that doesn’t have one. Safe to run at any time; it never overwrites existing descriptions.
- Regenerate All: Forces new descriptions for every post. Use after changing your prompt or for a fresh pass. Will overwrite manually written descriptions.
- Fix Long/Short: Only rewrites descriptions outside your character range.
- Fix Titles: Rewrites post title tags outside the 50β60 character ideal. Your original WordPress post title is never changed.
- SEO Score badge: AI-generated score 0β100. Click to see specific feedback. Green = 75+, amber = 50β74, red = below 50.
AI ALT Text Generator
Finds every image missing ALT text across your site and writes contextually accurate descriptions using AI, improving both accessibility and Google Image Search rankings.

When someone uses a screen reader, every image with no ALT text is invisible to them. At the same time, Google cannot “see” images; it reads ALT text to understand what an image depicts and whether it should appear in Image Search. A site full of images with empty ALT attributes is failing both accessibility and search rankings.
The AI ALT Text Generator fixes this across your entire site in one bulk operation. It reads both the image filename and a short excerpt of surrounding post content, so the ALT text it generates actually describes the image in context, not just a generic label.
- Load: Scans your site and builds the list of posts with missing ALT text, with counts before you commit to generating anything.
- Show all images: By default only posts with at least one missing ALT image are shown. Tick to see all posts including those already covered.
- β¦ Generate (per row): Processes all missing ALT images in a single post. Use to test output on one post first.
- Generate All Missing: Processes every post with missing ALT text. Recommended approach for first-time audits.
- Force Regenerate All: Rewrites all ALT text site-wide, including images that already have it. A confirmation prompt appears first.
AI Summary Box
Generates a three-sentence structured summary (What it is / Why it matters / Key takeaway) embedded as Article JSON-LD schema, the primary AEO strategy for appearing in Google AI Overviews and featured snippets.

Most readers decide within seconds whether an article is worth their time. The AI Summary Box solves this by generating a three-sentence structured summary that appears at the very top of each post before the article text, showing readers at a glance what it’s about, why it matters, and what they’ll take away.
The summary also has an SEO benefit invisible to readers: the three fields are embedded into Article JSON-LD for each post. This is the core strategy for AEO (Answer Engine Optimisation), providing Google with clean structured content it can surface in featured snippets and AI Overviews. The JSON-LD benefit exists whether or not the box is visible on your pages.
Fields generated per post:
- What it is: One sentence defining the core topic, written for a reader who’s never heard of the subject.
- Why it matters: One sentence explaining relevance. Answers “why should I care?”
- Key takeaway: The single most important insight. Often the sentence Google pulls into a featured snippet.
Actions:
- β¦ Generate (per row): Generates for a single post. Use to preview output before running the full site.
- Generate Missing: Generates for all posts without a summary. Safe to run at any time; it will not overwrite existing summaries.
- Generate All (force): Regenerates summaries for every post. Use after changing your AI prompt or to refresh the style across your site.
Related Articles: Settings
Builds an internal linking network automatically using categories, tags, and AI summary semantic matching, increasing pages-per-session and strengthening topical authority signals for Google.

One of the best signals Google uses to understand a site’s topical authority is internal linking: how well your posts link to each other around a common topic. Building this network manually across dozens of posts is impractical. Related Articles builds it automatically.
It analyses every post and builds a relevance network by matching posts on shared categories, tags, and (if AI summaries have been generated) the semantic similarity of the content itself. It then injects a “Related Articles” block near the top of each post and a “You Might Also Like” block at the bottom. This increases pages-per-session and creates the internal linking structure Google rewards with stronger topical authority scores. No API calls, no fees; all matching is done server-side.
- Enable Related Articles: Master switch. Turn off to hide all related article blocks site-wide without losing data.
- Show “Related Articles” at the top: High-visibility position; readers see it before committing to the full article.
- Show “You Might Also Like” at the bottom: Traditional position, capturing readers ready to explore after finishing.
- Number of links: 3 at the top, 4β6 at the bottom is a good starting point.
- Match by Categories / Tags / AI summary overlap: Enable all three for the most accurate matches. AI summary overlap produces the best results but requires summaries to have been generated first.
- Excluded categories: Posts in these categories will never appear as suggestions. Use to exclude “Announcements”, “Sponsored”, or other non-content categories.
Related Articles: Management
The control panel for your related articles network, showing every post’s processing status and link counts, with batch operations to process your entire site in one click.

When you first enable Related Articles, all posts start as “Pending”, meaning they haven’t been processed and won’t show related article blocks. Run the batch operation here to go from zero to a complete internal linking network in one click.
- Status badges:
- Pending: Not processed yet. No related article blocks on the frontend.
- Complete: Related articles live. The Top and Bottom columns show how many links are displayed.
- Error: Processing failed; error reason shown in the row.
- Top / Bottom counts: If lower than your configured settings, the algorithm couldn’t find enough matching posts, which is normal for posts on niche topics.
- βΆ Run (per row): Generates related articles for a single post.
- π Reset (per row): Clears related articles data for a post and returns it to Pending.
- Generate & Sync: Main batch button. Processes all Pending posts. Run after enabling the feature for the first time.
- Refresh Stale: Re-runs all Complete posts after changing settings to apply the new configuration.
- Retry Failed: Re-runs all Error posts.
- Reset All: Clears all related article data site-wide. All posts return to Pending.
SEO Features
The central switchboard for every technical SEO capability: OpenGraph, JSON-LD schemas, AI summary box display, canonical URL rules, and noindex settings for thin content.

The SEO Features panel is the central switchboard for every technical SEO capability. Each feature can be toggled independently; none of your settings are lost when you toggle something off.
Social sharing (OpenGraph & Twitter Cards):
- OpenGraph + Twitter Cards: When someone shares your page on LinkedIn, Facebook, WhatsApp, or Slack, the platform reads OpenGraph tags to build the link preview. Without these tags, shared links look blank or wrong. Enable this and every shared link from your site will look intentional and professional. Strongly recommended.
Structured data (JSON-LD):
- WebSite JSON-LD: Tells Google your site name and URL. Foundation for a Sitelinks Searchbox in search results. Recommended.
- Person JSON-LD: Embeds your author identity into every page. Critical for E-E-A-T in technical and professional niches. Recommended for personal and authority sites.
- BlogPosting JSON-LD: Marks up every post with author, date, and headline. Enables article rich results in search, which improve click-through rates. Recommended.
- Breadcrumb JSON-LD: Displays the page hierarchy in search results. Useful for sites with well-organised category structures.
Technical SEO:
- Strip UTM params in canonical URLs: Prevents UTM tracking parameters from creating duplicate pages in Google’s index. Recommended if you use UTM tracking.
- noindex search results: WordPress’s internal search pages are thin, auto-generated content that wastes crawl budget. Recommended.
- noindex 404 pages / attachment pages / author archives / tag archives: Each prevents thin or duplicate content from diluting your site’s overall quality score. Enable all four on solo blogs.
XML Sitemap
Activates /sitemap.xml and lets you choose which post types and taxonomy pages are included. Submit the URL to Google Search Console once; the plugin keeps it updated automatically.

A sitemap is the most direct line of communication between your website and Google. With a sitemap, you hand Google a complete, up-to-date list of every important URL. The first thing to do after enabling it is submit the URL to Google Search Console under Sitemaps, a one-time step. After that, the plugin keeps it updated automatically on every publish.
- Enable /sitemap.xml: Activates the sitemap. Visit the URL directly to confirm it works before submitting to Google Search Console.
- Post types to include: Include Posts and Pages. Include custom post types only if they contain public content you want indexed.
- Include taxonomy pages: Only if your category or tag pages contain unique, curated content beyond a post list.
- Sitemap exclude list: URL paths to remove, one per line. These pages remain accessible to visitors; they just won’t be prioritised for crawling.
For sites with more than 5,000 URLs, the plugin automatically creates child sitemaps and lists them in the index. A plain-text version is available at /sitemap.txt.
Robots.txt Editor
Full control over your robots.txt from WordPress admin, with a one-click option to block major AI training bots (GPTBot, Claude-Web, Google-Extended) to prevent your content being used to train commercial AI models.

The first file a search engine crawler reads on your site is robots.txt. Without a well-configured file, crawlers may spend time in admin pages and checkout flows, wasting crawl budget that should be spent on your actual content.
- Block AI training bots: Adds Disallow rules for GPTBot (OpenAI), CCBot (Common Crawl), Claude-Web and anthropic-ai (Anthropic), Google-Extended, and others. Enable this if you don’t want your writing used to train commercial AI systems. Note: only applies to well-behaved bots that honour robots.txt.
- Custom robots.txt: Full text of your robots.txt. Common customisations:
Disallow: /checkout/,Disallow: /wp-login.php.
Critical distinction: robots.txt controls crawl access, not indexing. A blocked page can still appear in Google’s results if other sites link to it. To remove a page from the index, use the noindex meta tag (SEO Features panel) instead. Use both if you want neither crawling nor indexing.
llms.txt
Publishes a clean, machine-readable summary of your site at /llms.txt, the emerging AEO standard that gives ChatGPT, Perplexity, and Claude a structured table of contents for your content instead of raw HTML.

When someone asks ChatGPT, Perplexity, or Claude a question your site could answer, the AI reads raw HTML full of navigation, sidebars, and cookie banners that obscure the actual content. llms.txt solves this: it’s a plain-text file at /llms.txt giving AI systems a clean, structured summary of your website: your name, purpose, and a list of key posts with URLs and meta descriptions.
Publishing a well-structured llms.txt is one of the most important AEO steps you can take. It gives you direct control over how AI systems represent your content rather than leaving them to guess from your HTML. The file is generated dynamically from your live post data and AI-generated meta descriptions, another reason to run Generate Missing in the Meta Description Writer first.
- Enable /llms.txt: Activates the endpoint. Visit
yoursite.com/llms.txtto see exactly what AI crawlers will read. - Load Preview: See a live preview in your admin area before publishing.
Automatic Redirects
Captures 301 redirects automatically whenever you rename a post slug, preserving backlinks, bookmarks, and Google rankings without any manual step.

Every time you rename a post slug, the old URL becomes a dead link; any visitor who bookmarked it, any backlink pointing to it, any Google result still showing the old URL all land on a 404. Automatic Redirects prevents this silently.
When you save a post with a changed slug, the plugin records the old path and creates a permanent 301 redirect to the new URL. For Google, a 301 transfers all ranking signals (backlinks, PageRank, indexed content) from the old URL to the new one.
- Enable automatic redirects: Master switch. When on, slug renames are captured on every post save. Disable only if you have a separate redirects plugin.
- Redirect table: Shows every stored redirect with source, destination, HTTP status, hit count, and last-followed date. Use this to audit which old URLs still receive traffic.
- Add Manual Redirect: Add a redirect for any path, useful for legacy URLs from a previous CMS. The “from” field must start with
/. - Hit counter: A redirect with zero hits for several months is likely safe to delete.
Font Optimiser
Downloads Google Fonts to your own server in one click, eliminating the external CDN request that hurts Core Web Vitals (LCP) and resolving the GDPR violation of sending visitor IPs to Google.

Most WordPress themes load fonts from Google Fonts. This has two significant downsides: it’s slow (every page load makes an extra network request before text renders, directly hurting LCP), and it’s a GDPR problem (visitor IP addresses are sent to Google’s servers without explicit consent; German and Austrian courts have already ruled against sites doing this).
The Font Optimiser solves both problems by downloading font files to your own server and rewriting theme references. Fonts look identical, but they now load from your domain with no external request, no GDPR exposure, and faster rendering.
- Click Scan & Download: detects Google Fonts registered by your theme, downloads all font files, and stores them in your uploads directory.
- Click Apply Fixes: registers local font stylesheets and dequeues the Google CDN versions.
- Click Undo: instantly restores original Google CDN references if needed.
After applying, run your site through PageSpeed Insights. The “Eliminate render-blocking resources” warning for Google Fonts should be gone.
JS, CSS & HTML Optimisation
Defers non-critical JavaScript and minifies HTML output, directly improving Time to Interactive (TTI) and Interaction to Next Paint (INP), the Core Web Vitals metrics Google uses as ranking signals.

Page load speed is a confirmed Google ranking factor measured via Core Web Vitals. The three optimisations in this panel target specific metrics without changing how your site looks.
- Defer non-critical fonts: Fonts not used to render visible text are loaded asynchronously, allowing the browser to show content first. Helps First Contentful Paint (FCP).
- Defer JavaScript: By default the browser stops parsing HTML on every
<script>tag. Deferring lets the page render first and runs scripts afterwards, improving Time to Interactive (TTI) and INP. Add patterns for must-run-first scripts (A/B testing anti-flicker, cookie consent) to the exclusion list if deferring breaks anything. - Minify HTML: Removes whitespace and comments from page HTML. Typically reduces file size by 10β20%. The safest of the three optimisations, with no effect on appearance or functionality.
Run PageSpeed Insights before and after. “Reduce unused JavaScript” and “Avoid chaining critical requests” should improve after enabling JS deferral.
Category Fixer
Audits every published post and identifies category mismatches using keyword scoring and optional AI analysis, fixing the miscategorisation that dilutes topical authority signals.

When a blog post about AWS Lambda is filed under “Personal” instead of “Cloud Computing”, Google gets a confused signal about what topics each section of your site covers, weakening your topical authority. The Category Fixer audits every published post and identifies mismatches using keyword scoring and optional AI analysis.
- Click Scan Posts: scores every post against its assigned categories. Runs locally, no API calls.
- Review results sorted by mismatch score. Each row shows the current category and a suggested better one.
- Click Apply on individual rows or Apply All Changed to accept every pending suggestion at once.
Filter tabs at the top narrow the view: All, Changed, Unchanged, Low-confidence, Uncategorised. The π€ AI Analyse button sends selected posts for deeper semantic analysis, useful for posts covering multiple topics where keyword scoring is ambiguous.
Category Health
Grades every category from Strong to Empty based on post count and recency, showing at a glance which categories are building topical authority and which are consuming crawl budget for nothing.

A category with 25 posts about AWS architecture sends a strong topical signal. A category with one post from 2021 sends essentially no signal, and wastes crawl budget. The Category Health Dashboard grades every category so you can see immediately which ones are working and which are dragging down topical authority.
- Strong (green, 10+ posts): Well established. Google has strong evidence you cover this topic in depth.
- Moderate (orange, 4β9 posts): Healthy. Plan to grow it to Strong status.
- New (blue, 1β3 posts within 180 days): Actively being built. Don’t merge or delete it.
- Weak (yellow, 2β3 posts, none recent): Not being maintained. Consider merging into a broader category or committing to new posts.
- Empty (red, 0β1 posts): Contributing nothing and consuming crawl budget. Delete, merge, or write new posts for it.
- Uncategorized (grey): Posts published without a category. Move these first using the Category Fixer.
Click any grade badge to filter the view. Click βΌ Show posts in a row to see which posts belong to that category before deciding to merge or delete.
Category Drift Detection
Uses AI to detect categories that have become catch-alls, where posts about unrelated topics have accumulated over time, diluting the topical signal Google reads from each section of your site.

A “Technology” category that began with cloud computing posts might now contain personal productivity, book reviews, and hardware reviews, because they’re all vaguely “tech”. This kind of drift is one of the most common reasons sites fail to rank well. Google reads the aggregate of everything in a category to understand what that section covers, and a catch-all produces a confused, diluted signal.
Category Drift Detection uses AI to read the titles of all posts in each category and identify when they’ve stopped talking about the same topic, something hard to see manually.
- Click Run Fresh AI Analysis: the AI analyses semantic coherence across categories and flags catch-alls and drifting ones. Results are cached.
- Click Load Cached Results: reloads the most recent analysis without a new API call.
- Each flagged category shows: Verdict (Catch-all or Drifting), Confidence (High/Medium/Low), AI Reasoning, and Suggested moves with specific posts to relocate.
- Click β Move to apply individual moves, or β Move all for an entire category.
Migrate Categories
Retires weak or duplicate categories cleanly: reassign each post in one panel, then delete the now-empty category without leaving WordPress admin.

Most WordPress sites accumulate categories that have grown thin: tried once with three posts, a duplicate of something covered elsewhere, or a topic with no real depth. Thin categories dilute authority. The Migrate Categories panel retires them cleanly: everything in one place, from reassigning posts to deleting the now-empty category.
- Click π Load Categories. Listed from fewest posts to most; the lowest-count ones are the best retirement candidates.
- Click a category row to open its post list.
- For each post, set the action: Remove (only for posts assigned to two or more categories) or Swap β [another category] (required for posts assigned only to this category).
- Click Apply per row or β Apply All to process everything at once.
- Once all posts have been migrated, a red π Delete Category button appears. Click to delete the empty category.
Use Category Health to identify weak categories first, then use this panel to execute the retirement.
Broken Link Checker
Scans every outbound link across all published posts and pages, flagging broken 4xx/5xx URLs and outdated 3xx redirects that waste crawl budget and harm user experience.

Every time you link to an external website that later goes down, renames a page, or redirects to a different URL, your visitors and Google’s crawler hit a dead end. Broken outbound links erode trust and waste crawl budget. Broken Link Checker scans every outbound link across all published posts and pages in one pass.
- π Scan for Broken Links: Checks every unique external URL found in your content. Each URL is fetched only once regardless of how many posts contain it. The scan runs server-side so it won’t slow your site for visitors.
- Results table: Shows Post, URL, Anchor Text, Date Created, and Status for every issue found. 4xx/5xx responses are flagged as broken. 3xx redirects are flagged as warnings; the link works but points to an outdated URL.
- βΉ Stop: Halts the scan; results found so far are still shown.
- Fixing issues: Click the post title to open the editor, find the URL, and update or remove it. For 3xx redirects, update the link to point directly to the final destination URL.
Image SEO Audit
Scans your Media Library for missing ALT text, non-descriptive filenames (IMG_001.jpg), and oversized files, the three image SEO issues that most consistently hurt rankings and accessibility scores.

Image SEO has three dimensions: descriptive ALT text (for accessibility and Google Image Search), descriptive filenames (Google uses filenames as a ranking signal), and file size (large images slow your pages and hurt Core Web Vitals). The Image SEO Audit checks all three across your entire Media Library.
- π Scan Media Library: Checks all images for missing ALT text, non-descriptive filenames (IMG_001.jpg, screenshot2.png, DSC_0042.jpg), and oversized files above 500 KB.
- Summary cards: Total images scanned, count of missing ALT, bad filenames, and large files, so you know the scope before diving into the table.
- Results table: Only images with at least one issue are listed. Shows preview, filename, which posts use the image, file size, current ALT text, and specific issues flagged.
- Fixing issues: Click the image title to open the Media Library attachment editor where you can update ALT text directly. For filenames, re-upload the renamed file and update posts referencing the old URL. For oversized files, compress using Squoosh or TinyPNG before re-uploading.
Title Optimiser
Uses AI to rewrite post titles for search intent, keyword clarity, and the 50β60 character sweet spot, with a before/after SEO score for every suggestion and a minimum-gain threshold to filter bulk applies.

Google weighs page titles heavily when deciding rankings. A title that leads with the primary keyword, is 50β60 characters long, and matches clear search intent (how-to, best, guide) consistently outranks a clever or conversational title. Most blog titles are written for readers first; Title Optimiser rewrites them for search engines first.
- π Analyse Remaining: Runs AI title suggestions for every post not yet analysed. Runs one post at a time in a polling loop. Does not change any post titles.
- π Re-analyse All: Forces new suggestions for every post, replacing existing analyses.
- SEO score: Each post shows a before/after score (0β100) measuring keyword clarity, title length, and search intent alignment. A score below 50 means the title is likely too vague or missing keywords.
- Min. gain % threshold: Only apply titles where the AI score improves by at least this percentage. The “Will Apply” column updates live as you type, showing exactly what will change before you commit.
- β Apply to X posts: Applies suggestions in bulk. Applying a title updates the post title and URL slug. A 301 redirect is automatically created from the old URL to the new one; existing links and search rankings are preserved.
- π Scan Broken Links / π Fix Broken Links: After bulk title applies, internal links in other posts may still point to old slugs. Scan finds them, Fix rewrites them directly, eliminating the redirect hop for internal links on your own site.
Batch Schedule
Runs a background job on a daily, twice-daily, or hourly schedule to fill in missing AI content for any new posts that were not processed by the Auto Pipeline.

The AI generation tools in the AI Tools tab are manually triggered, useful for a one-time audit, but not for keeping new posts covered automatically. The Scheduled Batch runs a background job on a schedule to fill in missing AI content for posts the Auto Pipeline hasn’t processed.
The batch is designed to be safe: it only creates content where none exists. It will never overwrite a meta description you’ve written manually or a summary from a previous run.
- Enable scheduled batch processing: Master switch. Registers a WordPress Cron job at your chosen frequency.
- Schedule frequency: Hourly, Twice Daily, or Daily. Daily is sufficient for most blogs publishing a few times a week. Choose Hourly only if you publish multiple posts per day.
- Generate missing meta descriptions: The most important item to enable.
- Generate missing AI summaries: Generates the three-sentence summary box for posts that don’t have one yet.
- Score posts: Calculates SEO scores for unscored posts. Lightweight but uses one API call per post.
WordPress Cron runs when a visitor loads a page, not on a true server-side schedule. For precise scheduling, set up a real system cron to call wp-cron.php on your preferred schedule. This is a one-time server configuration step.
Last Run Log
Shows exactly what the last batch run did: how many descriptions, summaries, and scores were generated, how long it took, and any errors, confirming that the automation is working.

After enabling the Scheduled Batch, how do you know it’s actually running? The Last Run Log answers this. After each run the plugin records exactly what it did: how many posts it checked, how many descriptions it wrote, how many summaries it created, how many scores it calculated, and whether any posts failed.
- Run date/time: When the most recent batch ran. If this is more than 24 hours ago with Daily frequency enabled, WordPress Cron may not be firing; check that your site receives regular traffic or set up a system cron.
- Duration: How long the batch took. If timing out, reduce enabled tasks or switch to a faster AI model (Claude Haiku instead of Sonnet).
- Meta descriptions / Summaries / Scores generated: What was actually created in this run.
- Errors: Posts that failed, with specific reasons: API rate limit (will retry next run), no readable content (will be skipped permanently), or API key invalid (check your provider console and update the key in AI Settings).
Click Run Now to trigger a manual batch run immediately, useful for testing configuration or processing a batch outside its scheduled time.