Wrong Canonical URL From Yoast Plugin
Published: September 23, 2020
Last Updated: February 11, 2021

The other day I was reviewing some indexed pages in Google Search console trying to understand why I was having a drop in rankings and noticed that I had both canoncial URLs and Open Graph tags indexed in Google that were pointing to my local development machines URL. WTF? I knew that the Yoast Plugin was responsible for outputting this information dynamically so I started to do some digging in how this was happening and why there was the wrong canonical URL from Yoast.
After much back and forth with my hosting provider and multiple publishes of my website with the issue resurfacing I was able to pinpoint the cause of the issue relating to the recent release of their “indexables” feature in 14.0.
Yoast Indexables
For those who don’t know the indexables feature means that now much of the SEO meta data for a given page is stored in a table in the database, the YOURWPPREFIX_yoast_indexable table. This is meant to speed up the process of retrieving SEO meta data and prevent dynamic pulls in PHP from slowing down page load speeds.
Unfortunately this table is not registered on the $wpdb object. Many hosting providers, including the one leveraged by Tortoise and Hare Software will use a wp search-replace CLI command internally when pushing sites from one environment to another, e.g. staging to production, to update the sites URL from the current domain to the destination domain.
If you look at the wp search-replace command documentation you’ll see that the base command will only run on tables included in the $wpdb object which does not include the yoast_indexable table! This command would have to be run with an –all-tables flag to include the yoast indexables tables and that may not be feasible for all hosting providers as this can update more than one instance of WordPress if there are multiple instances stored on the same server.
I’m not sure if this was an oversight or not on the part of the yoast team or if that was intentional. Either way, the problem will likely persist on hosting providers for the time being and in the meantime more than a few sites are likely publishing out bad canonicals and other references to 404’d or private domains.
Wrong Canonical URL From Yoast Plugin Workaround
The best and least invasive workaround at this time is for you to reset the yoast indexables from your production environment. This option is much safer than running a search replace command on production.
Reset Yoast Indexables
This is the option I recommend for fixing the issue of wrong canonical URLs from yoast. It’s the safest option and works great.
- First off install the Yoast Test Helper Plugin
- From WP Admin go to tools > Yoast Test
- Click on the reset indexables tables & migrations button
- Go to the yoast plugin tools by clicking SEO > tools
- Click the “start processsing and speed up your site now button”
That’s it your done. Yoast will regenerate the database tables and your canonicals and open graph tags should be working again with the correct domain name in your URL. Please note that you will have to go through this exercise every time you push from a lower environment to production.
I’m sure the Yoast team is going to be flooded with support requests about this issue and hopefully they will roll out a fix in the coming months that allows the plugin to play nicer with hosting providers. Until then you can use this workaround for the wrong canonical URL from Yoast to repair your SEO on WordPress.
Update:
As of Yoast 15.2, this issue still persists.
Questions, thoughts? Drop a comment below and get the discussion started.
Thanks Hunter, worked like a charm. Saved me a lot of time on this!
You’re welcome!
Glad this post popped up. Was seeing the same problem after using search-replace and then of course when I used wp to search for the old dev link in the dB it did not pick it up either. Have used all-tables and reactivated toast plugin
Yep, it’s a sneaky issue. I just checked it recently and it still persists in certain cases as of 01/21. I suspect it will be an ongoing battle without a change in direction on Yoast’s end. I saw they recently tried to disable re-indexing on non production environments but that’s not a sufficient fix :-/
We encountered this issue as well. Thanks for the helpful post.
You’re welcome, glad we could help
We’ve also had this issue, but unfortunately our production site has login disabled as a security measure and I can’t login to regenerate the URLs.
Hopefully this is being addressed/fixed.
Sorry to hear that. That’s a tricky situation, but I certainly understand the need to restrict access.
Hello Nelson, I stumbled upon this post as I encountered the wrong canonical URLs on my blog’s posts with Yoast plugin. I understand that you recommend to use “Yoast test helper”, but I wanted to give a try to “Rank math”, so I installed it and now the issue is resolved.
I appreciate you put this information on the Internet, otherwise people like us might get panic. Thanks and have a good day.
Glad to hear you found an alternative solution that works for you. Switching plugins is a task that might create other problems such as written meta descriptions from Yoast not carrying over to RankMath or lost functionality when moving from Yoast to RankMath. If you are running them both at the same time, some people may also not want to install both of them at the same time for performance reasons, cyber security risks, or maintainability concerns as well. I know the original purpose of the indexable update for Yoast was for performance reasons. RankMath is most likely using dynamic canonicals instead of loading them from an indexed DB table. That may solve the immediate problem, but miss out on the whole reason for Yoast implementing the indexable feature in the first place. I approved your comment here but just want other people to be aware that this may not be the best fix for them and there’s more to it than just “install RankMath problem solved”.
I have one Issue coming on my site. I have already changed my website name but showing the old website name on google. and many times check not clearly showing sitemap in google and others search engine portal. Please help me how to fix this issuee.
It takes a few days after making a change for Google to detect changes to your site. You can speed the process up by requesting a manual re-indexing for each page you’re concerned about at the following link: Manual Index. I’m not sure what you mean about the sitemaps.
Hunter, I found your article as I encountered the wrong canonical URLs within the portfolio on one of our clients’ websites.
It worked a treat and resolved the issue for me so thank you so much for taking the time to put it together and sharing it with us all.
Hey Carl, you’re welcome. Glad I could help.
Hi all. I was use non www then I changed my website to www. I did reset the migrations. When can it apply for this my website? Thanks for your help.
I reset the tables with Yoast Helper but my issue is still not solved. Still getting “Document does not have a valid rel=canonicalPoints to the domain’s root URL (the homepage), instead of an equivalent page of content” from Pagespeed.
Installing Rankmath solved the issue but I really want to solve it with Yoast but no luck since.
Thanks. Lost ranking due to this. Cant beleive the issue persists still.,
You’re welcome