Old URLs remaining in search results after a migration is normal for a period and worrying beyond it. The distinction matters, because the usual reaction, blocking them, is the one action that makes the situation permanent.
What is normal
- Old URLs appearing in
site:searches for weeks after launch. - Gradual replacement as each URL is recrawled and the redirect is seen.
- Large sites taking considerably longer, because recrawling thousands of URLs is not immediate.
- Deep, rarely crawled pages persisting longest.
Google has to fetch each old URL to discover it redirects. Until then, the old entry stands. This is not a fault and there is no way to accelerate it materially.
What is not normal
- Old URLs still indexed after several months on a small site.
- Old and new URLs both indexed and competing for the same query.
- Old URLs ranking above the new ones.
- Old URLs returning 200 rather than redirecting.
The causes when it persists
The redirect is not actually there
The single most common cause. Test the specific URLs still indexed rather than a sample. Patterns get missed in bulk mapping, and an untested pattern is usually where the gap is.
Blocked in robots.txt
If old URLs were blocked to save crawl capacity, the redirect can never be seen. They stay indexed indefinitely, frequently with no description. This is the trap that turns a temporary state into a permanent one.
- Unblock them, let the redirects be crawled and the URLs drop.
- Only then consider blocking, once they are gone.
- See robots.txt blocking Google.
Redirect chains
Old to interim to final. Each hop slows processing and some chains are not followed all the way. Flatten them so every old URL points directly at its destination.
The old site is still live
On a domain change, if the old domain still serves content rather than redirecting, both versions exist and both can be indexed. This sounds obvious and happens regularly.
Internal or external links still point at old URLs
Continued linking keeps old URLs in circulation. Update internal links to final destinations; you cannot control external ones, which is why redirects should stay in place for years.
What to do
- Export the old URLs still indexed from Search Console or a
site:search. - Test each pattern, not a sample, and confirm a single-hop 301 to a relevant destination.
- Confirm none are blocked in robots.txt.
- Confirm the new URLs are indexed, since the replacement matters more than the removal.
- Update internal links to point at final URLs.
- Then wait. Removal follows recrawling and cannot be forced.
What not to do
- Do not block old URLs in robots.txt. It prevents the redirect being seen.
- Do not use the removal tool as a fix. It is temporary and hides the symptom.
- Do not remove the redirects because the old URLs “should be gone by now”.
- Do not delete the old sitemap abruptly, since it helps Google find the URLs that need recrawling.
Frequently asked questions
How long should old URLs take to disappear?
Weeks for important pages, months for the long tail, longer on large sites. Persisting beyond a few months on a small site suggests a fault rather than a delay.
Should I use the removal tool?
Only as a temporary measure where an old URL is actively causing harm. It suppresses for around six months without fixing anything, and the underlying redirect still has to be correct.
Both old and new URLs rank. Is that bad?
It means consolidation has not happened, usually because the redirect is missing or blocked. Two versions competing is worse than either alone.
Can I speed it up?
Marginally, by requesting indexing on important new URLs and keeping the new sitemap accurate. The old URLs still have to be recrawled individually.
Consulting CTA
If old URLs are still indexed months after a migration, book an SEO consultation for a redirect and indexation review.