Xaraya has a wonderful module called “xlink” which enables cross linking to module items. xlink makes it possible to specify an alternative URL for any module item just by hooking it to that module. What this means for SEO and migration in general is you can now keep your old URLs that bring traffic and not get penalized by search engines who are getting 404′s for content that was previously there. I had to modify the xlink module slightly though to ensure a 301 Moved Permanently is passed instead of the default 302 Moved Temporarily HTTP header.The only thing lacking with xlink at the time of writing is it does not have a “create” admin API function, there is only “createhook”. The problem with “createhook” is it only caters for one-to-one relationships between old URLs and a module item.
Hopefully this missing feature will be added to the next xlink release, meanwhile I will just stick to my own implementation of the “create” function.