PluginProbe
Search Atlas SEO – OTTO AI SEO Automation for WordPress / 2.6.21
Search Atlas SEO – OTTO AI SEO Automation for WordPress v2.6.21
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 2.6.4 2.6.3 2.5.23 All 138 releases
metasync / readme.txt

readme.txt in Search Atlas SEO – OTTO AI SEO Automation for WordPress 2.6.21, at readme.txt

1,302 lines 75.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 === Search Atlas SEO - Premier SEO Plugin for One-Click WP Publishing & Integrated AI Optimization ===
2 Contributors: shahrukhlinkgraph
3 Tags: seo, ai seo, schema, sitemap, redirection
4 Donate link: http://searchatlas.com
5 Requires at least: 5.2
6 Tested up to: 7.0
7 Requires PHP: 8.2
8 Stable tag: 2.6.21
9 License: GPL-2.0+
10 License URI: https://www.gnu.org/licenses/gpl-2.0.txt
11
12 AI-powered SEO & GEO for WordPress: OTTO auto-optimizes meta, schema & content, and helps you rank on Google and in AI search.
13
14 == Description ==
15
16 **AI-powered SEO for WordPress — built for Google rankings and the new era of AI search.**
17
18 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.
19
20 ### OTTO — AI SEO on autopilot
21 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.
22
23 ### Get found in AI search (GEO)
24 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
26 ### One-click publishing from Search Atlas
27 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.
28
29 ### Bulk AI optimization
30 - AI bulk meta updates — rewrite titles and descriptions across your whole site in one pass
31 - AI alt-text generation & auditing — find missing or weak alt text and fix it library-wide
32 - Bulk status and content operations to manage many posts at once
33
34 ### A complete on-page SEO toolkit
35 - 13 schema / structured-data types (Article, FAQ, Product, Recipe, Event, LocalBusiness, HowTo, VideoObject, and more) with JSON-LD output
36 - XML sitemaps, including dedicated news and video sitemaps
37 - Virtual robots.txt editor — manage rules with no file editing
38 - 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
39 - 404 monitoring with hit tracking and smart redirect suggestions
40 - Breadcrumb schema, canonical URLs, and hreflang (multi-language) support
41 - Open Graph and Twitter Card meta with automatic de-duplication
42
43 ### Instant indexing
44 Submit new and updated URLs directly to Google (Instant Indexing API) and Bing (IndexNow) for faster crawling — one at a time or in bulk.
45
46 ### MCP server — control WordPress with AI agents
47 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.
48
49 ### Media & performance
50 - Convert images to WebP/AVIF, smart lazy-loading, and automatic width/height attributes to reduce layout shift (CLS)
51 - Automatic cache purging for popular caching plugins (WP Rocket, LiteSpeed Cache, W3 Total Cache, WP Super Cache, WP Fastest Cache, and more)
52 - Edge/CDN cache purging for Cloudflare, Fastly, Akamai, and Sucuri
53
54 ### Works with your stack
55 - Page builders: Gutenberg, Elementor, Divi, Oxygen, and Beaver Builder
56 - WooCommerce breadcrumbs and shop pages
57 - Coexistence and migration with Yoast SEO, Rank Math, and All in One SEO
58 - Google Search Console and GA4 integration
59 - Agency-ready white-label settings to show or hide features per client
60
61 ### Search Atlas account & external service
62 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/).
63
64 == Installation ==
65 1. Upload the `metasync` folder to the `/wp-content/plugins/` directory.
66 2. Activate the plugin through the Plugins menu in WordPress.
67
68 == Frequently Asked Questions ==
69 = What does the Search Atlas SEO plugin do? =
70 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.
71
72 == Screenshots ==
73 1. General Settings
74
75 == Upgrade Notice ==
76 = 1.4.1 =
77 This version does not include the new APIs required by the AI Editor.
78
79 == Changelog ==
80 = 2.6.21 =
81 * Improvement: The Sitemap Settings screen now warns when a generated News or Video sitemap contains 0 URLs, so it is clear whether that is expected or a misconfiguration
82 * Improvement: Added optional SEO Title, Meta Description, Noindex and Nofollow columns to the Posts and Pages admin list (enable via Screen Options)
83 * Fix: OTTO no longer emits a redundant Vary: Accept-Encoding header, which could cause CDN edge caches to treat pages as non-cacheable and route every visitor to origin PHP
84 * Fix: Importing Yoast advanced robots meta no longer throws a fatal error when the stored value is not a plain string
85 * Fix: Page-cache warmer and performance-auditor requests are no longer throttled by OTTO rendering, which had been preventing some sites page caches from populating and made PageSpeed scores appear artificially low
86 * Fix: Removed the redundant Index checkbox from Common Robots settings, fixed a case where No Index set via the meta box could be silently ignored when advanced robots data was present, and simplified noindex output to only include indexing/crawling directives
87 * Fix: The SEO Health dashboard now reads the same SEO title and description a page actually uses, instead of showing OTTO value when the customer own sidebar value was what really rendered
88 * Fix: The plugin REST API no longer returns 401 on sites with a strict logged-in-users-only REST restriction from a security plugin or snippet, which had been silently breaking publishing and syncing on those sites
89
90 = 2.6.20 =
91 * Improvement: The OTTO Debug comparison panel now shows the Meta Description when OTTO delivers it as raw header HTML instead of a structured replacement
92 * Improvement: Added a tooltip to the Content Genius Synchronization card explaining that "Sync Now" sends the site's categories and authors so published articles are assigned correctly
93 * Security: Added the missing permission and nonce checks to the Heartbeat Error Monitor's bulk actions
94 * Fix: The trash icon on the "Remove" button in the Schema Markup meta box is aligned correctly again
95 * Fix: Sitemaps are no longer corrupted by stray PHP notices or warnings emitted by other plugins, which previously produced invalid XML that search engines rejected
96 * Fix: The "Default Page Builder" dropdown no longer renders its option labels invisible unless they are hovered
97 * Fix: Corrected the malformed robots meta tag produced when SEO data is synced into Rank Math
98 * Fix: Open Graph and Twitter tags are no longer stripped when the per-post "Enable Open Graph and Social Media Tags" toggle is off, so Yoast SEO and All in One SEO can supply their own again
99 * Fix: The delete icon in the Robots.txt Backup History panel now uses a consistent color across WordPress versions
100 * Fix: The Compatibility page no longer reports the site's active theme as "Not installed" when the theme's display name differs from its folder name
101 * Fix: The Local Business logo "Add or Upload File" button opens the media library again
102 * Fix: Bulk actions chosen from the control at the bottom of the Redirections, 404 Monitor and Heartbeat Error Monitor lists now apply instead of doing nothing
103 * Fix: Saved Local Business details are now output as LocalBusiness structured data on the front end
104 * Fix: The per-page "Disable OTTO" toggle now also suppresses previously stored OTTO titles and descriptions instead of continuing to serve them
105 * Fix: Values entered in the "Advanced Robots Meta" meta box are kept after saving a post instead of resetting on refresh
106 * Fix: The "no results" placeholder no longer appears under short checkbox lists in Sitemap Settings when nothing has been searched
107 * Fix: A custom SEO title or meta description set in the SEO sidebar now always takes precedence on the live page, instead of being overridden by OTTO when OTTO is connected
108
109 = 2.6.19 =
110 * Improvement: Removed the unused legacy "Optimal Settings" page
111 * Improvement: Reworked the Search Atlas connection to a pull-based flow so sites behind firewalls that block inbound callbacks can still connect reliably
112 * Fix: Resolved a case where content failed to sync to WordPress due to a www/non-www hostname mismatch during connection
113 * Fix: robots.txt no longer continues to reference sitemap URLs after the sitemaps have been deleted or disabled
114 * Fix: Sitemap generation, including video and news sitemaps, no longer exhausts server memory on sites with large content catalogs
115 * Fix: The video sitemap no longer produces invalid XML when a post description contains HTML entities or shortcodes
116 * Fix: OTTO no longer breaks concatenated CSS/JS URLs (for example Jetpack Boost), so optimized pages render with their styles intact
117 * Fix: "Delete All Sitemaps" now reliably removes all sitemaps even when one is served from a stale cache
118 * Fix: Restored compatibility with the Enfold/Avia builder so the Accordion Toggle Title field accepts letters, not just numbers
119 * Fix: Deleted robots.txt backup history entries no longer reappear after refreshing the page
120
121 = 2.6.18 =
122 * Improvement: Increased the White Label plugin-name limit so custom plugin names of up to 18 characters are no longer truncated
123 * Improvement: Added explanatory tooltips across the admin settings so the purpose of each option is clear
124 * Improvement: Made the API key error message readable when a stored key cannot be read and re-authentication is required
125 * Security: The Search Atlas API key is now masked in the settings UI and encrypted at rest
126 * Fix: Customer-set Open Graph and Twitter/social values now take priority over OTTO on optimized pages, and a social image is always output
127 * Fix: Reverting a single optimized image no longer deletes its converted WebP file, and re-syncing content restores images that were previously broken
128 * Fix: Bing IndexNow verification no longer fails with "key not found" on hosts that serve the key as a static file
129 * Fix: robots.txt no longer advertises a sitemap URL when the XML sitemap is disabled or not generated
130
131 = 2.6.17 =
132 * Improvement: Fixed the Refresh Token button's oversized icon and misalignment on the settings page
133 * Improvement: The Redirections search field now triggers a search when pressing Enter, not only when clicking the Search button
134 * Fix: Prevented a fatal error when WordPress internally checks for a white screen after saving a theme file
135 * Fix: Prevented a fatal error when clearing edge cache for a single URL
136 * Fix: Prevented invalid `http://Array` canonical URLs from being output and cleaned up already-corrupted stored values
137
138 = 2.6.16 =
139 * Security: Whitelabel password is now encrypted at rest instead of stored in plain text
140 * Security: Prevented path traversal from unvalidated slugs in imported ZIP manifests
141 * Security: Validated file paths built from ZIP manifest slugs before reading them
142 * Performance: Capped image-processing resource usage to prevent unbounded memory consumption
143 * Performance: Added a maximum image dimensions setting that downscales oversized images before conversion
144 * Performance: Cached image dimensions to avoid repeated file reads on every page render
145 * Performance: Batched the content URL rewrite query to prevent database table locks
146 * Performance: Raised the memory limit before heavy image processing to avoid out-of-memory failures
147 * Performance: Reduced memory usage during HTML rendering on large pages
148 * Performance: Prevented memory exhaustion caused by bot and vulnerability-scanner traffic
149 * Performance: Prevented image conversion from exceeding PHP's maximum execution time during media optimization
150 * Improvement: Surfaced the Focus Keyword as a read-only field in the Gutenberg SEO sidebar
151 * Improvement: Excluded Website Studio / custom HTML pages from SEO audit, inventory, and analysis surfaces
152 * Improvement: Hid SEO meta fields on Website Studio-synced pages and show a read-only notice instead
153 * Improvement: Labeled Website Studio-synced pages with a post state in the admin Pages list
154 * Improvement: Stopped admin notices from causing layout shift and viewport scroll when navigating between plugin features
155 * Improvement: Fixed checkbox alignment with their labels on the Redirections screen
156 * Improvement: Bundled the default plugin logo locally instead of hotlinking it
157 * Improvement: Fixed icon alignment on the Schema Markup metabox
158 * Improvement: Show a sitemap conflict notice on the Video and News sitemap tabs when another SEO plugin is active
159 * Improvement: Fixed a color mismatch and text crowding on the Schema Markup metabox Remove button
160 * Improvement: Fixed the "Hide Dashboard" option so it actually hides the dashboard from the admin menu, and corrected its help text
161 * Improvement: Streamlined the plugin entry file for maintainability
162 * Fix: Fixed several bugs surfaced by static analysis
163 * Fix: Fixed broken thumbnails for orphaned images and cleaned up converted files when the originals are deleted
164 * Fix: Made multi-page imports idempotent so re-importing no longer creates duplicate pages when a slug collides
165 * Fix: MetaSync REST authentication now coexists with third-party JWT authentication plugins
166 * Fix: Heartbeat status badge now reflects a stale or dead sync instead of always showing "Connected"
167 * Fix: Purge page and edge cache after import to prevent stale-asset white screens on republish
168 * Fix: Fixed white-label leaks where product names appeared across admin, Site Health, toolbar, and import screens
169 * Fix: Restored the XML Sitemap and other REST responses that could return blank
170 * Fix: Prevented OTTO from silently serving un-optimized HTML on Divi and other page-builder pages
171 * Fix: Ensured canonical optimization is reliably applied
172 * Fix: Stopped query strings from being stripped, which caused search and query-only URLs to serve the home page for logged-in and cache-bypass users
173 * Fix: The post-edit Redirection metabox now applies per-post redirects on the frontend
174 * Fix: Stopped serving schema markup when no schema has been deployed
175 * Fix: The canonical metabox now emits the configured canonical URL
176 * Fix: Prevented the CPU load gate from dropping sync jobs on hosts where CPU-core detection fails
177 * Fix: The XML sitemap no longer hijacks sitemap URLs when disabled or deleted, allowing Rank Math, Yoast, and AIOSEO sitemaps to work
178 * Fix: Purge page and edge cache when clearing the OTTO cache, so stale optimized markup (such as a hidden injected heading) is no longer served
179 * Fix: Removed duplicate <meta name="description"> tags on OTTO-optimized pages when MetaSync is the only active SEO plugin
180 * Fix: Stopped the meta description from being dropped when a synced third-party SEO plugin (Yoast, Rank Math, AIOSEO) has an empty description field
181
182 = 2.6.15 =
183 * Improvement: Added a search icon to the SEO Health search field
184 * Improvement: Fixed the sort-arrow placement in the SEO Health table column headers
185 * Improvement: Prevented multi-page imports from nesting imported pages under existing unrelated (non-imported) parent pages
186 * Fix: Stopped the plugin from removing featured images on sites that offload media with WP Stateless
187 * Fix: Prevented og:description from auto-filling with raw page-builder shortcodes on Divi and Elementor pages, so social and link previews show clean text
188 * Fix: Served the IndexNow key file dynamically instead of writing it to disk, so key verification works on read-only web roots and on nginx hosts that block direct access to static .txt files
189 * Fix: Resolved the "IndexNow key not found" (400) error when configuring Bing IndexNow, so setup completes successfully
190 * Fix: Made the Instant Indexing service-account JSON upload accept the file by its extension, so it saves reliably across all browsers and operating systems
191 * Fix: Restored the white-label light logo in the admin header on light theme
192
193 = 2.6.14 =
194 * Improvement: Content Genius "User Roles to Sync" now lists only roles that can author content
195 * Improvement: Added a dropdown arrow indicator to the Image Library "Bulk Actions" and "All Images" filter fields
196 * Improvement: Added consistent top padding between Advanced Settings section headers and their content
197 * Improvement: Stopped the OTTO debug toolbar from rendering twice on Oxygen Builder pages
198 * Fix: Prevented OpenGraph description generation from rendering the full page in the head, which dropped Elementor loop-grid CSS and broke page layout
199 * Fix: Scoped the OTTO Cache-Control private header to the HTTP render path so it no longer disables host/CDN caching site-wide
200 * Fix: Scoped OTTO SiteGround no-cache to pages with suggestions, preventing a site-wide cache bypass and CPU spikes
201 * Fix: Resolved a 500 error on plugin activate/deactivate on SiteGround and stopped OTTO from interfering with the Elementor editor
202 * Fix: Fixed the Instant Indexing "Clear Configuration" button on the Indexation Control page
203
204 = 2.6.13 =
205 * Improvement: Made the Media Optimization "Optimize" and "Revert" buttons equal in size
206 * Improvement: Fixed stacked filter dropdowns in the Changes Log filter bar
207 * Improvement: Fixed the cache directory path overflowing its container on the Cache tab
208 * Improvement: Improved breadcrumb code-box contrast in light mode and added click-to-copy on snippet boxes
209 * Improvement: Added vertical spacing between the Auth Token field and Refresh Token button on the Settings page
210 * Improvement: Added vertical spacing between settings form rows so blocks no longer merge together
211 * Security: Wrapped admin nonce outputs in esc_attr() to prevent XSS in HTML attributes
212 * Fix: Prevented lazy-load video iframe CSS from breaking page layout and hiding homepage content
213 * Fix: Prevented a fatal "undefined constant" error during OTTO rendering on pre-2.6.11 installs
214 * Fix: Corrected OTTO double-encoding of "&" in HTML attributes that broke theme icon fonts
215 * Fix: Stopped OTTO from renumbering Divi column width classes and collapsing page layouts
216
217 = 2.6.12 =
218 * New Feature: The imported Webstudio(LPS) home page is now set as the WordPress front page
219 * New Feature: Added persistent audit logging for Webstudio(LPS) ZIP imports
220 * Improvement: Execution Settings fields now display side-by-side in a responsive two-column layout
221 * Improvement: Hardened the White Label menu slug and fixed settings-save validation
222 * Improvement: OTTO rendering is now skipped on custom and Webstudio(LPS)-imported pages
223 * Improvement: Deleting a custom or Webstudio(LPS) page now cleans up shared assets and resets the front page when needed
224 * Improvement: Webstudio(LPS) home imports now use the project UUID as the per-project deduplication key
225 * Security: Added nonce and capability checks to the Instant Indexing AJAX handlers (Google GIAPI and Bing IndexNow)
226 * Security: Added nonce and capability checks to the redirections list-table actions
227 * Security: Added nonce and capability checks to the 404 Monitor list-table actions
228 * Security: Hardened input sanitization for per-post snippets and the hero image URL
229 * Fix: Prevented duplicate H1 headings on Content Genius synced posts
230 * Fix: Resolved a fatal error during ZIP import caused by an undefined temporary-file helper in REST/MCP context
231 * Fix: Prevented a fatal "class not found" error on plugin update when the installed directory name differs from the package slug
232 * Fix: Batched SEO indexation option imports to prevent PHP memory exhaustion on large sites
233 * Fix: Corrected connection status to show "Not Connected" after manual API key entry and Sync Now
234 * Fix: Guarded get_current_screen() calls to prevent fatal errors in REST context
235 * Fix: Execution Settings now reports the real server upload limit instead of a hardcoded 128 MB
236 * Fix: Fixed a case where activating the plugin caused 404s on all pages except the home page
237 * Fix: Prevented a TypeError when a non-string value was passed to meta element handling
238 * Fix: The "Disable SEO Meta Box" setting now correctly hides the SEO meta box in the Classic editor
239 * Fix: The "Disallow Empty Archives" toggle is now saved correctly on SEO Controls
240
241 = 2.6.11 =
242 * New Feature: Added SEO Title & Meta Description fields to the Classic editor, matching the Gutenberg sidebar
243 * New Feature: Added a configurable OTTO cache TTL setting under Advanced Settings → Cache Management
244 * New Feature: Added a ZIP upload endpoint and MCP tool for importing landing pages
245 * New Feature: Import Open Graph and Twitter social titles and descriptions from Yoast, Rank Math, and AIOSEO
246 * New Feature: Import Open Graph and Twitter social images from Yoast, Rank Math, and AIOSEO
247 * Improvement: Added a pre-flight memory check before image conversion to avoid exhausting PHP memory
248 * Improvement: Batch optimizer batch size now adapts to available server memory
249 * Improvement: Replaced unbounded media queries with paginated queries in the batch optimizer
250 * Improvement: Sub-size image conversion is now split across requests to reduce peak memory usage
251 * Improvement: Cron batch processing now respects the server's max_execution_time limit
252 * Improvement: WordPress core sitemap is automatically disabled while the MetaSync sitemap is active
253 * Improvement: Redirect saves now warn when the destination URL does not resolve
254 * Improvement: The MCP sitemap check now uses the plugin's virtual sitemap tracking instead of physical files
255 * Improvement: 404 Monitor no longer logs WordPress system paths as broken links
256 * Improvement: Added a magnifier icon to the Media Optimization search field
257 * Fix: OTTO no longer corrupts inline JavaScript by collapsing modern operators during rendering
258 * Fix: Resolved fatal errors on Divi sites during OTTO HTTP rendering and from a missing admin navigation class
259 * 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
260 * 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
261 * Fix: Stopped duplicate Open Graph/Twitter tags and cleared social meta when duplicating a post
262 * Fix: Archive pages now output their own canonical URL and og:url instead of the first post's
263 * Fix: WebP picture tag rewriting now applies to Divi featured images
264 * Fix: Sitemap now includes pages and custom post types when category/tag filters are set
265 * Fix: Resolved a schema markup settings key inconsistency in the settings API
266 * Fix: Settings saves no longer show a false error notice, meta-box checkboxes persist, and a race condition that could wipe settings was resolved
267 * Fix: OTTO image alt text now applies when pages use relative image URLs
268 * Fix: Polished admin UI — Optimization Rate stats card alignment, tab icon centering, and XML Sitemap checkbox spacing
269
270 = 2.6.10 =
271 * New Feature: Media Optimization — compress images and serve next-gen WebP/AVIF formats to improve page load speed
272 * New Feature: Added post type, taxonomy, and URL exclusion controls across all sitemaps
273 * New Feature: Added per-file Delete buttons for individual XML sitemaps (General, News, Video)
274 * Improvement: Switched sitemap generation to virtual-only mode with regenerate-on-miss to resolve nginx 403 errors
275 * Improvement: Renamed sitemap Save buttons to "Save & Generate Sitemap" across the General, News, and Video tabs
276 * Improvement: Throttled bot crawl-log requests to reduce server load on high-traffic sites
277 * Fix: Resolved a case where the plugin caused site outages on cart/checkout and non-GET requests
278 * Fix: Restored meta boxes and SEO fields on custom post types
279 * Fix: OTTO no longer reports as installed on projects with non-matching UUIDs
280 * Fix: Preserved Divi's late-injected CSS during OTTO server-side rendering and fixed Divi blog/portfolio AJAX pagination
281 * Fix: Respected Yoast SEO titles and descriptions when OTTO is undeployed
282 * Fix: Scoped OTTO cache keys and rate limits per site on Multisite installs
283 * Fix: Skipped OTTO rendering on XML endpoints to prevent invalid output
284 * Fix: Sanitized malformed self-closing tags during OTTO rendering that could expand site navigation
285 * Fix: Prevented duplicate H1 headings when content already contains the post title
286 * Fix: Guarded the mime_content_type() call to prevent fatal errors on hosts without the fileinfo extension
287 * Fix: Deduplicated URLs and filtered junk entries from the XML sitemap
288 * Fix: The XML Sitemap sidebar now stays fixed instead of scrolling with the page
289 * Fix: 404 Monitor date filters now persist across pagination and sorting and apply only when the filter button is clicked
290 * Fix: Connection status no longer flips to "Not Connected" on idle plugin pages
291 * Fix: Corrected WP Rocket compatibility render-mode detection
292 * Fix: Suppressed admin notices from rendering inside the setup wizard header
293 * Fix: Removed dangling breadcrumb references when stripping third-party BreadcrumbList schema
294 * Fix: Breadcrumbs checkbox values now persist correctly when unchecked
295 * Fix: Fixed the Quick Links table background and borders in dark mode
296 * Fix: Fixed dashicon button icon misalignment on some sites
297 * Fix: Tightened REST API auth callbacks and fixed primary category cleanup on custom post types
298 * Fix: Fixed the perpetual Sync Now throttle message by separating the manual-sync cooldown from the heartbeat
299
300 = 2.6.9 =
301 * Security: Move API key authentication from query parameter to Authorization Bearer header
302 * Security: Fix X-Forwarded-For IP spoofing in OTTO bot detector — trust Cloudflare header first
303 * Security: Cache-Control changed from public to private to prevent CDN nonce sharing
304 * Fix: OTTO heading replacement corrupted when heading contains inline elements (e.g. span tags)
305 * Fix: SSO one-click auth fails on sites with external object cache
306 * Fix: Guard against missing DOMDocument extension in check_and_fix_post_content
307 * Fix: POST heartbeat before GET ping on manual API key save to register WPWebsiteHeartbeat
308 * Fix: Strict-equality bug in is_virtual_mode() causing Virtual badge not to show after first request
309 * Fix: Remove newline-to-br replacement that injects whitespace into synced content
310 * Improvement: API key input field now reverts to previous valid key on validation failure
311 * Improvement: Deployed OTTO titles no longer show on frontend when Disable OTTO for Logged in Users is enabled
312 * Improvement: Robots.txt Disallow / warning now triggers correctly with fixed regex matching
313 * Improvement: Robots.txt timestamps now respect WordPress timezone setting instead of hardcoded UTC
314
315 = 2.6.8 =
316 * Security: Use hash_equals() for timing-safe API key comparison in custom pages API
317 * Security: Resolve 4 Snyk Code MEDIUM findings — DOM XSS and info exposure
318 * Security: Fix open-redirect vulnerability in redirection plugin with domain validation
319 * Fix: Original image permanently deleted before converted file is validated — data loss on Imagick memory failure
320 * Fix: Light SA logo not visible on light theme
321 * Fix: Strip OTTO post meta when WordPress pages are cloned or duplicated
322 * Fix: Sitemap and LLMs.txt transients not invalidated when content is updated
323 * Improvement: Make bot statistics table responsive at narrow viewports
324 * Improvement: Refactor sitemap collect_all_urls() to eliminate N+1 query explosion
325 * Improvement: Exclude Beaver Builder templates from sitemap generation
326 * Improvement: Upgrade routine flag logic and unit tests for Beaver Builder template exclusion
327
328 = 2.6.7 =
329 - Fix: OTTO buffer caching empty/error pages
330 - Fix: PHP lexicographic string comparison in execution time validation
331 - Fix: Plugin causing server overload via unbounded cron accumulation
332 - Fix: Replace TRUNCATE with bounded delete in 404 monitor add()
333 - Fix: Add redirect-loop detection to edit and import paths
334 - Fix: Non-atomic OTTO cache lock allowing concurrent workers to bypass lock
335 - Fix: Remove duplicate inline JS causing double POST on excluded URL add
336 - Fix: Replace TOCTOU rate limiter with atomic wp_cache_add/incr pattern
337 - Fix: Fill empty catch blocks in OTTO render strategy with error_log and telemetry
338 - Fix: Harden JWT verification and protect sensitive wp_options in MCP server
339 - Fix: Breadcrumbs disable_schema checkbox state not persisting on save
340 - Fix: OTTO title/schema override checks live suggestions when third-party SEO plugin active
341 - Fix: Centralize cron-hook cleanup on plugin deactivation
342 - Fix: API key validation fails when WordPress Home URL uses www subdomain
343 - Fix: Add per-user transient caching to admin bar status indicator
344 - Fix: Make sitemap generation memory-safe with streaming and filesystem fallbacks
345 - Fix: Add static flag guard to eliminate redundant schema queries
346 - Fix: Create Redirect button from 404 Monitor not opening redirection form
347 - Security: Remediate 47 semgrep findings across plugin codebase
348
349 = 2.6.6 =
350 - Fix: Invalidate OTTO JS detection transient on settings save and cache clear
351 - Fix: Harden MCP tool registration to prevent fatal error on missing class
352 - Fix: Heartbeat public-hash cache-key mismatch
353 - Fix: TypeError on strtolower() with array @type in OTTO crawl-notify endpoint
354 - Fix: Gate admin JS loading to MetaSync pages only
355 - Fix: Process OTTO webhook URLs in background via WP-Cron
356 - Fix: Optimize sync history cleanup with fetch-then-delete pattern
357 - Fix: Cache OTTO manual exclusion list with transient and add composite index
358 - Fix: Use SELECT COUNT(*) instead of loading all records in get_count()
359 - Fix: Remove blocking Facebook Graph API call from wp_head
360 - Fix: Only load MetaSync admin CSS on plugin pages
361 - Fix: Lazy-load MCP server and SEO-inventory controller for non-MCP requests
362 - Fix: Broken SQL placeholder in get_attachment_by_name()
363 - Fix: Refactor rate limiter to use per-key transients instead of wp_options blob
364
365 = 2.6.5 =
366 - Feat: Native-First SEO Write Layer — sync all MetaSync/OTTO optimizations to native WordPress SEO meta fields
367 - Feat: Per-post advanced robots directives — nofollow, noarchive, nosnippet, noimageindex, max-snippet, max-image-preview, max-video-preview
368 - Feat: Redirect health checker — MCP tool + admin panel
369 - Feat: Redirect loop detection on create/save
370 - Fix: Reduce memory footprint by gating heavy init on non-MetaSync AJAX requests
371 - Fix: ArgumentCountError resolved by replacing printf with echo in code-snippets template
372 - Fix: Unhook Elementor filters during MCP update_site_info under API key auth
373 - Fix: Rename 16 non-prefixed AJAX actions to use metasync_ prefix
374 - Fix: Promo sidebar overlap with main nav at narrow viewports
375 - Fix: OTTO DOM corruption when page text contains less-than followed by digits
376 - Fix: Restore case-sensitive SVG/HTML5 attributes after OTTO DOM processing
377 - Fix: MetaSync status badge not updating on disconnect/reconnect
378 - Fix: Remove duplicate canonical tags on sites without third-party SEO plugin
379 - Fix: Submit Report button icon vertical alignment
380 - Fix: 404 Monitor pagination layout and filter row overflow
381 - Fix: Responsive layout for Redirections tablenav filters and search
382
383 = 2.6.4 =
384 - Fix: LLMs.txt settings now correctly persisted on save
385 - Fix: Hidden diagnostic post no longer triggers Jetpack Social or RSS auto-share
386 - Fix: mb_encode_numericentity() fatal on hosts without mbstring extension replaced with pure-PHP fallback
387 - Fix: class-metasync-term-plugin-sync.php require_once guarded with file_exists to prevent fatal on Nexcess hosting
388 - Fix: wp_tempnam() undefined fatal in Dimension Injector when called outside wp-admin context
389 - Fix: WpeCommon::purge_url() undefined fatal in cache purge on WP Engine now guarded with method_exists
390 - Fix: MCP_Tool_Cache_Purge_All class not found fatal guarded with class_exists check
391 - Fix: Google Index require_once calls guarded with file_exists to prevent fatal when files are missing
392 - Fix: PHP 8.1 add_submenu_page(null) deprecation fixed in import page and HTML visual editor
393
394 = 2.6.3 =
395 - Feature: BreadcrumbList schema auto-generated from post hierarchy with cross-plugin deduplication for Yoast, Rank Math, and AIOSEO
396 - Feature: Hreflang language alternates support with WPML integration for multilingual sites
397 - Feature: LLMs.txt generator with dedicated settings page and MCP tools
398 - Feature: News sitemap and video sitemap generation
399 - Feature: Taxonomy term SEO meta synced to Yoast, Rank Math, and AIOSEO for category and tag archive pages
400 - Feature: Open Graph output extended with article timestamps, author, section, tags, and og:image dimensions
401 - Feature: MCP tools for SEO plugin audit — read, diff, sync, and conflict detection across installed SEO plugins
402 - Feature: MCP tools for OTTO pipeline — trigger optimization, check status, and verify SEO output
403 - Feature: MCP cache-purge tools for per-URL and full-site cache invalidation
404 - Feature: Whitelabel color personalization for admin UI
405 - Improvement: Composer classmap autoloader covering all plugin classes, removing 55+ scattered require_once calls
406 - Improvement: MCP rate limiter wired into all tool calls with proper 429 responses
407 - Improvement: GA4 event tracking replaces Mixpanel for plugin analytics
408 - Improvement: Execution time limit added to MCP database query tool to prevent long-running queries
409 - Fix: OTTO title and meta replacement no longer strips dollar signs from values like $500
410 - Fix: Google Instant Indexing now auto-submits on post publish
411 - Fix: LLMs.txt generation now excludes noindex posts
412 - Fix: Missing PHP DOM extension handled gracefully in HTML-to-builder converter
413 - Fix: Yoast and AIOSEO term meta storage corrected; SEO conflict handler fixed for term archive pages
414 - Fix: WP Engine cache integration no longer calls non-existent purge_url() method; Throwable errors now caught
415 - Fix: Beaver Builder templates excluded from sitemap generation
416 - Fix: Gutenberg blockquote block no longer shows invalid content error after OTTO applies changes
417 - Fix: Redirections page filter and search controls no longer trigger add-redirection form validation
418 - Fix: Settings page no longer shows Synced label and invalid API key error simultaneously
419 - Fix: Unsaved changes notification close button now works correctly
420 - Fix: Composer autoloader updated with missing class entries to prevent fatal errors on fresh installs
421
422 = 2.6.2 =
423 - Improvement: Whitelabel now supports separate logo uploads for light and dark admin themes
424 - Improvement: Breadcrumbs settings panel redesigned with cleaner layout and more configuration options
425 - Fix: Page title tags now update correctly when Yoast SEO is active
426 - Fix: OTTO optimizations no longer disappear when Rank Math is installed alongside the plugin
427 - Fix: Duplicate keywords meta tag no longer appears in page source after OTTO applies keyword recommendations
428 - Fix: Theme builder selector no longer lists builders that are not installed or detected on the site
429 - Fix: MCP server now returns descriptive error messages instead of generic failures
430 - Fix: MCP server correctly handles post status and primary category fields
431 - Fix: MCP server now supports Twitter card meta fields and bulk taxonomy term operations
432 - Fix: Plugin sidebar icon and menu now match standard WordPress appearance
433 - Fix: Long field labels in Settings no longer overflow their column
434 - Fix: 404 Monitor bulk actions bar stays on one line instead of wrapping
435 - Fix: Breadcrumbs settings section now shows its icon correctly
436
437 = 2.6.1 =
438 - Feature: Bulk SEO health dashboard — check pages missing meta title, description and schema
439 - Feature: New schema types: LocalBusiness, HowTo, VideoObject
440 - Feature: Extended schema types: Event, JobPosting, Review, Course, Organization, Person, WebSite
441 - Feature: Breadcrumbs module with HTML output and BreadcrumbList schema
442 - Feature: Primary category selector in post editor sidebar
443 - Feature: Internal link suggestions in post editor
444 - Feature: Site Verification page added to SEO navigation
445 - Feature: CPU load awareness and deferral settings
446 - Feature: Whitelabel-aware promo sidebar and quick links settings
447 - Improvement: Replace all emoji icons with WordPress Dashicons across admin UI
448 - Improvement: Compatibility page redesign: accordion rows, themes, CDN, troubleshooting section
449 - Fix: Duplicate schema markup and meta descriptions on multiple pages
450 - Fix: Sync handlers returning HTTP 200 with empty body on internal WP_Error — PHP 8 fatal prevented
451 - Fix: Old UI flashing before new UI loads on page transition
452 - Fix: UI misalignment on Dashboard and various admin pages
453 - Fix: Schema markup not rendering correctly
454 - Fix: NitroPack purge conflict on page-load path
455 - Fix: Image alt-text fallback on Oxygen HTTP render path
456 - Fix: Content Genius page sync full-width on Oxygen Builder
457 - Fix: Crawl monitoring showing no data despite successful crawls
458 - Fix: Oxygen Builder synced post content not visible on front-end
459 - Fix: Restore Performance and CPU settings tab removed during refactor
460 - Fix: Replace burst mode heartbeat with lightweight connection-ping
461 - Fix: Render OTTO-persisted otto_jsonld in frontend schema output
462 - Fix: schema_types returning empty array in wordpress_get_post_by_url
463 - Fix: Correct Rate Now review URL and replace emoji star with Dashicon
464 - Fix: Telemetry noise and whitelabel JSON decode bug
465 - Fix: Add save button to Site Verification, Local Business, Code Snippets pages
466 - Fix: Remove dead wp_ajax_metasync hook pointing to non-existent method
467 - Fix: robots_txt_backups table missing on fresh activation
468 - Fix: WP admin sidebar plugin icon vertical misalignment
469
470 = 2.5.27 =
471 - Fix: Image alt-text unreliable on Oxygen theme HTTP render path; added string-based fallback
472 - Fix: Content Genius page sync renders full-width on Oxygen Builder
473 - Fix: Apostrophe truncation in SEO extract functions causing content to be cut short
474 - Fix: Crawl monitoring module shows no data despite successful crawl executions
475 - Fix: Oxygen Builder synced post content not visible on front-end
476 - Fix: CPU performance tab missing from Advanced Settings after refactor
477 - Fix: JSON-LD schema deduplication: duplicate blocks on the same page
478 - Fix: Schema/JSON-LD suppression for OTTO when third-party SEO plugins (Yoast, Rank Math, AIOSEO) are active
479 - Fix: Remove dead `wp_ajax_metasync` hook pointing to non-existent `sync_items` method
480 - Fix: Add missing `display_cpu_deferral_notice` method to `Metasync_Admin`
481 - Fix: Oxygen Builder page template override guard in `create_page()` and `update_page()` (REST API)
482 - Fix: Stale-options overwrite in `test_heartbeat_api_connection()`; replace burst-mode heavy heartbeat with lightweight connection-ping endpoint
483 - Fix: Image alt-text string-based fallback in OTTO HTTP render path; Divi `data-et-multi-view` JSON attribute handling
484 - Feature: Internal link suggestions in post editor sidebar
485 - Feature: Replace burst-mode heavy heartbeat (`SyncCustomerParams`) with lightweight `connection-ping` endpoint — reduces payload and server load during key-pending state
486 - Feature: MCP sync log: log changes, rollback, 90-day auto-clear, and manual clear button
487 - Feature: Code minification and delivery (JS minifier)
488 - Feature: CPU load awareness: adaptive deferral based on server load
489 - Improvement: MCP `wordpress_get_post_by_url` extended to return full SEO metadata (title, description, schema, OG fields, focus keyword)
490 - 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`)
491 - Improvement: MCP `wordpress_get_seo_inventory` tool: bulk SEO health data across all posts in one call
492 - Improvement: Log - fatal-only filtering — `capture_php_error()` now passes only `E_USER_ERROR` and `E_RECOVERABLE_ERROR`; warnings, notices, and deprecations are dropped
493 - Improvement: Log - level gate in `send_to_sentry()` and `TelemetryManager::send_message()` — info/warning/debug events never reach the proxy
494 - Improvement: Log - debug window reduced from 60 min to 15 min (900s transient TTL) for faster re-reporting of recurring fatal errors
495 - Improvement: Logging cleanup - removed 15+ dead `log_heartbeat('info', ...)` calls (method already early-returns on `'info'`)
496 - Improvement: Logging cleanup - removed operational noise from `Metasync_Rate_Limiter`, `Metasync_Cache_Purge`, and `Metasync_API_Backoff_Manager`
497
498 = 2.5.26 =
499 * Improvement: AIOSEO compatibility
500 * Fix: preg_replace backreference injection in title deduplication (titles with \$N sequences)
501 * Fix: Title tag deduplication and SEO plugin conflict handlers
502 * Fix: API rate limiting causes stale cache and robots/canonical settings ignored
503 * Fix: Dollar signs being stripped from image alt text
504 * Fix: Heading deployment on Divi/page-builder sites
505 * Fix: PHP 7.4 compatibility — polyfills for str_contains/str_starts_with/str_ends_with and match expression rewrites
506 * Feature: NitroPack full flush + targeted object cache
507 * Feature: WP Database & Object Caching cleanup
508
509 = 2.5.25 =
510 **Bug Fixes:**
511 * 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
512 * Fix: DB column missing on older installs now self-heals all three required columns
513 * 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
514 * Fix: Dollar signs stripped from image alt text during deployment
515 * Fix: Heading deployment broken on some outdated Divi versions
516 * Fix: One case of duplicate meta name="description tags when MetaSync and AIOSEO coexist
517 * Fix: XML sitemap auto-update not triggering when posts published via Gutenberg
518 * Fix: Divi header/footer hidden on blog posts synced via Content Genius
519
520 = 2.5.24 =
521 **Bug Fixes:**
522 * 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
523 * Fix: Hardcoded SearchAtlas/Search Atlas brand strings replaced with whitelabel-aware output across admin views, dev panel, site health checks, and MCP tool descriptions
524 * Fix: \"SearchAtlas AI Pages\" dashboard widget title ignoring whitelabel plugin name setting
525 * 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
526 * 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
527
528 = 2.5.23 =
529 **Bug Fixes:**
530 * Fix: MetaSync WP plugin breaks Elementor front-end spacing — SimpleHtmlDOM `stripRN` was stripping whitespace between inline elements; now set to `false`
531 * Fix: Elementor headings override Global Fonts after Content Genius sync — removed forced Roboto font so headings inherit site's Global Font settings
532 * Fix: Elementor Canvas template incorrectly applied when syncing articles as posts
533 * Fix: Admin bar status icon now reflects missing UUID as a distinct warning state (orange) rather than generic disconnected state
534
535 **Improvements:**
536 * Performance: Added transient cache to OTTO JS check to reduce overhead on every request
537 * Improvement: Cache Purge — Added per-URL purge support
538 * Improvement: Cache Purge — Query string normalization strips UTM/gclid/fbclid params before purge so all URL variants resolve to the same canonical URL
539 * Improvement: Cache Purge — Edge CDN purge integrations targeted via configuration
540 * Improvement: Remove non-publishable roles (Subscriber, Contributor) from Content Genius User Roles to Sync setting
541 * Improvement: Validation message added when publishing AI Landing Pages with plain permalink structure
542
543 **Features:**
544 * Feature: WordPress Site Health Integration — MetaSync now registers checks in the WP Site Health panel
545 * Feature: Media Optimization
546 * Feature: Rate the Plugin notice — shows a dismissible prompt after 7 days of usage; hidden when whitelabel is enabled
547
548 **Refactoring:**
549 * Removed `instant-index/` vendor tree (~714 files); replaced Google SDK with native PHP implementation
550 * Decomposed `Metasync_Admin` god object (17,849 lines) into 10 focused classes; admin reduced to ~3,986 lines
551 * Decomposed `Metasync_Public` into focused classes; REST API routes extracted to `Metasync_Rest_Api`
552 * Extracted 23 inline JavaScript blocks into proper `.js` files loaded via `wp_enqueue_script`
553
554 = 2.5.22 =
555 * Improvement: Heartbeat connection/pool logic to reduce the number of external requests
556 * Improvement: Adapt scenarios of Idle WpRocket + Active Kinsta Cache that was preventing the cache to be purged.
557
558 = 2.5.21 =
559 ###Features
560 - Add hosting cache integration (WP Engine + Kinsta) with per-provider toggles in Advanced → Cache
561 Management
562 - Add WP Engine native cache purge (Varnish + Memcached) via `WpeCommon`
563 - Add Kinsta native full-page cache purge via `KinstaCache::kinsta_cache_purge_full()`
564
565 ###Bug Fixes
566 - Fix: SEO placeholder tokens (%%title%%, %sitename%, #post_title#, etc.) now resolved to real values on
567 import from Yoast / Rank Math / AIOSEO
568 - Fix: Customer schema markup being injected into the global site header
569 - Fix: WP Rocket compatibility — OTTO no longer disables WP Rocket JS/CSS optimization features
570 - Fix: WP Rocket + Kinsta cache conflict causing meta title/description to revert
571 - Fix: CSS injection methods (`enqueue_page_custom_css`, Elementor, Divi) missing from `Metasync_Public`
572 - Fix: Plugin URI and Author URI fields silently discarding valid URLs
573
574 = 2.5.20 =
575 * Fixed a case where a empty Otto meta description was overwriting the existing one.
576
577 = 2.5.19 =
578 New Features
579
580 - SEO Sidebar in Post Editor — Edit Meta Title, Meta Description and URL slug directly from the post/page
581 editor sidebar
582 - Bot Detection Layer for OTTO — Detects and tracks bots with statistics dashboard
583 - Bing Instant Indexing — Submit URLs directly to Bing
584 - Plugin Setup Wizard — Guided setup process for new users
585 - Execution Settings — New controls under Advanced Settings
586 - Debug Mode Auto-Disable & Safety Limits — Automatically disables after a set period
587 - Enhanced Error Categorization — Improved monitoring with categorized error tracking
588 - Virtual robots.txt / sitemap.xml — Served virtually when host blocks direct file writes
589 - OTTO 404-Specific Filtering — Filter OTTO suggestions for 404 pages
590 - Heartbeat reliability improvements
591
592 Improvements
593
594 - Schema Markup disable option — Can now be toggled per Post/Page Editor settings
595 - Whitelabel form validation — Prevents partial saves without whitelabel mode activation
596 - Host Blocking in whitelabel — Host blocking now covered by whitelabel settings
597 - Support Token rate limiting — Properly enforced during login
598 - Report Issue with Sentry User Feedback — Image attachments supported
599 - MCP Tool API key auth — Fixed permission checks for API key-authenticated requests
600
601 Bug Fixes
602
603 - Fixed OTTO removing original meta description when no OTTO description deployed
604 - Fixed plugin breaking Elementor front-end spacing when span tag was inner H1
605 - Fixed WP Rocket + Kinsta cache conflict causing meta titles/descriptions to disappear
606 - Fixed ALT text not applied on home page and other pages for Custom Theme
607 - Fixed Plugin URI and Author URI not being saved
608 - Fixed UI issues in admin screens
609 - Fixed sync logs not showing newest info after filtering
610 - Fixed exported whitelabel settings not uploading to another site
611 - Fixed plugin settings hiding in plugin menu but not under WordPress General settings
612 - Fixed Import SEO Data missing from access control list
613
614 Stability / PHP 8.1+ Compatibility
615
616 - 13 improvements with deprecated PHP functions below PHP V8.0
617
618 = 2.5.18 =
619 * Removed JWT-based temporary support access token system
620 * Improved internal code documentation
621
622 = 2.5.17 =
623 * New: Administrator-Controlled Remote Support - Support access now requires explicit consent with secure, time-limited JWT tokens you generate and control
624 * New: Support Access Management UI - Generate, view, and revoke support tokens directly from plugin settings
625 * New: Email notifications when support tokens are generated, used, or revoked
626 * Security: Connect to Search Atlas now uses time-limited, single-use tokens instead of persistent credentials
627 * Security: Added rate limiting to Connect to Search Atlas authentication
628
629 = 2.5.16 =
630 * New: Administrator-Controlled Remote Support - Support access now requires explicit consent with secure, time-limited tokens you generate and control
631 * Security: Enhanced Search Atlas SSO authentication with time-limited tokens
632 * Security: Improved access control for administrative functions
633 * Security: Added rate limiting to authentication endpoints
634 * Improvement: Optimized token validation for better performance
635
636 = 2.5.15 =
637 * **Fix:** Improved compatibility with the **NitroPack** cache plugin.
638 * **Fix:** Resolved a compatibility issue with the **Divi Timeline** widget.
639 * **Fix:** Resolved a compatibility issue with the **Divi MultiView** widget.
640 * **Fix:** Fixed an issue where static text in Advanced Settings displayed "OTTO/SA" instead of the **White Label** name.
641 * **Fix:** Improved input validation within the **Redirection** form.
642 * **Fix:** Fixed an issue where the **Cancel** button in the Redirection feature was not triggering.
643 * **Fix:** Resolved an issue where **General Settings** would reset after a White Label password was set.
644 * **Improvement:** Enhanced the filter and search modules in the **Redirection** section.
645 * **Improvement:** When a new sitemap is generated, the **robots.txt** file will now automatically update with the correct link.
646 * **Improvement:** Simplified plugin navigation for a better user experience.
647 * **Improvement:** Removed deprecated files and unnecessary logs to optimize performance.
648 * **Improvement:** Added **MCP** support.
649 * **Improvement:** Added data persistence with **granularity** support.
650 * **Improvement:** Improved notification messaging to better inform users about plugin updates.
651 * **Feature:** Added full support for **Oxygen Builder**.
652 * **Feature:** **Plugin Access Control:** Added a setting under Advanced Settings to define which user roles can access the plugin.
653 * **Feature:** **Advanced Access Control:** White Label users can now disable specific settings or features per user role (**Settings \> White Label \> Advanced Access Control**).
654 * **Feature:** Added a dedicated **Import SEO Data** screen.
655 * **Feature:** Added an option to set all external links to `target="_blank"` (**Settings \> General \> Post/Page Settings**).
656 * **Feature:** Added an option to add `rel="nofollow"` to all external links (**SEO \> Indexation \> Indexation Control**).
657 * **Miscellaneous:** Minor cross-compatibility improvements for legacy PHP versions.
658
659 = 2.5.14 =
660 * **Fix:** Fixed a case of compatibility with Formidable Form Builder
661 * **Fix:** Fixed a case of compatibility with Essentials Theme
662 * **Fix:** Small adjustments in overall code for performance
663 * **Improvement:** Improvement of OTTO SSR system
664 * **Improvement:** Small adjustments in the UX
665 * **Improvement:** Improvement of suggestions persistence in WP DB.
666
667 = 2.5.13 =
668 * **Fix:** Fixed a case where new published article was only showing headers
669 * **Fix:** Fixed a case of compatibility with Essentials Theme
670 * **Fix:** Small adjustments in overall code for performance
671 * **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.
672 * **New Feature: Import from RankMath/Yoast/AIOSEO -** We included a feature to import Robots.txt, Sitemap.xml, Schemas and Indexation Options from SEO Plugins.
673 * **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.
674 * **Improvement:** Small adjustments in OTTO SSR
675 * **Improvement:** Small adjustments in Light Theme version
676 * **Improvement:** We included a option in the Settings to Disable OTTO Toolbar.
677 * **Improvement:** Otto Toolbar is Whitelabel friendly (Apply WL name)
678
679 = 2.5.12 =
680 * **Fix:** Fixed a case of compatibility with Slider Revolution
681 * **Fix:** Fixed a case of duplication in content synced
682 * **Fix:** Small adjustments in PHP Warnings being triggered
683 * **Fix:** Fixed a case of custom child theme triggering errors in error log
684 * **New Feature: Light/Dark Theme -** We included a feature that allow users to switch the plugin colors to a light version.
685 * **New Feature: Content Genius Authors -** We included a feature under settings where you could choose what user roles would be synced with Content Genius
686 * **New Feature: OTTO Changes Viewer -** We included a feature to check what changes are being applied in a page optimized by OTTO.
687 * **Improvement:** We improved the OTTO detection system.
688 * **Improvement:** Changes in Robots.txt could be rollbacked with a historic of changes
689 * **Improvement:** We included a option in the Indexation feature to disallow Category pages.
690 * **Improvement:** Small optimizations in the code for page speed improvement.
691
692 = 2.5.11 =
693 * **Fix:** Fixed a case of compatibility with Woocommerce
694 * **Fix:** Fixed a case of redirections not working when the target URL was deleted
695 * **Fix:** Fixed a case of Error Logs not displaying correctly
696 * **Fix:** Fixed a case of PHP Warning due outdated PHP version
697 * **Fix:** Fixed a case of custom child theme triggering errors in error log
698 * **New Feature: Report a Issue -** We included a feature that allow users to notify Issues directly from the plugin.
699 * **Improvement:** We improved the Whitelabel settings to hide specific features if needed.
700 * **Improvement:** Improvements on system messages
701
702 = 2.5.10 =
703 * **Fix:** Fixed a case of compatibility with Gravity Forms
704 * **Fix:** Fixed a case of compatibility with Elementor Pro
705 * **Fix:** Fixed a case of compatibility with DIVI
706 * **Fix:** Fixed a case where the post editor preview was blocked
707 * **Fix:** Fixed a case of original meta title and meta description being overwritten by OTTO
708 * **New Feature: Custom Pages -** We included a feature that allow users to create custom pages bypassing existing Themes and Styles.
709 * **New Feature:** **OTTO Excluded URLs -** We included under Compatibility Tab, a option to Turn off OTTO changes per URL.
710 * **New Feature:** **Import Redirections -** Users could now import redirections from .csv file or directly from Yoast/RankMath/AIOSEO.
711 * **Improvement:** We improved the Whitelabel settings to hide specific features if needed.
712 * **Improvement:** Minor changes in core functions.
713 * **Improvement:** Excluded from Sitemap generator URLs that aren't related with live pages.
714
715 = 2.5.9 =
716 * **Fix:** Fixed a case where the plugin was duplicanting the meta description tag
717 * **Fix:** Fixed a case where the post editor was preventing user to save OG tags.
718 * **New Feature:** We included in advanced settings a option to test the connectivity between host and the platform.
719 * **New Feature:** Users could generate SITEMAP.xml directly in the plugin (This function will disable current sitemap.xml plugins)
720 * **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
721 * **Improvement:** We improved the Whitelabel settings to hide specific features if needed.
722 * **Improvement:** Minor changes in cross-compatibility with outdated PHP versions.
723
724 = 2.5.8 =
725 * **Fix:** Some conditions was preventing saving new/edit posts directly from the editor
726 * **Fix:** Non-standard tags found in body of the page, are being detect as plain text.
727 * **New Feature:** White Label Clients could turn on/off Plugin features in Whitelabel Settings.
728 * **Improvement:** Minor changes in cross-compatibility with outdated PHP versions.
729
730 = 2.5.7 =
731
732
733 = 2.5.6 =
734 * **Prevention**: New error detection system.
735 * **White Label**: 1-click Auth will sync the logo from the WL dashboard
736 * **Fixes & UX**: Allow Rollback changes in Meta Title and Meta Description that was being stored in the Database.
737
738 = 2.5.5 =
739 * **Performance**: Significant improvement to dashboard loading speed.
740 * **White Label**:
741 * New dedicated White Label settings screen (Settings\>White Label).
742 * Added password protection for White Label settings.
743 * **Logging**: Introduced Sync Logs to display implemented website changes.
744 * **Fixes & UX**: Minor UX adjustments and a fix for a false positive XSS issue in unused code.
745 * **System**: Minor OTTO system optimizations to reduce disk space and memory usage.
746
747 = 2.5.4 =
748 * HotFix: In some cases, the **error log** was becoming too large, causing host performance to slow down.
749
750 = 2.5.3 =
751 * Included Compatibility Screen V.1, that shows most common Themes and plugins and compatibility
752 * Improved error logs system
753
754 = 2.5.2 =
755 No changelog available.
756
757 = 2.5.1 =
758 * **Improved Dashboard Loading** for public dashboard URLs.
759 * **Enhanced compatibility** with naked URLs (non-www) on the platform.
760 * **Refined the Connection Status Bar.**
761 * **Fixed a bug** where the Connection Tips Box didn't expand when clicked.
762 * **Enabled the storage** of meta titles and descriptions in the database.
763 * **Added an option** to disable the dashboard view from the settings page.
764 * **Created a setting** to disable the Connection Status Bar from the admin bar.
765 * **Implemented a new Telemetry system** to streamline bug detection.
766 * **Resolved an issue** that caused error logs to be generated multiple times.
767 * **Optimized the rendering of AMP pages** to prevent unrecognized HTML tags.
768
769 = 2.5.1 =
770 * **Improved Dashboard Loading** for public dashboard URLs.
771 * **Enhanced compatibility** with naked URLs (non-www) on the platform.
772 * **Refined the Connection Status Bar.**
773 * **Fixed a bug** where the Connection Tips Box didn't expand when clicked.
774 * **Enabled the storage** of meta titles and descriptions in the database.
775 * **Added an option** to disable the dashboard view from the settings page.
776 * **Created a setting** to disable the Connection Status Bar from the admin bar.
777 * **Implemented a new Telemetry system** to streamline bug detection.
778 * **Resolved an issue** that caused error logs to be generated multiple times.
779 * **Optimized the rendering of AMP pages** to prevent unrecognized HTML tags.
780
781 = 2.5.0 =
782 * **Search Atlas SSO**
783 * Users can now authenticate the plugin with a single click, eliminating manual setup steps and streamlining the entire process.
784 * **OTTO One-Click Activation**
785 * After successful authentication, if an OTTO project exists in Search Atlas, its configurations are automatically imported and applied within WordPress.
786 * **White Label Branding**
787 * The white label experience has been significantly improved. Upon one-click authentication, any configured white label settings are automatically imported. This includes:
788 * Plugin Name
789 * Logo
790 * OTTO Name
791 * Dashboard URL
792 * 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.
793 * **Dashboard Access**
794 * Direct access to the customer’s OTTO project dashboard is now available from within the plugin.
795 * **Plugin Redesign**
796 * 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.
797 * **Reset Plugin**
798 * A new option has been added to fully reset plugin configurations back to their default values.
799 * **Error Logs**
800 * 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.
801 * **Search Atlas SSO**
802 * Users can now authenticate the plugin with a single click, eliminating manual setup steps and streamlining the entire process.
803 * **OTTO One-Click Activation**
804 * After successful authentication, if an OTTO project exists in Search Atlas, its configurations are automatically imported and applied within WordPress.
805 * **White Label Branding**
806 * The white label experience has been significantly improved. Upon one-click authentication, any configured white label settings are automatically imported. This includes:
807 * Plugin Name
808 * Logo
809 * OTTO Name
810 * Dashboard URL
811 * 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.
812 * **Dashboard Access**
813 * Direct access to the customer’s OTTO project dashboard is now available from within the plugin.
814 * **Plugin Redesign**
815 * 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.
816 * **Reset Plugin**
817 * A new option has been added to fully reset plugin configurations back to their default values.
818 * **Error Logs**
819 * 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.
820 * **Disable SSO**
821 * Disable 1 Click WP Authentication from Dashboard
822
823 BUG FIXES:
824
825 * Disabled Canonical redirects generating loops
826 * Check if URL could be crawled
827 * Duplicated element with YITH plugin
828 * FAQ format conflict with Theme Builder
829 * Conflict with Hostify Booking Engine plugin
830 * Old version of Elementro Pro breaking CSS
831
832 = 2.4.4 =
833 * Bug Fix: When user is logged via SSO, validate if the auth token is set
834
835 = 2.4.3 =
836 * HotFix 1: When user is logged via SSO, persist the session in the admin area
837
838 = 2.4.2 =
839 * Bug fix 1: large log size for heavy traffic sites
840
841 = 2.4.1 =
842 * Bugfix 1: Imported Posts published with duplicate images
843
844 = 2.4.0 =
845 * Feature 1: Single Sign On to WP from Dashboard
846 * Feature 2: Modifying Existing Posts with CA AI
847 * Improvement 1: Improved Error Handling for menu Image field
848 * Improvement 2: Notification about permalink compatibility
849 * Improvement 3: Remove outdate UI component (Clear Cache Button)
850 * Improvement 4: Delete Zipped logs older than 30 days
851 * Improvement 5: Displaying Block Quote elements from CA
852 * Bug fix 1: Table of Contents not Working for some sites
853 * Bug fix 2: FAQ Section not comming in correctly for some sites
854 * Bug fix 3: Error warning while publishing to WP Elementor on some sites
855 * Bug fix 4: Fatal Error triggered on invalid URI
856 * Bug fix 5: Preserve redirection for forward slash ending urls
857
858 = 2.3.11 =
859 * Feature 1: Modifying Existing Posts with Content Assistant AI
860
861 = 2.3.10 =
862 * Bug fix 1: Critical Error with undeclared global Post Object
863
864 = 2.3.8 =
865 * Bug fix 1: Check out flow breaking on some sites
866
867 = 2.3.7 =
868 * Bug fix 1: Otto Interfering with some non-native Ajax requests
869
870 = 2.3.6 =
871 * Bug fix 1: Activating Otto SSR breaks UI on some sites
872
873 = 2.3.5 =
874 * Bug fix 1: Argument Count Error on some custom themes
875 * Bug fix 2: Missing Title on some sites
876 * Improvement 1: Serve Otto improved changes to Bot
877
878 = 2.3.4 =
879 * Bug fix 1: Error Viewing blog posts in some Nginx sites
880 * Improvement 1: Otto Crawl monitoring
881 * Improvement 2: Remove redundant requests to back end
882
883 = 2.3.3 =
884 * Bug fix 1: Checkout failure on some sites
885
886 = 2.3.2 =
887 * Bug fix 1: Fatal Error on empty tag attributes
888 * Bug fix 2: Plugin Breaking Grid Page Sites
889
890 = 2.3.1 =
891 * Improvement 1: Real Time Server Side Rendering - No HTML Cache
892
893 = 2.3.0 =
894 * Bug fix 1: Fix 500 error when publishing a post
895 * Bug fix 2: Fix OTTO SSR disabling the WordPress edit menu
896 * Bug fix 3: Fix rest_forbidden error when publishing blog post
897 * Bug fix 4: Fix OTTO breaking website layout (top-bar)
898 * Improvement 1: Session Based Rendering
899 * Improvement 2: Reset Heartbeat API calls to 5-minute intervals
900 * Improvement 3: Update plugin layout and implement white-labelling
901 * Improvement 4: Implement new caching mechanism
902
903 = 2.2.7 =
904 * Bug fix 1: Fix 429 page issue
905 * Improvement 1: Disabling Otto on error pages like 404
906
907 = 2.2.6 =
908 * Improvement 1: Refactored CI/CD Pipelines and added releases
909
910 = 2.2.5 =
911 * Bug fix 1: Critical error on metasync logs page
912 * Bug fix 2: Purchase process affected on Ecommerce Sites
913
914 = 2.2.4 =
915 * Bug fix 1: AI page builder formatting
916 * Bug fix 2: Categories not syncing
917
918 = 2.2.3 =
919 * Bug Fix 1: Compatibility Improvements
920 * Bug Fix 2: Hero Image not showing on some posts
921 * Bug Fix 3: Post title missing on some posts
922
923 = 2.2.2 =
924 * Feature 1: Clear Otto Caches Button
925 * Feature 2: Option to disable Otto for logged in Users
926 * Bug fix 1: Hero Image not getting Updated
927
928 = 2.2.1 =
929 * Bugfix 1: Fix login Loop Issue on Sites with OTTO SSR
930 * Bugfix 2: Fix Otto SSR Caching Problem on the Admin Side
931 * Bugfix 3: Fix H1 rendering on published Posts
932
933 = 2.2.0 =
934 * Bugfix 1: Fix login Issues on Sites with OTTO SSR
935 * Bugfix 2: Accepting UUID to activate OTTO on Wordpress
936 * Feature 1: Alerting users to remove OTTO JS before activating OTTO SSR
937 * Feature 2: Instant deployment of changes made on OTTO dashboard
938
939 = 2.1.1 =
940 * bugfix 1: Logging System - Fix Corrupted Zip Files
941
942 = 2.1.0 =
943 * Feature : Server Side Rendering of the Otto Pixel
944
945 = 2.0.0 =
946 * Feature 1: Metasync Specific Site Log Monitoring & Logging
947 * Bugfix 1: Failed Image Syncing
948 * Bugfix 2: Fix AI landing Page Visibility
949 * Bugfix 3: Headings Coming over with #000000
950
951 = 1.9.3 =
952 * Fixed : Error Publishing Blog Article
953
954 = 1.9.2 =
955 * Fix : Renamed DB Migration Class to Prevent Conflict
956
957 = 1.9.1 =
958 * Feature 1: Stability Improvements
959
960 = 1.9.0 =
961 * Bug fixes
962 * Fixed PHP 7.1.x compatibility issues
963
964 = 1.8.9 =
965 * Enhanced security measures
966
967 = 1.8.8 =
968 * Improved general page settings
969
970 = 1.8.7 =
971 * Enhanced compatibility with WordPress Dashboard
972
973 = 1.8.6 =
974 * Server-side improvements
975
976 = 1.8.5 =
977 * Additional server optimizations
978
979 = 1.8.4 =
980 * Resolved logic issues for white labels
981
982 = 1.8.3 =
983 * Fixed isset issues for white labels and public view
984
985 = 1.8.2 =
986 * Addressed isset issues for white labels and error logging
987
988 = 1.8.1 =
989 * Fixed isset issues for white labels
990
991 = 1.8.0 =
992 * Fixed "Sync now" plugin list addition
993
994 = 1.7.9 =
995 * Fixed content removal in Debug Log
996
997 = 1.7.8 =
998 * Fixed content removal in Debug Log
999
1000 = 1.7.7 =
1001 * Improved Default Debug Log
1002
1003 = 1.7.6 =
1004 * Enhanced Default Debug Log
1005
1006 = 1.7.5 =
1007 * Improved Debug functionality
1008
1009 = 1.7.4 =
1010 * General code improvements
1011
1012 = 1.7.3 =
1013 * Continued code enhancements
1014
1015 = 1.7.2 =
1016 * Fixed various errors
1017
1018 = 1.7.1 =
1019 * Addressed metasync error logging
1020
1021 = 1.7.0 =
1022 * Enhanced code and integrated Otto
1023
1024 = 1.6.9 =
1025 * Improved compatibility with Divi Child theme
1026
1027 = 1.6.8 =
1028 * Fixed issues with figure tags
1029
1030 = 1.6.7 =
1031 * Enhanced support for Iframe tags
1032
1033 = 1.6.6 =
1034 * Redirects updated after White Label changes
1035
1036 = 1.6.5 =
1037 * Code and White Label improvements
1038
1039 = 1.6.4 =
1040 * General code improvements
1041
1042 = 1.6.3 =
1043 * Continued code enhancements
1044
1045 = 1.6.2 =
1046 * Code improvements and menu renaming
1047
1048 = 1.6.1 =
1049 * Code enhancements and White Label updates
1050
1051 = 1.6.0 =
1052 * Code improvements and added Sub Pages functionality
1053
1054 = 1.5.9 =
1055 * Code improvements and HTML format fixes
1056
1057 = 1.5.8 =
1058 * Code improvements and HTML format fixes
1059
1060 = 1.5.7 =
1061 * Code enhancements and bug fixes
1062
1063 = 1.5.6 =
1064 * Code improvements and bug fixes
1065
1066 = 1.5.5 =
1067 * General code improvements
1068
1069 = 1.5.4 =
1070 * Code enhancements
1071 * Fixed List Item components
1072
1073 = 1.5.3 =
1074 * Code improvements
1075 * Integrated Divi
1076
1077 = 1.5.2 =
1078 * Code enhancements
1079 * Fixed Elementor activation bug
1080
1081 = 1.5.1 =
1082 * General code improvements
1083
1084 = 1.5.0 =
1085 * Continued code enhancements
1086
1087 = 1.4.9 =
1088 * General code improvements
1089
1090 = 1.4.8 =
1091 * Added CSS for Search Atlas
1092 * Code enhancements
1093
1094 = 1.4.7 =
1095 * Added Permalink Structure Validator
1096 * Enhanced Page Editor checks
1097 * Option to choose Page Editor
1098 * Code improvements and bug fixes
1099
1100 = 1.4.6 =
1101 * Code enhancements and bug fixes
1102
1103 = 1.4.5 =
1104 * Code improvements and bug fixes
1105 * Removed deprecated features from codebase
1106
1107 = 1.4.4 =
1108 * Code enhancements and bug fixes
1109 * Added option to enable/disable features menu in General settings
1110
1111 = 1.4.3 =
1112 * Changed post permalink approach to prevent conflicts
1113 * Updated page template to default instead of blank
1114 * Set page parent to main if page doesn't exist
1115 * Fixed permalink function in getPagesList
1116 * Resolved minor bugs and improved code
1117
1118 = 1.4.2 =
1119 * Added new API endpoint `getPostByURL` to find posts by URL
1120 * Updated README content and "Tested up to" attribute to latest version
1121 * Updated `getPagesList` API to display all pages in JSON response
1122 * Fixed bug in retrieving `post_id` in API codes
1123 * Improved Pages management API for sub pages
1124
1125 = 1.4.1 =
1126 * Added three new API endpoints for creating pages
1127 * Renamed heartbeat endpoints and functions
1128 * Updated heartbeat categories and user sync limits and responses
1129 * Updated plugin name and description
1130 * Added plugin banner for marketplace page
1131 * Removed Sitemaps feature, functions, and routes
1132 * Added option to enable/disable Schema on Posts and Pages
1133 * Improved General Settings UI/UX
1134 * Fixed bugs and enhanced code
1135
1136 = 1.4.0 =
1137 * Feature: Basic Markdown support `[markdown] MARKDOWN CONTENT [/markdown]`
1138 * Feature: Set a new Landing Page via API
1139 * API code improvements and bug fixes
1140
1141 = 1.3.4 =
1142 * Enhanced Error Logs viewer and messages
1143 * Added new error logs API
1144 * Fixed `createPost` API code bug
1145
1146 = 1.3.3 =
1147 * Performance enhancements and bug fixes
1148
1149 = 1.3.2 =
1150 * Fixed bugs related to post and page images
1151
1152 = 1.3.1 =
1153 * Updated UI for HTML Accordion components
1154
1155 = 1.3.0 =
1156 * Editor/APIs: Added HTML Accordion support via shortcode `[accordion]CONTENT[/accordion]`
1157 * APIs: Enabled editing drafts or published posts and pages multiple times without duplication via permalink
1158 * APIs: Allowed manual addition of schema/scripts/styles to posts and pages
1159 * APIs: Improved `deleteItem` endpoint code to comply with REST standards
1160 * APIs: Numerous bug fixes and code enhancements for better performance and stability
1161
1162 = 1.2.8 =
1163 * Added new business type "Tree Services" to Business SEO page
1164
1165 = 1.2.7 =
1166 * Added Error Logs GET API endpoint
1167 * Enabled functionality to trigger on-demand payload requests
1168 * Added heartbeat HTTP request error information to Error Logs
1169 * Set a limit of one thousand records for categories and users
1170
1171 = 1.2.6 =
1172 * Fixed issue displaying all fields in Optimal Settings
1173
1174 = 1.2.5 =
1175 * Enabled selecting the author of a post/page randomly in Create/Update item APIs
1176 * Added ALT text for hero images in Create/Update item API payloads
1177 * Set specific post dates within the last two months in Create API
1178 * Added validation for `post_date` in Create/Update item APIs
1179 * Refactored Create/Update item API code
1180
1181 = 1.2.4 =
1182 * Added feature and menu to enable/disable Open Graph, Facebook, and Twitter meta tags for all posts and pages
1183 * Updated plugin version and README file
1184
1185 = 1.2.3 =
1186 * Enabled returning revisions for posts or pages in the update endpoint
1187 * Added or updated post tags in Create and Update endpoints
1188 * Included tags list in heartbeat API payload
1189
1190 = 1.2.2 =
1191 * Optimized Create and Update endpoints for media uploads
1192 * Added redirection functionality in Create and Update endpoints
1193 * Enabled/disabling comments in Create and Update APIs
1194 * Fixed category updates in heartbeat API
1195 * Resolved issue uploading previously unuploaded images to media in Create API
1196
1197 = 1.2.1 =
1198 * Added hero image attribute `hero_image_url` in Create or Update post endpoint
1199 * Refactored image upload code to use URLs in Create/Update endpoints
1200 * Updated plugin README file
1201
1202 = 1.2.0 =
1203 * Added post author in Create post endpoint
1204 * Included users in heartbeat API with `users` attribute
1205 * Assigned authors to attachments when uploading images to the media library
1206 * Rebuilt post content tags based on HTML rules
1207
1208 = 1.1.9 =
1209 * Enabled saving images from URLs to the WordPress media library
1210 * Added functionality to save images from URLs in Create/Update endpoints
1211 * Implemented checks for existing images from URLs in Update endpoint
1212
1213 = 1.1.8 =
1214 * Corrected home URL storage in the 404 Monitor database
1215 * Identified correct page URLs in the 404 Monitor for redirection
1216 * Utilized correct URLs from the 404 Monitor for Redirection
1217
1218 = 1.1.7 =
1219 * Sent post categories as a list to backend requests
1220 * Enabled auto-generation of the plugin's authorization key
1221 * Displayed a message when the Search Atlas API key is not saved
1222
1223 = 1.1.6 =
1224 * Updated the title of General Settings
1225 * Updated plugin screenshots
1226
1227 = 1.1.5 =
1228 * Added/Replaced categories for posts with a key to append categories in update items
1229 * Synchronized post categories in Create/Update item endpoints
1230 * Refactored code to sync customer website configurations and post categories
1231
1232 = 1.1.4 =
1233 * Fixed issue sending categories as JSON in heartbeat payload
1234 * Removed special characters from category JSON
1235 * Fixed heartbeat request interval settings
1236
1237 = 1.1.3 =
1238 * Removed login fields for obtaining JWT token from General Settings
1239 * Removed dashboard link from the plugin
1240 * Set heartbeat frequency to every 5 minutes
1241 * Configured heartbeat requests to trigger on saving General Settings
1242
1243 = 1.1.2 =
1244 * Removed double quotes and forward slashes from JSON-LD Schema
1245
1246 = 1.1.1 =
1247 * Fixed article name issue in JSON-LD Schema
1248 * Added plugin icon to the plugin directory
1249 * Added plugin screenshots to the plugin directory
1250 * Included changelogs in the plugin's README file
1251
1252 = 1.1.0 =
1253 * Added a button to manually force heartbeat sending to the server
1254 * Displayed the last sync timestamp to monitor heartbeat status
1255 * Added input field to save the Search Atlas API key in General Settings
1256 * Included Search Atlas API key in the header of Heartbeat API
1257 * Removed JWT token and Customer ID from Heartbeat Request
1258
1259 = 1.0.9 =
1260 * Added `meta_description` and `meta_robots` to the payload
1261 * Fixed issue updating categories consistently in the payload
1262 * Fixed issue adding two different `meta_robots` values in the header
1263 * Included blog categories in the Heartbeat payload
1264
1265 = 1.0.8 =
1266 * Updated post/page permalinks during post updates via API payload
1267 * Updated post categories during post updates via API payload
1268
1269 = 1.0.7 =
1270 * Added categories during post creation
1271 * Included Permalink URL during page creation
1272 * Set default post type to Post and post status to Publish
1273
1274 = 1.0.6 =
1275 * Added new sanitization for JSON-LD to echo in the header
1276 * Removed third-party URLs from post data in the plugin
1277
1278 = 1.0.5 =
1279 * Created new `deleteItem` API to delete posts
1280 * Refactored JSON-LD schema code to include all posts and pages
1281 * Added prepare method in WHERE clause fields of queries
1282
1283 = 1.0.4 =
1284 * Added new sanitization for all POST and GET variables
1285 * Refactored all plugin code
1286
1287 = 1.0.3 =
1288 * Added sanitization for all missing POST/REQUEST variables
1289 * Implemented escape methods for all internal print variables
1290 * Refactored all select boxes to use select options
1291 * Removed redundant code from the plugin
1292
1293 = 1.0.2 =
1294 * Fixed issue excluding post IDs from sitemaps via API or General Settings
1295 * Fixed issue sanitizing null values in common settings
1296
1297 = 1.0.1 =
1298 * Fixed invalid token issue in Heartbeat API
1299 * Fixed exception handling in LinkGraph login response
1300
1301 = 1.0.0 =
1302 Initial release.