Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate SEO Data #548

Closed
sybrew opened this issue Aug 17, 2020 · 11 comments
Closed

Migrate SEO Data #548

sybrew opened this issue Aug 17, 2020 · 11 comments
Assignees
Labels
[Impact] Growth Changes helping the plugin grow, not necessarily helping the current users. [Type] Feature Something new we need to write from the ground up.

Comments

@sybrew
Copy link
Owner

sybrew commented Aug 17, 2020

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 sybrew added [Type] Feature Something new we need to write from the ground up. [Impact] Growth Changes helping the plugin grow, not necessarily helping the current users. labels Aug 17, 2020
@sybrew sybrew added this to the 4.2.0 milestone Aug 17, 2020
@sybrew sybrew self-assigned this Aug 17, 2020
@iasgharalikhan
Copy link

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

@black-eye
Copy link

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.

@jdevalk
Copy link

jdevalk commented Feb 9, 2021

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.

@sybrew
Copy link
Owner Author

sybrew commented Feb 9, 2021

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!

@jdevalk
Copy link

jdevalk commented Feb 9, 2021

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

@jmzolezzi
Copy link

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!

@guyinpv
Copy link

guyinpv commented Oct 22, 2021

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.

@sybrew sybrew modified the milestones: 4.2.0, 4.3.0 Nov 4, 2021
@bonakor
Copy link

bonakor commented Dec 4, 2021

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.

@u4ushare
Copy link

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

sybrew added a commit to sybrew/The-SEO-Framework-Extension-Manager that referenced this issue Jun 2, 2022
sybrew added a commit to sybrew/The-SEO-Framework-Extension-Manager that referenced this issue Jul 10, 2022
@sybrew
Copy link
Owner Author

sybrew commented Sep 24, 2022

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
Copy link
Owner Author

sybrew commented Oct 4, 2022

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

@sybrew sybrew closed this as completed Oct 4, 2022
@sybrew sybrew removed this from the 4.3.0 milestone Oct 4, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Impact] Growth Changes helping the plugin grow, not necessarily helping the current users. [Type] Feature Something new we need to write from the ground up.
Projects
None yet
Development

No branches or pull requests

8 participants