=== Search Atlas SEO - Premier SEO Plugin for One-Click WP Publishing & Integrated AI Optimization ===
Contributors: shahrukhlinkgraph
Tags: seo, sitemap, google instant indexing, schema, 404 monitor
Donate link: http://searchatlas.com
Requires at least: 5.2
Tested up to: 6.8.1
Requires PHP: 7.1
Stable tag: 2.5.27
License: GPL-2.0+
License URI: https://www.gnu.org/licenses/gpl-2.0.txt

Search Atlas SEO is a user-friendly WordPress plugin that simplifies complex and time-consuming SEO tasks into efficient, easy-to-manage processes. With just a few clicks, the meta-bulk update feature leverages AI to automatically optimize meta tags, enhancing click-through rates. Keep your site or specific URLs up-to-date with the latest Google Search data directly from the Search Atlas SEO plugin page.

== Description ==
### Search Atlas SEO - Top WordPress Plugin for SEO & AI Integration
**Comprehensive WordPress SEO Plugin with AI-Powered Optimization & One-Click Publishing**

**SEO is the most effective strategy for driving organic traffic.** We've enhanced our award-winning SEO software, **Search Atlas**, with cutting-edge Artificial Intelligence (AI) integrations to deliver the most powerful WordPress plugin available. Features like one-click publishing, bulk meta updates, and schema markup enable website owners to attract more search traffic and build a high-ranking website effortlessly.

## LEARN MORE ABOUT THE Search Atlas PLATFORM

Often hailed as **the best marketing investment** a website can make, SEO provides website owners with the means to boost their web traffic significantly. Traditionally, SEO has been a specialized field requiring technical expertise. **Search Atlas SEO by Search Atlas democratizes SEO, putting every aspect of optimization at the fingertips of every website owner with the power of AI**.

Search Atlas SEO transforms intricate and laborious SEO tasks into streamlined processes. With a few clicks, the **meta-bulk update** feature uses AI to re-optimize meta tags, increasing click rates. Stay informed with **the latest Google Search data** for your entire site or specific URLs directly within the Search Atlas SEO plugin interface.

Utilize the Search Atlas Content Suite to **generate fully optimized AI-driven content in minutes** and publish it to your WordPress site with a single click. Easily create multiple redirects, identify and resolve indexing errors, and submit sitemaps effortlessly.

Save time. Optimize your site seamlessly. Produce high-ranking content.

### Superior AI Content for Optimal SEO

Search Atlas features an **integrated AI content creator** that streamlines the content creation process. From developing your **content calendar** to conducting **keyword research** and producing **exceptional blogs, landing pages, product descriptions**, and more, our SEO tools with built-in AI help you **build a library of high-ranking published pages in a fraction of the time**.

### One-Click Publishing of Content to Your WordPress Site from the LinkGraph Dashboard
- Instantly publish new blog posts, content updates, and landing pages to your WordPress site from the LinkGraph dashboard
- Includes optimized meta descriptions and meta titles
- Incorporates images with appropriate alt text
- Features formatted header tags, bullet points, and hyperlinks

### Bulk Update Title Tags and Meta Descriptions on Your WordPress Site Using AI
- Quickly optimize meta tags for landing pages, blogs, and other webpages in bulk
- Utilizes Google's GPT-3 AI technology to generate engaging, relevant meta tags
- Automatically updates tags across your website

### Features
1. Local Business SEO
2. Google Instant Indexing
3. Google Search Console Integration
4. Redirection Management
5. 404 Error Monitoring
6. Error Logging
7. Search Engine Verification
8. Custom Code Snippets
9. Optimal Settings Configuration
10. Global SEO Settings

== Installation ==
1. Upload the `metasync` folder to the `/wp-content/plugins/` directory.
2. Activate the plugin through the Plugins menu in WordPress.

== Frequently Asked Questions ==
= What does the Search Atlas SEO plugin do? =
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.

== Screenshots ==
1. General Settings

== Upgrade Notice ==
= 1.4.1 =
This version does not include the new APIs required by the AI Editor.

== Changelog ==
= 2.5.27 =
- Fix: Image alt-text unreliable on Oxygen theme HTTP render path; added string-based fallback
- Fix: Content Genius page sync renders full-width on Oxygen Builder
- Fix: Apostrophe truncation in SEO extract functions causing content to be cut short
- Fix: Crawl monitoring module shows no data despite successful crawl executions
- Fix: Oxygen Builder synced post content not visible on front-end
- Fix: CPU performance tab missing from Advanced Settings after refactor
- Fix: JSON-LD schema deduplication: duplicate blocks on the same page
- Fix: Schema/JSON-LD suppression for OTTO when third-party SEO plugins (Yoast, Rank Math, AIOSEO) are active
- Fix: Remove dead `wp_ajax_metasync` hook pointing to non-existent `sync_items` method
- Fix: Add missing `display_cpu_deferral_notice` method to `Metasync_Admin`
- Fix: Oxygen Builder page template override guard in `create_page()` and `update_page()` (REST API)
- Fix: Stale-options overwrite in `test_heartbeat_api_connection()`; replace burst-mode heavy heartbeat with lightweight connection-ping endpoint
- Fix: Image alt-text string-based fallback in OTTO HTTP render path; Divi `data-et-multi-view` JSON attribute handling
- Feature: Internal link suggestions in post editor sidebar
- Feature: Replace burst-mode heavy heartbeat (`SyncCustomerParams`) with lightweight `connection-ping` endpoint — reduces payload and server load during key-pending state
- Feature: MCP sync log: log changes, rollback, 90-day auto-clear, and manual clear button
- Feature: Code minification and delivery (JS minifier)
- Feature: CPU load awareness: adaptive deferral based on server load
- Improvement: MCP `wordpress_get_post_by_url` extended to return full SEO metadata (title, description, schema, OG fields, focus keyword)
- 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`)
- Improvement: MCP `wordpress_get_seo_inventory` tool: bulk SEO health data across all posts in one call
- Improvement: Log - fatal-only filtering — `capture_php_error()` now passes only `E_USER_ERROR` and `E_RECOVERABLE_ERROR`; warnings, notices, and deprecations are dropped
- Improvement: Log - level gate in `send_to_sentry()` and `TelemetryManager::send_message()` — info/warning/debug events never reach the proxy
- Improvement: Log - debug window reduced from 60 min to 15 min (900s transient TTL) for faster re-reporting of recurring fatal errors
- Improvement: Logging cleanup - removed 15+ dead `log_heartbeat('info', ...)` calls (method already early-returns on `'info'`)
- Improvement: Logging cleanup - removed operational noise from `Metasync_Rate_Limiter`, `Metasync_Cache_Purge`, and `Metasync_API_Backoff_Manager`

= 2.5.26 =
* Improvement: AIOSEO compatibility 
* Fix: preg_replace backreference injection in title deduplication (titles with \$N sequences)
* Fix: Title tag deduplication and SEO plugin conflict handlers
* Fix: API rate limiting causes stale cache and robots/canonical settings ignored
* Fix: Dollar signs being stripped from image alt text 
* Fix: Heading deployment on Divi/page-builder sites
* Fix: PHP 7.4 compatibility — polyfills for str_contains/str_starts_with/str_ends_with and match expression rewrites
* Feature: NitroPack full flush + targeted object cache
* Feature: WP Database & Object Caching cleanup

= 2.5.25 =
**Bug Fixes:**
* 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
* Fix: DB column missing on older installs now self-heals all three required columns
* 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
* Fix: Dollar signs stripped from image alt text during deployment
* Fix: Heading deployment broken on some outdated Divi versions
* Fix: One case of duplicate meta name="description tags when MetaSync and AIOSEO coexist
* Fix: XML sitemap auto-update not triggering when posts published via Gutenberg
* Fix: Divi header/footer hidden on blog posts synced via Content Genius

= 2.5.24 =
**Bug Fixes:**
* 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
* Fix: Hardcoded SearchAtlas/Search Atlas brand strings replaced with whitelabel-aware output across admin views, dev panel, site health checks, and MCP tool descriptions
* Fix: \"SearchAtlas AI Pages\" dashboard widget title ignoring whitelabel plugin name setting
* 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
* 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

= 2.5.23 =
**Bug Fixes:**
* Fix: MetaSync WP plugin breaks Elementor front-end spacing — SimpleHtmlDOM `stripRN` was stripping whitespace between inline elements; now set to `false`
* Fix: Elementor headings override Global Fonts after Content Genius sync — removed forced Roboto font so headings inherit site's Global Font settings
* Fix: Elementor Canvas template incorrectly applied when syncing articles as posts
* Fix: Admin bar status icon now reflects missing UUID as a distinct warning state (orange) rather than generic disconnected state

**Improvements:**
* Performance: Added transient cache to OTTO JS check to reduce overhead on every request
* Improvement: Cache Purge — Added per-URL purge support
* Improvement: Cache Purge — Query string normalization strips UTM/gclid/fbclid params before purge so all URL variants resolve to the same canonical URL
* Improvement: Cache Purge — Edge CDN purge integrations targeted via configuration
* Improvement: Remove non-publishable roles (Subscriber, Contributor) from Content Genius User Roles to Sync setting
* Improvement: Validation message added when publishing AI Landing Pages with plain permalink structure

**Features:**
* Feature: WordPress Site Health Integration — MetaSync now registers checks in the WP Site Health panel
* Feature: Media Optimization
* Feature: Rate the Plugin notice — shows a dismissible prompt after 7 days of usage; hidden when whitelabel is enabled 

**Refactoring:**
* Removed `instant-index/` vendor tree (~714 files); replaced Google SDK with native PHP implementation 
* Decomposed `Metasync_Admin` god object (17,849 lines) into 10 focused classes; admin reduced to ~3,986 lines
* Decomposed `Metasync_Public` into focused classes; REST API routes extracted to `Metasync_Rest_Api` 
* Extracted 23 inline JavaScript blocks into proper `.js` files loaded via `wp_enqueue_script`

= 2.5.22 =
* Improvement: Heartbeat connection/pool logic to reduce the number of external requests
* Improvement: Adapt scenarios of Idle WpRocket + Active Kinsta Cache that was preventing the cache to be purged.

= 2.5.21 =
###Features                        
  - Add hosting cache integration (WP Engine + Kinsta) with per-provider toggles in Advanced → Cache
  Management
  - Add WP Engine native cache purge (Varnish + Memcached) via `WpeCommon`
  - Add Kinsta native full-page cache purge via `KinstaCache::kinsta_cache_purge_full()`

  ###Bug Fixes
  - Fix: SEO placeholder tokens (%%title%%, %sitename%, #post_title#, etc.) now resolved to real values on
  import from Yoast / Rank Math / AIOSEO
  - Fix: Customer schema markup being injected into the global site header
  - Fix: WP Rocket compatibility — OTTO no longer disables WP Rocket JS/CSS optimization features
  - Fix: WP Rocket + Kinsta cache conflict causing meta title/description to revert
  - Fix: CSS injection methods (`enqueue_page_custom_css`, Elementor, Divi) missing from `Metasync_Public`
  - Fix: Plugin URI and Author URI fields silently discarding valid URLs

= 2.5.20 =
* Fixed a case where a empty Otto meta description was overwriting the existing one.

= 2.5.19 =
New Features

  - SEO Sidebar in Post Editor — Edit Meta Title, Meta Description and URL slug directly from the post/page
   editor sidebar
  - Bot Detection Layer for OTTO — Detects and tracks bots with statistics dashboard
  - Bing Instant Indexing — Submit URLs directly to Bing
  - Plugin Setup Wizard — Guided setup process for new users
  - Execution Settings — New controls under Advanced Settings
  - Debug Mode Auto-Disable & Safety Limits — Automatically disables after a set period
  - Enhanced Error Categorization — Improved monitoring with categorized error tracking
  - Virtual robots.txt / sitemap.xml — Served virtually when host blocks direct file writes
  - OTTO 404-Specific Filtering — Filter OTTO suggestions for 404 pages
  - Heartbeat reliability improvements

  Improvements

  - Schema Markup disable option — Can now be toggled per Post/Page Editor settings
  - Whitelabel form validation — Prevents partial saves without whitelabel mode activation
  - Host Blocking in whitelabel — Host blocking now covered by whitelabel settings
  - Support Token rate limiting — Properly enforced during login
  - Report Issue with Sentry User Feedback — Image attachments supported
  - MCP Tool API key auth — Fixed permission checks for API key-authenticated requests

  Bug Fixes

  - Fixed OTTO removing original meta description when no OTTO description deployed
  - Fixed plugin breaking Elementor front-end spacing when span tag was inner H1
  - Fixed WP Rocket + Kinsta cache conflict causing meta titles/descriptions to disappear
  - Fixed ALT text not applied on home page and other pages for Custom Theme
  - Fixed Plugin URI and Author URI not being saved
  - Fixed UI issues in admin screens
  - Fixed sync logs not showing newest info after filtering
  - Fixed exported whitelabel settings not uploading to another site
  - Fixed plugin settings hiding in plugin menu but not under WordPress General settings
  - Fixed Import SEO Data missing from access control list

  Stability / PHP 8.1+ Compatibility

  - 13 improvements with deprecated PHP functions below PHP V8.0

= 2.5.18 =
* Removed JWT-based temporary support access token system
* Improved internal code documentation

= 2.5.17 =
* New: Administrator-Controlled Remote Support - Support access now requires explicit consent with secure, time-limited JWT tokens you generate and control
* New: Support Access Management UI - Generate, view, and revoke support tokens directly from plugin settings
* New: Email notifications when support tokens are generated, used, or revoked
* Security: Connect to Search Atlas now uses time-limited, single-use tokens instead of persistent credentials
* Security: Added rate limiting to Connect to Search Atlas authentication

= 2.5.16 =
* New: Administrator-Controlled Remote Support - Support access now requires explicit consent with secure, time-limited tokens you generate and control
* Security: Enhanced Search Atlas SSO authentication with time-limited tokens
* Security: Improved access control for administrative functions
* Security: Added rate limiting to authentication endpoints
* Improvement: Optimized token validation for better performance

= 2.5.15 =
* **Fix:** Improved compatibility with the **NitroPack** cache plugin.
* **Fix:** Resolved a compatibility issue with the **Divi Timeline** widget.
* **Fix:** Resolved a compatibility issue with the **Divi MultiView** widget.
* **Fix:** Fixed an issue where static text in Advanced Settings displayed "OTTO/SA" instead of the **White Label** name.
* **Fix:** Improved input validation within the **Redirection** form.
* **Fix:** Fixed an issue where the **Cancel** button in the Redirection feature was not triggering.
* **Fix:** Resolved an issue where **General Settings** would reset after a White Label password was set.
* **Improvement:** Enhanced the filter and search modules in the **Redirection** section.
* **Improvement:** When a new sitemap is generated, the **robots.txt** file will now automatically update with the correct link.
* **Improvement:** Simplified plugin navigation for a better user experience.
* **Improvement:** Removed deprecated files and unnecessary logs to optimize performance.
* **Improvement:** Added **MCP** support.
* **Improvement:** Added data persistence with **granularity** support.
* **Improvement:** Improved notification messaging to better inform users about plugin updates.
* **Feature:** Added full support for **Oxygen Builder**.
* **Feature:** **Plugin Access Control:** Added a setting under Advanced Settings to define which user roles can access the plugin.
* **Feature:** **Advanced Access Control:** White Label users can now disable specific settings or features per user role (**Settings \> White Label \> Advanced Access Control**).
* **Feature:** Added a dedicated **Import SEO Data** screen.
* **Feature:** Added an option to set all external links to `target="_blank"` (**Settings \> General \> Post/Page Settings**).
* **Feature:** Added an option to add `rel="nofollow"` to all external links (**SEO \> Indexation \> Indexation Control**).
* **Miscellaneous:** Minor cross-compatibility improvements for legacy PHP versions.

= 2.5.14 =
* **Fix:** Fixed a case of compatibility with Formidable Form Builder
* **Fix:** Fixed a case of compatibility with Essentials Theme
* **Fix:** Small adjustments in overall code for performance
* **Improvement:** Improvement of OTTO SSR system
* **Improvement:** Small adjustments in the UX
* **Improvement:** Improvement of suggestions persistence in WP DB.

= 2.5.13 =
* **Fix:** Fixed a case where new published article was only showing headers 
* **Fix:** Fixed a case of compatibility with Essentials Theme
* **Fix:** Small adjustments in overall code for performance
* **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.
* **New Feature: Import from RankMath/Yoast/AIOSEO -** We included a feature to import Robots.txt, Sitemap.xml, Schemas and Indexation Options from SEO Plugins.
* **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. 
* **Improvement:** Small adjustments in OTTO SSR
* **Improvement:** Small adjustments in Light Theme version
* **Improvement:** We included a option in the Settings to Disable OTTO Toolbar.
* **Improvement:** Otto Toolbar is Whitelabel friendly (Apply WL name)

= 2.5.12 =
* **Fix:** Fixed a case of compatibility with Slider Revolution
* **Fix:** Fixed a case of duplication in content synced
* **Fix:** Small adjustments in PHP Warnings being triggered
* **Fix:** Fixed a case of custom child theme triggering errors in error log
* **New Feature: Light/Dark Theme -** We included a feature that allow users to switch the plugin colors to a light version.
* **New Feature: Content Genius Authors -** We included a feature under settings where you could choose what user roles would be synced with Content Genius
* **New Feature: OTTO Changes Viewer -** We included a feature to check what changes are being applied in a page optimized by OTTO.
* **Improvement:** We improved the OTTO detection system.
* **Improvement:** Changes in Robots.txt could be rollbacked with a historic of changes
* **Improvement:** We included a option in the Indexation feature to disallow Category pages.
* **Improvement:** Small optimizations in the code for page speed improvement.

= 2.5.11 =
* **Fix:** Fixed a case of compatibility with Woocommerce
* **Fix:** Fixed a case of redirections not working when the target URL was deleted
* **Fix:** Fixed a case of Error Logs not displaying correctly
* **Fix:** Fixed a case of PHP Warning due outdated PHP version
* **Fix:** Fixed a case of custom child theme triggering errors in error log
* **New Feature: Report a Issue -** We included a feature that allow users to notify Issues directly from the plugin.
* **Improvement:** We improved the Whitelabel settings to hide specific features if needed.
* **Improvement:** Improvements on system messages

= 2.5.10 =
* **Fix:** Fixed a case of compatibility with Gravity Forms
* **Fix:** Fixed a case of compatibility with Elementor Pro
* **Fix:** Fixed a case of compatibility with DIVI
* **Fix:** Fixed a case where the post editor preview was blocked
* **Fix:** Fixed a case of original meta title and meta description being overwritten by OTTO
* **New Feature: Custom Pages -** We included a feature that allow users to create custom pages bypassing existing Themes and Styles.
* **New Feature:** **OTTO Excluded URLs -** We included under Compatibility Tab, a option to Turn off OTTO changes per URL.
* **New Feature:** **Import Redirections -** Users could now import redirections from .csv file or directly from Yoast/RankMath/AIOSEO.
* **Improvement:** We improved the Whitelabel settings to hide specific features if needed.
* **Improvement:** Minor changes in core functions.
* **Improvement:** Excluded from Sitemap generator URLs that aren't related with live pages.

= 2.5.9 =
* **Fix:** Fixed a case where the plugin was duplicanting the meta description tag
* **Fix:** Fixed a case where the post editor was preventing user to save OG tags.
* **New Feature:** We included in advanced settings a option to test the connectivity between host and the platform.
* **New Feature:** Users could generate SITEMAP.xml directly in the plugin (This function will disable current sitemap.xml plugins)
* **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
* **Improvement:** We improved the Whitelabel settings to hide specific features if needed.
* **Improvement:** Minor changes in cross-compatibility with outdated PHP versions.

= 2.5.8 =
* **Fix:** Some conditions was preventing saving new/edit posts directly from the editor
* **Fix:** Non-standard tags found in body of the page, are being detect as plain text.
* **New Feature:** White Label Clients could turn on/off Plugin features in Whitelabel Settings.
* **Improvement:** Minor changes in cross-compatibility with outdated PHP versions.

= 2.5.7 =


= 2.5.6 =
* **Prevention**: New error detection system.
* **White Label**: 1-click Auth will sync the logo from the WL dashboard
* **Fixes & UX**: Allow Rollback changes in Meta Title and Meta Description that was being stored in the Database.

= 2.5.5 =
* **Performance**: Significant improvement to dashboard loading speed.
* **White Label**:
  * New dedicated White Label settings screen (Settings\>White Label).
  * Added password protection for White Label settings.
* **Logging**: Introduced Sync Logs to display implemented website changes.
* **Fixes & UX**: Minor UX adjustments and a fix for a false positive XSS issue in unused code.
* **System**: Minor OTTO system optimizations to reduce disk space and memory usage.

= 2.5.4 =
* HotFix: In some cases, the **error log** was becoming too large, causing host performance to slow down.

= 2.5.3 =
* Included Compatibility Screen V.1, that shows most common Themes and plugins and compatibility
* Improved error logs system

= 2.5.2 =
No changelog available.

= 2.5.1 =
* **Improved Dashboard Loading** for public dashboard URLs.
* **Enhanced compatibility** with naked URLs (non-www) on the platform.
* **Refined the Connection Status Bar.**
* **Fixed a bug** where the Connection Tips Box didn't expand when clicked.
* **Enabled the storage** of meta titles and descriptions in the database.
* **Added an option** to disable the dashboard view from the settings page.
* **Created a setting** to disable the Connection Status Bar from the admin bar.
* **Implemented a new Telemetry system** to streamline bug detection.
* **Resolved an issue** that caused error logs to be generated multiple times.
* **Optimized the rendering of AMP pages** to prevent unrecognized HTML tags.

= 2.5.1 =
* **Improved Dashboard Loading** for public dashboard URLs.
* **Enhanced compatibility** with naked URLs (non-www) on the platform.
* **Refined the Connection Status Bar.**
* **Fixed a bug** where the Connection Tips Box didn't expand when clicked.
* **Enabled the storage** of meta titles and descriptions in the database.
* **Added an option** to disable the dashboard view from the settings page.
* **Created a setting** to disable the Connection Status Bar from the admin bar.
* **Implemented a new Telemetry system** to streamline bug detection.
* **Resolved an issue** that caused error logs to be generated multiple times.
* **Optimized the rendering of AMP pages** to prevent unrecognized HTML tags.

= 2.5.0 =
* **Search Atlas SSO**
  * Users can now authenticate the plugin with a single click, eliminating manual setup steps and streamlining the entire process.
* **OTTO One-Click Activation**
  * After successful authentication, if an OTTO project exists in Search Atlas, its configurations are automatically imported and applied within WordPress.
* **White Label Branding**
  * The white label experience has been significantly improved. Upon one-click authentication, any configured white label settings are automatically imported. This includes:
    * Plugin Name
    * Logo
    * OTTO Name
    * Dashboard URL
  * 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.
* **Dashboard Access**
  * Direct access to the customer’s OTTO project dashboard is now available from within the plugin.
* **Plugin Redesign**
  * 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.
* **Reset Plugin**
  * A new option has been added to fully reset plugin configurations back to their default values.
* **Error Logs**
  * 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.
* **Search Atlas SSO**
  * Users can now authenticate the plugin with a single click, eliminating manual setup steps and streamlining the entire process.
* **OTTO One-Click Activation**
  * After successful authentication, if an OTTO project exists in Search Atlas, its configurations are automatically imported and applied within WordPress.
* **White Label Branding**
  * The white label experience has been significantly improved. Upon one-click authentication, any configured white label settings are automatically imported. This includes:
    * Plugin Name
    * Logo
    * OTTO Name
    * Dashboard URL
  * 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.
* **Dashboard Access**
  * Direct access to the customer’s OTTO project dashboard is now available from within the plugin.
* **Plugin Redesign**
  * 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.
* **Reset Plugin**
  * A new option has been added to fully reset plugin configurations back to their default values.
* **Error Logs**
  * 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.
* **Disable SSO**
  * Disable 1 Click WP Authentication from Dashboard

BUG FIXES:

* Disabled Canonical redirects generating loops
* Check if URL could be crawled
* Duplicated element with YITH plugin
* FAQ format conflict with Theme Builder
* Conflict with Hostify Booking Engine plugin
* Old version of Elementro Pro breaking CSS

= 2.4.4 =
* Bug Fix: When user is logged via SSO, validate if the auth token is set

= 2.4.3 =
* HotFix 1: When user is logged via SSO, persist the session in the admin area

= 2.4.2 =
* Bug fix 1: large log size for heavy traffic sites

= 2.4.1 =
* Bugfix 1: Imported Posts published with duplicate images

= 2.4.0 =
* Feature 1: Single Sign On to WP from Dashboard
* Feature 2: Modifying Existing Posts with CA AI
* Improvement 1: Improved Error Handling for menu Image field
* Improvement 2: Notification about permalink compatibility
* Improvement 3: Remove outdate UI component (Clear Cache Button)
* Improvement 4: Delete Zipped logs older than 30 days
* Improvement 5: Displaying Block Quote elements from CA
* Bug fix 1: Table of Contents not Working for some sites
* Bug fix 2: FAQ Section not comming in correctly for some sites
* Bug fix 3: Error warning while publishing to WP Elementor on some sites
* Bug fix 4: Fatal Error triggered on invalid URI
* Bug fix 5: Preserve redirection for forward slash ending urls

= 2.3.11 =
* Feature 1: Modifying Existing Posts with Content Assistant AI

= 2.3.10 =
* Bug fix 1: Critical Error with undeclared global Post Object

= 2.3.8 =
* Bug fix 1: Check out flow breaking on some sites

= 2.3.7 =
* Bug fix 1: Otto Interfering with some non-native Ajax requests

= 2.3.6 =
* Bug fix 1: Activating Otto SSR breaks UI on some sites

= 2.3.5 =
* Bug fix 1: Argument Count Error on some custom themes
* Bug fix 2: Missing Title on some sites
* Improvement 1: Serve Otto improved changes to Bot

= 2.3.4 =
* Bug fix 1: Error Viewing blog posts in some Nginx sites
* Improvement 1: Otto Crawl monitoring
* Improvement 2: Remove redundant requests to back end

= 2.3.3 =
* Bug fix 1: Checkout failure on some sites

= 2.3.2 =
* Bug fix 1: Fatal Error on empty tag attributes
* Bug fix 2: Plugin Breaking Grid Page Sites

= 2.3.1 =
* Improvement 1: Real Time Server Side Rendering - No HTML Cache

= 2.3.0 =
* Bug fix 1: Fix 500 error when publishing a post  
* Bug fix 2: Fix OTTO SSR disabling the WordPress edit menu  
* Bug fix 3: Fix rest_forbidden error when publishing blog post   
* Bug fix 4: Fix OTTO breaking website layout (top-bar)  
* Improvement 1: Session Based Rendering
* Improvement 2: Reset Heartbeat API calls to 5-minute intervals  
* Improvement 3: Update plugin layout and implement white-labelling  
* Improvement 4: Implement new caching mechanism

= 2.2.7 =
* Bug fix 1: Fix 429 page issue
* Improvement 1: Disabling Otto on error pages like 404

= 2.2.6 =
* Improvement 1: Refactored CI/CD Pipelines and added releases

= 2.2.5 =
* Bug fix 1: Critical error on metasync logs page
* Bug fix 2: Purchase process affected on Ecommerce Sites

= 2.2.4 =
* Bug fix 1: AI page builder formatting
* Bug fix 2: Categories not syncing

= 2.2.3 =
* Bug Fix 1: Compatibility Improvements
* Bug Fix 2: Hero Image not showing on some posts
* Bug Fix 3: Post title missing on some posts

= 2.2.2 =
* Feature 1: Clear Otto Caches Button
* Feature 2: Option to disable Otto for logged in Users
* Bug fix 1: Hero Image not getting Updated

= 2.2.1 =
* Bugfix 1: Fix login Loop Issue on Sites with OTTO SSR
* Bugfix 2: Fix Otto SSR Caching Problem on the Admin Side
* Bugfix 3: Fix H1 rendering on published Posts

= 2.2.0 =
* Bugfix 1: Fix login Issues on Sites with OTTO SSR
* Bugfix 2: Accepting UUID to activate OTTO on Wordpress
* Feature 1: Alerting users to remove OTTO JS before activating OTTO SSR
* Feature 2: Instant deployment of changes made on OTTO dashboard

= 2.1.1 =
* bugfix 1: Logging System - Fix Corrupted Zip Files

= 2.1.0 =
* Feature : Server Side Rendering of the Otto Pixel

= 2.0.0 =
* Feature 1: Metasync Specific Site Log Monitoring & Logging
* Bugfix 1: Failed Image Syncing
* Bugfix 2: Fix AI landing Page Visibility
* Bugfix 3: Headings Coming over with #000000

= 1.9.3 =
* Fixed : Error Publishing Blog Article

= 1.9.2 =
* Fix : Renamed DB Migration Class to Prevent Conflict

= 1.9.1 =
* Feature 1: Stability Improvements

= 1.9.0 =
* Bug fixes
* Fixed PHP 7.1.x compatibility issues

= 1.8.9 =
* Enhanced security measures

= 1.8.8 =
* Improved general page settings

= 1.8.7 =
* Enhanced compatibility with WordPress Dashboard

= 1.8.6 =
* Server-side improvements

= 1.8.5 =
* Additional server optimizations

= 1.8.4 =
* Resolved logic issues for white labels

= 1.8.3 =
* Fixed isset issues for white labels and public view

= 1.8.2 =
* Addressed isset issues for white labels and error logging

= 1.8.1 =
* Fixed isset issues for white labels

= 1.8.0 =
* Fixed "Sync now" plugin list addition

= 1.7.9 =
* Fixed content removal in Debug Log

= 1.7.8 =
* Fixed content removal in Debug Log

= 1.7.7 =
* Improved Default Debug Log

= 1.7.6 =
* Enhanced Default Debug Log

= 1.7.5 =
* Improved Debug functionality

= 1.7.4 =
* General code improvements

= 1.7.3 =
* Continued code enhancements

= 1.7.2 =
* Fixed various errors

= 1.7.1 =
* Addressed metasync error logging

= 1.7.0 =
* Enhanced code and integrated Otto

= 1.6.9 =
* Improved compatibility with Divi Child theme

= 1.6.8 =
* Fixed issues with figure tags

= 1.6.7 =
* Enhanced support for Iframe tags

= 1.6.6 =
* Redirects updated after White Label changes

= 1.6.5 =
* Code and White Label improvements

= 1.6.4 =
* General code improvements

= 1.6.3 =
* Continued code enhancements

= 1.6.2 =
* Code improvements and menu renaming

= 1.6.1 =
* Code enhancements and White Label updates

= 1.6.0 =
* Code improvements and added Sub Pages functionality

= 1.5.9 =
* Code improvements and HTML format fixes

= 1.5.8 =
* Code improvements and HTML format fixes

= 1.5.7 =
* Code enhancements and bug fixes

= 1.5.6 =
* Code improvements and bug fixes

= 1.5.5 =
* General code improvements

= 1.5.4 =
* Code enhancements
* Fixed List Item components

= 1.5.3 =
* Code improvements
* Integrated Divi

= 1.5.2 =
* Code enhancements
* Fixed Elementor activation bug

= 1.5.1 =
* General code improvements

= 1.5.0 =
* Continued code enhancements

= 1.4.9 =
* General code improvements

= 1.4.8 =
* Added CSS for Search Atlas
* Code enhancements

= 1.4.7 =
* Added Permalink Structure Validator
* Enhanced Page Editor checks
* Option to choose Page Editor
* Code improvements and bug fixes

= 1.4.6 =
* Code enhancements and bug fixes

= 1.4.5 =
* Code improvements and bug fixes
* Removed deprecated features from codebase

= 1.4.4 =
* Code enhancements and bug fixes
* Added option to enable/disable features menu in General settings

= 1.4.3 =
* Changed post permalink approach to prevent conflicts
* Updated page template to default instead of blank
* Set page parent to main if page doesn't exist
* Fixed permalink function in getPagesList
* Resolved minor bugs and improved code

= 1.4.2 =
* Added new API endpoint `getPostByURL` to find posts by URL
* Updated README content and "Tested up to" attribute to latest version
* Updated `getPagesList` API to display all pages in JSON response
* Fixed bug in retrieving `post_id` in API codes
* Improved Pages management API for sub pages

= 1.4.1 =
* Added three new API endpoints for creating pages
* Renamed heartbeat endpoints and functions
* Updated heartbeat categories and user sync limits and responses
* Updated plugin name and description
* Added plugin banner for marketplace page
* Removed Sitemaps feature, functions, and routes
* Added option to enable/disable Schema on Posts and Pages
* Improved General Settings UI/UX
* Fixed bugs and enhanced code

= 1.4.0 =
* Feature: Basic Markdown support `[markdown] MARKDOWN CONTENT [/markdown]`
* Feature: Set a new Landing Page via API
* API code improvements and bug fixes

= 1.3.4 =
* Enhanced Error Logs viewer and messages
* Added new error logs API
* Fixed `createPost` API code bug

= 1.3.3 =
* Performance enhancements and bug fixes

= 1.3.2 =
* Fixed bugs related to post and page images

= 1.3.1 =
* Updated UI for HTML Accordion components

= 1.3.0 =
* Editor/APIs: Added HTML Accordion support via shortcode `[accordion]CONTENT[/accordion]`
* APIs: Enabled editing drafts or published posts and pages multiple times without duplication via permalink
* APIs: Allowed manual addition of schema/scripts/styles to posts and pages
* APIs: Improved `deleteItem` endpoint code to comply with REST standards
* APIs: Numerous bug fixes and code enhancements for better performance and stability

= 1.2.8 =
* Added new business type "Tree Services" to Business SEO page

= 1.2.7 =
* Added Error Logs GET API endpoint
* Enabled functionality to trigger on-demand payload requests
* Added heartbeat HTTP request error information to Error Logs
* Set a limit of one thousand records for categories and users

= 1.2.6 =
* Fixed issue displaying all fields in Optimal Settings

= 1.2.5 =
* Enabled selecting the author of a post/page randomly in Create/Update item APIs
* Added ALT text for hero images in Create/Update item API payloads
* Set specific post dates within the last two months in Create API
* Added validation for `post_date` in Create/Update item APIs
* Refactored Create/Update item API code

= 1.2.4 =
* Added feature and menu to enable/disable Open Graph, Facebook, and Twitter meta tags for all posts and pages
* Updated plugin version and README file

= 1.2.3 =
* Enabled returning revisions for posts or pages in the update endpoint
* Added or updated post tags in Create and Update endpoints
* Included tags list in heartbeat API payload

= 1.2.2 =
* Optimized Create and Update endpoints for media uploads
* Added redirection functionality in Create and Update endpoints
* Enabled/disabling comments in Create and Update APIs
* Fixed category updates in heartbeat API
* Resolved issue uploading previously unuploaded images to media in Create API

= 1.2.1 =
* Added hero image attribute `hero_image_url` in Create or Update post endpoint
* Refactored image upload code to use URLs in Create/Update endpoints
* Updated plugin README file

= 1.2.0 =
* Added post author in Create post endpoint
* Included users in heartbeat API with `users` attribute
* Assigned authors to attachments when uploading images to the media library
* Rebuilt post content tags based on HTML rules

= 1.1.9 =
* Enabled saving images from URLs to the WordPress media library
* Added functionality to save images from URLs in Create/Update endpoints
* Implemented checks for existing images from URLs in Update endpoint

= 1.1.8 =
* Corrected home URL storage in the 404 Monitor database
* Identified correct page URLs in the 404 Monitor for redirection
* Utilized correct URLs from the 404 Monitor for Redirection

= 1.1.7 =
* Sent post categories as a list to backend requests
* Enabled auto-generation of the plugin's authorization key
* Displayed a message when the Search Atlas API key is not saved

= 1.1.6 =
* Updated the title of General Settings
* Updated plugin screenshots

= 1.1.5 =
* Added/Replaced categories for posts with a key to append categories in update items
* Synchronized post categories in Create/Update item endpoints
* Refactored code to sync customer website configurations and post categories

= 1.1.4 =
* Fixed issue sending categories as JSON in heartbeat payload
* Removed special characters from category JSON
* Fixed heartbeat request interval settings

= 1.1.3 =
* Removed login fields for obtaining JWT token from General Settings
* Removed dashboard link from the plugin
* Set heartbeat frequency to every 5 minutes
* Configured heartbeat requests to trigger on saving General Settings

= 1.1.2 =
* Removed double quotes and forward slashes from JSON-LD Schema

= 1.1.1 =
* Fixed article name issue in JSON-LD Schema
* Added plugin icon to the plugin directory
* Added plugin screenshots to the plugin directory
* Included changelogs in the plugin's README file

= 1.1.0 =
* Added a button to manually force heartbeat sending to the server
* Displayed the last sync timestamp to monitor heartbeat status
* Added input field to save the Search Atlas API key in General Settings
* Included Search Atlas API key in the header of Heartbeat API
* Removed JWT token and Customer ID from Heartbeat Request

= 1.0.9 =
* Added `meta_description` and `meta_robots` to the payload
* Fixed issue updating categories consistently in the payload
* Fixed issue adding two different `meta_robots` values in the header
* Included blog categories in the Heartbeat payload

= 1.0.8 =
* Updated post/page permalinks during post updates via API payload
* Updated post categories during post updates via API payload

= 1.0.7 =
* Added categories during post creation
* Included Permalink URL during page creation
* Set default post type to Post and post status to Publish

= 1.0.6 =
* Added new sanitization for JSON-LD to echo in the header
* Removed third-party URLs from post data in the plugin

= 1.0.5 =
* Created new `deleteItem` API to delete posts
* Refactored JSON-LD schema code to include all posts and pages
* Added prepare method in WHERE clause fields of queries

= 1.0.4 =
* Added new sanitization for all POST and GET variables
* Refactored all plugin code

= 1.0.3 =
* Added sanitization for all missing POST/REQUEST variables
* Implemented escape methods for all internal print variables
* Refactored all select boxes to use select options
* Removed redundant code from the plugin

= 1.0.2 =
* Fixed issue excluding post IDs from sitemaps via API or General Settings
* Fixed issue sanitizing null values in common settings

= 1.0.1 =
* Fixed invalid token issue in Heartbeat API
* Fixed exception handling in LinkGraph login response

= 1.0.0 =
Initial release.