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, not in post meta. The import looks for 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. Because All in One SEO’s table structure has changed between versions, the import checks which of these columns exist on your site and reads only those.
Robots. When a post is set to use All in One SEO’s default robots settings, its own noindex and nofollow boxes are ignored and nothing is written, so the post inherits 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, #page_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. The preview is where you find them.
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, reshape the file into three columns, source,target,status, 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 follow offset 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 for a leftover
#. Fix the template or the 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.
- 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.