Install WP Visibility beside All in One SEO, open WP Visibility → Settings, scroll to the Import section, choose All in One SEO under Import from, click Preview changes, read it, then click Import now. All in One SEO’s data is read and never changed. This import covers less than the others, so read what stays behind before you begin.
Before you start
- Take a database backup. The import cannot reverse itself.
- Screenshot All in One SEO’s settings. None of its sitewide settings are imported, not even the separator or homepage title.
- Note your social images and category SEO. Neither comes across.
- All in One SEO keeps per-post SEO in its own database table,
aioseo_posts, and copies a few fields to post meta for localization (its source code, checked September 27, 2026). The import reads only that table; the plugin does not need to be active. - Both plugins print head tags while both are active, so import and deactivate in one sitting, or work on staging.
What comes across
| All in One SEO column | WP Visibility field |
|---|---|
title |
Search title |
description |
Search description |
canonical_url |
Canonical URL |
og_title |
Social title |
og_description |
Social description |
twitter_title |
X title |
twitter_description |
X description |
robots_noindex |
Search engine indexing |
robots_nofollow |
Link following |
Empty values are skipped. The import checks which of these columns exist in your copy of the table and reads only those.
Robots. When a post’s Robots Settings toggle is left on Use Default Settings in All in One SEO (All in One SEO docs, checked September 27, 2026), its own noindex and nofollow boxes are ignored and nothing is written to those two fields, so a post still on Default in WP Visibility follows WP Visibility’s site policy. Otherwise a ticked noindex becomes Noindex and a ticked nofollow becomes Nofollow. There is no explicit index override from this source.
Tags. All in One SEO writes titles with tags such as #post_title. These are translated:
| All in One SEO | WP Visibility |
|---|---|
#site_title |
{site} |
#tagline |
{tagline} |
#post_title |
{title} |
#post_excerpt |
{excerpt} |
#separator_sa |
{sep} |
#current_year |
{currentyear} |
Any other tag is left in place as literal text, because a # also appears in ordinary writing and removing it could cut real words. That means an untranslated tag, such as #author_name, would show in a live title. One tag is only half translated: #post_excerpt_only becomes {excerpt}_only, which leaves _only in the live text. The preview sample shows the titles and descriptions of the first ten changed posts, so start there, then check live pages.
What stays behind
- Every sitewide setting: separator, homepage title and description, content type templates, social defaults, schema, verification codes, sitemaps, robots defaults.
- Social images, Open Graph and X alike.
- Category and tag SEO.
- Schema set per post in All in One SEO, and redirects from its Redirection Manager.
Set the sitewide values in WP Visibility after the import: Set Title and Description Templates. For redirect rules, export them from All in One SEO’s Redirection Manager, which offers JSON, .htaccess and NGINX files rather than CSV (All in One SEO docs, checked September 27, 2026). Reshape the export into a CSV with three columns, source,target,status, turn on the Redirects module, and import it on the Redirects page: Redirect a Changed URL.
Preview, then import
From the settings screen: Import from, Preview changes, then Import now. Read the sample for leftover # tags.
From the command line:
wp visibility import aioseo --dry-run --user=admin
wp visibility import aioseo --user=admin
Over REST, POST /wp-json/wpvis/v1/import/run with source: "aioseo" defaults to dry_run: true; send dry_run: false and repeat the call with offset raised by 200 each time until remaining is 0. It needs manage_options and does not pass through the review queue.
The live run works in batches of 200 rows of All in One SEO’s table. Rows that point at a deleted post are skipped. Posts whose values already match are skipped too, and a second run after you have edited titles in WP Visibility puts the old values back.
After the import
- Search the preview and a few live titles and descriptions for a leftover
#or_only. Fix the field on that post. - Set the separator, homepage, templates and default social image in WP Visibility.
- Add social images to your most shared posts.
- View the source of ten URLs you know, then deactivate All in One SEO. Its data stays in the database. Leave its Uninstall AIOSEO setting off, because with it on, deleting the plugin deletes the data (All in One SEO docs, checked September 27, 2026).
- Resubmit the sitemap at
/sitemap.xml: Submit Your Sitemap.
Field names checked against the WP Visibility importer in 2.10.3 on September 27, 2026.