Even though I migrated back to WordPress months ago, I’m still in a constant cycle of improving my content. I tend to focus my efforts around my most trafficked content. Here and there I chip away at certain tasks that affect most if not all posts.
One task is making sure the Yoast SEO plugin is happy by ensuring every single post has a keyphrase set.
After changes to the template for my VPS Showdown posts, I decided to go through and add keyphrases on them. It’s an easy task as most of the posts use the same exact keyphrase. They vary based on which providers I have included in the post.
The process looked something like this:
- Go to the “All Posts” page in WordPress
- Select the category “VPS Showdown” from the filter list
- Select “SEO: No Keyphrase” from the filter list
- Click the “Filter” button
This would give me a list of posts I needed to update. From there, I’d just open a bunch of tabs and get to work.
Side note, I’m still amazed at how well my M3 MacBook Pro performs. Handling opening up dozens of tabs in Safari in quick succession. No fan spinning, no system coming to a grinding halt. Heck, even memory usage shows no sign of pressure.
At this point, I would expect to see posts with the “VPS Showdown” category. With the “keyphrase” column turned on, I’d expect every post to have “-” for the keyphase.
What I ended up seeing was this:
I tried updating those posts a few times, thinking perhaps something was stuck in the tubes. No such luck though, some of the posts were just insistent that they did not have a focus keyphrase set.
Did you try asking support?
I do like the Yoast SEO plugin, I’m even a premium customer. Unfortunately, I already had an interaction with their support team that left me thinking that I’d rather figure this out myself than to bother them. The previous issue was related to one of their AI tools giving me a “retry later” type error every time I tried to use it.
The reason I had originally upgraded to their premium offering was to get access to the AI features. Effectively being told “it works on my machine” left me pretty disappointed. Fortunately, they’ve since resolved many of the issues related to the issue I was seeing.
So knowing I was probably going to have to figure this out on my own, I started to experiment. Make a change to the post, save it, check to see if it made a difference.
Trial and error to find a solution
Eventually I was able to suss out what combination of things would cause the post to continue to show up, and how to edit the post to get it stop showing up on the list when it shouldn’t be.
This may be more unique to me, or anybody with an older WordPress blog, but it seems like posts that are still on the “Classic Editor” are part of the problem. As I had done a mass import of my content from my old Jekyll site, my posts were all utilizing the “Classic Editor” instead of the Gutenberg blocks editor.
Updating the posts to use the blocks editor is only part of the solution, as I had found out. Simply clicking “Convert to blocks” on the post, and clicking “Update” did not get the post to stop showing up when filtering on posts that did not have a focus keyphrase.
Fortunately, for me at least, converting to blocks leaves my posts a little jacked up. With my old Jekyll site, I used Vim/Neovim to write, and would keep my content wrapped to 80 columns as I would if it were code. Converting to blocks would reveal these line breaks and I go through and adjust things a bit to get them looking nice again.
This secondary action of editing the content of the blog post seemed to be what does the trick to get the post to stop showing up with the “SEO: No Focus Keyphrase” enabled.
But why?
Speculatively, I think Yoast SEO not only plays nicer with content using the Gutenberg block editor, but that the initial conversion from classic to blocks doesn’t trigger something internally that needs to happen for Yoast SEO to work it’s magic.
Regardless of the “why”, I’m just happy I was able to get the filter working. Otherwise, having posts persist on the list was going to cause slowdowns in my workflow.