the-seo-framework icon indicating copy to clipboard operation
the-seo-framework copied to clipboard

Migrate SEO Data

Open sybrew opened this issue 4 years ago • 9 comments

Currently, we rely on SEO Data Transporter to handle migrating SEO data.

We need to move away from that and integrate a transporter in The SEO Framework. Here's why:

  1. SEO Data Transporter has a bug we reported and fixed, but this seems to be backlogged.
  2. SEO Data Transporter doesn't support migrating from Rank Math.
  3. We want to change how our metadata is registered. We can't rely on third parties accommodating changes in a timely manner.
  4. Joost was added as an author of that plugin. Cooperating with the competition doesn't always sit well with me.
  5. One is never served so well as by oneself.

We do not want to add another menu to the WordPress interface to support this one-time thing. Instead, I want to do it in this manner:

  1. On plugin activation, perform a simple test for migratable data. When this is found, add a "Migrate now" persistent notification. Users can navigate to this page via /wp-admin/admin.php?page=theseoframework-migrate
  2. (Maybe) add a link to the migration tool within the "plugin links".

We should considermust also convert title and description syntaxes while we're at it. See #420.

sybrew avatar Aug 17 '20 06:08 sybrew

Looking forward to this being implemented with TSF, had issues migrating data and especially if the site big then the transporter gets stuck.

iasgharalikhan avatar Sep 16 '20 13:09 iasgharalikhan

Definitely a good move. I've just had to use SEOPress for replacing the Yoast on an old site just because the import to TSF didn't work. I still have several old sites with Yoast which I'm willing to remove and smooth transition would be a big timesaver.

black-eye avatar Feb 04 '21 22:02 black-eye

Joost was added as an author of that plugin. I do not believe that my competition has our users' interest at heart.

That's... going far @sybrew. I was added because I did pull requests and fixed the plugin when it was broken. Because I believe people should be able to switch.

jdevalk avatar Feb 09 '21 11:02 jdevalk

Hi @jdevalk! My Hanlon's Razor has become quite dull after Rank Math entered the scene. I did not mean to attribute this to you personally, but as a general statement about competing in FOSS I've experienced lately — it's becoming rather frustrating.

I'll adjust the wording, sorry about that!

sybrew avatar Feb 09 '21 18:02 sybrew

@sybrew RankMath copied most of their code from us, so I kinda know what you feel.

jdevalk avatar Feb 09 '21 18:02 jdevalk

Even the migration steps from Rank Math to The SEO framework are a bit painful, we did this on several sites already, including ours, and WordPress feels fast again, a huge drop on MySQL queries and server usage.

Kudos on your incredibly lightweight plugin!

jmzolezzi avatar Sep 18 '21 15:09 jmzolezzi

I would like to migrate about 40 sites off Yoast to the Framework. I'm not feeling the most secure using that SEO migrate plugin which is now 2 years outdated.

guyinpv avatar Oct 22 '21 21:10 guyinpv

Hi. One thing I'm not sure the plugin handles is moving social optimization data. This would be a really nice benefit. Because right now, not being able to migrate this data stops me from migrating.

bonakor avatar Dec 04 '21 15:12 bonakor

Hope this feature comes out soon. Fed up with the bugs of RankMath.

u4ushare avatar May 15 '22 20:05 u4ushare

Transport

I will deliver this feature via a new free extension for Extension Manager: Transport.

Support for Yoost SEO and Rank Math is coming in the extension's first "beta" release. Support for other SEO plugins will follow soon™.

It will transform titles and descriptions

Transport will include the transformation of %%title%%, %description%, and #other syntax, akin to how other SEO plugins do it. For example, it will transform %%title%% to the actual title of the page. This process cannot be reversed (unless you have a backup).

As I developed this feature, I discovered about 30 bugs in the other software, all of which I fixed via a cleanroom redesign here. So, the transformation will work more accurately than the plugin whence you came. Here's a list of supported Yoost SEO transformation syntax, and an addendum for Rank Math's (yes, it's only 1 SLOC for they stole Yoost SEO's code).

Not everything will be transformed. Some plugin-specific syntax (WooCommerce, ACF) still needs to be developed, and some syntax was impossible to transform accurately without actually visiting the page. For example, This is %%page%% of %%pagetotal%% would cause problems when transformed (we cannot predict %%page%%). These issues could be addressed alongside the release of another planned extension, see #140.

To help you find these untransformed titles and descriptions, The SEO Framework v4.0.5 already brought a feature that detects Yoost SEO's syntax. Using that, the SEO Bar warns you about what isn't (entirely) transformed. With what I learned creating Transport, I'll expand that syntax detection in the next major update of TSF, with Rank Math support forthcoming.

All this I will explain succinctly on the (upcoming) extension page.

Marked as beta

The Transport extension is marked as a beta because I'm not confident enough to say it'll work flawlessly 100% of the time... yet. And since we're working with live website data, I think the "beta" marker will cause more users to make a precautionary/obligatory backup.

Pains of development

Thus far, this was one of the most challenging extensions to develop because I set the ludicrous requirement of adding a real-time logger, and since many shared hosting platforms don't support SOCKETs, I had to reinvent the wheel. For mostly a gimmick, 300+ hours spent developing is excessive [1] [2]. Still, if the transportation fails, you'll instantly know which post or term caused an issue.

I also tried to anticipate the many esoteric methods of how other SEO plugins handle data, but even accounting for the absurd, I still had to write bespoke workarounds.

The result

image

Here you can inspect the code.

Logo

I spent another three days making this most critical asset: data points (little blocks) coming in from all sides, going into TSF (plus), after which you rank up (arrow). The arrow also signifies movement, ergo transportation. Brilliant.

image

(Logo code)

sybrew avatar Sep 24 '22 03:09 sybrew

Closing as completed. Transport is now available for free as part of Extension Manager v2.6.0.

sybrew avatar Oct 04 '22 18:10 sybrew