This is a follow-up post to my Advanced Wordpress SEO Mozinar. Thank you so much for those who joined me as we discussed the inherent SEO issues in Wordpress and how to solve them.
Wordpress SEO is an exciting topic, and I received a lot of great questions during and after the Mozinar that I didn’t have time to answer live. As I started to read through your follow-up questions, I realized that a lot of them were about the same topics, so I decided to include responses to these common questions in this post for all to see.
Of course, there are multiple ways to address these issues in Wordpress as it’s such a flexible platform. I chose to focus this post on the solutions I’ve used in the past, but please include your ideas in the comments section of this post so we can all learn from each other.
Proper permalink structure and limitations
During the Mozinar, we talked quite a bit about how you can run into significant site speed issues by having your permalink structure for blog posts start with something other than a number.
In other words, www.site.com/blog/2012/awesome-post/ runs quickly, while www.site.com/blog/online-marketing/awesome-post/ actually results in site speed issues, particularly as your blog grows. This happens because Wordpress has difficulty deciphering where in the database to pull the post from without a number in the first directory. The team at Wordpress have themselves publicly acknowledged this issue on previous Wordpress versions.
A number of listeners were quick to point out, however, that newer versions of Wordpress have actually solved this issue entirely.
Indeed, if you have Wordpress 3.3 or later, you can actually forgo needing to begin your posts with a number and use whatever permalink structure you want! No speed issues to worry about.
I didn’t mention this difference between Wordpress versions on the Mozinar, and want to clear that up here. The best practice for permalinks (if you have Wordpress 3.3 or later) is to use something like /%category%/%postname%/, or even just /%postname%/, as it is both more user-friendly, results in a more logical site hierarchy, and is also can be more SEO-friendly.
Of course, if you haven’t updated Wordpress or are stuck with an older version for some reason (needing expired plugins, significant platform customization, etc.), not starting your blog post URLs (the permalink structure) with a number actually can result in some serious site speed issues. I suggest that either a Wordpress upgrade needs to be completed, or you should consider changing your permalink structure to ensure you have a quick site for users and search engines.
Proper way to change permalink structure
What are the best steps for changing your permalink structure? Maybe you need to maintain and older Wordpress version, and thus need to update your permalink structure due to site speed issues. On the other hand, maybe you just used the default permalink structure when you built your site, but now want to change for SEO or user experience reasons.
Updating your URLs is always a delicate change that requires good planning due to the huge impact this can have on your search engine visibility. We always want to make sure that we 301 redirect old URLs to their new counterparts to not just ensure a good user experience, but to properly communicate the change to the search engines in a way that allows them to attribute rankings and link equity to your new URLs.
Without establishing 301 redirects, you can really harm your search engine visibility.
Wordpress is great in how it allows for easy URL customization due to its very powerful URL re-write controls. Unfortunately, if you change your URL permalink structure, Wordpress implements 302 redirects from the old URLs to the new ones, rather than the necessary 301 redirects.
I’ve watched more than a few rankings tank due to this Wordpress quirk, and I don’t want this to happen to you!
Fortunately, there are two solutions that don’t involve you having to get crazy with redirect-rules or 1to1 301 redirects:
Solution #1: Update .htaccess file code
If you’re changing your permalink structure to /%postname%/ (and ONLY if you’re moving to this permalink structure), I recommend updating your .htaccess file to handle the 301 redirects from your old permalink structure to this new one.
I like this approach because working within the .htaccess file is quicker for your Wordpress installation, and keeps your installation from getting bloated with more plugins.
Here’s what you need to do:
- Copy your .htaccess file as backup in case something goes wrong and you need to re-upload the old one
- Get the .htaccess code snippet you need by scrolling to the bottom of this page on Yoast SEO’s website (I have no relationship with Yoast SEO outside of being a user) and click on the orange button that says “Generate Redirects”
- Fill out the form fields and click “Generate Redirect” when done to output the proper code
- Copy this code and place it at the very top of your .htaccess file
- Change your permalink structure to /%postname%/ from within Wordpress' interface
- Verify that the redirects from the old post URLs to the new ones are, indeed, now 301 redirects. You can do this by spot checking a your old URLs with a 301 redirect check tool like the one found here (again, no relationship outside of being a user)
This allows for a quick update to your .htaccess file without too much mess. If it doesn't work, just change back your permalink structure and re-upload your backed-up .htaccess file.
Solution #2: Use a redirect plugin
If you want to use another permalink structure besides /%postname%/, then a simple .htaccess update is out of the picture.
Instead, I recommend using a Wordpress plugin to give you the control you need to take care of the 301 redirects. Of course, there are numerous 301 redirect plugins available, but I recommend Redirection by John Godley (again, I’m just a user and have no other relationship with Redirection or John Godley).
This plugin automatically 301 redirects URL changes while also allowing for implementation of 1 to 1 301 redirects and even the creation of redirect rules based on regular expressions! All of this from within the Wordpress interface, making it a relatively easy solution for managing a permalink structure transition.
Just install this plugin before changing your permalinks, and then once the change has been completed, verify that the 301 redirects were properly put in place.
Of course, there are multiple other SEO ramifications to consider when changing URL structure (see https://moz.com/blog/should-i-change-my-urls-for-seo for some more discussion on this), but the above solutions should cover how to properly change your permalinks for most Wordpress installations.
Multilingual Wordpress site implementations
This was a very common question I received after the Mozinar, and surrounds the best way to implement multiple languages on a Wordpress installation so that www.yoursite.com/fr/ returns French translations of your content, and www.yoursite.com/de/ returns German translations, for example.
Although Wordpress doesn’t support multilingual sites or blogs out of the box, there are multiple methods for implementing and running multilingual installations. Wordpress provides a detailed overview (including pros and cons) on five different methods to impellent such an installation themselves (just visit https://codex.wordpress.org/Multilingual_WordPress for a list of all available methods), so I won’t rehash all of their great commentary.
Instead, I’m going to review my preferred method for setting up a multilingual site, which is to include all available translations in a single page or post, and then have Wordpress automatically choose which one to display based on the language directory selected (such as /fr/ or /de/).
Solution: WPML plugin
I’ve always used the WPML plugin (no relation outside of being a user) to handle this for the following reasons:
- It allows for easy governance of all of your translated content by allowing all translations to sit within the same post page in Wordpress
- Easy to add new language variations if you want
- Automatically implements the hreflang tags on all pages, reducing any potential duplicate content issues while also following new multilingual SEO best practices
- It allows for the use of language directories, sub-domain or domains, and is thus very flexible and allows for good Google Webmaster Tools setting integration
Just visit the WPML site to purchase and for detailed configuration and installation instructions. Installation is just like any other plugin, and this is the best solution I’ve used for multilingual Wordpress blogs.
There are other ways!
I hope I’ve been able to clear up some common questions about handling Wordpress. I love the platform, but it’s not perfect and requires customization to ensure that’s it’s as SEO friendly as possible.
This post outlines what I typically do to address the topics discussed above, but there are, of course, other ways to make the changes we talked about. Please be sure to comment below and let the community know of ways you’ve been able to address the above topics yourself.
Great guide, Nick!
Without attempting to spam, this is something I've blogged about, touching on some of the back-end WordPress template logic and underlying system, and how/why this kind of approach to permalinks (/%category%/%postname%/) makes sense.
You might be interested to know that whilst WPML is my favourite plugin ever (on a par with Redirection), it's particularly poor when it comes to advanced query manipulation on a language basis - it's surprisingly inflexible when it comes to crafting custom queries and advanced URL manipulation... Things like using IP detection to automatically add, e.g., /de/ to the URL and then dynamically query the database for appropriate DE content/settings is much more complex than it should be :(
Thank you Jono! Great points. There are amazing plugins, but it's hard to find ones that do everything we want. It's a give an take for sure and there are pros and cons to different methods. Have you tried any of the other multilingual plugins that are better in these areas that you can share?
One note on the redirection plugin - be sure to delete old redirects. I've seen clients with 1000+ redirects handled by this plugin (!!!) and it can slow your site to a crawl. Keep the redirection table small, though, and you're fine.
Great point Ian. Too many redirects through this plugin and it will definitely bog down a site. I usually always go primarily for non-plugin solutions for this exact reason. Thank you!
Thanks for this article, most happy to read this as i am setting up an multilanguage website at the moment! Also the redirect plugin comes in Handy sometimes i suppose :).Cheers!
Well i already know about your permalink changes but this language plugin just new for me. Thanks for this nice info.
Same here, great to see data I have not seen before, I could have used this recently.
Thanks amir
One thing I like about SEO is identifying some simple things that one can do to make large improvements. This post is an example of that.
Hi Nick,
thanks a lot for this great article on permalinks. As I deal a lot with multilanguage websites this has always been an important issue for me. Since I am more familiar with qTranslate, I found out there is many useful plugins like qSlug or qMetatags.
I will definetly try the permalink plugin!
Yep, there are many great plugins to help with multilingual websites. I just chose WPML because it's the one I personally like the best and the one I'm most familiar with, but there are for sure others.
I was JUST this minute looking for ways to make sites multilingual, and BOOM your post appears in my feed. Thankee Lord!
Thanks for the post.I would love to see similar post on Joomla - the unattractive step sister of Wordpress.
I am also using Yoast Plugin for my Wordpress Websites and Blogs. After intstalling, I found 2 ways to fix permalinks 1) under 'Settings' and 2) Yoast SEO Menu. I take help the from Yoast's 'Others' Tab and fix permalinks under Setting Tab. This works fine to me.
But Nick, your article is very useful to me as it's a how to guide for multilingual website or blog. Above reply on GF24 is also useful to me. Thanks GF24 for point this query as this came into my mind too ;)
Hi, thanks for sharing the info. I didnt know that this plugin existed. Now will make my life a lot easier because in Cyprus, we speak 3 local languages (Greek, Turkish & English) and is really hard the SEO for local sites.
Since the beginning I am following the practice of keeping the permalink structure to /%postname%/. Hope after I upgraded to wordpress 3.5+ my sites pages will load faster.
Anyways good information shared and thanks a lot for the same.
I recently changed the permalink for https://naijabambam.com from /%category%/%postname%/ to just /%postname%/ , everything seemed to be working fine until I realized some posts are not redirecting, shows page not found.
I used the Yoast - Change permalink structure as described above.
great information, learned something new about your presentation and this added post about Advanced SEO for Wordpress.
Thanks,Matthew Agustin
Thanks for this post and tips about multi language. Really happy to those info about multi language posting.
A great and useful post as I'm starting to setup a multilingual WP site. Because I'm considering to do so by creating a blog network I'm curious about your opinion towards this solution and it's consequences for SEO. https://codex.wordpress.org/Create_A_Network
That's a good solution, and there are no consequences if the network is legitimate and not spammy!
Great information. Nick, nice to see someone is giving some good insight into how these were press as well. It's a simple CMS system. The subtleties are where a lot of people get tangled up. Once again, great info.
I have used the Redirection Plugin with good effect in the past...good to see it getting a mention in your post. Thanks for the share Nick.
You're welcome! Yep, good plugin for sure.
Glad to see you create this post to update the webinar that WordPress Permalinks are have been optimal since WP 3.3
Absolutely Kevin! Thank YOU.
Thanks Nick... This article helped me a lot. I have successfully changed my permalink to /%postname%/. All credit goes to you. Thanks again for the appreciable help.
You're welcome and I'm more than happy to help! Good luck with your site.
Nice post Nick!
It's nice to see both solution with .htaccess and solution with plugin. If you have access to Wordpress admin panel and you don't have access to files on server, you'll have to go with plugin.
Thanks, it was very helpful.
very good this tool to generate code redirection
Great! and Informative Article, Nick, appreciate your sweat :D
But i'm not totally agree with you(sorry) just because you saying that /%category%/%postname%/(doubt) and /%postname%/(i am fan of this) is best practice fot WP 3.3 or later, in /%category%/%postname%/ as permalinks, it looks ugly sometimes for example: URL - "example.com/WP-Plugin/best-wp-plugins" and it shows "wp-plugins" twice. looks nice? off course not, i think we should use /%category%/%postname%/ when our site/blog holds big number of categories like hubpages or any other, that's why i recommend /%postname%/ if site holds limited category. what do you think? Nick!
Very good article, I have been looking for more information on this topic and in this blog I have been able to find the most relevant information. thank you very much
great info! especially for the multilingual site implementation. thanks!
Hi Nick! Yes indeed. Updating our URLs is always a delicate change that needs really good planning. I think, we really need to make sure that we 301 redirect old URLs to their new counterparts. And also, thank you so much for sharing these solutions. I have actually leanred something new today.
I'm by no means an expert so I hope this doesn't sound dumb.
What if I just want to change the permalink structure going forward and leave all of my older links the same? Is that possible?
This is special post for me i am newbie in wordpress and want to learn it properly to get complete control on my wordpress websites.
Fantastic article Nick, I also enjoyed your Mozinar on this as well - I know this is a follow-up article but both were awesome and extremely interesting!I didn't know a lot of the canonical data in WP..
Hello, great article! Easy Translation Manager (no advertising for them) also allows you to handle multilingual aspects pretty well. I find it's on the same level as WPML. You get a separate dedicated area for translation and you can translate SEO keywords, phrases, permalinks. Support for SEO by Yoast plugin (latest version is stable).
as I am new in Seo so this is very useful info for me. Keep it up..
Not many people understand the difference between 301 and 302 redirects and the effect that both of them can have on your search engine visibility.One note on the redirection plugin - be sure to delete old redirects.
If we have so many redirects from a single plugin, it can really slow down your site and all your efforts will go waste.
Editing a .htaccess file is something which not everyone is comfortable, so having a redirection plugin really helps.
I have never really given wpml a try but after your post, I will surely try to utilize it.Will come back with my experience with it.
Hello, i'd like to change my permalinks but i will lose all sharing stats for fb, twitter, g+, ...using this permalinks /%year%/%monthnum%/%postname%/ is not advised for SEO?
Thank you so much Nick for writing a very informative article. Even Multilingual Wordpress part is also new for me and very informative to me.
But I have question in my mind..
After creating different language websites such as .jp, .cn, ru so in URL section it support language specific text? For example if I have Chinese website and its file name should be in Chinese language. So is this possible? or it will only show English language urls. Please clarify... Thanks again.
Hey Gunjan. Yes this is supported by the plugin. In fact, if you have your permalink structure set to have /%postname%/, you just include the translated name as the title of the post, and the URL will thus also be translated.
One thing I'm not 100% sure of is if you can have the Category URLs translated. Last time I checked, the plugin did not support this.
A potential way around this would be to create multiple Wordpress sidebars (1 in each language), and only display categories for the local language on the local website.
Thank you so much Nick for the clarification :-)
Thanks so much for the great info. I watched the MOZinar over the weekend, and took tons of notes. I could probably benefit from watching it about 10 more times!
Thank you Melissa I'm glad it was useful! Happy to help.
Is redirecting necessary when the old permalink structure is working fine?
Also, if you're using the old structure (with the archive numbers) and you use WPML, what will it look like? blog.com/1234/post becomes blog.com/en/1234/post?
Cheers
Gilles
Thank you for the question. No need to change URL structure if everything is working fine. It's a big change and I recommend only updating it if you're experience problems or if you're not getting the search engine traction you want, and an audit shows the cause is the URLs.
In WPML, you can set the way language pages are handled in the URL. Not only can you use sub-domains or TLDs for the other languages (thus not requiring a URL change for your primary site), you can also set the default language of your current blog. That also means that you don't have to change your existing URLs, as if you set your default language to English, it won't have an /en/ in the URL. Only new languages have the language code in the URL structure.
Hi Nick
It's a niche blog and a personal project. I was thinking of adding the language as a subfolder to keep the linkjuice within the domain and lessen the workload.
Do you think it will cause problems if:
blog.com/1234/article
becomes
blog.com/en/article
when you go from the main language to the English version of the article? Is this a problem?
Thanks,
Gilles
Good question. If your existing URLs are changing, I'd recommend following the same Permalink Update Process I mentioned in my article to ensure that 301 redirects are in place from old URLs to the new ones.
Also, if you have Wordpress 3.3 or later, then removing the number as the first directory in your URLs is fine. Note that if you have an earlier version, changing your URLs could actually slow down your website considerably.
I like your reasoning for keeping the languages as a sub-folder. Note too that if English is set as the default language in the plugin, it won't change your current URLs. For example, blog.com/1234/article will still be blog.com/1234/article for your default language. Other languages, like French, would show up as blog.com/fr/1234/article.
Thanks for this useful information
We have found that getting .htaccess to work for 301 redirects is worth the effort for the performance boost as page speed is not only important from a SEO but user experience perspective, especially if the number of redirects/implementation is large.Your post is a good inspiration to experiment with multilingual Wordpress sites. Will definitely give WPML plugin a try when we do. Thanks for the info Nick.
Totally agree, thanks for sharing! I always favour non-plugin solutions for those technical enough to implement.
Yes some of our client use the word press , it seems very good inherent and as Anita said she used the redirection plugin that work fine so i want to make clear in one line , problem always get solve when we did implement
[link removed]
Thanks for the useful information. There's also a good free plugin for multilingual site implementations - qTranslate. It can be integrated with Wordpress SEO and All in one SEO plugins.
Btw, another option that I have seen is to have two separate wordpress installs. For example one on site.com and one on site.com/en/. In this case would you reccomend using g rel="alternate" hreflang="x"?
You're welcome Svetoslav. Good point on utilizing multiple Wordpress installations and updating the PHP files to just include the hreflang tags. I usually shy away from doing it this way, only because I've seen how sites, over time, start to become more fragmented as people forget to make each update to all sites at the same time. But of course, there are times this would be advantageous too. And like always, I do prefer non-plugin solutions much of the time.
Good stuff Nick - any thoughts on the correct/best way to configure URLs for inclusion in the Google News index? I had to change my permalink structure to include the postid in order to get the unique digits into the URL required by Google News (which was a massive pain!)
Hey Luke! I don't have much experience specifically with Google News optimization in Wordpress, but if you have to change your URL structure make sure the follow my recommendations in the post so it's SEO friendly!
Thanks for the information Nick! With so many plugins I think wordpress users are becoming overwhelmed and lost on what to use and do for their blogs.
Wow I'm a bit stunned that I never thought of searching for a re-direct plugin. I'm glad I read this article now as I'm sure that will be a time saver!
Great post, and webinar! Thanks for the tip on WPML plugin, absolutely a must have for multilingual WordpPess websites.
Is there any FREE multi lingual plugin for WP?
None that I would recommend I'm afraid. The best free method is to simply maintain multiple Wordpress installations separately, one for each language. The reason I don't recommend free plugins for this is because the plugins change your Wordpress installation at a fundamental level (the database), and I wouldn't want to risk having a plugin that stops receiving support.
Hi Nick. Great follow on from the mozinar. I really enjoyed it (both mozinar and this). Is there anymore things you could think of that I could run off and find out more about, or perhaps you have a pile of treasure buried away somewhere that you'd like to share? Metaphorically speaking of course, not literally; unless you do because that would be awesome
Many thanks again for such good advice
Thank you Sean! Happy to help and contribute to a community that's given me so much. I think I really touched on all the main SEO issues with Wordpress I can think of based on my experience and others' questions. I held nothing back! If you have an idea of some other topics you'd like advice on, let me know (you can reach me through LinkedIn) and I'll consider it for another post.
I did not know about Wordpress' automatic 302 redirects. That is a little annoying, but fortunately .htaccess files are my preferred method for redirects. Did you know that you can use regex to perform more complicated redirects in an .htaccess file? I'm not an expert in regex but you can google different redirect strings to find examples and tutorials.
Thanks for the tip! I also prefer .htaccess for redirect management, as it's must faster and future proof. While I understand the concept of redirect rules (regex redirects), I'm not an expert here I'm afraid. I know that gets very complicated and I usually work with developers to help implement complex .htaccess modifications.
I checked out the plugin... thanks for sharing.
Good Stuff.... yes you are right wordpress 3.3 is search engine friendly. prior virson we have to do lots of hard work to fix the problems... but in latest wor press version this is little bit easier... but there is lots of room to make search engine friendly.
Great follow-up to the mozinar. Thanks for sharing this info. I'm glad to see Wordpress resolved the URL performance issues.
Nick,
Great post. I missed the webinar and now really regret it.
Managing multilingual WP sites is a thorny issue here for me and I would love any thoughts you might have.
One of the big reasons to use WP is that you can put out a lot of good content rather easily. For a business that has a big reliance on mulit language sites this is an opportunity and a huge cost.
Forgetting machine translation and related plug-ins, they are garbage, have you seen a way to be able to use WP for multi language sites and incorporate the usage of translation memory? This is an absolute must for the amount of translation we do.
I have yet to find a good solution for incorporating translation memory tools like Trados into the translation and site management process.
Thoughts?
Great question. I know with WPML they have a solution where you can actually use them to professionally translate your content, and you can order this from within the plugin interface or directly from their site!
I totally understand your pain of trying to find a scalable translation solution that's cost-effective, but in my experience, the only way to do it right is through professional translation. All other solutions are sub-par because even if the translation is great, it's not being transLOCATED, meaning that intricacies of double-meanings of words, cliches and other more subtle language usage is totally ignored and still risks not sounding correct to local users.
Sure is a can of worms.
We use professional translators for the language issues, I agree it is the only way to get quality, but the problem is gaining the cost leverages from using translation memory tools. I have yet to find even a pro LSP that has a solution for this.
Not to mention, images, digital assets, and then getting into the marketing world of AB testing, etc.
rats nest.
Thank you for sharing info. Just a question about image post.
You wrote Before Wordpress 3.3 best practice :
%postid%/%postname%/
It could be %post_id%/%postname%/
Thanks for the tip about WPML plugin. Nice post
Thanks for the tip Domenico! Happy to help.