I don’t really know what data you need to move from one SEO Plugin to another after you reach the conclusion that an SEO Plugin is a better fit for your site.
In my case, I really care about meta titles and meta descriptions but mostly meta descriptions since I tend to use the page or post title as a meta title.
In this post, I am gonna show you how to migrate data from one SEO plugin to another once you find a roadblock in the process.
Table of Contents
Free Import Tools
Sometimes plugins make the migration of that data easier by providing an import tool.
The import tool is not universal and it doesn’t list all the SEO Plugins available on WordPress.org
These are some examples of what some SEO Plugins do in terms of importing data.
- Slim SEO imports data from Yoast SEO, All in One SEO, The SEO Framework, Rank Math and SEOPress
- Yoast SEO imports data from RankMath, and SmartCrawl.
- RankMath imports data from Yoast, SEOPress, and All In One SEO.
- SEOPress imports data from all major SEO Plugins
SEO Plugins usually care about importing data and they rarely give a crap about what you do with your data once you leave them.
Sometimes when a plugin doesn’t import data from your SEO Plugin, you usually do this:
- Install an SEO plugin that you are not planning to use.
- Once the data is imported to that plugin
- Go to the plugin that you really wanna use and import the data from the plugin you are not planning to use and that was installed for the whole purpose of easing the migration process
That process usually adds hundreds or thousands of rows to the database.
I followed that process for moving in and out of SEO Plugins such as Smart Crawl and Slim SEO.
SEO Data and Custom Fields
In most cases, all the data from an SEO Plugin is stored in the post-meta table.
SEO Plugins create custom fields to store the meta titles and meta descriptions and establish mechanisms to retrieve that data when needed.
The SEOPress Example
If database tables, rows, and custom fields sound like alien technology to you, this might help you understand them.
All the content you create is stored in a database, WordPress creates 13 tables by default, and plugins can create additional tables if they want or need to.
Those tables store information in rows
SEO Plugins usually store meta titles and meta descriptions in a table called “postmeta“.
This is an example of a row created by SEOPress
- Meta ID: Each time you add data to a post or page via SEO Plugins, that data is assigned a number. If that was the last row a plugin created, the next time a plugin needs to store a value, it will be assigned “250774” as an ID.
- Post ID: Every post or page you publish has an ID, you can see the ID in the URL when you are editing your post, page, custom post type, etc.
- Meta Key contains the name of the custom field created by the plugin. SEOPress calls that custom field at the end of the post “_seopress_titles_desc”.
- Meta Value is the data you want to attach to a post, in this case, the meta description you added via the page or post editor.
Every time you add data to a post, page, category, or tag via an SEO Plugin, a new row is born.
SEO Plugins Meta Keys
So we know now that SEOPress calls the meta key “_seopress_titles_desc”.
- Rank Math calls the meta key: “rank_math_description“
- Yoast calls the meta key: “_yoast_wpseo_metadesc”
SEO Plugins call the meta key something memorable and that is not likely to be used by new SEO Plugins.
The trick for Migrating SEO Plugins Data
Now that you know how SEO Plugins work, you can do this if you want to in these three scenarios.
- There is no way to move the data from one plugin to another.
- You want to move an SEO Plugin data to custom fields you created or vice-versa.
- You don’t want to use the SEO Plugins import and export tool.
In basic terms, you just have to replace the value of the meta_key row created by the SEO Plugin that you don’t want to use and replace it with the value of the meta_key that you want to use from now on.
This is easier said than done, I don’t see myself changing that value of hundreds of rows.
Well you don’t have, the better search and replace plugin can help you do that in less than two minutes
- Install Better Search Replace by Delicious Brains
- Search for the meta_key value by the site’s current SEO Plugin.
- Add the meta_key value of the new SEO Plugin or custom field you created.
- Choose the postmeta table.
- Run as Dry Run to see how many changes the tool would make.
I got this message:
” DRY RUN: 1 table was searched, 152 cells were found that need to be updated, and 0 changes were made.
The results make a lot of sense because the site has around 160 posts, and I am sure I didn’t write a meta description for some of them.
Finally, go to your database and check the presence of your new meta_key.
Final Thoughts
I figured out how to do this myself after feeling frustrated with the lack of free plugins to migrate this kind of data.
Unfortunately, all plugins that migrate custom fields are charging $50, $80, and even $150 for doing what is explained here.
I followed these same steps to move data from Rank Math to custom fields I created on my quests to reduce the number of plugins I use.
I don’t expect the average WordPress user to do this, if you are not careful, you can cause more issues that you are trying to fix.
The process is not overly complex. If you want to attempt this:
- Make sure you have access to the database to check the meta_key values.
- Don’t try to do this if you don’t know how to restore a site backup. Cloudways make backing up and restoring a stress-free task.
- Grab a copy of your site and migrate it to a local environment like Local by Flywheel
- Document the steps you followed.
- Make sure the site works and that you got the expected results.
- Do this with your live site if you truly believe you can do it.