Google Chrome DNS Fetching
The Google Chrome web browser makes use of a feature called DNS fetching (sometimes also called DNS pre-resolving, or preloading) to improve the user experience while using the browser. The idea behind prefetching is that Chrome runs DNS queries to look up IP addresses of links found on the active web page, and that it may also preload certain content on linked resources.
The computer needs to resolve every domain name to an IP address to make a connection to that location (and all other elements that are linked on that page). It takes an average of about 250 ms to retrieve those information from websites that are accessed for the first time.
DNS Fetching retrieves the information prior to the user's click on a link on an already loaded page. This speeds up the loading of said resource by about 250ms according to Google, but that is only of use if users click on the link to load its resources.
That's one of the reasons why page loads feel faster in the Google Chrome web browser. DNS Prefetching is enabled in the Google Chrome browser by default.
Google changed prefetch related settings again in Chrome 73. Users who could disable the prediction service in previous versions of Chrome may notice that the option is not available anymore.
It seems that Google changed the name of the preference in the browser. You may want to do the following to disable preloading:
- Load chrome://settings/ in the browser's address bar.
- Scroll down to the end of the page and activate the Advanced link that is listed there.
- Locate the privacy and security section, and find "Preload pages for faster browsing and searching".
- If you set this to off, preloading is disabled. If you set this to on, it is enabled.
Chrome will look up IP addresses of page links and may even load the ones that have the highest probability of being followed. Downside to this is that websites and services that Chrome preloads may set cookies and read their own cookies, even if you never visit these sites.
Chrome will resolve all domain names on a loaded page even those that the user has no intention on clicking on.
Some users might want to prevent this as the preloading allows linked sites or resources to write cookies and read their own cookies which may be used for tracking.
The prefetched DNS records are also stored in the web browser and clearing the browsing data in the browser will not clear the prefetched data.
The data is however only stored per session meaning that it will automatically be deleted once the user closes the browser.
Page loading problems:
It happens that a web page does not load in Google Chrome displaying a "Oops! This link appears to be broken." message instead. Reloading the page does not seem to resolve the issue and clearing the browsing data does not resolve it as well. Other web browsers on the other hand load the website just fine.
This is an indication that DNS Prefetching may be the problem here. Google Chrome cannot load a website correctly if prefetching fails (for instance by resolving the wrong IP address). Closing and reopening the browser should resolve the issue. Users who experience broken links regularly might want to consider turning off the DNS prefetching feature to resolve the issue.
When you type about:dns in the address bar a list of pre-fechted DNS records is shown to you.
We have identified three problems with DNS Prefetching that we would like to address below:
You can disable DNS prefetching in Google Chrome in the following way:
- Load chrome://settings/ in the browser's address bar, and click on the "show advanced settings" link at the bottom of the page that opens.
- Locate "Use a prediction service to load pages more quickly" under Privacy, and remove the checkmark from the preference.
The following information apply only to outdated versions of Google Chrome.
The way pre-fetching can be disabled has changed. Load chrome://settings/ in the browser, click on show advanced settings at the bottom and uncheck the "prefetch resources to load pages more quickly" option there.
DNS Prefetching can be configured in the Options of the Google Chrome browser. A click on the Tool icon in the address bar and the selection of Options from the context menu will open the Options window.
Switch to the Under The Hood tab and look for the "Use DNS pre-fetching to improve page load performance" entry.
Should you keep the feature turned on?
That really depends. If you are experiencing page loading errors regularly you might want to consider turning it off.
If you think it is a privacy issue you should also turn it off. Everyone else benefits from the speed gains on the other hand (you might want to benchmark those).
If you are a Chrome user: Are you using DNS Prefetching? What is your experience with it?Advertisement