This one has been around and been an issue for some time now. The problem occurs usually in two different scenarios. (They actually relate though)
The first scenario is the most common and is also very easy to fix. It is very easy to over look your Alternate Access Mapping’s (AAM) and your search content sources. So what we end up with are two different settings. In our AAM we see http://portal.company.com and in our content source we are crawling http://servername
Very common indeed…Well just change your content source to crawl the FQDN in this case. You just need to make sure they match.
The next scenario is a little more tricky, but just as easy to fix. This time it happens when you have an http site redirecting to an https site. SO your AAM’s would have both reference for http and https. The problem is that the https AAM needs to be in the default zone. This would mean switching the https and the http zones so that you can crawl https. Your content source also needs to be crawling the https.
Those are the most common issues with this problem and worked for me.