For any website, URL structure is one of the most important factors for good SEO ranking. However, there are times when a webmaster didn’t start his/her website with proper URL structure and wants to change it later on when the site becomes popular. If done improperly, this can lead to tons of 404 errors and a drop in SEO ranking.

In this quick guide, let us see how to change WordPress permalink structure from date or category-based to post name-based URLs with proper redirects from old URLs to new URLs.

Note: This guide only covers the scenarios for WordPress installed in the root directory and not for the WordPress installed in the sub directory. It is also assuming that you are using Apache as your web server.

The first thing you need to do is to change the WordPress permalink structure to “Post name” in your WordPress dashboard. To do that, open up your WordPress admin dashboard and navigate to “Permalink” (settings -> permalinks).

change-wp-permalinks-settings

Here in this screen, select the radio button “Post name” under common settings and click on the save changes button to apply the changes.

change-wp-permalinks-post-name-permalink-structure

Once you have done that, check if all the posts and pages are working as they should without any errors whatsoever. If everything is fine at this point, you can head to the next step of creating .htaccess rules for proper redirects.

Creating .htaccess Rules

Now the second step is to add the below redirect rules to your .htaccess file located in the root directory so that all the old URLs will be properly redirected to the new URLs. That way you won’t lose any traffic or the search engine rankings. Just go through the scenarios below, find the ones you were using in the past and copy paste the .htaccess rule.

Note: If you are using “www” in front of your domain name, then add that “www” to the .htaccess rule you are going to use.

Remove “/year/month/day” from the URL

If your old permalink looks something like this,

http://example.com/2014/08/21/post-name

then use the redirect rule below to redirect this old URL to the new post-name only URL.

# Remove year and day from permalink structure
RedirectMatch 301 ^/([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*)$ http://example.com/$4

Remove “/year/month” from the URL

If your old permalink looks something like this,

http://example.com/2014/08/post-name

then use the redirect rule below to redirect this old URL to the new post-name only URL.

# Remove year and month from permalink structure
RedirectMatch 301 ^/([0-9]{4})/([0-9]{2})/(.*)$ http://example.com/$3

Remove “/category/” from the URL

If your old permalink looks something like this,

http://example.com/category/post-name

then use the redirect rule below to redirect this old URL to the new post-name only URL.

# Remove category from permalink structure
RedirectMatch 301 ^/([^/]+)$ http://example.com/?p=$

Redirect “/archive/post-id” to Post Name Structure

If your old permalink looks something like this,

http://example.com/archive/123

then use the redirect rule below to redirect this old URL to the new post-name only URL.

# Redirect archive to post name structure.
RedirectMatch 301 ^/archives/(\d+)$ http://example.com/?p=$1

That’s all there is to do, and it is that simple to change permalink structure for an already established website. Hopefully that helps, but do comment below if you face any problems while changing or redirecting the URLs.

How to Sync Bookmarks Between Firefox and Chrome

If you work with both Firefox and Chrome, and need your bookmarks to be available on both of them, here is how you can sync bookmarks between Firefox and Chrome.

How To Read ODT Documents Inside Your Browser

Various web services can open Microsoft Office files with ease, but what about files created with LibreOffice? The good thing is, you can also read ODT document in your browser as well.

Track Time and Goals Using Progress Bar Timer [Google Chrome]

Tracking your time and task can be a difficult job. While some may have no trouble keeping track of time in their heads, others may benefit from a more visual means of measuring progress. Progress Bar Timer is a Google Chrome extension that turns deadlines and quotas into convenient progress bars to help track time and goals.

5 Dictionary Tools for Google Chrome

Do you remember back when you had to know how words were spelled? Here is a selection of dictionary tools for Google Chrome.

How to Fix Foreign Characters Not Showing Up issue In WordPress

If you enter foreign character in WordPress, but only see question marks (???) showing up, here is the fix for this issue without losing any data.

Save and Restore Groups of Tabs in Chrome with This Quick Trick

Looking for a way to overcome having too many tabs open? Use this quick trick to save and restore groups of tabs in Chrome without installing an extension.

Clef: Log In to WordPress Without Any Password

Tired of typing your username and password everytime you want to login to a site? Clef is a password replacement app that allows you to login without password.

Big List of Tools and Services to Help You Read Everything Faster

With the overwhelming information in the Internet, it has become necessary for us to read faster. Here are some tools to improve your reading speed.

A Beginner’s Guide to Not Being Compromised on the Internet

You may understand what social engineering is, but are not sure how to properly defence against it. Here are a couple of advices for you.

Why YouTube Added Support for 60 Frames Per Second

YouTube has added for videos to stream at 60 frames per second as opposed to its usual 30. Is this something we should be excited about?

Easily Add Gesture Support to Your WordPress Site

Other than responsive design, it is also important to add gesture support to your website for mobile devices. Here is how you can do so in WordPress.

TunnelBear VPN: A Beautiful Bear That Just Works

Need a VPN service? TunnelBear VPN can encrypt your Internet connection while changing your public IP address to the country of your choice. Read on for the review and giveaway.