Skildring
AI-powered SEO for WordPress — built for Google rankings and the new era of AI search.
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.
OTTO — AI SEO on autopilot
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.
Get found in AI search (GEO)
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.
One-click publishing from Search Atlas
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.
Bulk AI optimization
- AI bulk meta updates — rewrite titles and descriptions across your whole site in one pass
- AI alt-text generation & auditing — find missing or weak alt text and fix it library-wide
- Bulk status and content operations to manage many posts at once
A complete on-page SEO toolkit
- 13 schema / structured-data types (Article, FAQ, Product, Recipe, Event, LocalBusiness, HowTo, VideoObject, and more) with JSON-LD output
- XML sitemaps, including dedicated news and video sitemaps
- Virtual robots.txt editor — manage rules with no file editing
- 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
- 404 monitoring with hit tracking and smart redirect suggestions
- Breadcrumb schema, canonical URLs, and hreflang (multi-language) support
- Open Graph and Twitter Card meta with automatic de-duplication
Instant indexing
Submit new and updated URLs directly to Google (Instant Indexing API) and Bing (IndexNow) for faster crawling — one at a time or in bulk.
MCP server — control WordPress with AI agents
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.
Media & performance
- Convert images to WebP/AVIF, smart lazy-loading, and automatic width/height attributes to reduce layout shift (CLS)
- Automatic cache purging for popular caching plugins (WP Rocket, LiteSpeed Cache, W3 Total Cache, WP Super Cache, WP Fastest Cache, and more)
- Edge/CDN cache purging for Cloudflare, Fastly, Akamai, and Sucuri
Works with your stack
- Page builders: Gutenberg, Elementor, Divi, Oxygen, and Beaver Builder
- WooCommerce breadcrumbs and shop pages
- Coexistence and migration with Yoast SEO, Rank Math, and All in One SEO
- Google Search Console and GA4 integration
- Agency-ready white-label settings to show or hide features per client
Search Atlas account & external service
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/).
Usage analytics (optional, off by default)
The plugin can send limited usage analytics to Search Atlas so we can see which features are used and find problems. It is off until a site administrator clicks «Allow» in the admin notice, and it can be turned off anytime in Settings. When on, events are sent to a PostHog analytics instance hosted by Search Atlas (posthog.internal.searchatlas.com). The data includes your site URL, plugin version, WordPress and PHP versions, the user’s role, and feature usage, linked to an anonymous hashed ID. We do not collect passwords, API keys, post content, names, or email addresses. This data is covered by the Search Atlas Privacy Policy (https://searchatlas.com/privacy-policy/).
Skjermbilete
Installasjon
- In your WordPress admin, go to Plugins, then Add New, and search for Search Atlas SEO. Click Install Now, then Activate.
- You need a Search Atlas account. If you do not have one, start a free trial at searchatlas.com.
- In Search Atlas, add your site as a project. Then, in WordPress, open the Search Atlas menu and click Connect to Search Atlas. The plugin will automatically complete the secure SSO connection.
- Switch OTTO on.
Installing by hand: download the ZIP, upload the metasync folder to /wp-content/plugins/, then activate it from the Plugins menu. After that, continue from step 2.
Vanlege spm.
-
What does the Search Atlas SEO plugin do?
-
It connects your WordPress site to Search Atlas so OTTO, our AI optimization engine, can work on your pages. It applies titles, descriptions, alt text, headings, internal links and schema, and it lets you publish content straight from Search Atlas into WordPress in one click. You need a Search Atlas account to use it.
-
Do I need a paid Search Atlas account to use this plugin?
-
Yes. The plugin connects to your Search Atlas account, and OTTO’s AI-driven SEO features are available on paid Search Atlas plans.
-
Where do I get my API key?
-
You don’t need to enter one manually. Use the «Connect to Search Atlas» option in the plugin settings, and it will generate your API key and connect your account automatically.
-
Does it work alongside Yoast SEO or Rank Math?
-
Yes. The plugin detects Yoast SEO, Rank Math, and All in One SEO, avoids duplicate meta tags and schema conflicts, and includes an «Import from Other SEO Plugins» feature that imports meta titles, descriptions, canonical tags, schema, and redirects from those plugins directly into Search Atlas SEO.
-
How do I turn OTTO off for one page?
-
You can exclude individual URLs from OTTO processing in the plugin’s OTTO settings, so those pages render as they normally would without OTTO’s changes.
-
Can I manage 404 errors and redirects with this plugin?
-
Yes, along with a lot more – the plugin also includes media optimization, code snippets, code minification, cache busting, and much more.
Omtalar
Bidragsytarar og utviklarar
“Search Atlas SEO – OTTO AI SEO Automation for WordPress” is open source software. The following people have contributed to this plugin.
Contributors“Search Atlas SEO – OTTO AI SEO Automation for WordPress” er omsett til 1 språk. Takk til omsetjarane for bidraga deira.
Omset “Search Atlas SEO – OTTO AI SEO Automation for WordPress” til ditt eige språk.
Interested in development?
Les kjeldekoden, sjekk SVN-lageret eller abonner på utviklingsloggen med RSS.
Endringslogg
2.7.3
- New Feature: The Report Issue page now also accepts questions, feedback and feature requests with structured fields, image attachments, per-user rate limiting and clear fallback messaging when remote reporting is unavailable; eligible administrators see a one-time, dismissible feedback invitation after updating
- New Feature: Approved product analytics events now cover more admin surfaces (SEO Health, SEO sidebar, instant indexing, custom pages, redirects, schema and settings saves), still sent only after the site owner consents and fully suppressed on opt-out
- Fix: Publishing through the platform now reports truthful results — a post saved as published actually publishes and its live URL serves correctly, posts and pages owned by other plugins can no longer be modified through the sync API, the cache is purged after publish, and missing, unauthorized or failed operations return proper error codes instead of false success
- Fix: Sitemaps are now rebuilt on the next request instead of inline during post and product saves, so large catalogs no longer stall the editor; the previous sitemap keeps serving during a rebuild, rebuilds that fail pause retries for five minutes, and a first-ever build under load returns a retryable response instead of an error page
- Fix: Open Graph and Twitter tags can no longer vanish or duplicate — a single precedence owner now decides each tag across OTTO, third-party SEO plugins, the Open Graph metabox and the sidebar fields, and titles are always filled from the effective page title
- Fix: Duplicate meta description tags on sites running the Hello Elementor theme are now emitted exactly once
- Fix: The SEO sidebar no longer fatals in the block editor on custom post types that do not support custom fields
- Fix: Sitemap entries no longer show an invalid year for posts with zero modified dates, and video sitemap entries survive provider thumbnail outages (Vimeo entries are preserved with a fallback image) with accurate skip notices
- Fix: Redirects whose stored sources contain percent-encoded characters now fire when the decoded URL is requested, in both encoded and decoded form
- Fix: Settings values containing percent signs no longer break settings screens or save incorrectly
- Fix: Saving robots.txt without changes is now a true no-op — no redundant backups are created, line-ending differences are ignored, and reporting stays consistent
- Fix: White-label branding no longer leaks the real product or OTTO names into public page source, the SEO Suite box, Open Graph metabox, Custom Pages, Setup Wizard, Compatibility notes, Settings descriptions, Site Health labels or the Updates screen icon
- Fix: Duplicating a post with a duplicate-page plugin no longer copies stale OTTO and social metadata onto the new copy
- Fix: Content utility fixes across breadcrumbs, link suggestions, HTML-to-Markdown conversion, the external SEO importer and the MCP tools — including authorization checks before cached link suggestions, correct import of Rank Math snippet preview directives, preserved robots directives on import, and truthful success reporting from the bulk and converter tools
- Improvement: SEO Health scans are cached between pages, so large filtered scans stay fast, and edited posts are picked up on the next scan
- Improvement: The SEO Health table shows a working Schema column with the Open Graph image and Alt Text columns removed, and clearer length filters
- Improvement: The Most Frequent 404 Errors chart labels are fixed-width and aligned, with full URLs on hover
- Improvement: Removed verified dead code and an internal QA hostname reference from the shipped source
2.7.2
- New Feature: Opt-in product analytics for the plugin admin, sent only after the site owner gives consent; existing installs are asked once through a dismissible notice that can be snoozed
- New Feature: The Classic Editor SEO box now includes the Breadcrumb Title, Language Alternates and Primary Category fields
- New Feature: OTTO webhook deliveries are now recorded in an audit log that is kept for seven days
- Fix: OTTO’s canonical URL is now kept on every render path instead of falling back to the permalink when the full OTTO render is skipped
- Fix: OTTO no longer saves the og:description as the page’s meta description
- Fix: OTTO deployments are no longer lost when a cache warm-up fails, and stored OTTO titles, descriptions and keywords now refresh when the OTTO cache expires, so a missed OTTO notification no longer leaves stale SEO values behind
- Fix: Fresh OTTO titles and descriptions now take priority over older persisted copies, and focus keywords follow the same priority order with duplicate meta keywords tags removed
- Fix: Persisted OTTO keywords are now stored separately and no longer overwrite the customer’s own keyword; the global priority setting is now named SEO Meta Priority
- Fix: OTTO is now skipped on paginated archive pages only on Divi sites instead of on every site
- Fix: Invalid values can no longer be stored as the OTTO Pixel UUID, and the UUID field is now read-only
- Fix: The OTTO crawl data option no longer grows without limit, and the old stored data is cleaned up on upgrade
- Fix: External schema import now reports accurate eligibility and results for Yoast, Rank Math and AIOSEO, and schema fields are no longer lost when a schema type is saved before its fields finish loading
- Fix: Content publishing no longer takes over and unpublishes an existing post with the same title, and updates now return the correct permalink
- Fix: White-label branding is now preserved when the plugin settings are reset, and invalid branding can no longer be saved, with each field showing its own error
- Fix: The old Instant Indexing admin URL now redirects to Indexation Control instead of showing an access error
- Fix: Indexation Controls now save each checkbox correctly instead of switching other archive rules on
- Fix: Maintenance and diagnostics tasks can no longer be triggered by anonymous visitors, and access checks, error logging, sitemap size reporting and the blank page template have been hardened
- Fix: Redirects that have never been used now show «Never» instead of a zero date, and the redirect form no longer saves empty rows
- Fix: MCP category and tag creation now returns the existing term instead of failing when it already exists
- Fix: Resolved the remaining errors from WordPress.org Plugin Check scans
- Improvement: Media, REST API and 404 Monitor queries are optimized for large sites, and the 404 log is now capped
- Improvement: Redirects that share the same source path now show a «Shadowed» badge and a warning on save
- Improvement: The 404 Monitor now has clearer summary labels, short and distinct chart labels (including for non-ASCII URLs), and a cleaner toolbar and pagination
- Improvement: Compatibility toggles have moved to the Compatibility page, the unused HTTP option was removed from the SiteGround setting, and WP Rocket is now detected reliably
- Improvement: The robots.txt «Never block your entire site» warning now appears at the top of the editor sidebar, and the Excluded URLs Recheck button and match type badges are now consistently sized
- Improvement: The Breadcrumb Title Override is now hidden when breadcrumbs are disabled
- Improvement: Plugin issue reports now include white-label context, and white-label settings are no longer exposed through the MCP plugin settings tool
- Improvement: Removed the orphaned standalone Instant Indexing save path and obsolete temporary admin access code
2.7.1
- Fix: The Changes Log admin page no longer shows misaligned headings or inconsistent toolbar control sizing
- Fix: A «%» character in a saved settings value no longer fatals the page, and the plugin now survives partially-completed upgrades
- Fix: Direct-access protection was added to PHP files that were missing it
- Fix: Discouraged PHP functions were replaced with WordPress-native APIs across the codebase, confirmed dead code was removed, and the remaining intentional native calls are now documented
- Fix: Audited and resolved SQL query safety findings across the plugin
- Fix: Audited and resolved input sanitization and output escaping gaps across admin and public-facing code, including AJAX and settings save paths
- Fix: Added missing nonce and capability checks across admin endpoints, AJAX handlers, and settings page actions
- Fix: Redirects are now routed through safe WordPress redirect functions, data-directory writes are centralized, and legacy redirect rows with un-sanitized source URLs are healed automatically
- Fix: Removed stray production debug logging and correctly scoped error handlers
- Fix: The plugin FAQ now uses American spelling («optimization»), matching the rest of the listing
- Fix: Audited direct database queries, caching, and schema changes for WordPress.org compliance
- Fix: Resolved internationalization findings so plugin text is properly translatable
- Fix: Resolved the remaining zero-risk and newly-reported findings from ongoing WordPress.org Plugin Check scans
- Improvement: Compatibility-checker plugin icons are now bundled locally instead of loaded from an external host
2.7.0
- New Feature: Headless WordPress support — the WordPress backend and a decoupled public frontend now stay in sync through SSO and heartbeat, with SEO data exposed over WPGraphQL, frontend-aware canonical and og:url rehosting, taxonomy canonical overrides, bulk payload resolution, and a dedicated Headless Mode section in Advanced settings
- New Feature: Safe OTTO Persistence restore — original Yoast, Rank Math and AIOSEO values are backed up before OTTO writes to them, nothing is written without explicit consent, and a restore action rolls every value back to its original state
- New Feature: Language Alternates (hreflang) can now be switched on or off per post and page from the editor settings
- New Feature: A global setting now controls whether OTTO or custom SEO values take priority across the site
- Fix: Core infrastructure sweep — resolved deactivation data loss, wp-config fatals and media metadata corruption across the plugin
- Fix: SEO Health now credits titles and descriptions that OTTO has already applied instead of reporting them as missing
- Fix: Classic Editor post saves no longer discard persisted OTTO schema
- Fix: OTTO titles and descriptions containing curly quotes or dashes now save correctly instead of failing silently
- Fix: OTTO renders now keep third-party og:title and twitter:title instead of stripping them
- Fix: Sitemaps no longer include URLs that redirect elsewhere, whether the redirect comes from MetaSync, Rank Math or Yoast
- Fix: The Visual HTML Editor now refuses saves that cannot preserve the stored document, protecting landing pages and full-document templates
- Fix: Redirect destination and loop guards now apply on every write path, closing the gaps that allowed self-referencing and looping redirects
- Fix: Language Alternates no longer emit duplicate tags on WPML sites, always include a self-reference, and validate their entries
- Fix: The Instant Indexing service account file can now be saved, with clear upload confirmation and the ability to remove or reselect it
- Fix: Plugin updates no longer fatal on a stale admin class during a White Label import
- Improvement: SEO Health missing title and description filters are now optimized for large catalogues
- Improvement: SEO Health exclusion queries, counting and CSV export are optimized for sites with heavy post metadata
- Improvement: Frontend assets are now loaded only where they are needed, and duplicate WebPage schema nodes are removed
- Improvement: The third-party SEO plugin sync screen has been redesigned and now respects white-label branding
- Improvement: The duplicate Instant Indexing admin page has been removed and its functionality consolidated into Indexation Control
- Improvement: The duplicate Primary Category control has been removed from the MetaSync editor sidebar
- Improvement: The redirection list no longer repeats the match type in the From column
- Improvement: The Changes Log now distinguishes OTTO cleanup events from new SEO deployments, so log entries reflect what actually happened
2.6.26
- Fix: Yoast schema conflict handling no longer emits invalid JSON-LD on OTTO-covered pages
- Fix: Third-party SEO sync now reports success only when SEO data was actually written, preventing stale titles from being treated as current
- Fix: The Gutenberg SEO sidebar no longer uses OTTO suggestions as field values, so pages are not silently frozen out of OTTO
- Improvement: Breadcrumb settings are now managed from one dedicated settings page instead of duplicate controls
- Fix: News and video sitemaps now use consistent source ordering and regenerate news entries within the required freshness window
- Improvement: The Visual HTML Editor now bundles its own runtime, so it loads correctly for raw-HTML pages without relying on a CDN
- Fix: Redirection and 404 list filters no longer trigger a selected bulk action accidentally
- Fix: Open Graph opt-out now suppresses all matching MetaSync social output paths
- Fix: The Gutenberg SEO sidebar no longer shows a duplicate URL Slug field
- Fix: Social titles and descriptions no longer persist pre-filled post defaults, so renamed posts and edited excerpts update their social metadata correctly
- Security: White Label JSON imports no longer lock out the settings password recovery flow, so Forgot Password keeps working when a new whitelabel-settings.json is deployed
Older release notes are available in the CHANGELOG.md file included with the plugin.
