| @@ -3,9 +3,9 @@ | ||
| 3 | 3 | Tags: seo, ai seo, schema, xml sitemap, google search console |
| 4 | 4 | Requires at least: 6.0 |
| 5 | 5 | Tested up to: 7.1 |
| 6 | 6 | Requires PHP: 7.4 |
| 7 | -Stable tag: 2.2.0 | |
| 7 | +Stable tag: 2.7.0 | |
| 8 | 8 | License: GPLv2 or later |
| 9 | 9 | License URI: https://www.gnu.org/licenses/gpl-2.0.html |
| 10 | 10 | |
| 11 | 11 | WordPress SEO plugin with AI SEO: meta descriptions, schema, XML sitemaps, Search Console, llms.txt, AEO & GEO. Your AI SEO assistant runs it via MCP. |
| @@ -15,15 +15,13 @@ | ||
| 15 | 15 | **[ThinkRank](https://thinkrank.ai/) is the AI SEO plugin for WordPress that your AI assistant can operate.** Ask Claude, ChatGPT, or Cursor to write metadata, audit posts, fix schema, and run bulk SEO work on your site — in plain language, from the chat window you already use. Underneath sits a complete SEO plugin: meta tags (SEO titles and meta descriptions), real-time on-page content analysis, keyword optimization, schema markup and structured data, XML sitemaps, robots meta, canonical URLs, Open Graph and Twitter Cards, Local SEO, llms.txt, and Google Search Console + GA4 insights — built for Google and for AI search (AEO and GEO) alike. |
| 16 | 16 | |
| 17 | 17 | Two things make ThinkRank different, and both are checkable: |
| 18 | 18 | |
| 19 | -* **Your assistant runs it directly.** ThinkRank ships a built-in connection for AI assistants (a self-hosted MCP server) — no companion plugin, no terminal. No other WordPress SEO plugin ships one. | |
| 20 | -* **Every AI feature is included, with no credit meter.** You bring your own API key (OpenAI, Claude, Gemini, OpenRouter), so there are no monthly AI credits to buy, meter, or watch expire — in free and in Pro alike. | |
| 19 | +* **Your assistant runs it directly.** A built-in, self-hosted MCP server connects your AI assistant — no companion plugin, no terminal. No other WordPress SEO plugin ships one. | |
| 20 | +* **Every AI feature is included at a flat price, with no credit meter.** Bring your own API key (OpenAI, Anthropic Claude, Google Gemini, OpenRouter): no monthly AI credits to buy, meter, or watch expire — in free and in Pro alike. | |
| 21 | 21 | |
| 22 | -Switching? The Setup Wizard **imports your data from Yoast SEO, Rank Math, AIOSEO, and SEOPress** and takes over cleanly — details below. | |
| 22 | +Switching? The Setup Wizard **imports your data from Yoast SEO, Rank Math, AIOSEO, and SEOPress**. ThinkRank works where you build — **Gutenberg, Elementor, Divi, Oxygen/Breakdance, and the Classic Editor** — and on multilingual sites running **WPML, Polylang or TranslatePress**. | |
| 23 | 23 | |
| 24 | -It works where you already build: **Gutenberg, Elementor, Divi, Oxygen/Breakdance, and the Classic Editor** — and on multilingual sites running **WPML, Polylang or TranslatePress**. | |
| 25 | - | |
| 26 | 24 | = Watch: SEO in the Assistant Era = |
| 27 | 25 | |
| 28 | 26 | SEO creator WP Simple Hacks on how AI assistants and answer engines are changing day-to-day SEO work: |
| 29 | 27 | |
| @@ -28,206 +26,120 @@ | ||
| 28 | 26 | SEO creator WP Simple Hacks on how AI assistants and answer engines are changing day-to-day SEO work: |
| 29 | 27 | |
| 30 | 28 | https://youtu.be/gdU3TwA1fPM |
| 31 | 29 | |
| 32 | -= Run Your SEO From a Chat Window — Claude, ChatGPT and Cursor = | |
| 30 | += Run Your SEO From a Chat Window: MCP for Claude, ChatGPT and Cursor = | |
| 33 | 31 | |
| 34 | -ThinkRank ships a self-contained **Model Context Protocol (MCP) server** built right into the plugin — no companion plugin, no external libraries, no terminal. It turns your AI assistant into an **SEO operator, not just an SEO copywriter**. | |
| 32 | +ThinkRank's self-contained **Model Context Protocol (MCP) server** turns your AI assistant into an **SEO operator, not just an SEO copywriter**. | |
| 35 | 33 | |
| 36 | -* **Connect Claude, ChatGPT, Cursor** or any MCP-compatible AI assistant to your WordPress site. | |
| 37 | -* **Ask for SEO in plain language:** | |
| 38 | - * "Write an SEO title and meta description for this post." | |
| 39 | - * "Which posts are missing SEO metadata?" | |
| 40 | - * "Add FAQ schema to this page." | |
| 41 | - * "Generate an llms.txt file for my website." | |
| 42 | - * "Review this page and suggest on-page SEO improvements." | |
| 43 | - * "Check Search Console opportunities for pages with high impressions and low CTR." | |
| 44 | -* **35+ SEO tools** exposed to your assistant — metadata, schema, site identity, sitemaps, robots.txt & robots meta, image SEO, social meta, instant indexing, llms.txt, SEO scores, insights and opportunities. | |
| 45 | -* **Connection health check** — a "Test connection" button makes a real call and tells you exactly which step failed. | |
| 46 | -* **Safe imports** — connected assistants can preview an SEO import as a dry run before anything is written. | |
| 34 | +* **Connect Claude, ChatGPT, Cursor** or any MCP-compatible AI assistant: Claude in one click through a guided OAuth 2.1 flow, others with an Application Password and ready-made configuration. | |
| 35 | +* **Ask for SEO in plain language:** "Write an SEO title and meta description for this post", "Which posts are missing SEO metadata?", "Add FAQ schema to this page", "Check Search Console opportunities for pages with high impressions and low CTR." | |
| 36 | +* **35+ SEO tools** exposed over MCP — metadata, schema, site identity, sitemaps, robots.txt and robots meta, image SEO, social meta, instant indexing, llms.txt, SEO scores and opportunities. | |
| 37 | +* **Safe by default** — off until an admin enables it, revocable in one click, with a connection health check and dry-run previews of SEO imports. | |
| 47 | 38 | |
| 48 | -= Easy Claude, ChatGPT, Cursor and MCP Client Setup = | |
| 49 | - | |
| 50 | -* **One-click Claude connection** via a guided OAuth 2.1 flow with PKCE — no API key to copy, no config file. | |
| 51 | -* **Application Password fallback** for ChatGPT, Cursor, and other MCP-compatible clients, with ready-made configuration details. | |
| 52 | -* **Admin-controlled, off by default, revocable in one click** — enable it under ThinkRank → MCP when you're ready; delete the connected Application Password and access ends immediately. | |
| 53 | - | |
| 54 | 39 | = Migrate from Rank Math, Yoast SEO, AIOSEO or SEOPress = |
| 55 | 40 | |
| 56 | -A guided Setup Wizard detects your current SEO plugin and imports your metadata, schema settings, sitemap settings, image SEO data, templates, and related SEO settings from **Rank Math SEO, Yoast SEO, All in One SEO (AIOSEO), and SEOPress** — then deactivates the old plugin once its data is safely migrated. | |
| 41 | +The Setup Wizard detects your current SEO plugin and imports metadata, schema, sitemap, image SEO and title-format settings from **Rank Math SEO, Yoast SEO, All in One SEO (AIOSEO), and SEOPress** — then deactivates the old plugin once its data is safely migrated. | |
| 57 | 42 | |
| 58 | -The importers go well past basic post meta: title formats, Knowledge Graph identity, author archive and role settings, IndexNow keys and history, sitemap exclusions, breadcrumbs, social defaults, News/Video sitemap post types and local business details all carry over. | |
| 59 | - | |
| 60 | 43 | Looking for a **Rank Math, Yoast SEO, AIOSEO or SEOPress alternative** because of upsell notices, metered AI credits or per-site pricing? This migration path is built for exactly that switch. |
| 61 | 44 | |
| 62 | 45 | = AI SEO Metadata Generator: Meta Tags, SEO Titles and Meta Descriptions = |
| 63 | 46 | |
| 64 | -* Generate SEO title suggestions for posts, pages, products, and custom post types. | |
| 65 | -* AI meta descriptions written for search snippets and click-through rate. | |
| 66 | -* Live SERP preview before you publish. | |
| 67 | -* Apply suggestions with one click — no copy-pasting. | |
| 68 | -* Fully editable fields with manual override. | |
| 47 | +* AI-generated SEO titles and meta descriptions for posts, pages, products, and custom post types, written for search snippets and click-through rate. | |
| 48 | +* Live SERP preview, one-click apply, and fully editable fields. | |
| 69 | 49 | |
| 70 | 50 | = SEO Content Analysis, Focus Keywords and Keyword Optimization = |
| 71 | 51 | |
| 72 | 52 | * Real-time on-page SEO content analysis with a 13-factor SEO score. |
| 73 | -* Focus keyword tracking and usage (up to 5 keywords per post) with cannibalization warnings. | |
| 74 | -* Actionable recommendations for title, meta description, headings, links, readability, and structure. | |
| 75 | -* One-click "Apply" for AI-suggested fixes — not just generic advice. | |
| 76 | -* **"Explain with AI"** on any suggestion — a short, post-specific explanation of why it matters and how to fix it. | |
| 77 | -* **Bulk SEO Optimization** — review and fix titles, descriptions, and keywords across many posts from one screen. | |
| 53 | +* Focus keyword tracking (up to 5 focus keywords per post) with cannibalization warnings. | |
| 54 | +* Recommendations for titles, meta descriptions, headings, links, readability, and structure — with one-click "Apply" and **"Explain with AI"**. | |
| 55 | +* **Bulk SEO Optimization** — fix titles, descriptions, and keywords across many posts from one screen. | |
| 78 | 56 | |
| 79 | -= Site SEO Analyzer — a Whole-Site Audit With No Google Connection = | |
| 57 | += Site SEO Analyzer: Whole-Site Audit With No Google Connection = | |
| 80 | 58 | |
| 81 | -* A crawl-free, whole-site SEO audit with a **0–100 score and letter grade**. | |
| 82 | -* Checks across **Basic SEO, Advanced SEO, Content, Performance & Technical, and Security**. | |
| 83 | -* Per-category results with "how to fix" guidance, plus deep links straight to the relevant setting. | |
| 84 | -* Runs without connecting Google — useful on staging, new sites, and client audits. | |
| 59 | +* The Site SEO Analyzer is a crawl-free, whole-site SEO audit with a **0–100 score and letter grade** across Basic SEO, Advanced SEO, Content, Performance & Technical, and Security. | |
| 60 | +* "How to fix" guidance that deep-links to the relevant setting — works on staging, new sites, and client audits. | |
| 85 | 61 | |
| 86 | 62 | = Schema Markup and Structured Data for Rich Snippets = |
| 87 | 63 | |
| 88 | -Output valid JSON-LD structured data so search engines can show rich results: | |
| 64 | +* Valid JSON-LD for Organization, Website, Article, FAQ, HowTo, VideoObject, Review, Local Business, and Breadcrumb schema, so search engines can show rich results. | |
| 65 | +* Out-of-the-box schema on posts, pages, CPTs, archives, and the homepage, validated before it reaches Search Console. | |
| 66 | +* **Import Schema From Any Website** to start from a competitor's structured data. | |
| 89 | 67 | |
| 90 | -* Organization, Website, Article, FAQ, HowTo, VideoObject, Review, Local Business, and Breadcrumb schema. | |
| 91 | -* Out-of-the-box schema on posts, pages, CPTs, archives, and the homepage. | |
| 92 | -* **Import Schema From Any Website** to clone a competitor's structured data as a starting point. | |
| 93 | -* Deployment validation to catch structured-data errors before they reach Search Console. | |
| 94 | - | |
| 95 | 68 | = SEO Blocks: FAQ, HowTo and Table of Contents = |
| 96 | 69 | |
| 97 | -* **FAQ block** — inline Q&A rendered as an accordion that works with **no JavaScript**, and outputs FAQPage structured data automatically. | |
| 98 | -* **HowTo block** — step-by-step instructions with per-step images and total time, with automatic HowTo schema. | |
| 99 | -* **Table of Contents block** — builds its list live from your headings, adds anchor links that work without JavaScript, and emits SiteNavigationElement schema. | |
| 100 | -* **Elementor widgets** for all three, so Elementor-built pages get the same content patterns and structured data as Gutenberg. | |
| 70 | +* **FAQ, HowTo and Table of Contents blocks** that output FAQPage, HowTo and SiteNavigationElement structured data automatically and work without JavaScript — with **Elementor widgets** for all three. | |
| 101 | 71 | |
| 102 | 72 | = Works With Every Page Builder = |
| 103 | 73 | |
| 104 | -Page builders store their content outside `post_content`, which is why SEO plugins often report a 1,500-word page as empty. ThinkRank reads each builder's own stored content, so scoring, bulk optimization, the post-list SEO column, cron reports, and AI assistants all see the real words on the page. | |
| 74 | +Page builders store content outside `post_content`, so many SEO plugins score a 1,500-word page as empty. ThinkRank reads each builder's stored content and adds its SEO panel inside **Gutenberg** (with a live SEO score badge), **Elementor**, the **Divi** Visual Builder, **Oxygen / Breakdance**, and the **Classic Editor**. | |
| 105 | 75 | |
| 106 | -* **Gutenberg / Block Editor** — a pinned "Configure SEO" launcher in the editor header with a live SEO score badge. | |
| 107 | -* **Elementor** — edit ThinkRank SEO fields without leaving the Elementor editor. | |
| 108 | -* **Divi** — a ThinkRank button in the Divi Visual Builder page bar opens the full SEO panel over the canvas. | |
| 109 | -* **Oxygen / Breakdance** — a floating launcher inside the builder opens the same SEO panel, with content read straight from the builder's node tree. | |
| 110 | -* **Classic Editor** — the full ThinkRank metabox with a bottom drawer and live SEO pattern previews. | |
| 111 | - | |
| 112 | 76 | = Multilingual SEO for WPML, Polylang and TranslatePress = |
| 113 | 77 | |
| 114 | -* **SEO fields in the WPML Translation Editor** — SEO title, meta description, social titles/descriptions, and focus keyword are exposed as translatable strings, so translators no longer need to open every language by hand. | |
| 115 | -* **Correct `og:locale` and `og:locale:alternate`** — each translated page advertises its own language and links to its alternates for social crawlers. | |
| 116 | -* **hreflang without duplicates** — ThinkRank emits hreflang tags **only** when WPML or Polylang isn't already printing them, so you never end up with two competing sets. | |
| 117 | -* **Language-aware XML sitemaps** — the sitemap covers every language, instead of only the one that was active when it was generated. | |
| 118 | -* Detected automatically, and completely inactive on monolingual sites. | |
| 78 | +SEO fields in the WPML Translation Editor, correct `og:locale` alternates, hreflang only when WPML or Polylang isn't already printing it, and language-aware XML sitemaps — detected automatically, inactive on monolingual sites. | |
| 119 | 79 | |
| 120 | -= XML Sitemap Generator and Indexing Tools = | |
| 80 | += XML Sitemap Generator and Instant Indexing = | |
| 121 | 81 | |
| 122 | -* Multiple sitemap modes: Basic, Complete, E-commerce, and Segmented. | |
| 123 | -* Real sitemap index with paginated child sitemaps, automatic splitting of oversized sitemaps, and per-post-type controls. | |
| 124 | -* Memory-efficient generation that stays fast on large sites. | |
| 82 | +* Basic, Complete, E-commerce, and Segmented sitemap modes with a real sitemap index, paginated child sitemaps and per-post-type controls — fast on large sites. | |
| 125 | 83 | * AI-optimized robots.txt with automatic sitemap discovery. |
| 126 | -* **Instant Indexing** — submit new and updated URLs straight to search engines (IndexNow) for faster indexing, in the background via WP-Cron. | |
| 84 | +* **Instant Indexing** — submit new and updated URLs to search engines through IndexNow. | |
| 127 | 85 | |
| 128 | -= llms.txt Generator = | |
| 86 | += Built for AI Search: AEO, GEO and llms.txt = | |
| 129 | 87 | |
| 130 | -* Generate and maintain an llms.txt file — a Markdown index of your important content that AI coding agents and agentic tools read by convention. | |
| 131 | -* Straight talk, because you deserve a vendor that gives it: Google has stated llms.txt does not affect Google Search or AI Overviews, and no reliable evidence ties the file to AI citations. We ship it as useful infrastructure for AI tooling, not as a ranking lever. | |
| 132 | -* Auto-regenerates as your content changes, with full control over what's included. | |
| 133 | - | |
| 134 | -= Built for AI Search: AEO and GEO = | |
| 135 | - | |
| 136 | 88 | **Answer Engine Optimization (AEO)** is being the answer ChatGPT, Perplexity, Gemini, Claude and Google AI Overviews give; **Generative Engine Optimization (GEO)** is being the source they cite. ThinkRank ships the groundwork both depend on — no unverifiable ranking claims: |
| 137 | 89 | |
| 138 | -* **Structured data AI systems can parse** — Organization, Article, FAQ, HowTo, Product, Local Business and breadcrumb schema, validated before output. | |
| 139 | -* **Consistent on-page signals** — meta titles and descriptions, canonical URLs, robots directives and Open Graph that agree everywhere, so answer engines read the page as you intend. | |
| 140 | -* **llms.txt** — a maintained Markdown index of your key content for AI agents. | |
| 141 | -* **An AI assistant in the loop** — over MCP, ask Claude or ChatGPT to review a page the way an answer engine reads it and apply the fixes from the same chat. | |
| 90 | +* **Structured data AI systems can parse**, validated before output. | |
| 91 | +* **Consistent on-page signals** — meta titles and descriptions, canonical URLs, robots directives and Open Graph that agree everywhere. | |
| 92 | +* **llms.txt generator** — a maintained Markdown index of your key content for AI agents and tools. Google has said llms.txt does not affect Google Search, so we ship it as infrastructure, not a ranking lever. | |
| 93 | +* **An AI assistant in the loop** — ask Claude or ChatGPT to review a page the way an answer engine reads it, and apply the fixes from the same chat. | |
| 142 | 94 | |
| 143 | 95 | = Google Search Console, GA4 and SEO Insights = |
| 144 | 96 | |
| 145 | -* Google Search Console: clicks, impressions, queries, and keyword opportunities inside WordPress. | |
| 146 | -* **Website Insights dashboard widget** — your last 30 days of Search Console traffic, top queries, and headline metrics right on the WordPress dashboard. | |
| 147 | -* Google Analytics 4: traffic and organic performance. | |
| 148 | -* PageSpeed Insights and Core Web Vitals monitoring. | |
| 149 | -* AI-powered, natural-language explanations, trends, and scheduled email SEO reports. | |
| 97 | +* Google Search Console clicks, impressions, queries, and keyword opportunities inside WordPress, plus a **Website Insights dashboard widget** for your last 30 days. | |
| 98 | +* Google Analytics 4 traffic and organic performance, PageSpeed Insights and Core Web Vitals monitoring, and scheduled email SEO reports. | |
| 150 | 99 | |
| 151 | 100 | = On-Page & Technical SEO: Robots Meta, Canonical URLs, Robots.txt, Breadcrumbs = |
| 152 | 101 | |
| 153 | -* Canonical URL controls to manage duplicate-content signals. | |
| 154 | -* Robots meta settings (noindex, nofollow) per post and globally. | |
| 155 | -* Robots.txt management with sitemap linking, kept in sync with the live file. | |
| 156 | -* Schema-enabled breadcrumb navigation, with context-aware titles and an optional border. | |
| 157 | -* Site identity and title-format management, including Tag and Archive title formats with context-aware variable buttons. | |
| 102 | +* Canonical URL controls, robots meta (noindex, nofollow) per post and globally, and robots.txt management kept in sync with the live file. | |
| 103 | +* Schema-enabled breadcrumbs, site identity, and title formats for posts, tags and archives. | |
| 158 | 104 | |
| 159 | 105 | = Open Graph, Twitter Cards and Social Media Previews = |
| 160 | 106 | |
| 161 | -* Open Graph metadata, social titles, and descriptions for every social media share. | |
| 162 | -* Twitter Cards (X) support. | |
| 163 | -* Facebook, LinkedIn, and Pinterest previews with real-time editing. | |
| 164 | -* Social profile fields validated before they're published as verification tags. | |
| 107 | +* Open Graph metadata and Twitter Cards (X), with Facebook, LinkedIn, and Pinterest social media previews you edit in real time. | |
| 165 | 108 | |
| 166 | 109 | = AI Content Brief Generator = |
| 167 | 110 | |
| 168 | -* Generate a full content brief — outline, headings, entities, and content gaps — from a target keyword. | |
| 169 | -* Competitor analysis so you can see what's already ranking. | |
| 170 | -* Generate a **complete article draft**, not just an outline, in a tabbed layout. | |
| 171 | -* Save briefs and export them in multiple formats. | |
| 111 | +* A full content brief — outline, headings, entities, content gaps and competitor analysis — from a target keyword, plus a **complete article draft**, saved and exportable. | |
| 172 | 112 | |
| 173 | 113 | = Image SEO, Local SEO & WooCommerce = |
| 174 | 114 | |
| 175 | -* **Image SEO** — automated alt text written to the Media Library record itself, so it works everywhere (not just in rendered content). Bulk-fill every image missing alt text, auto-fill new uploads, and optionally overwrite existing alt text. | |
| 176 | -* **Local SEO** — business information, opening hours, location data, Local Business schema, and a local sitemap. | |
| 177 | -* **WooCommerce** — product metadata and E-commerce sitemap support (advanced product SEO is available in ThinkRank Pro). | |
| 115 | +* **Image SEO** — automated alt text written to the Media Library itself: bulk-fill missing alt text and auto-fill new uploads. | |
| 116 | +* **Local SEO** — business information, opening hours, Local Business schema, and a local sitemap. | |
| 117 | +* **WooCommerce SEO** — product metadata and an E-commerce sitemap. | |
| 178 | 118 | |
| 179 | 119 | = Role Manager: Team and Client Access Control = |
| 180 | 120 | |
| 181 | -* Control which roles can access Essential SEO, AI Tools, and Settings areas. | |
| 182 | -* A role × capability matrix, so editors, authors, contributors, and custom roles get exactly the SEO access you intend. | |
| 183 | -* Access rules are enforced on the REST API too, not just hidden in the menu. | |
| 121 | +A role × capability matrix controls which roles reach Essential SEO, AI Tools, and Settings — enforced on the REST API, not just hidden in the menu. | |
| 184 | 122 | |
| 185 | -= Bring Your Own AI Provider Key = | |
| 186 | - | |
| 187 | -ThinkRank works with **OpenAI, Anthropic Claude, Google Gemini, OpenRouter, and compatible custom endpoints** — you bring your own key, so you keep direct control over model selection, cost, and privacy. | |
| 188 | - | |
| 189 | -* **No AI key needed for:** metadata, schema, XML sitemaps, robots meta, canonical URLs, breadcrumbs, Open Graph, Search Console/GA4, the Site SEO Analyzer, multilingual output and page-builder integrations. | |
| 190 | -* **AI key required for:** AI metadata generation, content briefs, AI insights, "Explain with AI", and the generative MCP tools. | |
| 191 | - | |
| 192 | 123 | = ThinkRank Pro = |
| 193 | 124 | |
| 194 | -Upgrade to **ThinkRank Pro** for advanced, agentic-ready SEO automation: | |
| 125 | +Upgrade to **ThinkRank Pro** for advanced SEO automation, also available to your AI assistant over MCP: | |
| 195 | 126 | |
| 196 | -* **Redirect Manager & 404 Monitor** — create and manage redirects (301/302/307/308/410/451) and log 404s with one-click "create redirect from 404". | |
| 197 | -* **AI Internal Linking** — relevance-ranked internal-link suggestions with one-click insertion, in bulk by post type. | |
| 198 | -* **Broken Link Checker** — scan content, verify links, and fix, unlink, or dismiss broken URLs. | |
| 199 | -* **Rank Tracker** — track keyword positions over time with daily Search Console snapshots and per-keyword history charts. | |
| 200 | -* **Custom Schema & Display Conditions** — add any JSON-LD schema type and control exactly where it outputs, with live validation. | |
| 201 | -* **Advanced WooCommerce SEO** — product identifiers (GTIN/MPN/ISBN), variation offers, and product Open Graph. | |
| 202 | -* **Multi-location Local SEO** — a locations table, per-location LocalBusiness schema, and the `[thinkrank_locations]` shortcode. | |
| 203 | -* **Publisher Sitemaps** — News and Video sitemaps — plus additional focus keywords. | |
| 204 | -* **Advanced Analytics** — GA4 users overview, traffic channels, top content, and URL index status inside WordPress. | |
| 205 | -* Pro features are exposed to connected AI assistants through the MCP server too. | |
| 127 | +* **Redirect Manager & 404 Monitor** (301/302/307/308/410/451) and a **Broken Link Checker**. | |
| 128 | +* **AI Internal Linking** — relevance-ranked suggestions with one-click insertion. | |
| 129 | +* **Rank Tracker** — daily keyword positions from Search Console with history charts. | |
| 130 | +* **Custom Schema & Display Conditions**, **Advanced WooCommerce SEO** (GTIN/MPN/ISBN, variation offers) and **Multi-location Local SEO**. | |
| 131 | +* **News and Video sitemaps**, additional focus keywords, and **Advanced Analytics** for GA4 and URL index status. | |
| 206 | 132 | |
| 207 | -= Perfect For = | |
| 208 | - | |
| 209 | -* WordPress site owners who want AI-powered SEO | |
| 210 | -* Bloggers and publishers producing content at scale | |
| 211 | -* SEO professionals and agencies managing client sites | |
| 212 | -* WooCommerce stores and local businesses | |
| 213 | -* Elementor, Divi, and Oxygen/Breakdance site builders | |
| 214 | -* Multilingual sites running WPML or Polylang | |
| 215 | -* Content teams, developers, and teams that run their work through an AI assistant | |
| 216 | -* Publishers who want to show up in AI answers and citations (AEO and GEO) | |
| 217 | - | |
| 218 | 133 | = Why Choose ThinkRank? = |
| 219 | 134 | |
| 220 | -* The only WordPress SEO plugin your AI assistant can operate directly (built-in MCP server) | |
| 221 | -* Every AI feature included at a flat price — your own API key, no monthly credit meter | |
| 222 | -* Real on-page and technical SEO — not just an AI writer | |
| 223 | -* A whole-site SEO Analyzer that needs no Google connection | |
| 224 | -* Accurate scoring on Elementor, Divi, and Oxygen/Breakdance pages | |
| 225 | -* WPML and Polylang support with correct hreflang and per-language sitemaps | |
| 226 | -* Schema markup and structured data for rich snippets, plus FAQ/HowTo/TOC blocks | |
| 227 | -* XML sitemap generator, robots.txt, instant indexing, and llms.txt | |
| 228 | -* AEO and GEO groundwork — structured data, clean on-page signals and llms.txt for ChatGPT, Perplexity, Gemini and AI Overviews | |
| 229 | -* One-click migration from Rank Math, Yoast, AIOSEO, and SEOPress | |
| 135 | +* The only WordPress SEO plugin your AI assistant can operate directly, through a built-in MCP server | |
| 136 | +* AI SEO titles and meta descriptions, schema markup and structured data, XML sitemaps, robots.txt and llms.txt in one plugin | |
| 137 | +* A Site SEO Analyzer that needs no Google connection, and accurate SEO scores on Elementor, Divi and Oxygen/Breakdance pages | |
| 138 | +* AEO and GEO groundwork for ChatGPT, Perplexity, Gemini and Google AI Overviews | |
| 139 | +* Multilingual SEO with correct hreflang for WPML and Polylang | |
| 140 | +* One-click migration from Rank Math, Yoast SEO, AIOSEO and SEOPress | |
| 141 | +* Built for bloggers, publishers, agencies, WooCommerce stores and teams that work through an AI assistant | |
| 230 | 142 | |
| 231 | 143 | == Installation == |
| 232 | 144 | |
| 233 | 145 | **Minimum Requirements** |
| @@ -297,13 +209,13 @@ | ||
| 297 | 209 | Yes. The Role Manager lets you decide which roles can access Essential SEO, AI Tools, and Settings, using a role × capability matrix. The rules are enforced on ThinkRank's REST API as well as in the admin menu, so access is genuinely restricted rather than just hidden. |
| 298 | 210 | |
| 299 | 211 | = Do I need an AI API key to use ThinkRank? = |
| 300 | 212 | |
| 301 | -You don't need an AI key for every core SEO feature. Metadata fields, schema controls, XML sitemaps, robots meta, canonical URLs, breadcrumbs, Open Graph, the Site SEO Analyzer, multilingual output, page-builder integrations, and Search Console/GA4 connections work without AI generation. AI-powered features — AI metadata generation, content briefs, AI insights, and generative MCP tools — require your own OpenAI, Claude, Gemini, OpenRouter, or compatible provider key. | |
| 213 | +You don't need an AI key for every core SEO feature. Metadata fields, schema controls, XML sitemaps, robots meta, canonical URLs, breadcrumbs, Open Graph, the Site SEO Analyzer, multilingual output, page-builder integrations, and Search Console/GA4 connections work without AI generation. AI-powered features — AI metadata generation, content briefs, AI insights, and generative MCP tools — require your own OpenAI, Claude, Gemini, or OpenRouter API key. | |
| 302 | 214 | |
| 303 | 215 | = Which AI providers and models does ThinkRank support? = |
| 304 | 216 | |
| 305 | -ThinkRank supports OpenAI, Anthropic Claude, Google Gemini, OpenRouter, and compatible custom endpoints. Model availability depends on your provider account and configured API key. | |
| 217 | +ThinkRank supports OpenAI, Anthropic Claude, Google Gemini, and OpenRouter. Model availability depends on your provider account and configured API key. | |
| 306 | 218 | |
| 307 | 219 | = Does ThinkRank generate SEO titles and meta descriptions? = |
| 308 | 220 | |
| 309 | 221 | Yes. ThinkRank can generate SEO titles and meta descriptions with AI and lets you edit them before publishing, across posts, pages, products, and supported custom post types. |
| @@ -351,12 +263,53 @@ | ||
| 351 | 263 | = Will ThinkRank conflict with my current SEO plugin? = |
| 352 | 264 | |
| 353 | 265 | For best results, use only one primary SEO plugin at a time — running two can create duplicate meta tags, duplicate schema, conflicting robots meta, and sitemap confusion. ThinkRank's migration workflow imports supported data and can deactivate the previous SEO plugin when migration is complete. |
| 354 | 266 | |
| 267 | += Who is ThinkRank for? = | |
| 268 | + | |
| 269 | +WordPress site owners, bloggers and publishers producing content at scale, SEO professionals and agencies managing client sites, WooCommerce stores and local businesses, and teams that run their work through an AI assistant. | |
| 270 | + | |
| 355 | 271 | = Is ThinkRank free? = |
| 356 | 272 | |
| 357 | 273 | Yes, ThinkRank is a free WordPress SEO plugin with bring-your-own-key AI features — your AI provider usage is billed by the provider you choose, giving you direct control over model, cost, and privacy. There are no ThinkRank AI credits to buy and no monthly meter, in free or in Pro. ThinkRank Pro adds advanced automation such as the redirect manager, 404 monitor, internal linking, and rank tracker. |
| 358 | 274 | |
| 275 | +== External services == | |
| 276 | + | |
| 277 | +Core SEO features need no external service. Each service below is contacted only when you use or switch on the feature that needs it — never to license or unlock ThinkRank features. | |
| 278 | + | |
| 279 | += AI providers: OpenAI, Anthropic, Google Gemini, OpenRouter = | |
| 280 | + | |
| 281 | +For AI features: metadata and content brief generation, AI insights, "Explain with AI", image alt text, and the generative MCP tools. Only providers you add an API key for are contacted. ThinkRank sends that key and the content the task needs (such as a post's title and content, your prompt, or image data) when you run an AI action, or in the background for automatic AI features you switch on. | |
| 282 | + | |
| 283 | +* OpenAI (api.openai.com): [Terms](https://openai.com/policies/services-agreement/), [Privacy](https://openai.com/policies/row-privacy-policy/) | |
| 284 | +* Anthropic (api.anthropic.com): [Terms](https://www.anthropic.com/legal/commercial-terms), [Privacy](https://www.anthropic.com/legal/privacy) | |
| 285 | +* Google Gemini (generativelanguage.googleapis.com): [Terms](https://ai.google.dev/gemini-api/terms), [Privacy](https://policies.google.com/privacy) | |
| 286 | +* OpenRouter (openrouter.ai): [Terms](https://openrouter.ai/terms), [Privacy](https://openrouter.ai/privacy) | |
| 287 | + | |
| 288 | += ThinkRank Google connection (api.thinkrank.ai) = | |
| 289 | + | |
| 290 | +Clicking Connect Google (Search Console, GA4) signs in through api.thinkrank.ai, which holds ThinkRank's Google app credentials. It receives your site URL and a one-time sign-in code on connect, and your Google refresh token whenever the access token is renewed. [Terms](https://thinkrank.ai/terms-and-conditions/), [Privacy](https://thinkrank.ai/privacy-policy/) | |
| 291 | + | |
| 292 | += Google APIs: Search Console, Analytics Data, PageSpeed Insights, OAuth = | |
| 293 | + | |
| 294 | +After you connect Google or add a PageSpeed Insights key, ThinkRank sends your access token or API key, your Search Console or GA4 property, and page URLs to test, to www.googleapis.com and analyticsdata.googleapis.com — when you open analytics or performance screens or the dashboard widget, and when scheduled reports or checks run. Disconnecting sends the token to oauth2.googleapis.com to revoke it. [Terms](https://developers.google.com/terms), [Privacy](https://policies.google.com/privacy) | |
| 295 | + | |
| 296 | += IndexNow (api.indexnow.org) = | |
| 297 | + | |
| 298 | +Only with Instant Indexing on: your host name, IndexNow key and key file location, and the URLs you publish, delete or submit, shared with participating search engines. [Terms](https://www.indexnow.org/terms), [Privacy](https://privacy.microsoft.com/privacystatement) | |
| 299 | + | |
| 300 | += WP Insights usage tracking (send.wpinsight.com, opt-in) = | |
| 301 | + | |
| 302 | +Nothing is sent unless you opt in, from the admin notice or "Get Started" in the Setup Wizard. Then, on opt-in and daily after: site URL and name, admin email, WordPress, PHP and server versions, active and inactive plugins, active theme, the plugin's file path, which ThinkRank features you use, and a country on the first send. Optional deactivation feedback is sent too. The email may be used for ThinkRank news and offers. [Terms](https://wpdeveloper.com/terms-and-conditions/), [Privacy](https://wpdeveloper.com/privacy-policy/) | |
| 303 | + | |
| 304 | += ip-api.com country lookup = | |
| 305 | + | |
| 306 | +Only on WP Insights' first send after opt-in: the IP address of that request (normally yours) is sent to look up a country name. Nothing else is sent. [Terms and privacy](https://ip-api.com/docs/legal) | |
| 307 | + | |
| 308 | += Websites you enter = | |
| 309 | + | |
| 310 | +Content brief competitor analysis and schema import fetch the URLs you type in, from your server. Nothing else is sent to those sites. | |
| 311 | + | |
| 359 | 312 | == Screenshots == |
| 360 | 313 | |
| 361 | 314 | 1. Agentic AI SEO — connect Claude, ChatGPT, or Cursor to your WordPress SEO with the built-in MCP server. |
| 362 | 315 | 2. Your AI assistant generating and updating WordPress SEO metadata in plain language via ThinkRank's MCP tools. |
| @@ -369,142 +322,75 @@ | ||
| 369 | 322 | 9. AI Content Brief Generator with competitor analysis and content gaps. |
| 370 | 323 | |
| 371 | 324 | == Changelog == |
| 372 | 325 | |
| 373 | -= 2.2.0 = | |
| 374 | -Release Date: 2026-09-02 | |
| 326 | += 2.7.0 = | |
| 327 | +Release Date: 2026-09-17 | |
| 375 | 328 | |
| 376 | -- New: Take your ThinkRank data with you. A new Import / Export screen downloads everything ThinkRank stores — post, category, tag and author SEO data plus your settings — as one file, and loads it back on this site or any other. Choose JSON for a complete, restorable file, or CSV for a spreadsheet view of your post SEO data. Restoring shows you what the file contains and lets you decide what happens where this site already has a value, before anything is written. API keys are never written to the file | |
| 377 | -- New: Importing from another SEO plugin now has its own Migration screen, separate from Import / Export, so each is turned on and off on its own | |
| 378 | -- New: Both screens are off until you switch them on, in Settings. Neither is deleted or hidden permanently — switching one on brings its screen and menu item straight back | |
| 379 | -- Changed: A fresh install no longer arrives with an AI provider already chosen. ThinkRank asks you to pick one instead of warning that a key is missing for a provider you never selected | |
| 380 | -- Changed: The Anthropic provider is now named after the vendor, matching the other three, and the model list adds Claude Opus 5 and drops models the providers have withdrawn. A model you have already saved keeps working | |
| 381 | -- Fixed: Test Connection could not test the key you had already saved. Because a saved key is shown as a mask, the button stayed greyed out and the only way to verify an expired or revoked key was to paste the whole secret in again | |
| 382 | -- Fixed: Switching to a provider whose key you had already saved showed it as unconfigured — Save was refused and Clear API key claimed there was nothing to clear | |
| 383 | -- Fixed: Brand Visibility competitors and queries could not be saved at all. The save reported success and came back empty | |
| 384 | -- Fixed: The Posts, Pages and Categories switches on the XML Sitemap screen did nothing — a type you switched off was put straight back on the next save, and went on being generated | |
| 385 | -- Fixed: Changing the sitemap index mode left the previous mode's files in your site root, still served to search engines and never refreshed again | |
| 386 | -- Fixed: Turning Instant Indexing on erased the list of post types it applies to, leaving the feature enabled with nothing to submit | |
| 387 | -- Fixed: Unticking "Allow search engines to index this content" saved, showed as unticked, and did nothing — the page stayed indexable | |
| 388 | -- Fixed: Changing one robots directive reset the other five, so a site set to noindex became indexable because someone toggled a different switch | |
| 389 | -- Fixed: The Open Graph and Twitter master switches only worked on the homepage. Turning Open Graph off still emitted its tags on every post and page | |
| 390 | -- Fixed: The Pinterest preview promised up to 500 characters of description where only 160 are ever published | |
| 391 | -- Fixed: Image SEO printed your site name twice in alt and title text for any image outside a normal post — text widgets, page-builder blocks and site-editor templates. The format preview also disagreed with what was actually written: hyphens in filenames, separator spacing, and empty parts that are dropped | |
| 392 | -- Fixed: Author archive descriptions were measured in bytes and trimmed by words, so a description in Cyrillic, Greek or Arabic was cut far too short while a long English one was not trimmed at all | |
| 393 | -- Fixed: Turning author archives off issued a permanent redirect, so a visitor's browser could keep bouncing them to the home page even after you turned the archives back on. It is a temporary redirect now | |
| 394 | -- Fixed: The Site SEO Analyzer's grade could be up to an hour out of date. De-indexing your site still showed "Site is visible to search engines" and a grade A. The audit now refreshes when the settings it reports on change, and shows when it was generated | |
| 395 | -- Fixed: The Analyzer's "fix missing alt text" button re-walked the same first 50 images on every click, so any library over 50 images could never be finished | |
| 396 | -- Fixed: The Analyzer's structured data check could only ever pass, so its one-click fix was unreachable, and its tagline check missed the WordPress default tagline on any non-English site | |
| 397 | -- Fixed: Roles given access to only some ThinkRank areas hit permission errors on the areas they had been given, and could reach settings for sections they had not. The dashboard also failed to load for them | |
| 398 | -- Fixed: A role that cannot be granted ThinkRank access — one without the ability to edit posts — is now marked as such in the Role Manager instead of appearing to be granted access that never took effect | |
| 399 | -- Fixed: Site administrators whose role comes from a role-editor plugin or a multisite super admin account saw no ThinkRank menu at all, while still having full access over the API | |
| 400 | -- Fixed: With ThinkRank Pro installed but not yet licensed, the Traffic Overview card, the WordPress dashboard widget, four Analytics cards and the Content Brief "Insert" button offered to sell you Pro or showed a server error, instead of saying the licence needs activating | |
| 329 | +- New: Hide a post from this site's own search results and archive listings | |
| 330 | +- New: RSS feed controls: excerpt only, a link back to the source post, and noindex for feeds | |
| 331 | +- New: Extra og:image tags, so a share has a fallback when the first image fails validation | |
| 332 | +- New: Post embeds carry your SEO title, description and social image | |
| 333 | +- New: A canonical URL scheme setting for sites behind a proxy that terminates TLS | |
| 334 | +- New: Brand the XML sitemap stylesheet with your logo and two colours | |
| 335 | +- New: URLs asking for content that does not exist now answer 404 instead of the page | |
| 336 | +- Changed: Archive titles drop the "Category:" label and strip markup, and your alternate site name is published as schema | |
| 337 | +- Fixed: Turning Schema off now stops every schema producer, including blocks and page builders | |
| 338 | +- Fixed: Non-Latin titles and descriptions are no longer cut short, plus minor sitemap, feed and database fixes | |
| 401 | 339 | |
| 402 | -= 2.1.1 = | |
| 403 | -Release Date: 2026-08-31 | |
| 340 | += 2.6.0 = | |
| 341 | +Release Date: 2026-09-15 | |
| 404 | 342 | |
| 405 | -- Fixed: ThinkRank could delete another SEO plugin's sitemap. Sitemaps were removed by filename alone, so on a site where Rank Math, Squirrly or another plugin owned sitemap_index.xml, sitemap-posts.xml or local-sitemap.xml, that file was destroyed — on deactivation, and also on an ordinary regeneration after a post save or a settings change. ThinkRank now marks every sitemap it writes and removes only files carrying that mark; anything it cannot prove is its own is left alone | |
| 406 | -- Fixed: Saving a title or description template containing %date% or %category% silently mangled it — %date% was stored as "te%" and %category% as "tegory%", and the mangled text was published in the title and meta description of every page using that template. New saves are correct; templates already corrupted cannot be recovered | |
| 407 | -- Fixed: On sites using Plain permalinks, Bulk SEO Optimization sat permanently on "Couldn't load your settings" and the per-post-type title, description, schema and robots form could not be reached at all | |
| 408 | -- Fixed: Performance errors were unreadable and offered no way forward. An exhausted Google quota arrived full of ' escapes and named a Google project number, a daily quota limit was described as something to retry "in a few minutes", and the three Performance panels each said something different. Every panel now shows the same plain-language message with Retry, and offers to add a PageSpeed API key where a key is what fixes it | |
| 409 | -- Fixed: A site configured with only a PageSpeed API key — no connected Google account — got permanently empty Diagnostics and Opportunities, a zero page-speed score and no field data, while the Integrations screen reported PageSpeed as configured. The API key is now accepted as a credential in its own right, and a request that fails says why instead of returning an empty list | |
| 410 | -- Fixed: With ThinkRank Pro installed but not yet licensed, twelve Pro sections showed a server error ("No route was found matching the URL") or a blank panel instead of telling you the license needs activating. Each now says the license is not active and links straight to the License screen — worst affecting someone who has just bought Pro and not yet entered their key | |
| 411 | -- Fixed: AI assistants could not read or change most site identity and sitemap settings through ThinkRank's assistant connection. The homepage, category, tag, author, search and archive title templates, the whole business/Local SEO block and the sitemap index toggle were all invisible to them, and writes to those settings were rejected | |
| 412 | -- Changed: An AI assistant connecting to ThinkRank now receives a short orientation for the session — what ThinkRank is, where to start, which tools to call in which order, what its connection is allowed to do, and that site content it reads is data rather than instructions | |
| 413 | -- Fixed: The performance history API's metric filter returned nothing for the page-speed score and dropped the dates from single-metric responses. The admin screens were unaffected; direct API and AI-assistant consumers were not | |
| 343 | +- New: Pages publish every schema you deploy, not just the first two | |
| 344 | +- Changed: Admin screens load the Inter font from your site instead of Google Fonts | |
| 345 | +- Changed: Email reports go out every 30 days to the admin email; schedule, recipients and branding are in ThinkRank Pro | |
| 346 | +- Changed: Posts take up to five focus keywords; ThinkRank Pro adds more | |
| 347 | +- Changed: Automatic AI metadata, the GA4 tag installer and SEO insights moved to ThinkRank Pro | |
| 348 | +- Removed: Brand Visibility | |
| 414 | 349 | |
| 415 | -= 2.1.0 = | |
| 416 | -Release Date: 2026-08-27 | |
| 350 | += 2.5.0 = | |
| 351 | +Release Date: 2026-09-10 | |
| 417 | 352 | |
| 418 | -- New: Each keyword check in the SEO panel now names every focus keyword and its state. A row where one of three keywords matched reads "1 of 3 matched" with a tick beside the ones that matched and a cross beside the ones that did not, instead of a single tick that looked like a pass | |
| 419 | -- New: When an Elementor accordion is already publishing its own FAQ schema for a page, ThinkRank stops publishing a second one — two FAQ blocks on one URL is a structured-data error | |
| 420 | -- Changed: The setup wizard now fills in as a preview of the wizard itself while it loads, instead of a spinner that jumped the whole screen into place when it finished | |
| 421 | -- Fixed: A focus keyword counted as found inside longer words — "art" matched "start", "cat" matched "category", "ai" matched "said" and "email". Every keyword row reported the same phantom placement at once. Languages written without spaces, such as Chinese, Japanese and Thai, are unaffected | |
| 422 | -- Fixed: Editing the permalink in the Classic Editor and saving put the old address back | |
| 423 | -- Fixed: FAQ images in a block published a single fixed-size image, so opening an answer shifted the page, and an image deleted from the media library left a broken picture on the page and in your structured data. Images now come from the media library with the right sizes for each screen. Existing FAQ blocks get this with no re-save | |
| 424 | -- Fixed: The FAQ and How-To blocks' buttons — add image, move up, move down, duplicate, remove, add question — were invisible in the editor, so the per-item image could not be reached at all | |
| 425 | -- Fixed: Pages built with Beaver Builder read as empty to SEO analysis, so scores and recommendations ignored everything in the layout | |
| 426 | -- Fixed: On sites behind a reverse proxy, automatic llms.txt delivery chose the one mode that cannot state a character set, which turned accented letters into mojibake. Those sites now move themselves to the correct mode; a site that deliberately chose the static file keeps it and is told what to expect | |
| 427 | -- Fixed: ThinkRank left its sitemap, llms.txt, robots.txt and IndexNow key in the site root after the plugin was deactivated or deleted. They are removed now, and restored if you reactivate | |
| 428 | -- Fixed: Connecting an AI assistant failed with an authentication error on Apache servers running PHP as CGI or FastCGI, while the same token worked on the longer address | |
| 429 | -- Fixed: An AI connection stopped working after a domain change, a move to staging, or a host's "reset security keys" — the connection read as missing and was silently replaced, locking out every assistant already using it. The discovery files that name your site are kept in step with your address now | |
| 430 | -- Fixed: A busy AI assistant could wipe out a connection it had just been given, after which every request failed with nothing to explain it | |
| 431 | -- Fixed: Some AI clients were refused at the consent screen for sending back exactly the callback address they had registered | |
| 432 | -- Fixed: Fewer database queries on every visitor's page load | |
| 353 | +- New: AI Search (GEO) category in the Site SEO Audit, with one-click fixes | |
| 354 | +- New: Audit findings list the exact pages and images affected | |
| 355 | +- New: Allow or block individual AI crawlers in robots.txt | |
| 356 | +- New: Automatic nofollow and new-tab for external links, with an exception list | |
| 357 | +- New: Per-content-type matrix to turn SEO features on or off | |
| 358 | +- New: Beaver Builder support, with FAQ, How-To and Table of Contents modules | |
| 359 | +- Improved: Test Connection checks your AI model as well as your key | |
| 360 | +- Fixed: Saving the Posts or Pages SEO screen reset matrix switches | |
| 361 | +- Fixed: Turning product schema off also removed WooCommerce's own product data | |
| 362 | +- Fixed: Minor Site SEO Audit, sitemap and robots.txt issues | |
| 433 | 363 | |
| 364 | += 2.4.0 = | |
| 365 | +Release Date: 2026-09-08 | |
| 434 | 366 | |
| 435 | -= 2.0.2 = | |
| 436 | -Release Date: 2026-08-25 | |
| 367 | +- New: FAQ, How-To and Table of Contents elements for Bricks Builder | |
| 368 | +- New: Option to use SEO titles in breadcrumbs | |
| 369 | +- Improved: SEO score rates Core Web Vitals and Mobile Experience from real measurements | |
| 370 | +- Improved: XML Sitemap screen warns when automatic regeneration fails or falls behind | |
| 371 | +- Fixed: Duplicate and hidden FAQ structured data on Bricks pages | |
| 372 | +- Fixed: Favicons are now generated at the correct sizes | |
| 373 | +- Fixed: 404 pages printed the matched post's meta tags | |
| 374 | +- Fixed: A failed PageSpeed audit counted as a score of zero | |
| 375 | +- Fixed: Minor breadcrumb, sitemap, video sitemap and audit issues | |
| 437 | 376 | |
| 438 | -- New: A master Enable Schema Markup switch in Schema Manager. While it is off, the Organization, Website and Person forms stay read-only with a notice explaining why, and no structured data is published | |
| 439 | -- Changed: Picking an image is now the same compact control everywhere — the post Social tab, Hero & Branding, and the setup wizard | |
| 440 | -- Fixed: Saving Schema Manager settings left a single schema type live even when four were enabled and configured | |
| 441 | -- Fixed: Turning Knowledge Graph or Auto-Generate Schema off had no effect — both stayed on | |
| 442 | -- Fixed: Opening a post's schema screen rewrote what you had deployed and published types you never chose | |
| 443 | -- Fixed: Switching a post's schema type left the old type published beside the new one | |
| 444 | -- Fixed: Structured data carried dates in a format Google reports as invalid, which drops the Article rich result | |
| 445 | -- Fixed: The site language was published as en_US where search engines expect en-US | |
| 446 | -- Fixed: Empty titles, descriptions and image dimensions were published as blank values instead of being left out, which fails validation harder than their absence | |
| 447 | -- Fixed: Your business and your personal profile were given a new identity on every address, so one business looked like many to a crawler | |
| 448 | -- Fixed: A page could carry two breadcrumb trails | |
| 449 | -- Fixed: FAQ questions and HowTo steps typed in the editor were emptied when saved, so FAQ schema could never be deployed | |
| 450 | -- Fixed: Schema deployed while a post was still a draft advertised the draft's temporary address forever | |
| 451 | -- Fixed: Importing schema from a URL missed the layout Yoast and Rank Math publish, and an entry with more than one type was rejected | |
| 452 | -- Fixed: Review and Video schema were offered in the editor and then rejected on save | |
| 453 | -- Fixed: The Person "Profile URLs" box would not take a second URL — the new line was erased as it was typed | |
| 454 | -- Fixed: One schema type failing validation took every valid type down with it on each save | |
| 455 | -- Fixed: A role granted schema access was locked out of deploying and of every site-wide schema screen | |
| 456 | -- Fixed: Schema Cache Duration was saved and then never applied | |
| 457 | -- Fixed: WooCommerce shop archives got no schema at all | |
| 458 | -- Fixed: Repeated settings saves made each save slower than the last, up to hundreds of extra database queries | |
| 459 | -- Fixed: The editor's schema preview showed raw stored data after a reload, and deleting one saved schema could overwrite another | |
| 460 | -- Fixed: An AI provider declining a request was retried, doubling the cost of a request that was never going to succeed | |
| 461 | -- Fixed: An AI assistant sending an unexpected field to ThinkRank got a server error instead of a clear message | |
| 462 | -- Fixed: The WordPress admin menu's fly-out panels were cut off at the bottom of the screen when opened from a low menu item such as Settings or Tools | |
| 377 | += 2.3.0 = | |
| 378 | +Release Date: 2026-09-06 | |
| 463 | 379 | |
| 464 | -= 2.0.1 = | |
| 465 | -Release Date: 2026-08-23 | |
| 380 | +- New: Bricks Builder support, with the SEO panel and score inside the builder | |
| 381 | +- Improved: AI referrals chart shows dates, values and per-day details | |
| 382 | +- Fixed: Builder template post types showed an SEO metabox they cannot use | |
| 383 | +- Fixed: Scheduled email reports were sent at the wrong time on sites outside UTC | |
| 384 | +- Fixed: Empty scheduled email reports are no longer sent | |
| 385 | +- Fixed: Crawlers panel reported "No llms.txt" on sites serving it | |
| 386 | +- Fixed: Several Usages page display and calculation issues | |
| 466 | 387 | |
| 467 | -- New: A Delivery Method setting for your llms.txt file — automatic, a static file in the site root, or served by WordPress. On Nginx the web server sends the file without naming its character set, which turns accented letters and curly quotes into mojibake; served by WordPress it always arrives as UTF-8. Automatic picks the right one for your server | |
| 468 | -- New: The keyword breakdown — title, meta description, content, image alt, address — now shows on posts with a single focus keyword. It was being calculated and then hidden unless you had two or more keywords, which is the least common setup. Each row now states plainly whether it Matched or not | |
| 469 | -- New: Page 2 and beyond of an archive or a multi-page post now describes itself: its own title, its own address, and previous/next links, instead of repeating page 1 | |
| 470 | -- Fixed: Settings that saved and then did nothing. The breadcrumb "Show current page" switch, the %site_description% and %tagline% variables, the sitemap include toggles for anything other than the admin screen, and the Open Graph type and Twitter card type choices all persisted without changing what your site published | |
| 471 | -- Fixed: Saving settings for a category could answer with an error after the save had already succeeded, so you re-entered settings that were never lost | |
| 472 | -- Fixed: If a settings screen failed to load it silently filled the form with defaults. Pressing Save then wrote those defaults over everything you had stored — on the Robots.txt screen that emptied a saved robots.txt. The screen now shows an error with a Retry button and refuses to save until a load succeeds | |
| 473 | -- Fixed: Flipping two switches quickly made the first one silently revert and stay reverted after a reload | |
| 474 | -- Fixed: The Local SEO switch could not be turned on — the save was rejected for a business name whose field only appears after the switch is on | |
| 475 | -- Fixed: Saving Site Identity stored a copy of the whole response back into your settings, growing the payload on every save | |
| 476 | -- Fixed: A settings screen would store any stray field a client sent it, and once stored it came back in every later response and was written again on every save, so the settings table and every settings request grew and never shrank. Only settings ThinkRank actually defines are stored now, and strays already saved are cleared on upgrade | |
| 477 | -- Fixed: An SEO title or meta description saved on a category, tag or custom taxonomy term was ignored on the archive page — the theme's own title was used and no description was published, while the admin screen showed the value as saved. Open Graph and Twitter values stored on a term now render too | |
| 478 | -- Fixed: Category, tag, author, date and search archives published no address or description to social networks, and an author archive's title lost its separator | |
| 479 | -- Fixed: A Twitter-specific description saved on a post was never used; the card showed the Open Graph description instead | |
| 480 | -- Fixed: Pages built with shortcodes or page builders published their own shortcode source as the meta description | |
| 481 | -- Fixed: WooCommerce product pages carried two aggregate ratings, which Search Console reports as a critical error on every reviewed product. ThinkRank now stands aside from WooCommerce's own product markup when it publishes its own | |
| 482 | -- Fixed: The sitemap listed the cart, checkout and account pages that ThinkRank's own robots.txt blocks, so Search Console reported "Submitted URL blocked by robots.txt" on every store | |
| 483 | -- Fixed: robots.txt put a blank line between each Sitemap line, which ends the record for a crawler, and listed child sitemaps the index already covers. The screen also reported the served file as in sync when it was not | |
| 484 | -- Fixed: On WPML sites every translation in the sitemap pointed at the default language's address | |
| 485 | -- Fixed: The readability score could report "Very Difficult (0)" on ordinary writing, because silent letters were counted as extra syllables | |
| 486 | -- Fixed: SEO suggestions are now ordered by how many points they can actually recover, and advice for a factor already scoring full marks is no longer listed | |
| 487 | -- Fixed: Core Web Vitals your site has no field data for were counted as failures, pushing the performance score down by 15–30 points for data you do not control. Unmeasured metrics are now reported as unmeasured | |
| 488 | -- Fixed: AI-drafted articles could carry heading labels ("H2: ") into the published heading text | |
| 489 | -- Fixed: Uninstalling the free plugin deleted an active ThinkRank Pro installation's license and settings. Uninstall also left scheduled tasks and term data behind, and on a network install only cleaned the current site | |
| 490 | -- Fixed: Bulk SEO Optimization could show one post type's settings under another and save them there if you switched post types quickly | |
| 491 | -- Fixed: An imported schema field could not be edited — the text snapped back as soon as it stopped being valid JSON — Print as PDF did nothing under a pop-up blocker, and the social preview could repaint with an out-of-date result | |
| 492 | -- Fixed: A failed save on Site Identity reported the literal word "undefined" instead of the reason | |
| 493 | -- Fixed: On sites whose database is not utf8mb4, none of ThinkRank's tables could be created: every settings save failed with a generic error and Quick Setup could not be completed. Affected sites heal on upgrade, and the real database error is now reported instead of a generic message | |
| 494 | -- Fixed: A page that does not exist advertised your homepage as its address and carried social tags | |
| 495 | -- Fixed: Every page carried a second viewport tag beside the theme's | |
| 496 | -- Fixed: FAQ blocks on a blog or archive listing published their own FAQ structured data beside the page's, and a block theme could publish the same questions twice | |
| 497 | -- Fixed: The MCP connection token was stored in the database in plain text. It is admin-equivalent, so it is now stored hashed and encrypted; existing connections keep working | |
| 498 | -- Fixed: Several REST routes accepted any post or page id from a user with only a section permission, exposing titles and descriptions from other authors' drafts, and four of them wrote settings onto content the caller could not edit | |
| 499 | -- Fixed: The protection against fetching internal addresses checked one address and then connected to whatever the hostname resolved to a moment later | |
| 500 | -- Performance: Anonymous page views make fewer database queries — a Google token refresh no longer runs on the front end, AI traffic counting is batched instead of locking a row on every visitor, and schema and settings lookups are cached properly | |
| 501 | - | |
| 502 | 388 | [See changelog for all versions](https://thinkrank.ai/changelog/). |
| 503 | 389 | |
| 504 | 390 | == Upgrade Notice == |
| 505 | 391 | |
| 506 | -= 2.2.0 = | |
| 507 | -Adds an Import / Export screen that takes your ThinkRank data out as one file and loads it back. Fixes the sitemap post-type switches, robots directives resetting each other, the social master switches, and Role Manager permissions. Recommended for all sites. | |
| 392 | += 2.7.0 = | |
| 393 | +Adds per-post search and archive visibility, RSS feed controls, alternative og:image tags, SEO metadata on post embeds, a canonical URL scheme setting and sitemap branding. Fixes the Schema master switch and non-Latin title and description truncation. Recommended for all sites. | |
| 508 | 394 | |
| 509 | -= 2.1.1 = | |
| 510 | -Fixes ThinkRank deleting another SEO plugin's sitemap, %date% and %category% corrupted on save in title and description templates, Bulk SEO Optimization unreachable under Plain permalinks, and unreadable Performance errors. Recommended for all sites. | |
| 395 | += 2.6.0 = | |
| 396 | +Pages publish every schema you deploy, and some features move to ThinkRank Pro. Pro users: update Pro to 2.7.0 at the same time. | |