Recently I came across a problem from one of my friends. Whenever he browses to Yahoo! in Internet Explorer it was showing Google’s favourite icon (Favicon) in browser address bar. He was confused. I then found the answer to the problem, which I am giving below.
When you navigate to a site, IE downloads the favicon and caches it in the temporary internet files folder, where this favicon will be assigned a unique name and mapped to its URL. So, for example, if you navigate to www.bing.com, IE will download the favicon from www.bing.com/favicon.ico and cache it as favicon.ico somewhere in the temporary internet files folder and map it to www.bing.com/favicon.ico.
Now if you somehow remove this favicon file from the temporary internet files folder, without removing the mapping to its URL, then the cache entry http://www.bing.com/favicon.ico will point to a non-existent file. Now say you navigate to my.yahoo.com, and IE downloads the favicon from http://my.yahoo.com/favicon.ico to the same favicon.ico file in the temporary internet file folder, then the cache entry www.bing.com/favicon.ico will be mapping to the yahoo favicon. So the next time you go on www.bing.com, IE will query the cache and incorrectly think that the favicon for this site has already been downloaded and is available on file. It will load the favicon.ico for my.yahoo.com, and hence the wrong favicon will be displayed.
Ordinarily you cannot remove a file from the Temporary internet files folder without also removing the file’s mapping. But you can do this by running the del /s command in command line or possibly by using 3rd party cache cleaning tools. Note that cleaning your temporary internet files folder through IE or the Internet Options Dialog will restore everything back to normal.