Support Log in
AI SEO Analysis

Rank Forge Changelog — Latest Updates and Releases

Release notes of Rank Forge (the free plugin) and Rank Forge Pro (the add-on), newest first. They are the Changelog sections of the readme files of the two packages. Free and Pro have their own version numbers. A line that applies to only one of the two builds of the free plugin is left out, and so is a release made of such lines only.

Rank Forge (free plugin)

1.2.9

  • Needs Rank Forge Pro 1.2.5 or newer if you run the add-on, as before.
  • Fixed: when the Rank Forge Pro add-on is active but its licence does not cover Search Console, Performance and Content Decay told you to connect Google Search Console, which could not load any data. They now say that the licence is missing and link to the add-on’s licence page, whether or not Google is connected. This needs Rank Forge Pro 1.2.13 or newer.
  • Content Decay: when no Search Console data has been loaded yet and none is waiting to load, the screen now says so and offers a “Load Search Console data now” button, instead of sending you to Performance. This needs Rank Forge Pro 1.2.13 or newer; with an older add-on the previous text stays.

1.2.8

  • Needs Rank Forge Pro 1.2.5 or newer if you run the add-on, as before.
  • Content Decay and Performance: when the Pro add-on does not load Search Console data on the site, the screen says so, gives the reason and links to the add-on’s licence page, instead of telling you to click a Refresh button that starts nothing. Performance hides its Refresh button then. The message needs Rank Forge Pro 1.2.13.
  • Fixed: in the edition distributed through avakode.com, with debug logging on, wp-admin no longer writes “_load_textdomain_just_in_time was called incorrectly” notices for this plugin on every request.
  • Fixed: on PHP 8.1 and later the plugin no longer writes “trim(): Passing null to parameter” deprecations to debug.log on every front-end request of a site installed at the root, or on a request for an address with no path (such as //).
  • Fixed: deleting the plugin now also removes the end date and the saved Search Console comparison that A/B tests keep on posts (not when you chose to keep the data).

1.2.7

  • Needs Rank Forge Pro 1.2.5 or newer if you run the add-on, as before.
  • Product markup: a product’s brand now comes from its own brand (WooCommerce Brands, Perfect Brands for WooCommerce or YITH WooCommerce Brands), a “brand” product attribute, or the new Default brand field under Settings, Search Appearance. The name of your site is no longer printed as the brand, so a shop that has not set a brand now prints no brand property.
  • Product markup: the GTIN set on the product in WooCommerce is printed as gtin8, gtin12, gtin13 or gtin14, by its length; a number of any other length is not printed.
  • Product markup: new MPN field next to the SKU on the product’s Inventory tab (a product attribute named “mpn” works too), printed as mpn.
  • Product markup: every offer with a price now says until when the price holds: the end of a running sale, otherwise 31 December of next year.
  • Product markup: new Product Markup card under Settings, Search Appearance with shipping details (country, cost or free shipping, handling and delivery days). They are printed only when every field is filled in, and not for virtual or external products.
  • Product markup: the same card holds the return policy (country, days, method, who pays for return shipping), printed only when every field is filled in, and not for virtual or external products.
  • A/B test (Rank Forge Pro): the meta title, Open Graph title and Twitter title now come from one place, so a Variant B title can reach all of them. A title typed by hand for Open Graph or Twitter still wins.
  • Content Decay: the empty-state text and button now send you to Performance, the screen that exists, instead of Rankings.
  • Performance and Content Decay show when Search Console data is loading, why a load failed (with a Try again button), or that a property still has to be chosen.
  • Hints about connecting Google open the screen that has the Connect Google button; the dashboard card appears only when the connection is available.
  • Site Audit: WooCommerce products show their type in the list; the AI works out a product’s focus keyword from its name, short description and description.
  • Site Audit: the AI never rewrites the description of a product; a fix that would write it says so and changes nothing. The AI can write a product’s meta title, meta description and focus keyword.
  • Fixed: bulk fixes no longer strip backslashes from the content they save, and an applied meta title, description or focus keyword keeps its backslashes.

1.2.6

  • Needs Rank Forge Pro 1.2.5 or newer if you run the add-on, as before.
  • Video SEO: a Thumbnail URL or Description typed in the Video SEO box is no longer replaced by an automatic one when the Video URL field is empty and the post has a video in it. A field left empty still takes the automatic value.
  • Redirects: saving a redirect with a type that is not supported now shows an error instead of storing a rule that visitors got as a 301. Rules saved earlier are not changed.
  • Schema Builder: choosing a schema type (Event, Review, WebPage, VideoObject and so on) without filling in a form no longer replaces the automatic schema of the page with an empty type. A chosen Review, Event, VideoObject or Product now prints only when the post has what it needs (a rating from 1 to 5, a start date, a video address, a price), and a Review no longer gets a rating of 5 that nobody gave.

1.2.5

  • Needs Rank Forge Pro 1.2.5 or newer if you run the add-on, as before.
  • Auto-Link (Pro add-on): when no internal link could be added, the button no longer says “Linked!” and reloads the page; it shows why nothing was added and leaves the post as it was.
  • Redirects: a rule of type 410 (Gone), for example one imported from SEOPress, now answers “410 Gone” with your theme’s 404 page. Before, the visitor saw a WordPress error page.
  • Settings: saving the Settings screen no longer deletes settings that have no field on it, such as the switch that turns off the cleaning of image file names.
  • Local SEO: the Veterinarian and Locksmith business types now use the real schema.org types (VeterinaryCare and Locksmith); the old names are not schema.org types, so search engines skipped them. A type saved earlier is carried over by itself.
  • Local SEO: saving the form no longer drops the business image address that an import or code had set, so “image” stays in the markup.
  • Content Brief (Pro add-on): the heading structure and the target word count of a brief now show on the screen, in new briefs and in saved ones.
  • Video schema: embedUrl now belongs to the same video as contentUrl, not to another video on the page.

1.2.4

  • Needs Rank Forge Pro 1.2.5 or newer if you run the add-on, as before.
  • The AI buttons on the Local SEO and Schema screens, the Fix buttons in the SEO box and its “AI-Powered” mark show only while Rank Forge Pro reports its AI features running, so no button leads to “Pro add-on is not running”.

1.2.3

  • Deleting the plugin now cleans up on every site of a network, not only the main one. When it is the last Forge product on the site, everything the Forge plugins keep in common goes too; while another Forge product is still installed, that shared data stays for it.

1.2.2

  • robots.txt: the physical /robots.txt file is now written only through WordPress’s own file API, and only where WordPress can write to the site root directly. On a host that would ask for FTP details nothing is written and no credentials are requested; the screen then says WordPress is not allowed to write there and what to do (delete the file over FTP or in the hosting control panel, and Rank Forge serves the robots.txt built from your settings).

1.2.1

  • When a shortcode in an FAQ answer or in a HowTo or Recipe step throws while Rank Forge builds the schema markup, the fragment still goes in with its shortcodes stripped, as before, and the new action rankforge_schema_shortcode_failed now tells your site, with what was thrown, the post and the fragment. Nothing is written to a log by default: hook your own logging onto the action if you want to know. What a handler prints stays out of the page head, and an error it throws goes no further.

1.2.0

  • The Dashboard’s first card runs the site-wide analysis on the card itself, with its progress, and then names your weakest post, its main issue and a link to its editor, instead of sending you to Settings. While only some of your posts have a score it shows “N of M analyzed” rather than “No urgent fixes”, and “Analyze the remaining” finishes an interrupted run without starting over.
  • The site-wide analysis, from that card and from Settings → Automation, now covers every type of post Rank Forge analyzes (pages, products and other public types, not only posts) and any number of them, instead of the first 100 posts. It no longer fails on a site in a sub-directory or with plain permalinks. Posts that cannot be analyzed are counted with a link to the first one, and failed requests get a “Try again” button.
  • The Dashboard’s “posts without description” and “posts without keyword” counts cover the same post types as the analysis (products and other custom types included, not only posts and pages), and a post you cannot edit is listed without a link.
  • The Dashboard cards “Add missing meta descriptions” and “Set focus keywords” open the posts they counted: the list of the post type with the most of them, with a line saying what is shown and a “Show all” link, and the other types that have such posts as links with their counts. The list stays narrowed when you search or filter it.
  • “Most common issues” on the Dashboard counts each check once, in your language: the same check with other numbers in its text used to be several lines, and a site analyzed in two languages showed every check twice.
  • The XML sitemap writes every <lastmod> in UTC. On a site set to a time zone behind UTC the dates ran ahead of the real time, and search engines can ignore a date in the future. A post without a valid modified date has no <lastmod>.
  • The “AI Search Readiness” report that the Pro add-on runs from the post editor now lists its strengths and suggestions under the score (only the score showed until now), and shows them as plain text.
  • The automatic FAQ markup and the HowTo and Recipe steps now contain what the page shows: shortcodes in a question, answer or step are rendered before the tags are removed, and words in separate blocks no longer run together. The answer to the last question now has an end: it stops at a form, aside, navigation or footer and keeps its first 150 words. A shortcode that throws or prints can no longer break the page head. The rankforge_schema_render_shortcodes filter turns the rendering off.
  • The Indexing tab of the Analytics section no longer opens “Sorry, you are not allowed to access this page.” when the Pro add-on is active without a licence; the screen that names the add-on is shown instead.
  • New filter rankforge_canonical_url: another plugin can change a post’s custom canonical URL, or withdraw it by returning an empty string, in which case Rank Forge prints no canonical tag for that post.

1.1.13

  • Deleting the plugin leaves the job queue the Forge plugins share in place while another Forge plugin or add-on is still on the site. The check used to miss add-ons, and Rank Forge installed from wordpress.org, so the queue could be dropped while a neighbour still had jobs in it.
  • The readme no longer says the XML sitemap is hreflang-aware when Lang Forge is active: the sitemap lists no language alternates, with or without Lang Forge.

1.1.12

  • This release needs Rank Forge Pro 1.2.5 or newer if you run the add-on. The licence screen, the upgrade prompt and the upgrade banner moved into the separate Rank Forge Pro add-on; this plugin only notes which features the add-on provides, with a link to its product page. An older add-on stays switched off until it is updated, and an admin notice names both versions. Nothing already saved is changed.
  • The post editor shows no AI buttons unless the add-on runs them – no locked “AI” buttons and no upsell dialog. One line under the SEO title and description says where the AI suggestions come from.
  • Settings no longer link to an upgrade: the AI, auto internal linking and Google Search Console sections say that they come with the add-on.
  • The screens the add-on provides (Google Search Console, Site Audit, Content Brief) name it, with a link, instead of showing a locked page.

1.1.11

  • The PRO badge in the menu and in the section tabs marks a screen the Rank Forge Pro add-on provides and this site does not have. It follows whether the add-on is installed, not the licence.
  • The screens the add-on provides check for it themselves before they open, not only through the menu entry that leads to them. No visible change.
  • The wordpress.org package no longer loads bundled translation files it does not carry: its translations arrive as language packs, which WordPress loads by itself.

1.1.9

  • Screens that need the paid add-on now check that its code is actually installed instead of trusting the licence. On a site whose licence is live but whose add-on is inactive or older than this release, the Search Engine Submission panel, the AI actions in the editor, the content optimiser and the automatic internal links could end a request with a fatal error; they now fall back to what this plugin does on its own.
  • The price badge on AI buttons is drawn only where the credits widget exists, so the button itself no longer depends on it.
  • Deleting the last Forge product on a site now clears the job queue the Forge plugins share – its table, its two scheduled events and its version marker. While any other Forge product is still installed, deleting this one leaves the queue exactly as it is, because the pending jobs in those rows are that product’s too.
  • A Rank Forge Pro add-on older than 1.2.0 is switched off instead of left running on an entitlement this version can no longer check, and an admin notice names the version you have, the version you need and what is unavailable until you update. Nothing already published is rewritten and your settings are kept.

1.1.6

  • Smaller package and one less admin surface: the SDK’s own menu, opt-in screen and promotional notices are gone.

1.1.3

  • Generated CSS and JavaScript is assembled as a string instead of being captured through an output buffer, so the plugin no longer opens a buffer that another component’s hook could interleave with.
  • Menu pages decide what to show by whether the class that renders them is loaded, not by asking the licence. Redirects and Local SEO ship in this download and now open with no check at all.

1.1.2

  • The custom canonical tag is now printed directly at its hook. The plugin used to buffer the entire head output between two hooks so competing canonical tags could be stripped from it; that buffer is gone. WordPress core’s canonical is still suppressed while a per-post custom canonical is set, and Yoast’s through its filter, so the URL you set is still the one that ships.
  • Every value handed from PHP to inline JavaScript is JSON-encoded with hex escaping for the characters that could end a script block, so translations and settings can never terminate the tag they sit in.
  • The bulk AI-fix endpoint no longer raises the PHP memory limit – its capped, sequential work never needed the headroom.
  • Removed an unused helper that assigned window globals.

1.1.1

  • CSS and JavaScript that screens build from PHP state now go through the WordPress enqueue API instead of being written into the page as tags, so other code can deregister, reorder or defer them.
  • Filenames: uploads are cleaned only for images, and only for files you actually upload. The rule used to apply to every filename WordPress touched, and it stripped non-Latin scripts entirely – a file named in Russian, Japanese or Greek came out as a timestamp. Accented Latin now transliterates, and a name that leaves nothing behind is kept as WordPress sanitised it. Add ‘image_filename_cleanup’ => false to the settings to turn it off.
  • The sitemap stylesheet is located from the plugin’s own file rather than a hardcoded directory name, so it resolves whatever folder the plugin is installed under.
  • Publishing robots.txt no longer empties the whole LiteSpeed cache; only the robots.txt URL is purged.

1.1.0

  • The plugin is now called Rank Forge. Nothing about what it does has changed; the name did.
  • Everything the old name stored is carried over on first load: the analysis, redirect and breadcrumb tables, every setting, and the SEO fields on every post. Redirects keep working, stored analyses stay, and the meta on your posts stays. If the takeover is interrupted it resumes on the next request rather than half-applying.
  • Scheduled jobs left under the old names are unscheduled, and the old cached values are dropped so they regenerate under the new ones.

1.0.40

  • Removed the last licence checks that stood over code shipped in this download. The settings screen asked the licence before writing two flags, “auto_meta” and “internal_links_enabled” – neither was ever read by anything, while the meta generation they appeared to control (title and description templates, canonical URLs, Open Graph tags; no external calls) is part of this plugin and has always run for everyone. Both flags are gone rather than merely ungated.
  • Auto internal linking, Search Console and Site Audit now show as unavailable based on whether their implementation is loaded, not on a licence call. Those three are implemented in the separate add-on and are not present here, so nothing shipped is being withheld.
  • The Site Audit screen guarded itself with a plan check; it now checks for the class it needs, which is what actually decides whether the page can render.

1.0.38

  • The broken-link scanner is now part of this plugin with no restriction. It was marked Pro while its whole implementation shipped here – the crawler, the SSRF-hardened request wrapper and the results screen – which meant built-in functionality was gated. Internal link suggestions remain a separate add-on feature, because that code genuinely is not in this download.
  • Removed licence checks that could never fail: image SEO, Local SEO, redirects, the Schema Builder and Video SEO have been free since the 2026-05-29 rebalance, but the code still asked for a licence and the readme still listed several of them as Pro.
  • Availability of add-on features is now decided by whether the add-on is installed, not by a licence call.

1.0.37

  • Security hardening: all dynamic output is now escaped late at the output site with the context-appropriate function (esc_html/esc_attr/esc_url, esc_html__ for translated strings used as format strings, and wp_kses for trusted pre-built admin/field markup). No behavioural changes.

1.0.35

  • Security: hardened JSON-LD structured-data output (schema, breadcrumbs, local business, video) against script-context breakout by escaping <, > and & (JSON_HEX_TAG / JSON_HEX_AMP).
  • Fix: Organization structured data no longer emits an empty “description” property when the site tagline is unset.

1.0.32

  • New: Support menu item that opens the Avakode support dashboard.
  • New: Contextual, dismissible Pro feature tips on the plugin dashboard (Free users only).

1.0.29

  • Numbers / power words in the SEO title are now shown as optional “Optimization ideas” instead of issues – they affect click-through, not Google rankings.
  • Clearer one-time setup guidance for the Google Indexing API (“Submit to Google Index”).
  • WordPress.org compliance and code-quality improvements.

1.0.28

  • Fixed: the XML sitemap no longer 301-redirects to a trailing slash, so Google Search Console can fetch the sitemap index.
  • Kept Rank Forge admin submenus accessible when multiple Forge plugins are active.

1.0.27

  • Fix: Rank Forge admin sub-pages (Settings, Analytics, Content and Tools) now stay accessible when other Forge plugins are active alongside Rank Forge Pro.

1.0.26

  • Security: the Google Account connection (Search Console / Analytics) now starts via a one-time token, so the license key is never placed in a URL.

1.0.25

  • WordPress.org compliance and licensing hardening.
  • Pro entitlement is now resolved by the Rank Forge Pro add-on; the free plugin bundles no licensing SDK.
  • Removed a deprecated Google sitemap-ping request fired on publish.
  • readme metadata cleanup.

1.0.0

  • Initial release.

Rank Forge Pro (add-on)

1.2.14

  • Fixed: the A/B test progress line said “Enough weeks have passed” after four calendar weeks, even when the comparison below had not yet counted the weeks it needs. It now says so only when the comparison has at least 2 full weeks of each variant (a week counts once 3 days have passed after it ends), the same rule the comparison uses.
  • A/B test: before you first turn the test on, the explanation no longer asks you to connect Google Search Console when it is already connected. It also says that the impressions it asks for are Google’s impressions, not the page views counted on your site, and the page-view line of a running test says “on your site” too.
  • Search Console: with Rank Forge 1.2.9, a site that has this add-on but no licence for Search Console sees the reason and a link to the licence page on Performance and Content Decay, instead of “Connect Google Search Console”. The add-on already reports it since 1.2.13.

1.2.13

  • A/B test: the hints in the editor now match the comparison next to them. They no longer send you to Google Search Console to pick the winner, and no longer name a 2,000 monthly impressions threshold. They name the real rules (at least 2 full weeks and 1,000 Search Console impressions of each variant; the first 3 days of every week are skipped) and say the comparison appears once Google Search Console is connected.
  • A/B test: reaching the page-view count of 2,000 per variant no longer says “comparison is reliable”; the Search Console comparison has its own rules and says below whether there is a winner.
  • A/B test: when the impressions are too few, the comparison adds that Google may list the page under another address (a redirect, http instead of https, with or without www) and that only the page’s current address is counted.
  • Search Console: when the licence does not cover loading Search Console data, Rank Forge 1.2.8 shows that on Content Decay and Performance instead of a Refresh that starts nothing. The add-on reports it to the screens.

1.2.12

  • A/B test: the post editor now compares Variant A with Variant B by the clicks, impressions, click-through rate and average position that Google Search Console reports for the page, week against week. Only full weeks count, and the first 3 days of each week are skipped while Google catches up. It needs Google Search Console connected with a property chosen.
  • A/B test: a winner is named only when the gap is clear and steady: at least 2 full weeks and 1,000 impressions of each variant, click-through rates at least 10 percent apart and not down to chance, the same variant ahead in every pair of weeks, and a similar average position. Otherwise the editor says why there is no winner yet. Nothing is switched by itself; you decide.
  • A/B test: the Search Console numbers are for administrators. Other editors see the last saved result, or one line saying the numbers are visible to administrators.
  • A/B test: the numbers load after the editor has opened, so opening a post never waits for Google. They are refreshed about once a day.
  • A/B test: when you switch a test off, the editor keeps its last comparison. Three days after the end, once the last week has settled, those numbers stay as they are and Google is not asked again. Switching the test on again starts clean.
  • Fix: Variant B’s description could be handed to other posts when one process renders several posts in a row (WP-CLI or a long-lived worker). It now goes only to the post under test, in its Variant B weeks.

1.2.11

  • A/B test: the title of Variant B now shows as the page title in the weeks Variant B runs; before, the page kept showing Variant A’s title. With Rank Forge 1.2.7 or newer the meta title, Open Graph title and Twitter title follow it too.
  • A/B test: switching a test off and on again starts it from the beginning (the weeks and the page views of the earlier run are cleared). While a test stays on, editing its texts resets nothing.
  • A/B test: the counters say “page views” instead of “impressions”, which is what they count.
  • Search Console data now starts loading in the background as soon as you choose a property, without waiting for the nightly run or clicking Refresh.
  • Switching to another property or disconnecting Google clears the previous property’s tables, also when a load was still running.
  • A failed request to Google no longer replaces your Search Console tables with an empty result.
  • Site Audit also checks published WooCommerce products: the 200 newest posts and pages, as before, and the 200 newest products. Thin content, missing H1 and internal link checks are not run on products.
  • The AI writes a product’s meta title and description from its name, short description and description. Site Audit never rewrites a product’s description.

1.2.10

  • The AI features work during a free trial with no licence key, with the WordPress.org build of Rank Forge or with 1.2.4 or newer from avakode.com: they used to answer “AI not configured” or quietly fall back to the plain version.
  • With Rank Forge 1.2.4 from avakode.com, a connected Avakode account pays for an AI action when there is no active licence key and the trial’s credits are used up or it has ended.
  • When the credits run out, the trial ends or the account connection needs attention, the AI buttons say so and link to where to fix it, instead of failing quietly.
  • Fix: the REST route for internal link suggestions stopped with an error when it asked the AI; it works again.
  • The add-on’s copy of the Forge API client, used with the WordPress.org build of Rank Forge, matches the core again.

1.2.9

  • Deleting the last Forge plugin or add-on on a site now removes everything Forge stored on the site, on every site of a network (the statistics settings and the install ID, the shared job queue with its scheduled events, the settings and caches the Forge plugins share). While another Forge product stays, only this add-on’s own share goes.

1.2.7

  • AI Search Readiness: the report’s answer comes back in one shape whatever the AI wrote: a score from 0 to 100 and two lists of plain-text lines, strengths and suggestions. A line the AI returned as an object is reduced to its text, empty lines are dropped, and an answer without a numeric score counts as no answer.

1.2.6

  • Deleting the add-on now runs a clean-up of its own – the add-on used to ship no uninstall script, so WordPress ran none. The licence key and site token it stored, and the Google Search Console connection’s client ID, secret and tokens, are removed, and so are the site’s Avakode account binding and the hourly statistics event when it is the last Forge plugin on the site.
  • The unused SEO-analysis request is removed from the add-on’s API client.

1.2.5

  • The licence class, the License screen, the upgrade prompt and the upgrade banner moved here from the free plugin (Rank Forge 1.1.12), which now asks nothing about licences. The banner appears on the same Rank Forge screens as before, through a hook the free plugin leaves for it.
  • Needs Rank Forge 1.1.12 or newer: with an older free plugin the add-on stays off and says which version it needs, instead of clashing with the licence screen that plugin still carries.
  • Updates: the update client starts before the add-on checks its free plugin, so an add-on that cannot run with the installed core can still be updated; “View details” falls back to the add-on’s own homepage and requirements.
Forge AI Assistant Online

Hi! I'm the Rank Forge AI assistant. Ask me anything about the plugin — setup, features, troubleshooting, or development.

Just now
Powered by Forge AI · Browse docs