PluginProbe
Search Atlas SEO – OTTO AI SEO Automation for WordPress / 2.7.2
Search Atlas SEO – OTTO AI SEO Automation for WordPress v2.7.2
2.7.1 2.7.2 2.7.0 2.6.26 2.6.25 2.6.24 2.6.23 2.6.22 2.6.21 2.6.20 2.6.19 2.6.18 2.6.17 2.6.16 2.6.15 2.6.14 2.6.13 2.6.12 2.6.11 2.6.10 2.6.9 2.6.8 2.6.7 2.6.6 2.6.5 All 141 releases
← All changes | readme.txt +150 -1101 2.6.11 → 2.7.2 View file →
@@ -1,1134 +1,183 @@
1 -=== Search Atlas SEO - Premier SEO Plugin for One-Click WP Publishing & Integrated AI Optimization ===
1 +=== Search Atlas SEO - OTTO AI SEO Automation for WordPress ===
2 2 Contributors: shahrukhlinkgraph
3 -Tags: seo, sitemap, google instant indexing, schema, 404 monitor
4 -Donate link: http://searchatlas.com
5 -Requires at least: 5.2
6 -Tested up to: 6.8.1
7 -Requires PHP: 7.1
8 -Stable tag: 2.6.11
9 -License: GPL-2.0+
3 +Tags: seo, ai seo, otto, otto seo, schema
4 +Requires at least: 6.3
5 +Tested up to: 7.1
6 +Requires PHP: 8.1
7 +Stable tag: 2.7.2
8 +License: GPL v3
10 9 License URI: https://www.gnu.org/licenses/gpl-2.0.txt
11 10
12 -Search Atlas SEO is a user-friendly WordPress plugin that simplifies complex and time-consuming SEO tasks into efficient, easy-to-manage processes. With just a few clicks, the meta-bulk update feature leverages AI to automatically optimize meta tags, enhancing click-through rates. Keep your site or specific URLs up-to-date with the latest Google Search data directly from the Search Atlas SEO plugin page.
11 +AI-powered SEO & GEO for WordPress: OTTO auto-optimizes meta, schema & content, and helps you rank on Google and in AI search.
13 12
14 13 == Description ==
15 -### Search Atlas SEO - Top WordPress Plugin for SEO & AI Integration
16 -**Comprehensive WordPress SEO Plugin with AI-Powered Optimization & One-Click Publishing**
17 14
18 -**SEO is the most effective strategy for driving organic traffic.** We've enhanced our award-winning SEO software, **Search Atlas**, with cutting-edge Artificial Intelligence (AI) integrations to deliver the most powerful WordPress plugin available. Features like one-click publishing, bulk meta updates, and schema markup enable website owners to attract more search traffic and build a high-ranking website effortlessly.
15 +**AI-powered SEO for WordPress — built for Google rankings and the new era of AI search.**
19 16
20 -## LEARN MORE ABOUT THE Search Atlas PLATFORM
17 +Search Atlas connects your WordPress site to the Search Atlas platform and its OTTO AI optimization engine, automating the technical SEO work that used to take hours. Optimize for traditional search engines and for AI answer engines (GEO — Generative Engine Optimization), publish content in one click, and manage your entire on-page SEO from a single dashboard.
21 18
22 -Often hailed as **the best marketing investment** a website can make, SEO provides website owners with the means to boost their web traffic significantly. Traditionally, SEO has been a specialized field requiring technical expertise. **Search Atlas SEO by Search Atlas democratizes SEO, putting every aspect of optimization at the fingertips of every website owner with the power of AI**.
19 +### OTTO — AI SEO on autopilot
20 +OTTO server-side optimizes your pages for search crawlers and AI engines: meta titles and descriptions, image alt text, headings, and internal links are applied automatically, without changing your theme. Roll fixes out across up to 100 pages at once, exclude any URL, and optionally save optimizations into native WordPress fields so they persist even if you switch tools.
23 21
24 -Search Atlas SEO transforms intricate and laborious SEO tasks into streamlined processes. With a few clicks, the **meta-bulk update** feature uses AI to re-optimize meta tags, increasing click rates. Stay informed with **the latest Google Search data** for your entire site or specific URLs directly within the Search Atlas SEO plugin interface.
22 +### Get found in AI search (GEO)
23 +A built-in /llms.txt endpoint serves clean, AI-readable content to AI crawlers such as ChatGPT and Perplexity — so your site can surface in AI answers and AI Overviews, not just classic search results.
25 24
26 -Utilize the Search Atlas Content Suite to **generate fully optimized AI-driven content in minutes** and publish it to your WordPress site with a single click. Easily create multiple redirects, identify and resolve indexing errors, and submit sitemaps effortlessly.
25 +### One-click publishing from Search Atlas
26 +Push blog posts, landing pages, and content updates straight from the Search Atlas dashboard to WordPress — complete with optimized titles, meta descriptions, image alt text, formatted headings, and internal links.
27 27
28 -Save time. Optimize your site seamlessly. Produce high-ranking content.
28 +### Bulk AI optimization
29 +- AI bulk meta updates — rewrite titles and descriptions across your whole site in one pass
30 +- AI alt-text generation & auditing — find missing or weak alt text and fix it library-wide
31 +- Bulk status and content operations to manage many posts at once
29 32
30 -### Superior AI Content for Optimal SEO
33 +### A complete on-page SEO toolkit
34 +- 13 schema / structured-data types (Article, FAQ, Product, Recipe, Event, LocalBusiness, HowTo, VideoObject, and more) with JSON-LD output
35 +- XML sitemaps, including dedicated news and video sitemaps
36 +- Virtual robots.txt editor — manage rules with no file editing
37 +- Redirection manager — 5 match types (exact, wildcard, regex, contains, start/end) and 4 status codes (301/302/307/308), with automatic redirects on slug changes
38 +- 404 monitoring with hit tracking and smart redirect suggestions
39 +- Breadcrumb schema, canonical URLs, and hreflang (multi-language) support
40 +- Open Graph and Twitter Card meta with automatic de-duplication
31 41
32 -Search Atlas features an **integrated AI content creator** that streamlines the content creation process. From developing your **content calendar** to conducting **keyword research** and producing **exceptional blogs, landing pages, product descriptions**, and more, our SEO tools with built-in AI help you **build a library of high-ranking published pages in a fraction of the time**.
42 +### Instant indexing
43 +Submit new and updated URLs directly to Google (Instant Indexing API) and Bing (IndexNow) for faster crawling — one at a time or in bulk.
33 44
34 -### One-Click Publishing of Content to Your WordPress Site from the LinkGraph Dashboard
35 -- Instantly publish new blog posts, content updates, and landing pages to your WordPress site from the LinkGraph dashboard
36 -- Includes optimized meta descriptions and meta titles
37 -- Incorporates images with appropriate alt text
38 -- Features formatted header tags, bullet points, and hyperlinks
45 +### MCP server — control WordPress with AI agents
46 +A built-in Model Context Protocol (MCP) server exposes 138 tools across 31 categories, letting AI assistants create and edit content, manage SEO and schema, submit URLs for indexing, handle redirects, and audit your site — secured with API-key or token authentication.
39 47
40 -### Bulk Update Title Tags and Meta Descriptions on Your WordPress Site Using AI
41 -- Quickly optimize meta tags for landing pages, blogs, and other webpages in bulk
42 -- Utilizes Google's GPT-3 AI technology to generate engaging, relevant meta tags
43 -- Automatically updates tags across your website
48 +### Media & performance
49 +- Convert images to WebP/AVIF, smart lazy-loading, and automatic width/height attributes to reduce layout shift (CLS)
50 +- Automatic cache purging for popular caching plugins (WP Rocket, LiteSpeed Cache, W3 Total Cache, WP Super Cache, WP Fastest Cache, and more)
51 +- Edge/CDN cache purging for Cloudflare, Fastly, Akamai, and Sucuri
44 52
45 -### Features
46 -1. Local Business SEO
47 -2. Google Instant Indexing
48 -3. Google Search Console Integration
49 -4. Redirection Management
50 -5. 404 Error Monitoring
51 -6. Error Logging
52 -7. Search Engine Verification
53 -8. Custom Code Snippets
54 -9. Optimal Settings Configuration
55 -10. Global SEO Settings
53 +### Works with your stack
54 +- Page builders: Gutenberg, Elementor, Divi, Oxygen, and Beaver Builder
55 +- WooCommerce breadcrumbs and shop pages
56 +- Coexistence and migration with Yoast SEO, Rank Math, and All in One SEO
57 +- Google Search Console and GA4 integration
58 +- Agency-ready white-label settings to show or hide features per client
56 59
60 +### Search Atlas account & external service
61 +Search Atlas is a companion plugin for the Search Atlas platform, an external service. A Search Atlas account is required to use the AI optimization, OTTO, and content-publishing features. When connected, your site sends and receives data from Search Atlas servers to provide these features. Learn more in the Search Atlas Terms of Service (https://searchatlas.com/terms/) and Privacy Policy (https://searchatlas.com/privacy-policy/).
62 +
57 63 == Installation ==
58 -1. Upload the `metasync` folder to the `/wp-content/plugins/` directory.
59 -2. Activate the plugin through the Plugins menu in WordPress.
64 +1. In your WordPress admin, go to Plugins, then Add New, and search for Search Atlas SEO. Click Install Now, then Activate.
65 +2. You need a Search Atlas account. If you do not have one, start a free trial at searchatlas.com.
66 +3. In Search Atlas, add your site as a project. Then, in WordPress, open the Search Atlas menu and click Connect to Search Atlas. The plugin will automatically complete the secure SSO connection.
67 +4. Switch OTTO on.
60 68
69 +Installing by hand: download the ZIP, upload the `metasync` folder to `/wp-content/plugins/`, then activate it from the Plugins menu. After that, continue from step 2.
70 +
61 71 == Frequently Asked Questions ==
72 +
62 73 = What does the Search Atlas SEO plugin do? =
63 -The Search Atlas SEO plugin by Linkgraph serves as a bridge between WordPress blogs and Linkgraph services, enabling data synchronization and updates via API for enhanced SEO optimization.
74 +It connects your WordPress site to Search Atlas so OTTO, our AI optimization engine, can work on your pages. It applies titles, descriptions, alt text, headings, internal links and schema, and it lets you publish content straight from Search Atlas into WordPress in one click. You need a Search Atlas account to use it.
64 75
65 -== Screenshots ==
66 -1. General Settings
76 += Do I need a paid Search Atlas account to use this plugin? =
77 +Yes. The plugin connects to your Search Atlas account, and OTTO's AI-driven SEO features are available on paid Search Atlas plans.
67 78
68 -== Upgrade Notice ==
69 -= 1.4.1 =
70 -This version does not include the new APIs required by the AI Editor.
79 += Where do I get my API key? =
80 +You don't need to enter one manually. Use the "Connect to Search Atlas" option in the plugin settings, and it will generate your API key and connect your account automatically.
71 81
72 -== Changelog ==
73 -= 2.6.11 =
74 -* New Feature: Added SEO Title & Meta Description fields to the Classic editor, matching the Gutenberg sidebar
75 -* New Feature: Added a configurable OTTO cache TTL setting under Advanced Settings → Cache Management
76 -* New Feature: Added a ZIP upload endpoint and MCP tool for importing landing pages
77 -* New Feature: Import Open Graph and Twitter social titles and descriptions from Yoast, Rank Math, and AIOSEO
78 -* New Feature: Import Open Graph and Twitter social images from Yoast, Rank Math, and AIOSEO
79 -* Improvement: Added a pre-flight memory check before image conversion to avoid exhausting PHP memory
80 -* Improvement: Batch optimizer batch size now adapts to available server memory
81 -* Improvement: Replaced unbounded media queries with paginated queries in the batch optimizer
82 -* Improvement: Sub-size image conversion is now split across requests to reduce peak memory usage
83 -* Improvement: Cron batch processing now respects the server's max_execution_time limit
84 -* Improvement: WordPress core sitemap is automatically disabled while the MetaSync sitemap is active
85 -* Improvement: Redirect saves now warn when the destination URL does not resolve
86 -* Improvement: The MCP sitemap check now uses the plugin's virtual sitemap tracking instead of physical files
87 -* Improvement: 404 Monitor no longer logs WordPress system paths as broken links
88 -* Improvement: Added a magnifier icon to the Media Optimization search field
89 -* Fix: OTTO no longer corrupts inline JavaScript by collapsing modern operators during rendering
90 -* Fix: Resolved fatal errors on Divi sites during OTTO HTTP rendering and from a missing admin navigation class
91 -* Fix: Prevented fatal errors from missing dependencies — telemetry autoload, the 404 Monitor database class, the DOMDocument extension, and a removed Yoast SEO title separator method
92 -* Fix: OTTO titles, descriptions, and schema now persist reliably — saved even when unchanged, back-filled to SEO plugin fields, kept after un-deploy, and output when OTTO is off
93 -* Fix: Stopped duplicate Open Graph/Twitter tags and cleared social meta when duplicating a post
94 -* Fix: Archive pages now output their own canonical URL and og:url instead of the first post's
95 -* Fix: WebP picture tag rewriting now applies to Divi featured images
96 -* Fix: Sitemap now includes pages and custom post types when category/tag filters are set
97 -* Fix: Resolved a schema markup settings key inconsistency in the settings API
98 -* Fix: Settings saves no longer show a false error notice, meta-box checkboxes persist, and a race condition that could wipe settings was resolved
99 -* Fix: OTTO image alt text now applies when pages use relative image URLs
100 -* Fix: Polished admin UI — Optimization Rate stats card alignment, tab icon centering, and XML Sitemap checkbox spacing
82 += Does it work alongside Yoast SEO or Rank Math? =
83 +Yes. The plugin detects Yoast SEO, Rank Math, and All in One SEO, avoids duplicate meta tags and schema conflicts, and includes an "Import from Other SEO Plugins" feature that imports meta titles, descriptions, canonical tags, schema, and redirects from those plugins directly into Search Atlas SEO.
101 84
102 -= 2.6.10 =
103 -* New Feature: Media Optimization — compress images and serve next-gen WebP/AVIF formats to improve page load speed
104 -* New Feature: Added post type, taxonomy, and URL exclusion controls across all sitemaps
105 -* New Feature: Added per-file Delete buttons for individual XML sitemaps (General, News, Video)
106 -* Improvement: Switched sitemap generation to virtual-only mode with regenerate-on-miss to resolve nginx 403 errors
107 -* Improvement: Renamed sitemap Save buttons to "Save & Generate Sitemap" across the General, News, and Video tabs
108 -* Improvement: Throttled bot crawl-log requests to reduce server load on high-traffic sites
109 -* Fix: Resolved a case where the plugin caused site outages on cart/checkout and non-GET requests
110 -* Fix: Restored meta boxes and SEO fields on custom post types
111 -* Fix: OTTO no longer reports as installed on projects with non-matching UUIDs
112 -* Fix: Preserved Divi's late-injected CSS during OTTO server-side rendering and fixed Divi blog/portfolio AJAX pagination
113 -* Fix: Respected Yoast SEO titles and descriptions when OTTO is undeployed
114 -* Fix: Scoped OTTO cache keys and rate limits per site on Multisite installs
115 -* Fix: Skipped OTTO rendering on XML endpoints to prevent invalid output
116 -* Fix: Sanitized malformed self-closing tags during OTTO rendering that could expand site navigation
117 -* Fix: Prevented duplicate H1 headings when content already contains the post title
118 -* Fix: Guarded the mime_content_type() call to prevent fatal errors on hosts without the fileinfo extension
119 -* Fix: Deduplicated URLs and filtered junk entries from the XML sitemap
120 -* Fix: The XML Sitemap sidebar now stays fixed instead of scrolling with the page
121 -* Fix: 404 Monitor date filters now persist across pagination and sorting and apply only when the filter button is clicked
122 -* Fix: Connection status no longer flips to "Not Connected" on idle plugin pages
123 -* Fix: Corrected WP Rocket compatibility render-mode detection
124 -* Fix: Suppressed admin notices from rendering inside the setup wizard header
125 -* Fix: Removed dangling breadcrumb references when stripping third-party BreadcrumbList schema
126 -* Fix: Breadcrumbs checkbox values now persist correctly when unchecked
127 -* Fix: Fixed the Quick Links table background and borders in dark mode
128 -* Fix: Fixed dashicon button icon misalignment on some sites
129 -* Fix: Tightened REST API auth callbacks and fixed primary category cleanup on custom post types
130 -* Fix: Fixed the perpetual Sync Now throttle message by separating the manual-sync cooldown from the heartbeat
85 += How do I turn OTTO off for one page? =
86 +You can exclude individual URLs from OTTO processing in the plugin's OTTO settings, so those pages render as they normally would without OTTO's changes.
131 87
132 -= 2.6.9 =
133 -* Security: Move API key authentication from query parameter to Authorization Bearer header
134 -* Security: Fix X-Forwarded-For IP spoofing in OTTO bot detector — trust Cloudflare header first
135 -* Security: Cache-Control changed from public to private to prevent CDN nonce sharing
136 -* Fix: OTTO heading replacement corrupted when heading contains inline elements (e.g. span tags)
137 -* Fix: SSO one-click auth fails on sites with external object cache
138 -* Fix: Guard against missing DOMDocument extension in check_and_fix_post_content
139 -* Fix: POST heartbeat before GET ping on manual API key save to register WPWebsiteHeartbeat
140 -* Fix: Strict-equality bug in is_virtual_mode() causing Virtual badge not to show after first request
141 -* Fix: Remove newline-to-br replacement that injects whitespace into synced content
142 -* Improvement: API key input field now reverts to previous valid key on validation failure
143 -* Improvement: Deployed OTTO titles no longer show on frontend when Disable OTTO for Logged in Users is enabled
144 -* Improvement: Robots.txt Disallow / warning now triggers correctly with fixed regex matching
145 -* Improvement: Robots.txt timestamps now respect WordPress timezone setting instead of hardcoded UTC
88 += Can I manage 404 errors and redirects with this plugin? =
89 +Yes, along with a lot more - the plugin also includes media optimization, code snippets, code minification, cache busting, and much more.
146 90
147 -= 2.6.8 =
148 -* Security: Use hash_equals() for timing-safe API key comparison in custom pages API
149 -* Security: Resolve 4 Snyk Code MEDIUM findings — DOM XSS and info exposure
150 -* Security: Fix open-redirect vulnerability in redirection plugin with domain validation
151 -* Fix: Original image permanently deleted before converted file is validated — data loss on Imagick memory failure
152 -* Fix: Light SA logo not visible on light theme
153 -* Fix: Strip OTTO post meta when WordPress pages are cloned or duplicated
154 -* Fix: Sitemap and LLMs.txt transients not invalidated when content is updated
155 -* Improvement: Make bot statistics table responsive at narrow viewports
156 -* Improvement: Refactor sitemap collect_all_urls() to eliminate N+1 query explosion
157 -* Improvement: Exclude Beaver Builder templates from sitemap generation
158 -* Improvement: Upgrade routine flag logic and unit tests for Beaver Builder template exclusion
91 +== Screenshots ==
92 +1. General Settings
159 93
160 -= 2.6.7 =
161 -- Fix: OTTO buffer caching empty/error pages
162 - - Fix: PHP lexicographic string comparison in execution time validation
163 - - Fix: Plugin causing server overload via unbounded cron accumulation
164 - - Fix: Replace TRUNCATE with bounded delete in 404 monitor add()
165 - - Fix: Add redirect-loop detection to edit and import paths
166 - - Fix: Non-atomic OTTO cache lock allowing concurrent workers to bypass lock
167 - - Fix: Remove duplicate inline JS causing double POST on excluded URL add
168 - - Fix: Replace TOCTOU rate limiter with atomic wp_cache_add/incr pattern
169 - - Fix: Fill empty catch blocks in OTTO render strategy with error_log and telemetry
170 - - Fix: Harden JWT verification and protect sensitive wp_options in MCP server
171 - - Fix: Breadcrumbs disable_schema checkbox state not persisting on save
172 - - Fix: OTTO title/schema override checks live suggestions when third-party SEO plugin active
173 - - Fix: Centralize cron-hook cleanup on plugin deactivation
174 - - Fix: API key validation fails when WordPress Home URL uses www subdomain
175 - - Fix: Add per-user transient caching to admin bar status indicator
176 - - Fix: Make sitemap generation memory-safe with streaming and filesystem fallbacks
177 - - Fix: Add static flag guard to eliminate redundant schema queries
178 - - Fix: Create Redirect button from 404 Monitor not opening redirection form
179 - - Security: Remediate 47 semgrep findings across plugin codebase
94 +== Upgrade Notice ==
95 += 2.6.22 =
96 +2.6.22 fixes OTTO breaking Divi-built pages and stops a partly finished update from taking your site's front end down. Update as soon as you can.
180 97
181 -= 2.6.6 =
182 -- Fix: Invalidate OTTO JS detection transient on settings save and cache clear
183 - - Fix: Harden MCP tool registration to prevent fatal error on missing class
184 - - Fix: Heartbeat public-hash cache-key mismatch
185 - - Fix: TypeError on strtolower() with array @type in OTTO crawl-notify endpoint
186 - - Fix: Gate admin JS loading to MetaSync pages only
187 - - Fix: Process OTTO webhook URLs in background via WP-Cron
188 - - Fix: Optimize sync history cleanup with fetch-then-delete pattern
189 - - Fix: Cache OTTO manual exclusion list with transient and add composite index
190 - - Fix: Use SELECT COUNT(*) instead of loading all records in get_count()
191 - - Fix: Remove blocking Facebook Graph API call from wp_head
192 - - Fix: Only load MetaSync admin CSS on plugin pages
193 - - Fix: Lazy-load MCP server and SEO-inventory controller for non-MCP requests
194 - - Fix: Broken SQL placeholder in get_attachment_by_name()
195 - - Fix: Refactor rate limiter to use per-key transients instead of wp_options blob
98 +== Changelog ==
99 += 2.7.2 =
100 +* New Feature: Opt-in product analytics for the plugin admin, sent only after the site owner gives consent; existing installs are asked once through a dismissible notice that can be snoozed
101 +* New Feature: The Classic Editor SEO box now includes the Breadcrumb Title, Language Alternates and Primary Category fields
102 +* New Feature: OTTO webhook deliveries are now recorded in an audit log that is kept for seven days
103 +* Fix: OTTO's canonical URL is now kept on every render path instead of falling back to the permalink when the full OTTO render is skipped
104 +* Fix: OTTO no longer saves the og:description as the page's meta description
105 +* Fix: OTTO deployments are no longer lost when a cache warm-up fails, and stored OTTO titles, descriptions and keywords now refresh when the OTTO cache expires, so a missed OTTO notification no longer leaves stale SEO values behind
106 +* Fix: Fresh OTTO titles and descriptions now take priority over older persisted copies, and focus keywords follow the same priority order with duplicate meta keywords tags removed
107 +* Fix: Persisted OTTO keywords are now stored separately and no longer overwrite the customer's own keyword; the global priority setting is now named SEO Meta Priority
108 +* Fix: OTTO is now skipped on paginated archive pages only on Divi sites instead of on every site
109 +* Fix: Invalid values can no longer be stored as the OTTO Pixel UUID, and the UUID field is now read-only
110 +* Fix: The OTTO crawl data option no longer grows without limit, and the old stored data is cleaned up on upgrade
111 +* Fix: External schema import now reports accurate eligibility and results for Yoast, Rank Math and AIOSEO, and schema fields are no longer lost when a schema type is saved before its fields finish loading
112 +* Fix: Content publishing no longer takes over and unpublishes an existing post with the same title, and updates now return the correct permalink
113 +* Fix: White-label branding is now preserved when the plugin settings are reset, and invalid branding can no longer be saved, with each field showing its own error
114 +* Fix: The old Instant Indexing admin URL now redirects to Indexation Control instead of showing an access error
115 +* Fix: Indexation Controls now save each checkbox correctly instead of switching other archive rules on
116 +* Fix: Maintenance and diagnostics tasks can no longer be triggered by anonymous visitors, and access checks, error logging, sitemap size reporting and the blank page template have been hardened
117 +* Fix: Redirects that have never been used now show "Never" instead of a zero date, and the redirect form no longer saves empty rows
118 +* Fix: MCP category and tag creation now returns the existing term instead of failing when it already exists
119 +* Fix: Resolved the remaining errors from WordPress.org Plugin Check scans
120 +* Improvement: Media, REST API and 404 Monitor queries are optimized for large sites, and the 404 log is now capped
121 +* Improvement: Redirects that share the same source path now show a "Shadowed" badge and a warning on save
122 +* Improvement: The 404 Monitor now has clearer summary labels, short and distinct chart labels (including for non-ASCII URLs), and a cleaner toolbar and pagination
123 +* Improvement: Compatibility toggles have moved to the Compatibility page, the unused HTTP option was removed from the SiteGround setting, and WP Rocket is now detected reliably
124 +* Improvement: The robots.txt "Never block your entire site" warning now appears at the top of the editor sidebar, and the Excluded URLs Recheck button and match type badges are now consistently sized
125 +* Improvement: The Breadcrumb Title Override is now hidden when breadcrumbs are disabled
126 +* Improvement: Plugin issue reports now include white-label context, and white-label settings are no longer exposed through the MCP plugin settings tool
127 +* Improvement: Removed the orphaned standalone Instant Indexing save path and obsolete temporary admin access code
196 128
197 -= 2.6.5 =
198 -- Feat: Native-First SEO Write Layer — sync all MetaSync/OTTO optimizations to native WordPress SEO meta fields
199 - - Feat: Per-post advanced robots directives — nofollow, noarchive, nosnippet, noimageindex, max-snippet, max-image-preview, max-video-preview
200 - - Feat: Redirect health checker — MCP tool + admin panel
201 - - Feat: Redirect loop detection on create/save
202 - - Fix: Reduce memory footprint by gating heavy init on non-MetaSync AJAX requests
203 - - Fix: ArgumentCountError resolved by replacing printf with echo in code-snippets template
204 - - Fix: Unhook Elementor filters during MCP update_site_info under API key auth
205 - - Fix: Rename 16 non-prefixed AJAX actions to use metasync_ prefix
206 - - Fix: Promo sidebar overlap with main nav at narrow viewports
207 - - Fix: OTTO DOM corruption when page text contains less-than followed by digits
208 - - Fix: Restore case-sensitive SVG/HTML5 attributes after OTTO DOM processing
209 - - Fix: MetaSync status badge not updating on disconnect/reconnect
210 - - Fix: Remove duplicate canonical tags on sites without third-party SEO plugin
211 - - Fix: Submit Report button icon vertical alignment
212 - - Fix: 404 Monitor pagination layout and filter row overflow
213 - - Fix: Responsive layout for Redirections tablenav filters and search
129 += 2.7.1 =
130 +* Fix: The Changes Log admin page no longer shows misaligned headings or inconsistent toolbar control sizing
131 +* Fix: A "%" character in a saved settings value no longer fatals the page, and the plugin now survives partially-completed upgrades
132 +* Fix: Direct-access protection was added to PHP files that were missing it
133 +* Fix: Discouraged PHP functions were replaced with WordPress-native APIs across the codebase, confirmed dead code was removed, and the remaining intentional native calls are now documented
134 +* Fix: Audited and resolved SQL query safety findings across the plugin
135 +* Fix: Audited and resolved input sanitization and output escaping gaps across admin and public-facing code, including AJAX and settings save paths
136 +* Fix: Added missing nonce and capability checks across admin endpoints, AJAX handlers, and settings page actions
137 +* Fix: Redirects are now routed through safe WordPress redirect functions, data-directory writes are centralized, and legacy redirect rows with un-sanitized source URLs are healed automatically
138 +* Fix: Removed stray production debug logging and correctly scoped error handlers
139 +* Fix: The plugin FAQ now uses American spelling ("optimization"), matching the rest of the listing
140 +* Fix: Audited direct database queries, caching, and schema changes for WordPress.org compliance
141 +* Fix: Resolved internationalization findings so plugin text is properly translatable
142 +* Fix: Resolved the remaining zero-risk and newly-reported findings from ongoing WordPress.org Plugin Check scans
143 +* Improvement: Compatibility-checker plugin icons are now bundled locally instead of loaded from an external host
214 144
215 -= 2.6.4 =
216 -- Fix: LLMs.txt settings now correctly persisted on save
217 - - Fix: Hidden diagnostic post no longer triggers Jetpack Social or RSS auto-share
218 - - Fix: mb_encode_numericentity() fatal on hosts without mbstring extension replaced with pure-PHP fallback
219 - - Fix: class-metasync-term-plugin-sync.php require_once guarded with file_exists to prevent fatal on Nexcess hosting
220 - - Fix: wp_tempnam() undefined fatal in Dimension Injector when called outside wp-admin context
221 - - Fix: WpeCommon::purge_url() undefined fatal in cache purge on WP Engine now guarded with method_exists
222 - - Fix: MCP_Tool_Cache_Purge_All class not found fatal guarded with class_exists check
223 - - Fix: Google Index require_once calls guarded with file_exists to prevent fatal when files are missing
224 - - Fix: PHP 8.1 add_submenu_page(null) deprecation fixed in import page and HTML visual editor
145 += 2.7.0 =
146 +* New Feature: Headless WordPress support — the WordPress backend and a decoupled public frontend now stay in sync through SSO and heartbeat, with SEO data exposed over WPGraphQL, frontend-aware canonical and og:url rehosting, taxonomy canonical overrides, bulk payload resolution, and a dedicated Headless Mode section in Advanced settings
147 +* New Feature: Safe OTTO Persistence restore — original Yoast, Rank Math and AIOSEO values are backed up before OTTO writes to them, nothing is written without explicit consent, and a restore action rolls every value back to its original state
148 +* New Feature: Language Alternates (hreflang) can now be switched on or off per post and page from the editor settings
149 +* New Feature: A global setting now controls whether OTTO or custom SEO values take priority across the site
150 +* Fix: Core infrastructure sweep — resolved deactivation data loss, wp-config fatals and media metadata corruption across the plugin
151 +* Fix: SEO Health now credits titles and descriptions that OTTO has already applied instead of reporting them as missing
152 +* Fix: Classic Editor post saves no longer discard persisted OTTO schema
153 +* Fix: OTTO titles and descriptions containing curly quotes or dashes now save correctly instead of failing silently
154 +* Fix: OTTO renders now keep third-party og:title and twitter:title instead of stripping them
155 +* Fix: Sitemaps no longer include URLs that redirect elsewhere, whether the redirect comes from MetaSync, Rank Math or Yoast
156 +* Fix: The Visual HTML Editor now refuses saves that cannot preserve the stored document, protecting landing pages and full-document templates
157 +* Fix: Redirect destination and loop guards now apply on every write path, closing the gaps that allowed self-referencing and looping redirects
158 +* Fix: Language Alternates no longer emit duplicate tags on WPML sites, always include a self-reference, and validate their entries
159 +* Fix: The Instant Indexing service account file can now be saved, with clear upload confirmation and the ability to remove or reselect it
160 +* Fix: Plugin updates no longer fatal on a stale admin class during a White Label import
161 +* Improvement: SEO Health missing title and description filters are now optimized for large catalogues
162 +* Improvement: SEO Health exclusion queries, counting and CSV export are optimized for sites with heavy post metadata
163 +* Improvement: Frontend assets are now loaded only where they are needed, and duplicate WebPage schema nodes are removed
164 +* Improvement: The third-party SEO plugin sync screen has been redesigned and now respects white-label branding
165 +* Improvement: The duplicate Instant Indexing admin page has been removed and its functionality consolidated into Indexation Control
166 +* Improvement: The duplicate Primary Category control has been removed from the MetaSync editor sidebar
167 +* Improvement: The redirection list no longer repeats the match type in the From column
168 +* Improvement: The Changes Log now distinguishes OTTO cleanup events from new SEO deployments, so log entries reflect what actually happened
225 169
226 -= 2.6.3 =
227 -- Feature: BreadcrumbList schema auto-generated from post hierarchy with cross-plugin deduplication for Yoast, Rank Math, and AIOSEO
228 - - Feature: Hreflang language alternates support with WPML integration for multilingual sites
229 - - Feature: LLMs.txt generator with dedicated settings page and MCP tools
230 - - Feature: News sitemap and video sitemap generation
231 - - Feature: Taxonomy term SEO meta synced to Yoast, Rank Math, and AIOSEO for category and tag archive pages
232 - - Feature: Open Graph output extended with article timestamps, author, section, tags, and og:image dimensions
233 - - Feature: MCP tools for SEO plugin audit — read, diff, sync, and conflict detection across installed SEO plugins
234 - - Feature: MCP tools for OTTO pipeline — trigger optimization, check status, and verify SEO output
235 - - Feature: MCP cache-purge tools for per-URL and full-site cache invalidation
236 - - Feature: Whitelabel color personalization for admin UI
237 - - Improvement: Composer classmap autoloader covering all plugin classes, removing 55+ scattered require_once calls
238 - - Improvement: MCP rate limiter wired into all tool calls with proper 429 responses
239 - - Improvement: GA4 event tracking replaces Mixpanel for plugin analytics
240 - - Improvement: Execution time limit added to MCP database query tool to prevent long-running queries
241 - - Fix: OTTO title and meta replacement no longer strips dollar signs from values like $500
242 - - Fix: Google Instant Indexing now auto-submits on post publish
243 - - Fix: LLMs.txt generation now excludes noindex posts
244 - - Fix: Missing PHP DOM extension handled gracefully in HTML-to-builder converter
245 - - Fix: Yoast and AIOSEO term meta storage corrected; SEO conflict handler fixed for term archive pages
246 - - Fix: WP Engine cache integration no longer calls non-existent purge_url() method; Throwable errors now caught
247 - - Fix: Beaver Builder templates excluded from sitemap generation
248 - - Fix: Gutenberg blockquote block no longer shows invalid content error after OTTO applies changes
249 - - Fix: Redirections page filter and search controls no longer trigger add-redirection form validation
250 - - Fix: Settings page no longer shows Synced label and invalid API key error simultaneously
251 - - Fix: Unsaved changes notification close button now works correctly
252 - - Fix: Composer autoloader updated with missing class entries to prevent fatal errors on fresh installs
170 += 2.6.26 =
171 +* Fix: Yoast schema conflict handling no longer emits invalid JSON-LD on OTTO-covered pages
172 +* Fix: Third-party SEO sync now reports success only when SEO data was actually written, preventing stale titles from being treated as current
173 +* Fix: The Gutenberg SEO sidebar no longer uses OTTO suggestions as field values, so pages are not silently frozen out of OTTO
174 +* Improvement: Breadcrumb settings are now managed from one dedicated settings page instead of duplicate controls
175 +* Fix: News and video sitemaps now use consistent source ordering and regenerate news entries within the required freshness window
176 +* Improvement: The Visual HTML Editor now bundles its own runtime, so it loads correctly for raw-HTML pages without relying on a CDN
177 +* Fix: Redirection and 404 list filters no longer trigger a selected bulk action accidentally
178 +* Fix: Open Graph opt-out now suppresses all matching MetaSync social output paths
179 +* Fix: The Gutenberg SEO sidebar no longer shows a duplicate URL Slug field
180 +* Fix: Social titles and descriptions no longer persist pre-filled post defaults, so renamed posts and edited excerpts update their social metadata correctly
181 +* Security: White Label JSON imports no longer lock out the settings password recovery flow, so Forgot Password keeps working when a new whitelabel-settings.json is deployed
253 182
254 -= 2.6.2 =
255 -- Improvement: Whitelabel now supports separate logo uploads for light and dark admin themes
256 - - Improvement: Breadcrumbs settings panel redesigned with cleaner layout and more configuration options
257 - - Fix: Page title tags now update correctly when Yoast SEO is active
258 - - Fix: OTTO optimizations no longer disappear when Rank Math is installed alongside the plugin
259 - - Fix: Duplicate keywords meta tag no longer appears in page source after OTTO applies keyword recommendations
260 - - Fix: Theme builder selector no longer lists builders that are not installed or detected on the site
261 - - Fix: MCP server now returns descriptive error messages instead of generic failures
262 - - Fix: MCP server correctly handles post status and primary category fields
263 - - Fix: MCP server now supports Twitter card meta fields and bulk taxonomy term operations
264 - - Fix: Plugin sidebar icon and menu now match standard WordPress appearance
265 - - Fix: Long field labels in Settings no longer overflow their column
266 - - Fix: 404 Monitor bulk actions bar stays on one line instead of wrapping
267 - - Fix: Breadcrumbs settings section now shows its icon correctly
268 -
269 -= 2.6.1 =
270 -- Feature: Bulk SEO health dashboard — check pages missing meta title, description and schema
271 - - Feature: New schema types: LocalBusiness, HowTo, VideoObject
272 - - Feature: Extended schema types: Event, JobPosting, Review, Course, Organization, Person, WebSite
273 - - Feature: Breadcrumbs module with HTML output and BreadcrumbList schema
274 - - Feature: Primary category selector in post editor sidebar
275 - - Feature: Internal link suggestions in post editor
276 - - Feature: Site Verification page added to SEO navigation
277 - - Feature: CPU load awareness and deferral settings
278 - - Feature: Whitelabel-aware promo sidebar and quick links settings
279 - - Improvement: Replace all emoji icons with WordPress Dashicons across admin UI
280 - - Improvement: Compatibility page redesign: accordion rows, themes, CDN, troubleshooting section
281 - - Fix: Duplicate schema markup and meta descriptions on multiple pages
282 - - Fix: Sync handlers returning HTTP 200 with empty body on internal WP_Error — PHP 8 fatal prevented
283 - - Fix: Old UI flashing before new UI loads on page transition
284 - - Fix: UI misalignment on Dashboard and various admin pages
285 - - Fix: Schema markup not rendering correctly
286 - - Fix: NitroPack purge conflict on page-load path
287 - - Fix: Image alt-text fallback on Oxygen HTTP render path
288 - - Fix: Content Genius page sync full-width on Oxygen Builder
289 - - Fix: Crawl monitoring showing no data despite successful crawls
290 - - Fix: Oxygen Builder synced post content not visible on front-end
291 - - Fix: Restore Performance and CPU settings tab removed during refactor
292 - - Fix: Replace burst mode heartbeat with lightweight connection-ping
293 - - Fix: Render OTTO-persisted otto_jsonld in frontend schema output
294 - - Fix: schema_types returning empty array in wordpress_get_post_by_url
295 - - Fix: Correct Rate Now review URL and replace emoji star with Dashicon
296 - - Fix: Telemetry noise and whitelabel JSON decode bug
297 - - Fix: Add save button to Site Verification, Local Business, Code Snippets pages
298 - - Fix: Remove dead wp_ajax_metasync hook pointing to non-existent method
299 - - Fix: robots_txt_backups table missing on fresh activation
300 - - Fix: WP admin sidebar plugin icon vertical misalignment
301 -
302 -= 2.5.27 =
303 -- Fix: Image alt-text unreliable on Oxygen theme HTTP render path; added string-based fallback
304 -- Fix: Content Genius page sync renders full-width on Oxygen Builder
305 -- Fix: Apostrophe truncation in SEO extract functions causing content to be cut short
306 -- Fix: Crawl monitoring module shows no data despite successful crawl executions
307 -- Fix: Oxygen Builder synced post content not visible on front-end
308 -- Fix: CPU performance tab missing from Advanced Settings after refactor
309 -- Fix: JSON-LD schema deduplication: duplicate blocks on the same page
310 -- Fix: Schema/JSON-LD suppression for OTTO when third-party SEO plugins (Yoast, Rank Math, AIOSEO) are active
311 -- Fix: Remove dead `wp_ajax_metasync` hook pointing to non-existent `sync_items` method
312 -- Fix: Add missing `display_cpu_deferral_notice` method to `Metasync_Admin`
313 -- Fix: Oxygen Builder page template override guard in `create_page()` and `update_page()` (REST API)
314 -- Fix: Stale-options overwrite in `test_heartbeat_api_connection()`; replace burst-mode heavy heartbeat with lightweight connection-ping endpoint
315 -- Fix: Image alt-text string-based fallback in OTTO HTTP render path; Divi `data-et-multi-view` JSON attribute handling
316 -- Feature: Internal link suggestions in post editor sidebar
317 -- Feature: Replace burst-mode heavy heartbeat (`SyncCustomerParams`) with lightweight `connection-ping` endpoint — reduces payload and server load during key-pending state
318 -- Feature: MCP sync log: log changes, rollback, 90-day auto-clear, and manual clear button
319 -- Feature: Code minification and delivery (JS minifier)
320 -- Feature: CPU load awareness: adaptive deferral based on server load
321 -- Improvement: MCP `wordpress_get_post_by_url` extended to return full SEO metadata (title, description, schema, OG fields, focus keyword)
322 -- Improvement: MCP System diagnostics and read-only database access tools (`wordpress_get_system_info`, `wordpress_get_active_plugins`, `wordpress_get_cron_jobs`, `wordpress_db_query`)
323 -- Improvement: MCP `wordpress_get_seo_inventory` tool: bulk SEO health data across all posts in one call
324 -- Improvement: Log - fatal-only filtering — `capture_php_error()` now passes only `E_USER_ERROR` and `E_RECOVERABLE_ERROR`; warnings, notices, and deprecations are dropped
325 -- Improvement: Log - level gate in `send_to_sentry()` and `TelemetryManager::send_message()` — info/warning/debug events never reach the proxy
326 -- Improvement: Log - debug window reduced from 60 min to 15 min (900s transient TTL) for faster re-reporting of recurring fatal errors
327 -- Improvement: Logging cleanup - removed 15+ dead `log_heartbeat('info', ...)` calls (method already early-returns on `'info'`)
328 -- Improvement: Logging cleanup - removed operational noise from `Metasync_Rate_Limiter`, `Metasync_Cache_Purge`, and `Metasync_API_Backoff_Manager`
329 -
330 -= 2.5.26 =
331 -* Improvement: AIOSEO compatibility
332 -* Fix: preg_replace backreference injection in title deduplication (titles with \$N sequences)
333 -* Fix: Title tag deduplication and SEO plugin conflict handlers
334 -* Fix: API rate limiting causes stale cache and robots/canonical settings ignored
335 -* Fix: Dollar signs being stripped from image alt text
336 -* Fix: Heading deployment on Divi/page-builder sites
337 -* Fix: PHP 7.4 compatibility — polyfills for str_contains/str_starts_with/str_ends_with and match expression rewrites
338 -* Feature: NitroPack full flush + targeted object cache
339 -* Feature: WP Database & Object Caching cleanup
340 -
341 -= 2.5.25 =
342 -**Bug Fixes:**
343 -* Fix: OTTO persistence not syncing titles, descriptions, OG/Twitter fields were only written when persistence was enabled, but OTTO's own render filters read those same staging keys; added coverage for regular posts/pages; OG/Twitter persistence now also writes to RankMath and Yoast equivalents so SEO plugins pick up OTTO data; OG renderer falls back to OTTO staging keys when persistence keys are empty
344 -* Fix: DB column missing on older installs now self-heals all three required columns
345 -* Fix: Cap WP announce ping to max 5 per plugin activation lifecycle — removed unbounded cron retry; counter resets on fresh activation and clears on deactivation
346 -* Fix: Dollar signs stripped from image alt text during deployment
347 -* Fix: Heading deployment broken on some outdated Divi versions
348 -* Fix: One case of duplicate meta name="description tags when MetaSync and AIOSEO coexist
349 -* Fix: XML sitemap auto-update not triggering when posts published via Gutenberg
350 -* Fix: Divi header/footer hidden on blog posts synced via Content Genius
351 -
352 -= 2.5.24 =
353 -**Bug Fixes:**
354 -* Fix: Whitelabel slug not respected in admin links — \"Add Redirect\", \"404 Monitor\" tab, and \"Import from SEO Plugins\" buttons were using hardcoded `searchatlas-*` slugs instead of the configured WL slug
355 -* Fix: Hardcoded SearchAtlas/Search Atlas brand strings replaced with whitelabel-aware output across admin views, dev panel, site health checks, and MCP tool descriptions
356 -* Fix: \"SearchAtlas AI Pages\" dashboard widget title ignoring whitelabel plugin name setting
357 -* Fix: Whitelabel icon lost after exporting and importing the plugin on a different site — icon is now bundled inside the export ZIP and restored to the new site's uploads directory on import
358 -* Fix: Whitelabel icon not shown on WordPress Dashboard → Updates page — icon injected into the `update_plugins` site transient so the correct branded icon appears regardless of the update API response
359 -
360 -= 2.5.23 =
361 -**Bug Fixes:**
362 -* Fix: MetaSync WP plugin breaks Elementor front-end spacing — SimpleHtmlDOM `stripRN` was stripping whitespace between inline elements; now set to `false`
363 -* Fix: Elementor headings override Global Fonts after Content Genius sync — removed forced Roboto font so headings inherit site's Global Font settings
364 -* Fix: Elementor Canvas template incorrectly applied when syncing articles as posts
365 -* Fix: Admin bar status icon now reflects missing UUID as a distinct warning state (orange) rather than generic disconnected state
366 -
367 -**Improvements:**
368 -* Performance: Added transient cache to OTTO JS check to reduce overhead on every request
369 -* Improvement: Cache Purge — Added per-URL purge support
370 -* Improvement: Cache Purge — Query string normalization strips UTM/gclid/fbclid params before purge so all URL variants resolve to the same canonical URL
371 -* Improvement: Cache Purge — Edge CDN purge integrations targeted via configuration
372 -* Improvement: Remove non-publishable roles (Subscriber, Contributor) from Content Genius User Roles to Sync setting
373 -* Improvement: Validation message added when publishing AI Landing Pages with plain permalink structure
374 -
375 -**Features:**
376 -* Feature: WordPress Site Health Integration — MetaSync now registers checks in the WP Site Health panel
377 -* Feature: Media Optimization
378 -* Feature: Rate the Plugin notice — shows a dismissible prompt after 7 days of usage; hidden when whitelabel is enabled
379 -
380 -**Refactoring:**
381 -* Removed `instant-index/` vendor tree (~714 files); replaced Google SDK with native PHP implementation
382 -* Decomposed `Metasync_Admin` god object (17,849 lines) into 10 focused classes; admin reduced to ~3,986 lines
383 -* Decomposed `Metasync_Public` into focused classes; REST API routes extracted to `Metasync_Rest_Api`
384 -* Extracted 23 inline JavaScript blocks into proper `.js` files loaded via `wp_enqueue_script`
385 -
386 -= 2.5.22 =
387 -* Improvement: Heartbeat connection/pool logic to reduce the number of external requests
388 -* Improvement: Adapt scenarios of Idle WpRocket + Active Kinsta Cache that was preventing the cache to be purged.
389 -
390 -= 2.5.21 =
391 -###Features
392 - - Add hosting cache integration (WP Engine + Kinsta) with per-provider toggles in Advanced → Cache
393 - Management
394 - - Add WP Engine native cache purge (Varnish + Memcached) via `WpeCommon`
395 - - Add Kinsta native full-page cache purge via `KinstaCache::kinsta_cache_purge_full()`
396 -
397 - ###Bug Fixes
398 - - Fix: SEO placeholder tokens (%%title%%, %sitename%, #post_title#, etc.) now resolved to real values on
399 - import from Yoast / Rank Math / AIOSEO
400 - - Fix: Customer schema markup being injected into the global site header
401 - - Fix: WP Rocket compatibility — OTTO no longer disables WP Rocket JS/CSS optimization features
402 - - Fix: WP Rocket + Kinsta cache conflict causing meta title/description to revert
403 - - Fix: CSS injection methods (`enqueue_page_custom_css`, Elementor, Divi) missing from `Metasync_Public`
404 - - Fix: Plugin URI and Author URI fields silently discarding valid URLs
405 -
406 -= 2.5.20 =
407 -* Fixed a case where a empty Otto meta description was overwriting the existing one.
408 -
409 -= 2.5.19 =
410 -New Features
411 -
412 - - SEO Sidebar in Post Editor — Edit Meta Title, Meta Description and URL slug directly from the post/page
413 - editor sidebar
414 - - Bot Detection Layer for OTTO — Detects and tracks bots with statistics dashboard
415 - - Bing Instant Indexing — Submit URLs directly to Bing
416 - - Plugin Setup Wizard — Guided setup process for new users
417 - - Execution Settings — New controls under Advanced Settings
418 - - Debug Mode Auto-Disable & Safety Limits — Automatically disables after a set period
419 - - Enhanced Error Categorization — Improved monitoring with categorized error tracking
420 - - Virtual robots.txt / sitemap.xml — Served virtually when host blocks direct file writes
421 - - OTTO 404-Specific Filtering — Filter OTTO suggestions for 404 pages
422 - - Heartbeat reliability improvements
423 -
424 - Improvements
425 -
426 - - Schema Markup disable option — Can now be toggled per Post/Page Editor settings
427 - - Whitelabel form validation — Prevents partial saves without whitelabel mode activation
428 - - Host Blocking in whitelabel — Host blocking now covered by whitelabel settings
429 - - Support Token rate limiting — Properly enforced during login
430 - - Report Issue with Sentry User Feedback — Image attachments supported
431 - - MCP Tool API key auth — Fixed permission checks for API key-authenticated requests
432 -
433 - Bug Fixes
434 -
435 - - Fixed OTTO removing original meta description when no OTTO description deployed
436 - - Fixed plugin breaking Elementor front-end spacing when span tag was inner H1
437 - - Fixed WP Rocket + Kinsta cache conflict causing meta titles/descriptions to disappear
438 - - Fixed ALT text not applied on home page and other pages for Custom Theme
439 - - Fixed Plugin URI and Author URI not being saved
440 - - Fixed UI issues in admin screens
441 - - Fixed sync logs not showing newest info after filtering
442 - - Fixed exported whitelabel settings not uploading to another site
443 - - Fixed plugin settings hiding in plugin menu but not under WordPress General settings
444 - - Fixed Import SEO Data missing from access control list
445 -
446 - Stability / PHP 8.1+ Compatibility
447 -
448 - - 13 improvements with deprecated PHP functions below PHP V8.0
449 -
450 -= 2.5.18 =
451 -* Removed JWT-based temporary support access token system
452 -* Improved internal code documentation
453 -
454 -= 2.5.17 =
455 -* New: Administrator-Controlled Remote Support - Support access now requires explicit consent with secure, time-limited JWT tokens you generate and control
456 -* New: Support Access Management UI - Generate, view, and revoke support tokens directly from plugin settings
457 -* New: Email notifications when support tokens are generated, used, or revoked
458 -* Security: Connect to Search Atlas now uses time-limited, single-use tokens instead of persistent credentials
459 -* Security: Added rate limiting to Connect to Search Atlas authentication
460 -
461 -= 2.5.16 =
462 -* New: Administrator-Controlled Remote Support - Support access now requires explicit consent with secure, time-limited tokens you generate and control
463 -* Security: Enhanced Search Atlas SSO authentication with time-limited tokens
464 -* Security: Improved access control for administrative functions
465 -* Security: Added rate limiting to authentication endpoints
466 -* Improvement: Optimized token validation for better performance
467 -
468 -= 2.5.15 =
469 -* **Fix:** Improved compatibility with the **NitroPack** cache plugin.
470 -* **Fix:** Resolved a compatibility issue with the **Divi Timeline** widget.
471 -* **Fix:** Resolved a compatibility issue with the **Divi MultiView** widget.
472 -* **Fix:** Fixed an issue where static text in Advanced Settings displayed "OTTO/SA" instead of the **White Label** name.
473 -* **Fix:** Improved input validation within the **Redirection** form.
474 -* **Fix:** Fixed an issue where the **Cancel** button in the Redirection feature was not triggering.
475 -* **Fix:** Resolved an issue where **General Settings** would reset after a White Label password was set.
476 -* **Improvement:** Enhanced the filter and search modules in the **Redirection** section.
477 -* **Improvement:** When a new sitemap is generated, the **robots.txt** file will now automatically update with the correct link.
478 -* **Improvement:** Simplified plugin navigation for a better user experience.
479 -* **Improvement:** Removed deprecated files and unnecessary logs to optimize performance.
480 -* **Improvement:** Added **MCP** support.
481 -* **Improvement:** Added data persistence with **granularity** support.
482 -* **Improvement:** Improved notification messaging to better inform users about plugin updates.
483 -* **Feature:** Added full support for **Oxygen Builder**.
484 -* **Feature:** **Plugin Access Control:** Added a setting under Advanced Settings to define which user roles can access the plugin.
485 -* **Feature:** **Advanced Access Control:** White Label users can now disable specific settings or features per user role (**Settings \> White Label \> Advanced Access Control**).
486 -* **Feature:** Added a dedicated **Import SEO Data** screen.
487 -* **Feature:** Added an option to set all external links to `target="_blank"` (**Settings \> General \> Post/Page Settings**).
488 -* **Feature:** Added an option to add `rel="nofollow"` to all external links (**SEO \> Indexation \> Indexation Control**).
489 -* **Miscellaneous:** Minor cross-compatibility improvements for legacy PHP versions.
490 -
491 -= 2.5.14 =
492 -* **Fix:** Fixed a case of compatibility with Formidable Form Builder
493 -* **Fix:** Fixed a case of compatibility with Essentials Theme
494 -* **Fix:** Small adjustments in overall code for performance
495 -* **Improvement:** Improvement of OTTO SSR system
496 -* **Improvement:** Small adjustments in the UX
497 -* **Improvement:** Improvement of suggestions persistence in WP DB.
498 -
499 -= 2.5.13 =
500 -* **Fix:** Fixed a case where new published article was only showing headers
501 -* **Fix:** Fixed a case of compatibility with Essentials Theme
502 -* **Fix:** Small adjustments in overall code for performance
503 -* **New Feature: Whitelabel Plugin Export -** We included a feature to export a version of the plugin with your WL info. You could now easily install the plugin through different hosts, without the need to manually update/include the WL settings.
504 -* **New Feature: Import from RankMath/Yoast/AIOSEO -** We included a feature to import Robots.txt, Sitemap.xml, Schemas and Indexation Options from SEO Plugins.
505 -* **New Feature: Advanced Settings -> Clear Transient Cache -** We included a feature to clear the transient cache used to boost page performance. The cache stores the deployed changes from the platform, avoiding unnecessary process to apply the changes.
506 -* **Improvement:** Small adjustments in OTTO SSR
507 -* **Improvement:** Small adjustments in Light Theme version
508 -* **Improvement:** We included a option in the Settings to Disable OTTO Toolbar.
509 -* **Improvement:** Otto Toolbar is Whitelabel friendly (Apply WL name)
510 -
511 -= 2.5.12 =
512 -* **Fix:** Fixed a case of compatibility with Slider Revolution
513 -* **Fix:** Fixed a case of duplication in content synced
514 -* **Fix:** Small adjustments in PHP Warnings being triggered
515 -* **Fix:** Fixed a case of custom child theme triggering errors in error log
516 -* **New Feature: Light/Dark Theme -** We included a feature that allow users to switch the plugin colors to a light version.
517 -* **New Feature: Content Genius Authors -** We included a feature under settings where you could choose what user roles would be synced with Content Genius
518 -* **New Feature: OTTO Changes Viewer -** We included a feature to check what changes are being applied in a page optimized by OTTO.
519 -* **Improvement:** We improved the OTTO detection system.
520 -* **Improvement:** Changes in Robots.txt could be rollbacked with a historic of changes
521 -* **Improvement:** We included a option in the Indexation feature to disallow Category pages.
522 -* **Improvement:** Small optimizations in the code for page speed improvement.
523 -
524 -= 2.5.11 =
525 -* **Fix:** Fixed a case of compatibility with Woocommerce
526 -* **Fix:** Fixed a case of redirections not working when the target URL was deleted
527 -* **Fix:** Fixed a case of Error Logs not displaying correctly
528 -* **Fix:** Fixed a case of PHP Warning due outdated PHP version
529 -* **Fix:** Fixed a case of custom child theme triggering errors in error log
530 -* **New Feature: Report a Issue -** We included a feature that allow users to notify Issues directly from the plugin.
531 -* **Improvement:** We improved the Whitelabel settings to hide specific features if needed.
532 -* **Improvement:** Improvements on system messages
533 -
534 -= 2.5.10 =
535 -* **Fix:** Fixed a case of compatibility with Gravity Forms
536 -* **Fix:** Fixed a case of compatibility with Elementor Pro
537 -* **Fix:** Fixed a case of compatibility with DIVI
538 -* **Fix:** Fixed a case where the post editor preview was blocked
539 -* **Fix:** Fixed a case of original meta title and meta description being overwritten by OTTO
540 -* **New Feature: Custom Pages -** We included a feature that allow users to create custom pages bypassing existing Themes and Styles.
541 -* **New Feature:** **OTTO Excluded URLs -** We included under Compatibility Tab, a option to Turn off OTTO changes per URL.
542 -* **New Feature:** **Import Redirections -** Users could now import redirections from .csv file or directly from Yoast/RankMath/AIOSEO.
543 -* **Improvement:** We improved the Whitelabel settings to hide specific features if needed.
544 -* **Improvement:** Minor changes in core functions.
545 -* **Improvement:** Excluded from Sitemap generator URLs that aren't related with live pages.
546 -
547 -= 2.5.9 =
548 -* **Fix:** Fixed a case where the plugin was duplicanting the meta description tag
549 -* **Fix:** Fixed a case where the post editor was preventing user to save OG tags.
550 -* **New Feature:** We included in advanced settings a option to test the connectivity between host and the platform.
551 -* **New Feature:** Users could generate SITEMAP.xml directly in the plugin (This function will disable current sitemap.xml plugins)
552 -* **New Feature:** User could Enable/Disable storing OTTO Meta Title and Meta Description into the Database. When enabled, it will overwrite Meta Title and Meta Description of Yoast/RankMath, etc, and the old meta title and meta description
553 -* **Improvement:** We improved the Whitelabel settings to hide specific features if needed.
554 -* **Improvement:** Minor changes in cross-compatibility with outdated PHP versions.
555 -
556 -= 2.5.8 =
557 -* **Fix:** Some conditions was preventing saving new/edit posts directly from the editor
558 -* **Fix:** Non-standard tags found in body of the page, are being detect as plain text.
559 -* **New Feature:** White Label Clients could turn on/off Plugin features in Whitelabel Settings.
560 -* **Improvement:** Minor changes in cross-compatibility with outdated PHP versions.
561 -
562 -= 2.5.7 =
563 -
564 -
565 -= 2.5.6 =
566 -* **Prevention**: New error detection system.
567 -* **White Label**: 1-click Auth will sync the logo from the WL dashboard
568 -* **Fixes & UX**: Allow Rollback changes in Meta Title and Meta Description that was being stored in the Database.
569 -
570 -= 2.5.5 =
571 -* **Performance**: Significant improvement to dashboard loading speed.
572 -* **White Label**:
573 - * New dedicated White Label settings screen (Settings\>White Label).
574 - * Added password protection for White Label settings.
575 -* **Logging**: Introduced Sync Logs to display implemented website changes.
576 -* **Fixes & UX**: Minor UX adjustments and a fix for a false positive XSS issue in unused code.
577 -* **System**: Minor OTTO system optimizations to reduce disk space and memory usage.
578 -
579 -= 2.5.4 =
580 -* HotFix: In some cases, the **error log** was becoming too large, causing host performance to slow down.
581 -
582 -= 2.5.3 =
583 -* Included Compatibility Screen V.1, that shows most common Themes and plugins and compatibility
584 -* Improved error logs system
585 -
586 -= 2.5.2 =
587 -No changelog available.
588 -
589 -= 2.5.1 =
590 -* **Improved Dashboard Loading** for public dashboard URLs.
591 -* **Enhanced compatibility** with naked URLs (non-www) on the platform.
592 -* **Refined the Connection Status Bar.**
593 -* **Fixed a bug** where the Connection Tips Box didn't expand when clicked.
594 -* **Enabled the storage** of meta titles and descriptions in the database.
595 -* **Added an option** to disable the dashboard view from the settings page.
596 -* **Created a setting** to disable the Connection Status Bar from the admin bar.
597 -* **Implemented a new Telemetry system** to streamline bug detection.
598 -* **Resolved an issue** that caused error logs to be generated multiple times.
599 -* **Optimized the rendering of AMP pages** to prevent unrecognized HTML tags.
600 -
601 -= 2.5.1 =
602 -* **Improved Dashboard Loading** for public dashboard URLs.
603 -* **Enhanced compatibility** with naked URLs (non-www) on the platform.
604 -* **Refined the Connection Status Bar.**
605 -* **Fixed a bug** where the Connection Tips Box didn't expand when clicked.
606 -* **Enabled the storage** of meta titles and descriptions in the database.
607 -* **Added an option** to disable the dashboard view from the settings page.
608 -* **Created a setting** to disable the Connection Status Bar from the admin bar.
609 -* **Implemented a new Telemetry system** to streamline bug detection.
610 -* **Resolved an issue** that caused error logs to be generated multiple times.
611 -* **Optimized the rendering of AMP pages** to prevent unrecognized HTML tags.
612 -
613 -= 2.5.0 =
614 -* **Search Atlas SSO**
615 - * Users can now authenticate the plugin with a single click, eliminating manual setup steps and streamlining the entire process.
616 -* **OTTO One-Click Activation**
617 - * After successful authentication, if an OTTO project exists in Search Atlas, its configurations are automatically imported and applied within WordPress.
618 -* **White Label Branding**
619 - * The white label experience has been significantly improved. Upon one-click authentication, any configured white label settings are automatically imported. This includes:
620 - * Plugin Name
621 - * Logo
622 - * OTTO Name
623 - * Dashboard URL
624 - * From then on, all plugin connections reflect the customer’s white label branding. These settings are also accessible in a new **Advanced tab** within the plugin settings.
625 -* **Dashboard Access**
626 - * Direct access to the customer’s OTTO project dashboard is now available from within the plugin.
627 -* **Plugin Redesign**
628 - * The plugin has been fully rebranded with a refreshed design that aligns with the current Search Atlas dashboard, offering a more consistent and modern user experience.
629 -* **Reset Plugin**
630 - * A new option has been added to fully reset plugin configurations back to their default values.
631 -* **Error Logs**
632 - * Enhanced error logging is now available. When WordPress debug modes are enabled, the plugin can generate anonymous logs that may be shared with the specialist team for troubleshooting.
633 -* **Search Atlas SSO**
634 - * Users can now authenticate the plugin with a single click, eliminating manual setup steps and streamlining the entire process.
635 -* **OTTO One-Click Activation**
636 - * After successful authentication, if an OTTO project exists in Search Atlas, its configurations are automatically imported and applied within WordPress.
637 -* **White Label Branding**
638 - * The white label experience has been significantly improved. Upon one-click authentication, any configured white label settings are automatically imported. This includes:
639 - * Plugin Name
640 - * Logo
641 - * OTTO Name
642 - * Dashboard URL
643 - * From then on, all plugin connections reflect the customer’s white label branding. These settings are also accessible in a new **Advanced tab** within the plugin settings.
644 -* **Dashboard Access**
645 - * Direct access to the customer’s OTTO project dashboard is now available from within the plugin.
646 -* **Plugin Redesign**
647 - * The plugin has been fully rebranded with a refreshed design that aligns with the current Search Atlas dashboard, offering a more consistent and modern user experience.
648 -* **Reset Plugin**
649 - * A new option has been added to fully reset plugin configurations back to their default values.
650 -* **Error Logs**
651 - * Enhanced error logging is now available. When WordPress debug modes are enabled, the plugin can generate anonymous logs that may be shared with the specialist team for troubleshooting.
652 -* **Disable SSO**
653 - * Disable 1 Click WP Authentication from Dashboard
654 -
655 -BUG FIXES:
656 -
657 -* Disabled Canonical redirects generating loops
658 -* Check if URL could be crawled
659 -* Duplicated element with YITH plugin
660 -* FAQ format conflict with Theme Builder
661 -* Conflict with Hostify Booking Engine plugin
662 -* Old version of Elementro Pro breaking CSS
663 -
664 -= 2.4.4 =
665 -* Bug Fix: When user is logged via SSO, validate if the auth token is set
666 -
667 -= 2.4.3 =
668 -* HotFix 1: When user is logged via SSO, persist the session in the admin area
669 -
670 -= 2.4.2 =
671 -* Bug fix 1: large log size for heavy traffic sites
672 -
673 -= 2.4.1 =
674 -* Bugfix 1: Imported Posts published with duplicate images
675 -
676 -= 2.4.0 =
677 -* Feature 1: Single Sign On to WP from Dashboard
678 -* Feature 2: Modifying Existing Posts with CA AI
679 -* Improvement 1: Improved Error Handling for menu Image field
680 -* Improvement 2: Notification about permalink compatibility
681 -* Improvement 3: Remove outdate UI component (Clear Cache Button)
682 -* Improvement 4: Delete Zipped logs older than 30 days
683 -* Improvement 5: Displaying Block Quote elements from CA
684 -* Bug fix 1: Table of Contents not Working for some sites
685 -* Bug fix 2: FAQ Section not comming in correctly for some sites
686 -* Bug fix 3: Error warning while publishing to WP Elementor on some sites
687 -* Bug fix 4: Fatal Error triggered on invalid URI
688 -* Bug fix 5: Preserve redirection for forward slash ending urls
689 -
690 -= 2.3.11 =
691 -* Feature 1: Modifying Existing Posts with Content Assistant AI
692 -
693 -= 2.3.10 =
694 -* Bug fix 1: Critical Error with undeclared global Post Object
695 -
696 -= 2.3.8 =
697 -* Bug fix 1: Check out flow breaking on some sites
698 -
699 -= 2.3.7 =
700 -* Bug fix 1: Otto Interfering with some non-native Ajax requests
701 -
702 -= 2.3.6 =
703 -* Bug fix 1: Activating Otto SSR breaks UI on some sites
704 -
705 -= 2.3.5 =
706 -* Bug fix 1: Argument Count Error on some custom themes
707 -* Bug fix 2: Missing Title on some sites
708 -* Improvement 1: Serve Otto improved changes to Bot
709 -
710 -= 2.3.4 =
711 -* Bug fix 1: Error Viewing blog posts in some Nginx sites
712 -* Improvement 1: Otto Crawl monitoring
713 -* Improvement 2: Remove redundant requests to back end
714 -
715 -= 2.3.3 =
716 -* Bug fix 1: Checkout failure on some sites
717 -
718 -= 2.3.2 =
719 -* Bug fix 1: Fatal Error on empty tag attributes
720 -* Bug fix 2: Plugin Breaking Grid Page Sites
721 -
722 -= 2.3.1 =
723 -* Improvement 1: Real Time Server Side Rendering - No HTML Cache
724 -
725 -= 2.3.0 =
726 -* Bug fix 1: Fix 500 error when publishing a post
727 -* Bug fix 2: Fix OTTO SSR disabling the WordPress edit menu
728 -* Bug fix 3: Fix rest_forbidden error when publishing blog post
729 -* Bug fix 4: Fix OTTO breaking website layout (top-bar)
730 -* Improvement 1: Session Based Rendering
731 -* Improvement 2: Reset Heartbeat API calls to 5-minute intervals
732 -* Improvement 3: Update plugin layout and implement white-labelling
733 -* Improvement 4: Implement new caching mechanism
734 -
735 -= 2.2.7 =
736 -* Bug fix 1: Fix 429 page issue
737 -* Improvement 1: Disabling Otto on error pages like 404
738 -
739 -= 2.2.6 =
740 -* Improvement 1: Refactored CI/CD Pipelines and added releases
741 -
742 -= 2.2.5 =
743 -* Bug fix 1: Critical error on metasync logs page
744 -* Bug fix 2: Purchase process affected on Ecommerce Sites
745 -
746 -= 2.2.4 =
747 -* Bug fix 1: AI page builder formatting
748 -* Bug fix 2: Categories not syncing
749 -
750 -= 2.2.3 =
751 -* Bug Fix 1: Compatibility Improvements
752 -* Bug Fix 2: Hero Image not showing on some posts
753 -* Bug Fix 3: Post title missing on some posts
754 -
755 -= 2.2.2 =
756 -* Feature 1: Clear Otto Caches Button
757 -* Feature 2: Option to disable Otto for logged in Users
758 -* Bug fix 1: Hero Image not getting Updated
759 -
760 -= 2.2.1 =
761 -* Bugfix 1: Fix login Loop Issue on Sites with OTTO SSR
762 -* Bugfix 2: Fix Otto SSR Caching Problem on the Admin Side
763 -* Bugfix 3: Fix H1 rendering on published Posts
764 -
765 -= 2.2.0 =
766 -* Bugfix 1: Fix login Issues on Sites with OTTO SSR
767 -* Bugfix 2: Accepting UUID to activate OTTO on Wordpress
768 -* Feature 1: Alerting users to remove OTTO JS before activating OTTO SSR
769 -* Feature 2: Instant deployment of changes made on OTTO dashboard
770 -
771 -= 2.1.1 =
772 -* bugfix 1: Logging System - Fix Corrupted Zip Files
773 -
774 -= 2.1.0 =
775 -* Feature : Server Side Rendering of the Otto Pixel
776 -
777 -= 2.0.0 =
778 -* Feature 1: Metasync Specific Site Log Monitoring & Logging
779 -* Bugfix 1: Failed Image Syncing
780 -* Bugfix 2: Fix AI landing Page Visibility
781 -* Bugfix 3: Headings Coming over with #000000
782 -
783 -= 1.9.3 =
784 -* Fixed : Error Publishing Blog Article
785 -
786 -= 1.9.2 =
787 -* Fix : Renamed DB Migration Class to Prevent Conflict
788 -
789 -= 1.9.1 =
790 -* Feature 1: Stability Improvements
791 -
792 -= 1.9.0 =
793 -* Bug fixes
794 -* Fixed PHP 7.1.x compatibility issues
795 -
796 -= 1.8.9 =
797 -* Enhanced security measures
798 -
799 -= 1.8.8 =
800 -* Improved general page settings
801 -
802 -= 1.8.7 =
803 -* Enhanced compatibility with WordPress Dashboard
804 -
805 -= 1.8.6 =
806 -* Server-side improvements
807 -
808 -= 1.8.5 =
809 -* Additional server optimizations
810 -
811 -= 1.8.4 =
812 -* Resolved logic issues for white labels
813 -
814 -= 1.8.3 =
815 -* Fixed isset issues for white labels and public view
816 -
817 -= 1.8.2 =
818 -* Addressed isset issues for white labels and error logging
819 -
820 -= 1.8.1 =
821 -* Fixed isset issues for white labels
822 -
823 -= 1.8.0 =
824 -* Fixed "Sync now" plugin list addition
825 -
826 -= 1.7.9 =
827 -* Fixed content removal in Debug Log
828 -
829 -= 1.7.8 =
830 -* Fixed content removal in Debug Log
831 -
832 -= 1.7.7 =
833 -* Improved Default Debug Log
834 -
835 -= 1.7.6 =
836 -* Enhanced Default Debug Log
837 -
838 -= 1.7.5 =
839 -* Improved Debug functionality
840 -
841 -= 1.7.4 =
842 -* General code improvements
843 -
844 -= 1.7.3 =
845 -* Continued code enhancements
846 -
847 -= 1.7.2 =
848 -* Fixed various errors
849 -
850 -= 1.7.1 =
851 -* Addressed metasync error logging
852 -
853 -= 1.7.0 =
854 -* Enhanced code and integrated Otto
855 -
856 -= 1.6.9 =
857 -* Improved compatibility with Divi Child theme
858 -
859 -= 1.6.8 =
860 -* Fixed issues with figure tags
861 -
862 -= 1.6.7 =
863 -* Enhanced support for Iframe tags
864 -
865 -= 1.6.6 =
866 -* Redirects updated after White Label changes
867 -
868 -= 1.6.5 =
869 -* Code and White Label improvements
870 -
871 -= 1.6.4 =
872 -* General code improvements
873 -
874 -= 1.6.3 =
875 -* Continued code enhancements
876 -
877 -= 1.6.2 =
878 -* Code improvements and menu renaming
879 -
880 -= 1.6.1 =
881 -* Code enhancements and White Label updates
882 -
883 -= 1.6.0 =
884 -* Code improvements and added Sub Pages functionality
885 -
886 -= 1.5.9 =
887 -* Code improvements and HTML format fixes
888 -
889 -= 1.5.8 =
890 -* Code improvements and HTML format fixes
891 -
892 -= 1.5.7 =
893 -* Code enhancements and bug fixes
894 -
895 -= 1.5.6 =
896 -* Code improvements and bug fixes
897 -
898 -= 1.5.5 =
899 -* General code improvements
900 -
901 -= 1.5.4 =
902 -* Code enhancements
903 -* Fixed List Item components
904 -
905 -= 1.5.3 =
906 -* Code improvements
907 -* Integrated Divi
908 -
909 -= 1.5.2 =
910 -* Code enhancements
911 -* Fixed Elementor activation bug
912 -
913 -= 1.5.1 =
914 -* General code improvements
915 -
916 -= 1.5.0 =
917 -* Continued code enhancements
918 -
919 -= 1.4.9 =
920 -* General code improvements
921 -
922 -= 1.4.8 =
923 -* Added CSS for Search Atlas
924 -* Code enhancements
925 -
926 -= 1.4.7 =
927 -* Added Permalink Structure Validator
928 -* Enhanced Page Editor checks
929 -* Option to choose Page Editor
930 -* Code improvements and bug fixes
931 -
932 -= 1.4.6 =
933 -* Code enhancements and bug fixes
934 -
935 -= 1.4.5 =
936 -* Code improvements and bug fixes
937 -* Removed deprecated features from codebase
938 -
939 -= 1.4.4 =
940 -* Code enhancements and bug fixes
941 -* Added option to enable/disable features menu in General settings
942 -
943 -= 1.4.3 =
944 -* Changed post permalink approach to prevent conflicts
945 -* Updated page template to default instead of blank
946 -* Set page parent to main if page doesn't exist
947 -* Fixed permalink function in getPagesList
948 -* Resolved minor bugs and improved code
949 -
950 -= 1.4.2 =
951 -* Added new API endpoint `getPostByURL` to find posts by URL
952 -* Updated README content and "Tested up to" attribute to latest version
953 -* Updated `getPagesList` API to display all pages in JSON response
954 -* Fixed bug in retrieving `post_id` in API codes
955 -* Improved Pages management API for sub pages
956 -
957 -= 1.4.1 =
958 -* Added three new API endpoints for creating pages
959 -* Renamed heartbeat endpoints and functions
960 -* Updated heartbeat categories and user sync limits and responses
961 -* Updated plugin name and description
962 -* Added plugin banner for marketplace page
963 -* Removed Sitemaps feature, functions, and routes
964 -* Added option to enable/disable Schema on Posts and Pages
965 -* Improved General Settings UI/UX
966 -* Fixed bugs and enhanced code
967 -
968 -= 1.4.0 =
969 -* Feature: Basic Markdown support `[markdown] MARKDOWN CONTENT [/markdown]`
970 -* Feature: Set a new Landing Page via API
971 -* API code improvements and bug fixes
972 -
973 -= 1.3.4 =
974 -* Enhanced Error Logs viewer and messages
975 -* Added new error logs API
976 -* Fixed `createPost` API code bug
977 -
978 -= 1.3.3 =
979 -* Performance enhancements and bug fixes
980 -
981 -= 1.3.2 =
982 -* Fixed bugs related to post and page images
983 -
984 -= 1.3.1 =
985 -* Updated UI for HTML Accordion components
986 -
987 -= 1.3.0 =
988 -* Editor/APIs: Added HTML Accordion support via shortcode `[accordion]CONTENT[/accordion]`
989 -* APIs: Enabled editing drafts or published posts and pages multiple times without duplication via permalink
990 -* APIs: Allowed manual addition of schema/scripts/styles to posts and pages
991 -* APIs: Improved `deleteItem` endpoint code to comply with REST standards
992 -* APIs: Numerous bug fixes and code enhancements for better performance and stability
993 -
994 -= 1.2.8 =
995 -* Added new business type "Tree Services" to Business SEO page
996 -
997 -= 1.2.7 =
998 -* Added Error Logs GET API endpoint
999 -* Enabled functionality to trigger on-demand payload requests
1000 -* Added heartbeat HTTP request error information to Error Logs
1001 -* Set a limit of one thousand records for categories and users
1002 -
1003 -= 1.2.6 =
1004 -* Fixed issue displaying all fields in Optimal Settings
1005 -
1006 -= 1.2.5 =
1007 -* Enabled selecting the author of a post/page randomly in Create/Update item APIs
1008 -* Added ALT text for hero images in Create/Update item API payloads
1009 -* Set specific post dates within the last two months in Create API
1010 -* Added validation for `post_date` in Create/Update item APIs
1011 -* Refactored Create/Update item API code
1012 -
1013 -= 1.2.4 =
1014 -* Added feature and menu to enable/disable Open Graph, Facebook, and Twitter meta tags for all posts and pages
1015 -* Updated plugin version and README file
1016 -
1017 -= 1.2.3 =
1018 -* Enabled returning revisions for posts or pages in the update endpoint
1019 -* Added or updated post tags in Create and Update endpoints
1020 -* Included tags list in heartbeat API payload
1021 -
1022 -= 1.2.2 =
1023 -* Optimized Create and Update endpoints for media uploads
1024 -* Added redirection functionality in Create and Update endpoints
1025 -* Enabled/disabling comments in Create and Update APIs
1026 -* Fixed category updates in heartbeat API
1027 -* Resolved issue uploading previously unuploaded images to media in Create API
1028 -
1029 -= 1.2.1 =
1030 -* Added hero image attribute `hero_image_url` in Create or Update post endpoint
1031 -* Refactored image upload code to use URLs in Create/Update endpoints
1032 -* Updated plugin README file
1033 -
1034 -= 1.2.0 =
1035 -* Added post author in Create post endpoint
1036 -* Included users in heartbeat API with `users` attribute
1037 -* Assigned authors to attachments when uploading images to the media library
1038 -* Rebuilt post content tags based on HTML rules
1039 -
1040 -= 1.1.9 =
1041 -* Enabled saving images from URLs to the WordPress media library
1042 -* Added functionality to save images from URLs in Create/Update endpoints
1043 -* Implemented checks for existing images from URLs in Update endpoint
1044 -
1045 -= 1.1.8 =
1046 -* Corrected home URL storage in the 404 Monitor database
1047 -* Identified correct page URLs in the 404 Monitor for redirection
1048 -* Utilized correct URLs from the 404 Monitor for Redirection
1049 -
1050 -= 1.1.7 =
1051 -* Sent post categories as a list to backend requests
1052 -* Enabled auto-generation of the plugin's authorization key
1053 -* Displayed a message when the Search Atlas API key is not saved
1054 -
1055 -= 1.1.6 =
1056 -* Updated the title of General Settings
1057 -* Updated plugin screenshots
1058 -
1059 -= 1.1.5 =
1060 -* Added/Replaced categories for posts with a key to append categories in update items
1061 -* Synchronized post categories in Create/Update item endpoints
1062 -* Refactored code to sync customer website configurations and post categories
1063 -
1064 -= 1.1.4 =
1065 -* Fixed issue sending categories as JSON in heartbeat payload
1066 -* Removed special characters from category JSON
1067 -* Fixed heartbeat request interval settings
1068 -
1069 -= 1.1.3 =
1070 -* Removed login fields for obtaining JWT token from General Settings
1071 -* Removed dashboard link from the plugin
1072 -* Set heartbeat frequency to every 5 minutes
1073 -* Configured heartbeat requests to trigger on saving General Settings
1074 -
1075 -= 1.1.2 =
1076 -* Removed double quotes and forward slashes from JSON-LD Schema
1077 -
1078 -= 1.1.1 =
1079 -* Fixed article name issue in JSON-LD Schema
1080 -* Added plugin icon to the plugin directory
1081 -* Added plugin screenshots to the plugin directory
1082 -* Included changelogs in the plugin's README file
1083 -
1084 -= 1.1.0 =
1085 -* Added a button to manually force heartbeat sending to the server
1086 -* Displayed the last sync timestamp to monitor heartbeat status
1087 -* Added input field to save the Search Atlas API key in General Settings
1088 -* Included Search Atlas API key in the header of Heartbeat API
1089 -* Removed JWT token and Customer ID from Heartbeat Request
1090 -
1091 -= 1.0.9 =
1092 -* Added `meta_description` and `meta_robots` to the payload
1093 -* Fixed issue updating categories consistently in the payload
1094 -* Fixed issue adding two different `meta_robots` values in the header
1095 -* Included blog categories in the Heartbeat payload
1096 -
1097 -= 1.0.8 =
1098 -* Updated post/page permalinks during post updates via API payload
1099 -* Updated post categories during post updates via API payload
1100 -
1101 -= 1.0.7 =
1102 -* Added categories during post creation
1103 -* Included Permalink URL during page creation
1104 -* Set default post type to Post and post status to Publish
1105 -
1106 -= 1.0.6 =
1107 -* Added new sanitization for JSON-LD to echo in the header
1108 -* Removed third-party URLs from post data in the plugin
1109 -
1110 -= 1.0.5 =
1111 -* Created new `deleteItem` API to delete posts
1112 -* Refactored JSON-LD schema code to include all posts and pages
1113 -* Added prepare method in WHERE clause fields of queries
1114 -
1115 -= 1.0.4 =
1116 -* Added new sanitization for all POST and GET variables
1117 -* Refactored all plugin code
1118 -
1119 -= 1.0.3 =
1120 -* Added sanitization for all missing POST/REQUEST variables
1121 -* Implemented escape methods for all internal print variables
1122 -* Refactored all select boxes to use select options
1123 -* Removed redundant code from the plugin
1124 -
1125 -= 1.0.2 =
1126 -* Fixed issue excluding post IDs from sitemaps via API or General Settings
1127 -* Fixed issue sanitizing null values in common settings
1128 -
1129 -= 1.0.1 =
1130 -* Fixed invalid token issue in Heartbeat API
1131 -* Fixed exception handling in LinkGraph login response
1132 -
1133 -= 1.0.0 =
1134 -Initial release.
183 +Older release notes are available in the CHANGELOG.md file included with the plugin.