Recently I moved a medium sized site from a domain to another. During the migration the structure of the site (page name/page dependency) changes but site data does not change. I was advised to maintain an active old version of the site with 301 redirects to the new version (a 301 rule for each page that I move, keeping track of name changes.) Doing so will have the benefit of "SEO backward compatibility." By that I mean that Google will continue to index previously indexed URLs.

But that technique does not convince me, it's very time consuming to handle (I need to remap each page name/ parameter name) and I have to maintain the old infrastructure active potentially for months. Is this the state of the art or is there a better approach?

  • 1
    You need to maintain that mapping indefinitely. It isn't sufficient to maintain it just for a few months. Sep 23, 2021 at 14:54
  • @StephenOstermiller this sound awfull, lot of work and lot of infrastructure mantaining just to move (and refactor) a resource. Isn't there any option?
    – Skary
    Sep 23, 2021 at 15:07
  • 1
    The redirects don't have to be implemented on your old infrastructure. You can implement the redirects on your new infrastructure. Sep 23, 2021 at 15:26
  • To echo Stephen argument, please have a look at w3.org/Provider/Style/URI.html "Cool URI don't change". Consider all the people having your site in bookmarks or linked from other pages: why break their URLs? Just redirect URLs to whatever new you want. This is not a lot of work, you set up the redirection ones for all and they will work forever. Sep 23, 2021 at 16:01
  • @StephenOstermiller : you are right i have focused too much on my scenario and have not think that i may incorporate in the new infrastructure the redirect and forget about the old (new web server will receive old request and redirect to new pages)
    – Skary
    Sep 24, 2021 at 7:25

1 Answer 1


Any invalid URLs should serve a "410 Gone" error with a message informing the user that the page they are requesting no longer exists, and with links to the top-level site pages. How you do this depends on your stack.

You could set up a simple database, JSON file, or any key: value scheme, such that when an invalid URL is requested, the server looks up the requested route in the data, finds the new URL, and returns a 301 redirect to the new URL.

Because a 301 signals a permanent redirect, you shouldn't have to do this forever -- eventually, search engines will update themselves.

  • may be a better option to remove from indexing old pages and leave only new?
    – Skary
    Sep 23, 2021 at 15:08
  • @Skary, I agree, but that would be in addition to the above, not instead of. You want to handle any requests from old bookmarks or off-site links. Sep 23, 2021 at 15:13
  • 1
    I edited your answer to correct some terminology. A 410 status is an error, not a redirect. A "route" is a mapping between a URL and the code that handles it. You don't redirect routes, you use a route to a redirector to implement redirects. Sep 23, 2021 at 16:11
  • I agree your answer is useful and I removed my down-vote. However, I disagree with the premise that 301 redirects can be removed. In my experience, Googlebot crawls old URLs forever. It is best to keep redirects in place indefinitely when possible. At the very least you should plan for two years. Sep 23, 2021 at 16:13
  • 1
    @StephenOstermiller John Mueller says "at least a year", that's what I've generally heard. Of course you want to keep them as long as possible for direct traffic, but strictly from an SEO standpoint, I do believe there is some point at which Google takes the hint. Sep 23, 2021 at 18:01

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.