It happens because you have problems with wp-cron tasks or DNS configuration.
If you have your website hosted locally, often the domain name is just recorded in /etc/hosts file. This is normally okay for browser access (and this is why indexing is coming well but slow when your WP admin is open). But PHP can not read /etc/hosts by some reason and thus indexing procedure can not go internally.
Please read this solution and try it.
Please let me know if it helps or not.