You have to wait, be sure there are no wrong links any more, send an
accurate sitemap, work on your content, and, did I mention wait?
That's totally true. You have to wait, wait and wait (Time is based on the quantity of the pages that no longer exist). Google have to recrawl a 404 / 410 webpage multiple times, before it is removed from the index. It took me more than 5 months to get rid of all old non existing links.
Considering your comment, there is one more thing you can do that is
considered to speed up things, not recovering the ranking, but making
those results disappear, create 301 redirections for all those false
results that you still see on Google to your homepage
I would not suggest that. It will not speed up things. It will make them more complicated.
Only if you have a new unique url for an old url, do a 301 redirection. Eg:
- mysite.com/sports.html [old]
- mysite.com/sports [new]
If your content does not longer exist (eg: deleted articles), then send a 410/404 error code (Not soft 404), and display a custom error page, in order to keep visitors a little longer on your website.
Do not redirect non existing pages to home page. It confuses both users and search engines (High bounce rate, low stay time, wrong keywords, and it may be a reason for deranking)
Let's say I am searching "Bind9 configuration tutorial".
I click at a link on Google with the title "How to install bind9", and then I don't see the article that I clicked to see, but I am automatically redirected to the home page. It's 100% sure that I will bounce, and I will continue my search to Google for other results related to my search.
For non existing pages, use custom error pages, and display useful information, not your menu or other random links, but links that are useful for the visitor. Try to provide some links that are related to the terms or the article that the visitor searched.
You could extract these terms, either by the url (if you use keywords on url) or either by the referral field, if the search engine sent the terms that the visitor searched.
From my experience when I did a redirection to the home page, users bounced a lot. Bounce is bad. But when I displayed custom error pages with interesting links, visitors clicked the links, did not bounce and they stayed longer on my website.
Also you can have a look at stackexchange error page. Try this url: