I have a website and the URLS were constructed like so:

  • /index.php/Topic
  • /index.php/AnotherTopic

These were indexed in google and search results returned that pointed to these.

However, I've recently upgraded and reconfigured the website and now the URLS look like:

  • /index.php?title=Topic
  • /index.php?title=AnotherTopic

The original URLS are returning 404s. The site is linking to the correct URL structure internally, but Google is retaining the old URLS in its search results. I've updated and resubmitted the sitemap which only contains the new URL structure. Also, Google's webmasters tool is going slightly bananas at the fact there's now a spike in 404 errors in its crawl results.

  • What is the best approach to get Google to remove the old URLS?
  • Should I try blocking /index.php/ in robots.txt?
  • Should I be returning 301 codes instead of 404 for the old URLS?

2 Answers 2


In my opinion, the best way to solve your problem is to:

  • Make 301 redirects from your old URLs to new ones

Google will understand easily if you changed your sitemap.xml, internal links and if there is no more 404 pages.

In your case, Google says you must follow these rules.

  • -1 Do not disallow old URLs in robots.txt. If you do then Google won't see your 301 redirects, since the old URL is not requested. The key is to setup 301 redirects and not return 404s. (I'll remove the neg vote when updated ;)
    – MrWhite
    Commented Nov 30, 2012 at 13:19
  • 1
    Sorry, you're right. I confused with other stuff. Answer edited.
    – Zistoloen
    Commented Nov 30, 2012 at 13:29

Also do a fetch as googlebot and submit all linked pages, 'if your site has undergone significant changes'.

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.