Es una forma de acelerar las páginas web mediante la resolución previa de DNS.
El uso de rel=dns-prefetch sugiere que un navegador debería resolver el DNS de un dominio específico antes de que sea llamado explícitamente.
<link rel="dns-prefetch" href="https://cdn.varvy.com">
El código antedicho está diciendo básicamente…
- Quiero resolver un nombre de dominio antes de que se llame
- El nombre de dominio es «cdn. varvy. com»
Propósito
La razón principal por la que rel=dns-prefetch existe es para acelerar la forma en que las páginas web se cargan cuando están usando diferentes dominios para recursos de página.
Puede lograr ganancias de velocidad de página controlando eficazmente la forma en que se realizan los tiempos de consulta del DNS.
Este proceso a menudo se llama «prefetching DNS».
Definición de W3C
«El tipo de relación de enlace dns-prefetch se utiliza para indicar un origen que se utilizará para buscar los recursos requeridos, y que el agente de usuario debe resolver lo antes posible». 1
¿Dónde se utiliza rel=»dns-prefetch»?
Se utiliza en la cabecera de un documento HTML.
La resolución DNS es una parte conocida y necesaria de una carga de página
En la vida podemos estar seguros de la muerte y los impuestos.
En la velocidad de página, puede estar seguro de una búsqueda DNS por dominio.
Esto significa que si sus recursos de la página se encuentran en tres dominios, entonces usted tendrá un mínimo de tres búsquedas DNS. Si utilizas recursos de diez dominios entonces tendrás como mínimo diez búsquedas DNS.
Esta es la razón por la que la mejor práctica de la velocidad de página para minimizar las peticiones DNS es tan importante (pero desafortunadamente a menudo ignorada).
¿En qué es útil la preconfiguración de DNS?
Vale, digamos que tienes un montón de archivos js en tu CDN que se usan para cargar tus páginas y también tienes algunas cosas de terceros que llaman js desde otro dominio (adsense, seo tools, herramientas de marketing, etc.).
En realidad, es probable que usted no sepa qué cosas el navegador intentará cargar primero en tal escenario.
Pero lo que sí sabes es que definitivamente estarás usando tu CDN, pero no qué archivo primero.
En esta situación, la preconfiguración de DNS es perfecta porque todo lo que rel=dns-prefetch está haciendo es resolver el DNS, no agarrar un archivo.
Esto significa que cualquiera que sea el archivo real que el navegador obtenga primero, ya tendrá el DNS resuelto para que el recurso pueda recuperarse más rápido.
DNS prefetching básicamente le da un mayor control de cómo se carga su página al «insinuar» al navegador lo que debe hacer en lugar de dejarlo al azar.
¿Dónde no es útil la preconfiguración de DNS?
Si todos los recursos de su página proceden de ese mismo dominio que su html.
Si el navegador tiene su HTML entonces ya ha resuelto los DNS para ese dominio. Si todas sus imágenes y scripts y css vienen de ese mismo dominio, entonces no hay necesidad de resolver el dominio de nuevo. De hecho, sería malo hacerlo.
A menudo es mejor tener una página bien planificada que introducir un pre-fetching de cualquier tipo.
Antes de preconfigurar el DNS, es posible que desee explorar la idea bastante simple de reducir la cantidad de dominios que su página está llamando.
Sé que esto no es posible para todos y para cada sitio, pero simplemente hazte estas tres preguntas…
- ¿Tengo algunos de los recursos de mi página en diferentes dominios?
- ¿Mis recursos son llamados uniformemente?
- ¿Puedo reducir la cantidad de dominios desde los que estoy llamando a recursos?
1. ¿Tengo algunos de los recursos de mi página en diferentes dominios?
Si su archivo HTML está en example. com y su CSS está en cdn. example. com, y sus imágenes vienen de 1234bucket. cdn. com, entonces usted está proporcionando recursos de tres dominios diferentes y puede que desee considerar la posibilidad de llevar todos estos a un dominio.
2. ¿Mis recursos son llamados uniformemente?
Si estás llamando a un archivo CSS desde «www.example.com» y a otro desde «example. com» necesitas aclarar eso y asegurarte de que todos los recursos están siendo llamados desde la versión www o desde la versión no www de tu dominio.
Lo mismo se aplica a https vs http. Es muy común ver algunos recursos provenientes de http en un sitio https.
3. ¿Puedo reducir la cantidad de dominios desde los que estoy llamando a recursos?
Comprueba si tus páginas están llamando a cosas que ni siquiera se usan en una página. Cosas como fuentes de iconos, plugins, botones sociales, etc. a menudo no se utilizan en todas las páginas, pero de todos modos se están llamando.
Sepa lo que sus páginas están cargando – ejecútelo a través de la herramienta de recursos de página para ver los diferentes dominios desde los que está llamando a las cosas.