I was wondering if you have any tips on the following situation.

I'm going to move a large website to a new Content Management System (CMS), here are some details on the site:

  • online news magazine with roughly 3,000 articles
  • domain age: 10 years
  • online in the current form since May 2010
  • indexed pages: ~10.000
  • percent of search engine traffic: under 10%

Unfortunately a custom-tailored CMS was used for the site. The performance, reliability and SEO capabilites have been really bad, so we are moving to a new and proven open source CMS.

All the articles will be kept as they are, but the URL structure as well as the structure of the HTML templates will be changed.

What I wanted to do now is to actually create 301 redirects for all articles from the old to the new schema, i.e:

  • Old: www.example.com/en/html/news/detail/title-of-the-article/
  • New: www.example.com/category/title-of-article.html

Is this a proven way to do something like this? If not, can you recommend a way that has worked for you?

2 Answers 2


You've got the basic idea.

  1. Inventory your assets, and also identify the pages which receive the most traffic and backlinks (don't forget alternate URLs if the same page is accessible via more than one URL).
  2. Identify any content that isn't being directly migrated to the new site; find a corresponding asset on the new site if there is one*; if there isn't, and this is a high traffic URL, then perhaps you should create one; otherwise, mark the URL to be dealt with in step 5.
  3. Create a translation table in a CSV spreadsheet mapping old URLs to new ones for all assets (don't forget any media files that users may have embedded in their own site, e.g. buttons/badges/banners/videos/newsfeeds/search tools*).
  4. Use .htaccess or whatever method you prefer to make the 301 redirects based on the translation table.
  5. Create a helpful 404 page to be displayed when users request an old URL with no corresponding content on the new site. It should explain the site migration and suggest alternative resources for finding the information they need. E.g. perform an automatic search to list similar pages, offer another site that might have the information, or provide contact info through which they can request the info. It's also a good idea to provide a feedback form or email address through which users can report errors.
  6. After the new site is launched, monitor 404 errors and support emails to make sure everything is going as planned.

What's important is that you don't lose the customer's trust by creating a bunch of dead links/bookmarks/images/feeds/video embeds and making information hard to find. Do everything you can to make the transition seamless, especially if there are lots of people who rely on the information on your site.

If the old site had a search plugin, rewrite the old search requests automatically or offer a new OpenSearch plugin. Oracle did a poor job of this when they recently updated their network and broke all search plugins for the MySQL online documentation. So developers used to being able to effortlessly look up MySQL commands for the past 7-8 years suddenly find their search plugins worthless, and even the on-site search function doesn't work.

Lastly, don't make inappropriate 301 redirects. If there's a new version of a page with updated content, then, sure, redirect. But if there isn't a corresponding page to redirect to, don't just redirect to the homepage or some other random page that doesn't have the content the user expects. Consider the user's intent and whether they'll be surprised at the page they land on. Even if there's another article on the same general topic, it's not necessarily appropriate to use a 301 redirect if the content is completely different. In those cases, it's better to present a 404 page to let the user know the content they're looking for no longer exists, and suggest an alternate page (or pages) that they might be interested in.

  • Man I wish I knew of this resource website when I was doing website changes to my website x-x. Great question and answer here.
    – Zack
    Feb 18, 2011 at 20:03

herr herr,

It really depends on what CMS you're moving to as to how to easily redirect old URLs. I use Django and this framework allows you to easily create such a redirect but it's very specific to the framework.

Another method that is commonly used if you're using Linux/Apache is using .htaccess, which is a pretty simple configuration file that relies on regular expressions -- I've used this method and it was quite successful, though on not as large a scale but I believe this method has been scaled.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.