
There are several reasons why you may not see dynamic results from Google Instant . Connection speed If you 're searching from a particularly slow Internet connection , you wo n't see results as you type because we do n't want to slow down your search experience . Similarly , if we have historical evidence that the network you 're on tends to be slow , we 'll show you the normal search experience to prevent any possible speed issues . If you 'd prefer to see results as you type anyway , or if you do n't think your connection speed is an issue , you can opt in to seeing dynamic results whenever you 'd like . Just click the Instant link next to the search box , or visit your Preferences page . In addition , if we later identify that your connection becomes stronger , you might start to once again see results as you type . Availability and other issues It 's possible that unexpected issues prevent you from seeing results as you type . For instance , requests from your connection might fail , you might have proxy issues , or your Internet connection could drop mid-search . Try pressing Enter or clicking the " Search " button to see results . If you 're redirected to an error page or other results page , try refreshing the page or going back to the Google homepage . Certain queries If you 're used to seeing results as you type , note that certain types of search queries that could be inappropriate will not trigger automatic results . In these situations , you 'll see a message asking you to click Enter to perform the search . Your preferences and search behavior In addition , you wo n't see results appear as you type if any of the following is true : you search from a page that 's not the Google homepage or a search results page you search from your iGoogle page rather than the classic homepage you search using Google SSL you use an Internet browser that 's not one of these supported browsers : Firefox 3 and later versions , Safari 5 for Mac and later versions , Internet Explorer 8 , and Google Chrome 5 and later versions you search a Google property ( linked to in the side panel ) that does not yet support Google Instant you previously disabled autocomplete you previously opted out of Google Instant you use a Google domain or interface language that does not yet support Google Instant 