{"id":297331,"date":"2026-05-18T16:26:20","date_gmt":"2026-05-18T16:26:20","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/contentrefresh-ai\/"},"modified":"2026-05-22T17:04:39","modified_gmt":"2026-05-22T17:04:39","slug":"crai-content-updater","status":"publish","type":"plugin","link":"https:\/\/da.wordpress.org\/plugins\/crai-content-updater\/","author":23475377,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.5.5","stable_tag":"2.5.5","tested":"7.0","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"CRAI Content Updater","header_author":"CRAI Content Updater","header_description":"AI-powered content refresh tool. Keep your posts accurate and ranking by refreshing facts, dates, prices, reviews, SEO meta, and tone using Claude, OpenAI, or Gemini. Every change saves as a draft for your review before going live.","assets_banners_color":"768593","last_updated":"2026-05-22 17:04:39","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/contentrefreshai.com\/","header_author_uri":"https:\/\/contentrefreshai.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":209,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.4.14":{"tag":"2.4.14","author":"mark456321","date":"2026-05-18 16:26:07"},"2.4.23":{"tag":"2.4.23","author":"mark456321","date":"2026-05-20 14:34:55"},"2.5.5":{"tag":"2.5.5","author":"mark456321","date":"2026-05-22 17:04:39"}},"upgrade_notice":{"2.5.5":"<p>Fixes all Plugin Check warnings in uninstall.php: variable naming (crai_ prefix) and phpcs ignores for expected direct DB queries. No functional changes.<\/p>","2.5.4":"<p>Important compliance update: adds missing uninstall.php cleanup and corrects misleading Pro labels on features that are actually free (unlimited refreshes, bulk refresh, CSV export). Recommended for all users.<\/p>","2.5.3":"<p>Fixes two Plugin Check warnings: removes exclusionary post__not_in query (logic moved to PHP filtering) and reduces plugin tags to the 5-tag WordPress.org limit.<\/p>","2.5.2":"<p>Fixes all Plugin Check errors and warnings: updates &quot;Tested up to&quot; to WordPress 7.0, corrects two SQL interpolation warnings in the performance tracker, and fixes an exclusionary query parameter warning.<\/p>","2.5.1":"<p>Adds estimated API cost display to the Draft Created modal. Documents built-in Yoast SEO and Rank Math compatibility. No breaking changes.<\/p>","2.5.0":"<p>Major update: fixes all button click handler failures (Refresh, Approve, Discard, Compare, Bulk Update, Test Connection), adds accurate cost tracking in History, adds AI provider status widget, and removes all Pro\/license gate code. Recommended for all users.<\/p>","2.4.23":"<p>Fixed plugin tags format for WordPress.org compliance. No functional changes.<\/p>","2.4.20":"<p>Important bug fixes: corrects Gemini 2.5 grounding failures, fixes blank-prompt crash on Elementor posts, and prevents draft slugs from being overwritten. Recommended for all users.<\/p>","2.4.4":"<p>Critical fix: performance views table is now created correctly on activation. Recommended for all users.<\/p>","2.4.3":"<p>Critical fix: Performance baseline capture was failing with a MySQL syntax error after every draft approval. Recommended for all users.<\/p>","2.4.0":"<p>Major compliance update: removed all gated\/locked Pro feature references, comprehensive escaping pass, and large dead-code cleanup. Recommended for all users.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3536030,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3536030,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3546484,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3546466,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.4.14","2.4.23","2.5.5"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3546528,"resolution":"1","location":"assets","locale":"","width":1671,"height":816},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3546528,"resolution":"2","location":"assets","locale":"","width":1669,"height":815},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3546528,"resolution":"3","location":"assets","locale":"","width":1661,"height":822},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3546528,"resolution":"4","location":"assets","locale":"","width":1665,"height":816},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3546528,"resolution":"5","location":"assets","locale":"","width":1668,"height":808},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3546528,"resolution":"6","location":"assets","locale":"","width":1648,"height":827},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3546528,"resolution":"7","location":"assets","locale":"","width":1623,"height":840},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3546528,"resolution":"8","location":"assets","locale":"","width":1095,"height":639}},"screenshots":[]},"plugin_section":[],"plugin_tags":[263603,236374,74735,251794,476],"plugin_category":[55],"plugin_contributors":[263395],"plugin_business_model":[],"class_list":["post-297331","plugin","type-plugin","status-publish","hentry","plugin_tags-ai-content-updater","plugin_tags-ai-seo","plugin_tags-content-refresh","plugin_tags-evergreen-content","plugin_tags-seo-optimization","plugin_category-seo-and-marketing","plugin_contributors-mark456321","plugin_committers-mark456321"],"banners":{"banner":"https:\/\/ps.w.org\/crai-content-updater\/assets\/banner-772x250.png?rev=3546466","banner_2x":"https:\/\/ps.w.org\/crai-content-updater\/assets\/banner-1544x500.png?rev=3546484","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/crai-content-updater\/assets\/icon-128x128.png?rev=3536030","icon_2x":"https:\/\/ps.w.org\/crai-content-updater\/assets\/icon-256x256.png?rev=3536030","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/crai-content-updater\/assets\/screenshot-1.png?rev=3546528","caption":""},{"src":"https:\/\/ps.w.org\/crai-content-updater\/assets\/screenshot-2.png?rev=3546528","caption":""},{"src":"https:\/\/ps.w.org\/crai-content-updater\/assets\/screenshot-3.png?rev=3546528","caption":""},{"src":"https:\/\/ps.w.org\/crai-content-updater\/assets\/screenshot-4.png?rev=3546528","caption":""},{"src":"https:\/\/ps.w.org\/crai-content-updater\/assets\/screenshot-5.png?rev=3546528","caption":""},{"src":"https:\/\/ps.w.org\/crai-content-updater\/assets\/screenshot-6.png?rev=3546528","caption":""},{"src":"https:\/\/ps.w.org\/crai-content-updater\/assets\/screenshot-7.png?rev=3546528","caption":""},{"src":"https:\/\/ps.w.org\/crai-content-updater\/assets\/screenshot-8.png?rev=3546528","caption":""}],"raw_content":"<!--section=description-->\n<p><strong>CRAI Content Updater keeps your WordPress content accurate, competitive, and ranking.<\/strong><\/p>\n\n<p>Over time, blog posts go stale: prices change, statistics become outdated, year references age, and SEO meta loses relevance. CRAI Content Updater uses the AI provider of your choice to research current facts and refresh outdated content \u2014 saving every change as a draft for your review before anything goes live.<\/p>\n\n<p><strong>Your original content never changes without your approval.<\/strong><\/p>\n\n<h4>How It Works<\/h4>\n\n<ol>\n<li>Pick any published post or page from the Refresh Content tab<\/li>\n<li>Choose what to update: facts, dates, prices, reviews, SEO metadata, or tone<\/li>\n<li>The AI reads, diagnoses, and refreshes your content, saving it as a draft<\/li>\n<li>Review the changes, approve, and the live post updates \u2014 or discard it<\/li>\n<\/ol>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li><strong>Unlimited Content Refreshes<\/strong> \u2014 Refresh as many posts as you want, as often as you want. No caps, no monthly limits, no license keys.<\/li>\n<li><strong>Draft Review Workflow<\/strong> \u2014 Every update saves as a draft. Your live post never changes until you explicitly approve it.<\/li>\n<li><strong>Multi-Provider Support<\/strong> \u2014 Works with Claude (Anthropic), OpenAI (GPT-4.1), Gemini Paid, and Gemini Free. Bring your own API key.<\/li>\n<li><strong>Gemini Free Built-In<\/strong> \u2014 Works out of the box with a free Google Gemini API key. No credit card required to get started.<\/li>\n<li><strong>Bulk Refresh<\/strong> \u2014 Select multiple posts and refresh them sequentially in the background.<\/li>\n<li><strong>Freshness Scoring<\/strong> \u2014 Posts sorted by staleness so you always know what needs attention first.<\/li>\n<li><strong>Elementor Support<\/strong> \u2014 Widget-by-widget updates preserve your Elementor layout.<\/li>\n<li><strong>Yoast SEO &amp; Rank Math Compatible<\/strong> \u2014 Reads and writes focus keyword, SEO title, and meta description for both Yoast SEO and Rank Math. When the SEO update option is enabled, the AI rewrites your meta fields and saves them directly to the draft \u2014 no manual copy-paste required.<\/li>\n<li><strong>Update History<\/strong> \u2014 Full log of every AI refresh with before\/after word counts and change summaries.<\/li>\n<li><strong>Performance Analytics<\/strong> \u2014 Track post-refresh view trends with built-in pageview tracking (no third-party services).<\/li>\n<li><strong>AI Provider Status Widget<\/strong> \u2014 Live sidebar indicator shows which AI provider is active and whether your API key is working.<\/li>\n<li><strong>Before\/After Compare Modal<\/strong> \u2014 Side-by-side diff of every change the AI made before you approve.<\/li>\n<li><strong>Accurate Cost Tracking<\/strong> \u2014 All API calls (including multi-stage Deep Research) are counted and displayed in history.<\/li>\n<\/ul>\n\n<h4>What Can Be Refreshed<\/h4>\n\n<ul>\n<li>Dates and time references \u2014 \"in 2022\" -&gt; \"currently\"<\/li>\n<li>Facts, statistics, and data \u2014 outdated figures updated with current values<\/li>\n<li>Prices and product information \u2014 pricing and feature lists kept current<\/li>\n<li>Review scores and ratings \u2014 star ratings, pros\/cons, verdicts updated<\/li>\n<li>SEO title and meta description \u2014 rewritten with current year and keyword<\/li>\n<\/ul>\n\n<h4>External Services<\/h4>\n\n<p>This plugin connects to AI provider APIs to perform content analysis and rewriting. AI processing happens on the provider's servers \u2014 that is the core function of the plugin.<\/p>\n\n<p>You choose which provider to use and supply your own API key. Supported providers:<\/p>\n\n<ul>\n<li><strong>Anthropic Claude<\/strong> \u2014 <a href=\"https:\/\/www.anthropic.com\/\">anthropic.com<\/a> \u00b7 <a href=\"https:\/\/www.anthropic.com\/legal\/consumer-terms\">Terms of Service<\/a> \u00b7 <a href=\"https:\/\/www.anthropic.com\/legal\/privacy\">Privacy Policy<\/a><\/li>\n<li><strong>OpenAI<\/strong> \u2014 <a href=\"https:\/\/openai.com\/\">openai.com<\/a> \u00b7 <a href=\"https:\/\/openai.com\/policies\/terms-of-use\">Terms of Service<\/a> \u00b7 <a href=\"https:\/\/openai.com\/policies\/privacy-policy\">Privacy Policy<\/a><\/li>\n<li><strong>Google Gemini<\/strong> (paid and free tier) \u2014 <a href=\"https:\/\/ai.google.dev\/\">ai.google.dev<\/a> \u00b7 <a href=\"https:\/\/policies.google.com\/terms\">Terms of Service<\/a> \u00b7 <a href=\"https:\/\/policies.google.com\/privacy\">Privacy Policy<\/a><\/li>\n<\/ul>\n\n<p><strong>What is sent:<\/strong> When you trigger a refresh, the plugin sends the post title, post content, focus keyword (if available), and your selected update preferences to the AI provider you have configured. The provider's response is saved locally as a WordPress draft.<\/p>\n\n<p><strong>What is NOT sent:<\/strong> Nothing is sent to CRAI servers. API keys and post content stay between your site and the AI provider you select. The plugin does not phone home, collect telemetry, or transmit any data to third parties beyond your chosen AI provider.<\/p>\n\n<p>API keys are stored in the WordPress options table on your own database.<\/p>\n\n<h4>Pro Version<\/h4>\n\n<p>A separate, paid Pro plugin is available at <a href=\"https:\/\/contentrefreshai.com\/\">contentrefreshai.com<\/a>. The Pro plugin is hosted independently \u2014 it is not part of, and not unlockable from, this free plugin. The free plugin's code is fully functional with no hidden or locked features.<\/p>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>An API key from your chosen AI provider (Google Gemini has a free tier \u2014 no credit card required)<\/li>\n<li>WordPress 5.8 or higher<\/li>\n<li>PHP 7.4 or higher<\/li>\n<\/ul>\n\n<!--section=installation-->\n<h4>Automatic Installation<\/h4>\n\n<ol>\n<li>Go to Plugins -&gt; Add New<\/li>\n<li>Search for \"CRAI Content Updater\"<\/li>\n<li>Click Install Now then Activate<\/li>\n<\/ol>\n\n<h4>Manual Installation<\/h4>\n\n<ol>\n<li>Download the plugin zip<\/li>\n<li>Go to Plugins -&gt; Add New -&gt; Upload Plugin<\/li>\n<li>Upload and activate<\/li>\n<\/ol>\n\n<h4>Setup<\/h4>\n\n<p>After activation a setup wizard will guide you through choosing your AI provider and adding your API key. Google Gemini has a free tier \u2014 no credit card required.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20my%20own%20ai%20api%20key%3F\"><h3>Do I need my own AI API key?<\/h3><\/dt>\n<dd><p>Yes. You supply your own API key from Anthropic, OpenAI, or Google. Google Gemini has a free tier that works well for most sites \u2014 no credit card required.<\/p><\/dd>\n<dt id=\"are%20there%20any%20usage%20limits%20inside%20the%20plugin%3F\"><h3>Are there any usage limits inside the plugin?<\/h3><\/dt>\n<dd><p>No. This plugin has no refresh limits, no license activation, no time trials, no quotas. Refresh as many posts as often as you want.<\/p>\n\n<p>The only practical limits come from the AI provider you choose \u2014 for example, Google's free Gemini tier has lower request rates and a smaller output token cap than the paid Gemini API.<\/p><\/dd>\n<dt id=\"does%20it%20change%20my%20live%20posts%20automatically%3F\"><h3>Does it change my live posts automatically?<\/h3><\/dt>\n<dd><p>Never. Every AI refresh saves as a private draft. Your live post only updates when you explicitly approve the draft.<\/p><\/dd>\n<dt id=\"is%20my%20content%20sent%20anywhere%20other%20than%20the%20ai%20provider%3F\"><h3>Is my content sent anywhere other than the AI provider?<\/h3><\/dt>\n<dd><p>No. Your post content is sent only to the AI provider API you configure. Nothing is sent to CRAI servers or anywhere else.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20work%20with%20yoast%20seo%20or%20rank%20math%3F\"><h3>Does the plugin work with Yoast SEO or Rank Math?<\/h3><\/dt>\n<dd><p>Yes \u2014 CRAI Content Updater has native support for both Yoast SEO and Rank Math. When you enable the \"SEO title, meta &amp; keywords\" update option, the plugin reads your existing focus keyword, SEO title, and meta description from whichever plugin you have installed, sends them to the AI for improvement, and writes the updated values back to the correct meta fields on the draft. No manual copy-paste required. If neither plugin is active, the plugin falls back to the post title as the focus keyword.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20work%20with%20elementor%3F\"><h3>Does the plugin work with Elementor?<\/h3><\/dt>\n<dd><p>Yes. The plugin detects Elementor posts and performs widget-by-widget updates to preserve your layout.<\/p><\/dd>\n<dt id=\"which%20ai%20providers%20are%20supported%3F\"><h3>Which AI providers are supported?<\/h3><\/dt>\n<dd><p>Claude (Anthropic), GPT-4.1 (OpenAI), Gemini 2.5 Pro \/ 2.5 Flash \/ 1.5 Pro (Google paid), and Gemini 2.5 Flash Lite (Google free tier).<\/p><\/dd>\n<dt id=\"how%20much%20does%20a%20refresh%20cost%3F\"><h3>How much does a refresh cost?<\/h3><\/dt>\n<dd><p>It depends on your AI provider and article length. Rough estimates per refresh:\n* Gemini Free \u2014 $0.00 (free tier)\n* Gemini Paid \/ GPT-4.1 \u2014 $0.05\u2013$0.20\n* Claude Haiku \u2014 $0.05\u2013$0.20\n* Claude Sonnet \u2014 $1.00\u2013$4.00 (high quality, longer articles)\n* Claude Opus \u2014 $3.00\u2013$8.00+ (highest quality, slowest)<\/p>\n\n<p>The plugin displays token usage and estimated cost in the History tab after each refresh.<\/p><\/dd>\n<dt id=\"why%20is%20claude%20so%20much%20more%20expensive%3F\"><h3>Why is Claude so much more expensive?<\/h3><\/dt>\n<dd><p>Claude Sonnet and Opus are significantly more expensive per token than GPT-4.1 or Gemini. For a long article with Deep Research enabled, Claude makes 3-5 separate API calls (research, fact-check, rewrite, SEO). Use Claude Haiku for routine updates and Sonnet\/Opus for your most important content.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.5.5<\/h4>\n\n<ul>\n<li>Fixed all Plugin Check warnings in <code>uninstall.php<\/code>: renamed variables to use <code>crai_<\/code> prefix (<code>$crai_options<\/code>, <code>$crai_option<\/code>, <code>$crai_meta_keys<\/code>, <code>$crai_meta_key<\/code>, <code>$crai_table<\/code>) to satisfy the <code>PrefixAllGlobals<\/code> naming convention.<\/li>\n<li>Added <code>phpcs:ignore<\/code> comments for intentional direct DB queries in <code>uninstall.php<\/code> \u2014 deleting by <code>meta_key<\/code> and dropping the custom table are expected and correct at uninstall time.<\/li>\n<\/ul>\n\n<h4>2.5.4<\/h4>\n\n<ul>\n<li>Added missing <code>uninstall.php<\/code> \u2014 removes all plugin options, post meta, the custom performance views table, and transients on uninstall. Required by WordPress.org plugin guidelines.<\/li>\n<li>Fixed misleading PRO badges on the Upgrade page: \"Unlimited Refreshes\", \"Bulk Refresh Automation\", and \"Full History &amp; CSV Export\" are all fully functional in the free plugin and are now correctly labelled FREE.<\/li>\n<li>Fixed License &amp; Plans pricing card: corrected the free tier feature list to accurately reflect unlimited refreshes, bulk refresh, and CSV export as included. Removed false \"\u2717 Unlimited refreshes\" and \"1 article create\/month\" limit claims.<\/li>\n<li>Fixed Free vs Pro comparison table: \"Full history &amp; CSV export\" and \"Bulk refresh automation\" now correctly show \u2713 for the free tier.<\/li>\n<\/ul>\n\n<h4>2.5.3<\/h4>\n\n<ul>\n<li>Fixed Plugin Check WARNING: <code>post__not_in<\/code> exclusionary query parameter removed from <code>get_posts()<\/code> call in <code>class-crai-updater.php<\/code>. Exclusion logic moved to PHP-side filtering to avoid the VIP performance sniff.<\/li>\n<li>Fixed Plugin Check WARNING: plugin tags reduced from 7 to the WordPress.org maximum of 5. Yoast and Rank Math compatibility remains documented in the description and FAQ.<\/li>\n<\/ul>\n\n<h4>2.5.2<\/h4>\n\n<ul>\n<li>Updated \"Tested up to\" to WordPress 7.0.<\/li>\n<li>Fixed Plugin Check ERROR: \"Tested up to\" was below the current WordPress version, hiding the plugin from WordPress.org search results.<\/li>\n<li>Fixed Plugin Check WARNING (\u00d72): interpolated <code>{$table}<\/code> variable inside <code>$wpdb-&gt;prepare()<\/code> calls in <code>class-crai-performance.php<\/code>. Replaced with <code>esc_sql()<\/code> concatenation \u2014 the correct WordPress pattern for dynamic table names.<\/li>\n<li>Fixed Plugin Check WARNING: <code>exclude<\/code> parameter in <code>get_posts()<\/code> replaced with <code>post__not_in<\/code> in <code>class-crai-updater.php<\/code>.<\/li>\n<\/ul>\n\n<h4>2.5.1<\/h4>\n\n<ul>\n<li>Added estimated API cost (USD) to the Draft Created modal \u2014 displayed below the word count so you can see at a glance what each refresh cost. Includes an estimate disclaimer.<\/li>\n<li>Documented native Yoast SEO and Rank Math compatibility \u2014 the plugin reads and writes focus keyword, SEO title, and meta description for both plugins. Now reflected in the feature list, FAQ, and plugin tags.<\/li>\n<li>Updated readme.txt: added Yoast SEO and Rank Math to plugin tags, added compatibility bullet to Key Features, added new FAQ entry.<\/li>\n<\/ul>\n\n<h4>2.5.0<\/h4>\n\n<ul>\n<li>Complete free-plugin release \u2014 zero Pro\/trial\/license gate code. No counters, caps, or license checks of any kind remain anywhere in the plugin.<\/li>\n<li>Removed all Pro-only PHP classes: AI image generation, internal links engine, Gutenberg block converter, SEO scorer, site-links scanner, brand voice system, and content creator module.<\/li>\n<li>Removed Freemius SDK entirely (vendor\/ directory deleted).<\/li>\n<li>Rewrote CRAI_License class to 4 utility methods only \u2014 no gating logic whatsoever.<\/li>\n<li>Removed all Creator JavaScript blocks (V2JS, CRCJS, CRCJS2) that were still being output on every page load and causing silent JS errors that broke all button click handlers.<\/li>\n<li>Fixed critical JS bug: main jQuery(function($){...}) wrapper was missing its closing }); causing every button on every page (Refresh, Approve, Discard, Compare, Test Connection, Bulk Update) to silently fail.<\/li>\n<li>Fixed: $can_update undefined variable causing all Refresh buttons to render as disabled.<\/li>\n<li>Fixed: $img_api and $img_api_s undefined variables causing PHP warnings that disrupted page output.<\/li>\n<li>Fixed: orphaned PHP open tag (&lt;?php with no code) on line 562 causing \"unexpected token\" parse error on activation.<\/li>\n<li>Fixed: orphaned deactivate-license JS block and orphaned else{ block left by earlier cleanup causing JS syntax errors.<\/li>\n<li>Added AI Provider Status Widget to the sidebar \u2014 shows active provider name, model, and Live\/No Key status badge.<\/li>\n<li>Added per-model cost\/speed warning in Settings below the Claude model selector.<\/li>\n<li>Fixed cost tracking in History: token accumulator was only counting the final rewrite API call. All API calls in the chain now accumulate tokens correctly.<\/li>\n<li>Removed Welcome screen (Step 1) from the setup wizard \u2014 first-time users now land directly on the Choose Plan screen.<\/li>\n<li>Expanded Upgrade to Pro page: replaced vague summary card with 12 individual feature cards.<\/li>\n<li>Fixed Performance Tracking listed as Pro-only in two places \u2014 it is a free feature.<\/li>\n<li>Sidebar redesigned: SVG icons for all nav items, gold star Upgrade nav item, green Free badge at bottom.<\/li>\n<li>readme.txt: updated Stable tag, description, FAQ, and full changelog.<\/li>\n<\/ul>\n\n<h4>2.4.23<\/h4>\n\n<ul>\n<li>Fixed WordPress.org plugin tags \u2014 corrected to hyphenated format required by the plugin directory.<\/li>\n<\/ul>\n\n<h4>2.4.22<\/h4>\n\n<ul>\n<li>Updated WordPress.org plugin tags to improve discoverability.<\/li>\n<\/ul>\n\n<h4>2.4.21<\/h4>\n\n<ul>\n<li>Added max_uses cap on Claude web search tool calls to prevent runaway API costs on data-heavy articles.<\/li>\n<\/ul>\n\n<h4>2.4.20<\/h4>\n\n<ul>\n<li>Fixed: Gemini 2.5 Flash\/Pro grounding tool name corrected (camelCase).<\/li>\n<li>Fixed: rewrite_widgets_findreplace() missing prompt-build block causing blank prompts on Elementor posts.<\/li>\n<li>Fixed: Draft post slug now inherits the original post's slug correctly.<\/li>\n<\/ul>\n\n<h4>2.4.7<\/h4>\n\n<ul>\n<li>Removed all remaining Pro\/creator feature code remnants for WordPress.org Guideline 5 compliance.<\/li>\n<li>Fixed output escaping on additional unescaped echoes in the admin UI.<\/li>\n<li>Removed leftover dead variables from the old Freemius update-counting system.<\/li>\n<\/ul>\n\n<h4>2.4.6<\/h4>\n\n<ul>\n<li>Removed Plugin URI from the main file header to resolve a WordPress.org submission error.<\/li>\n<\/ul>\n\n<h4>2.4.5<\/h4>\n\n<ul>\n<li>Renamed plugin folder and text domain to match the approved WordPress.org slug.<\/li>\n<li>Set Author header and Contributors username. Replaced truncated LICENSE.txt with full GPL-2.0 text.<\/li>\n<\/ul>\n\n<h4>2.4.4<\/h4>\n\n<ul>\n<li>Fixed: performance views table was never created on activation due to missing activation hook.<\/li>\n<li>Added lazy safety net (maybe_create_table) for users upgrading from earlier versions.<\/li>\n<\/ul>\n\n<h4>2.4.3<\/h4>\n\n<ul>\n<li>Fixed: Performance baseline capture failing with MySQL syntax error after every draft approval.<\/li>\n<\/ul>\n\n<h4>2.4.2<\/h4>\n\n<ul>\n<li>Fixed 6 output-escaping issues flagged by Plugin Check.<\/li>\n<\/ul>\n\n<h4>2.4.1<\/h4>\n\n<ul>\n<li>Added dedicated \"Upgrade to Pro\" tab as a clearly-labeled advertisement for the separate paid Pro plugin.<\/li>\n<\/ul>\n\n<h4>2.4.0<\/h4>\n\n<ul>\n<li>Removed all gated\/locked Pro feature references. Comprehensive escaping pass. Large dead-code cleanup.<\/li>\n<\/ul>\n\n<h4>2.3.34<\/h4>\n\n<ul>\n<li>WordPress.org free version \u2014 unlimited refreshes, no license required. Removed Freemius SDK.<\/li>\n<\/ul>","raw_excerpt":"AI-powered content refresh tool. Keep your WordPress posts accurate and ranking with Claude, OpenAI, or Gemini. Unlimited refreshes \u2014 free, forever.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/da.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/297331","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/da.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/da.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/da.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=297331"}],"author":[{"embeddable":true,"href":"https:\/\/da.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/mark456321"}],"wp:attachment":[{"href":"https:\/\/da.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=297331"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/da.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=297331"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/da.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=297331"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/da.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=297331"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/da.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=297331"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/da.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=297331"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}