Install WP Visibility beside SEOPress, open WP Visibility → Settings and scroll to the Import section, choose SEOPress under Import from, click Preview changes, read it, then click Import now. SEOPress’s rows are read and never changed. One thing is different from the Yoast and Rank Math imports: term SEO does not come across, so count your categories and tags with custom titles before you begin.
Before you start
- Take a database backup. The import cannot reverse itself.
- List the terms you will re-enter. SEOPress keeps category and tag SEO as term meta, and the import does not read it. Open each category or tag with a custom title or description and note the values, or plan to set them on the term edit screen afterward.
- Export redirects first if you use SEOPress PRO’s redirections. The SEO import does not move them.
- Both plugins print head tags while both are active, so import and deactivate in one sitting or work on staging. SEOPress does not need to be active for the import to run.
What comes across
| SEOPress field | WP Visibility field |
|---|---|
_seopress_titles_title |
Search title |
_seopress_titles_desc |
Search description |
_seopress_robots_canonical |
Canonical URL |
_seopress_social_fb_title |
Social title |
_seopress_social_fb_desc |
Social description |
_seopress_social_fb_img |
Social image, when the URL is in your media library |
_seopress_social_twitter_title |
X title |
_seopress_social_twitter_desc |
X description |
_seopress_robots_index |
Search engine indexing |
_seopress_robots_follow |
Link following |
Robots. SEOPress stores its two checkboxes the other way round from their names: yes on the index field means the owner ticked noindex, and yes on the follow field means nofollow. The import reads them that way. A ticked box becomes Noindex or Nofollow; an unticked one writes nothing, and the post keeps inheriting the site policy. There is no explicit index override from this source.
Social image. SEOPress stores the Facebook image as a URL. The import looks that URL up in your media library and stores the attachment it finds. An external URL, or one that does not resolve to a library item, is not imported.
Settings. Three: the title separator (stored as the character), the homepage title and the homepage meta description. The templates are translated from the double-percent syntax: %%sitetitle%% and %%sitename%% become {site}, %%tagline%% and %%sitedesc%% become {tagline}, %%post_title%% and %%title%% become {title}, %%sep%% becomes {sep}, %%post_excerpt%% and %%excerpt%% become {excerpt}, %%currentyear%% becomes {currentyear}, and %%cf_KEY%% becomes {custom_field:KEY}. Variables with no equivalent are removed rather than left in a live title. Per-post titles and descriptions go through the same translation.
What stays behind
- Term SEO. Category, tag and custom taxonomy titles, descriptions, canonicals and noindex. Re-enter them on each term’s edit screen, where WP Visibility adds Search title, Search description and Search engine indexing fields.
- Per post type and archive templates, social defaults, schema settings, verification codes, sitemap settings and global robots defaults.
- Content analysis, the SEOPress Insights data, Google Analytics settings, and robots directives beyond noindex and nofollow.
- Redirects. SEOPress PRO’s redirections are not part of this import, and its export is not one of the layouts the redirect import recognizes. Reshape the export into three columns,
source,target,status, and import it on the Redirects page: Redirect a Changed URL.
Which posts are found
The import looks for posts with a SEOPress title stored. A post with only a description, canonical or robots choice, and no title, is not found and keeps WP Visibility’s defaults. Check one or two such posts before deactivating SEOPress, and set the value by hand or with wp visibility set <id> --description="...".
Preview, then import
From the settings screen. WP Visibility → Settings, Import section, Import from: SEOPress, Preview changes. The preview shows how many posts would change and the first ten before and after; nothing is written until Import now.
From the command line.
wp visibility import seopress --dry-run --user=admin
wp visibility import seopress --user=admin
Over REST, POST /wp-json/wpvis/v1/import/run with source: "seopress" defaults to dry_run: true; send dry_run: false and follow offset until remaining is 0. Needs manage_options; not routed through the review queue.
The live run processes posts in batches of 200 and applies the three settings on the first batch. Posts whose values already match are skipped. Running it again after editing in WP Visibility puts SEOPress’s values back.
After the import
- Check ten URLs by viewing source: homepage, posts with custom titles, a noindexed page, a page with a custom canonical.
- Re-enter the term SEO from your list, one category or tag at a time.
- Set the templates and defaults: Set Title and Description Templates.
- Deactivate SEOPress. Its data stays in the database on deactivation.
- Resubmit the sitemap at
/sitemap.xml: Submit Your Sitemap.
Field names checked against the WP Visibility importer on September 22, 2026.