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

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

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