From another CMS to Drupal. How to keep SEO in tact?

Prodigy - January 29, 2009 - 22:07

I've recently ran into a situation where I have little to no experience.

I'm changing shopping carts from another CMS written in .asp to Drupal. All pages end in .aspx The site is placed really well in relavent searches on google and the likes and we don't want to lose this.

  1. I'm sure I will need 301 redirects from all of the old pages to the new one. Is this as simple as installing the Global Redirect module or is this something I need to do on a page-by-page basis? Or perhaps mod rewrite in htacess?
  2. I also read I should create a map of old URL's to the new URL's. Yes?
  3. For anyone else, also make sure you let your lead referrers know of your changes

I am just a bit confused as the Global redirect module works great for aliased urls , changes made to urls on the fly, etc. to prevent being punished for duplicate content. I just am a little in the fog on how this works with changing CMS's and keeping search engine ranking.

All input is greatly appreciated. Thanks for reading!

Use Path Redirect to map the

roborn - January 30, 2009 - 00:15

Use Path Redirect to map the old URLs to the new ones, Pathauto to match the URL structure of your old site, and Global Redirect to avoid duplicated content.

I would also suggest search404, which can be very useful in case you forget some URLs along the way.

Sounds reasonable. I found a

Prodigy - January 30, 2009 - 00:23

Sounds reasonable. I found a great article w/ the exact topic being discussed.

Redirecting as a Solution
If you want to send your visitors to the correct page and use your new Drupal-style URLs, you can use a permanent redirect. The 301 HTTP status code tells your visitors that the old URL has a new permanent home. Search engines should also respect a 301 and index appropriately. Using the RewriteRules above, you could accomplish this by using the flags [R=301,L], demonstrated below:

# Match a request for index.asp
RewriteCond %{REQUEST_URI} ^/index.asp$
# Match a query string like id=[some number] and capture that number
RewriteCond %{QUERY_STRING} ^id=([0-9]*)$
# Permanently redirect - note the ? at the end of the address
# which is necessary to not append the original query string
RewriteRule ^.*$ http://example.com/node/%1? [R=301,L]

The above example will redirect the user to a URL like /node/123. So, what if you want to permanently redirect to a more friendly URL alias? A great option is to use the Global Redirect module for Drupal.

http://acquia.com/blog/migrating-drupal-way-part-ii-saving-those-old-urls

Do I need to transfer all of

Prodigy - January 30, 2009 - 21:42

Do I need to transfer all of the old .asp files onto my new server? If so, can anyone direct me as to where and if I need to manually set up redirects for every page ... around 100 or so? thanks ... I'm very experienced with Drupal ... new to transferring hosts and maintaining SEO!

The old files do not need to

Keyz - February 17, 2009 - 21:26

The old files do not need to exist (a 301 redirect is needed, which just tells the referrer that the address is "permanently moved"). I think you can set this up with http://drupal.org/project/path_redirect
Or (I would look into this personally if it were me) get these redirects hard-coded in your .htaccess so you don't rely on a module for this... a module for this might (potentially though I'm not sure) cause some additional performance overhead that you can avoid by hard-coding it. I haven't looked at the code, but I would bet that Path Redirect adds one or more additional SQL queries to every page load. Though most shared hosts won't facilitate it, the best performing way would be to turn off .htaccess and get everything into your httpd.conf

-- David
davidnewkerk.com | absolutecross.com
View my Drupal lessons & guides

Thanks David

Prodigy - February 17, 2009 - 21:50

Thanks David. I really appreciate that!

I think I found the correct way to do this in .htaccess

OLD: www.example.com/detail.aspx?ID=618

NEW: www.example.com/node/33

# Match a request for detail.aspx
RewriteCond %{REQUEST_URI} ^/detail.aspx$
# Match a query string like id=[some number] and capture that number
RewriteCond %{QUERY_STRING} ^id=([0-9]*)$
# Permanently redirect - note the ? at the end of the address
# which is necessary to not append the original query string
RewriteRule ^.*$ http://example.com/node/%1? [R=301,L]

When done I *believe* the correct course of action would be Global Redirect module to avoid duplicated content because of the path aliases people usually use in Drupal. Am I missing anything?

If one is transferring hosts

Prodigy - February 17, 2009 - 21:08

If one is transferring hosts as well using .htaccess redirects. Do you need to move all of the old pages over to the new host as well? Or no?

No, the .htaccess redirect

ressa - May 28, 2009 - 09:09

No, the .htaccess redirect rules will catch requests for your old pages and redirect them to the new URL's

Subscribing, interested in

Summit - May 28, 2009 - 09:18

Subscribing, interested in .htaccess rules. Greetings, Martijn

Greetings,
Martijn
if you appreciate e-development work, please place a link from your site to www.trekking-world.com

 
 

Drupal is a registered trademark of Dries Buytaert.