Hay un montón de diferentes optimizaciones que usted puede hacer cuando se trata de WordPress, y algunas son más importantes que otras. Un factor que a menudo se pasa por alto es los tiempos de búsqueda asociados con DNS, y el gran impacto que tienen en su sitio. Al igual que con la latencia TTFB y la latencia de la red, es una pieza importante del rompecabezas cuando se trata de calcular el total de los tiempos de carga de la página. Así que hoy vamos a sumergir en algunas recomendaciones sobre cómo reducir las búsquedas de DNS y acelerarlas, y cómo influye en el rendimiento de su sitio WordPress.

¿Qué Es Búsqueda de DNS?

Para mostrarle lo que es una búsqueda de DNS, primero debe entender cómo funciona el DNS. DNS (sistema de nombre de dominio) es esencialmente la columna vertebral del internet. Una referencia común para explicar cómo funciona el DNS es pensar en él como un directorio telefónico para la world wide web. Cada sitio web y dominio que usted visita es asignado a una dirección IP.

Cuando usted escribe Google.com en la barra de direcciones, se realiza una consulta DNS de su ISP para solicitar los servidores de nombres asociados con el dominio. La asignación de la dirección IP se realiza detrás de las escenas con el servidor que le permite utilizar el nombre de dominio para acceder a él. Sin DNS usted tendría que escribir algo como 216.58.217.206 para llegar a Google. ¡¿Acaso eso no sería divertido?!

Cómo funciona el DNS
Cómo funciona el DNS

Cuando usted visita un sitio web, una búsqueda de DNS tiene que ser hecha para cada dominio que se solicite antes de que algo sea descargado. Sin embargo, una búsqueda de DNS no tiene que realizarse en cada recurso. Así, por ejemplo, digamos que tenemos las siguientes solicitudes HTTP:

https://wpdev.ink/

https://js.stripe.com/v3/
https://cdn.wpdev.ink/wp-content/themes/twentyseventeen/assets/images/header.jpg
https://cdn.wpdev.ink/wp-content/themes/twentyseventeen/assets/js/skip-link-focus-fix.js
https://cdn.wpdev.ink/wp-content/themes/twentyseventeen/assets/js/global.js
https://cdn.wpdev.ink/wp-content/themes/twentyseventeen/assets/js/jquery.scrollTo.js
https://cdn.wpdev.ink/fonts/open-sans-v13-latin-regular.woff2
https://cdn.wpdev.ink/fonts/open-sans-v13-latin-700.woff2

Aunque hay un total de ocho solicitudes de HTTP, sólo hay un total de tres dominios únicos. Lo que significa que hay tres búsquedas DNS.

https://wpdev.ink

https://js.stripe.com
https://cdn.wpdev.ink

No puedes visitar un sitio web sin acceder primero a un Servidor de Nombres de Dominio (DNS). Si se producen problemas con el DNS, es posible que te encuentres con el error «El servidor DNS no responde«, que significa que el sistema de nomenclatura descentralizado responsable de convertir los nombres de host en direcciones IP no ha respondido.

Búsquedas DNS en Pingdom

A continuación, se muestra cómo las solicitudes mencionadas aparecen en  Pingdom la herramienta de prueba de velocidad. DNS es representado como la barra de color rosa y se mide en ms. La primera vez que ejecuta su sitio web a través de Pingdom, realiza una mirada fresca, y tiene que consultar el registro DNS de cada dominio para obtener la información de IP. Observe que no tiene que consultar DNS varias veces en el dominio cdn.wpdev.ink. Así es como funciona el DNS. Sólo tiene que consultar un dominio una vez. Así que hay un total de 8 peticiones a continuación, pero sólo 3 búsquedas de DNS.

Estas búsquedas DNS genera tiempo de carga adicional, debido al hecho de que no puede cargar nada hasta que las búsquedas de DNS estén acabadas. Observe a continuación que la búsqueda de DNS en la URL de la CDN duró más de 300 ms. Y eso no incluye las búsquedas sobre wpdev.ink o js.stripe.com. Así que usted puede ver cómo esto puede sumar con el tiempo.

Búsquedas de DNS en Pingdom
Búsquedas de DNS en Pingdom

Cuando se ejecuta su sitio web a través de Pingdom más de una vez, ésta almacena el DNS porque ya sabe la información IP y no tiene que realizar de nuevo la búsqueda. Esta es la razón por la cual su sitio web aparece más rápido después de ejecutarlo a través de Pingdom varias veces. Como puede ver en la siguiente pantalla, en la segunda prueba, el tiempo de búsqueda de DNS en la URL de la CDN es 0 ms. Esta es una zona que mucha gente malinterpreta. Pero no se preocupe, profundizaremos más en la cache de DNS a continuación.

Cache de DNS en Pingdom
Cache de DNS en Pingdom

Búsquedas de DNS en GTmetrix

Cada herramienta de prueba de velocidad de sitios web funciona un poco diferente, pero casi todos ellos calculan tiempos de búsquedas de DNS para usted. A continuación, se muestra cómo las mismas peticiones aparecen en GTmetrix. DNS es representado como la barra verde y medido en ms.

Búsquedas de DNS en GTmetrix
Búsquedas de DNS en GTmetrix

Búsquedas de DNS en WebPagetest

Aquí se muestra un ejemplo utilizando WebPageTest. Realmente tienen un resumen rápido de los detalles de la solicitud en la que puede hacer clic en la columna «DNS lookup» y filtrarla según los tiempos de respuesta más altos. Ejecutamos usatoday.com a través de la herramienta como un ejemplo, y el tiempo de búsqueda de DNS solamente tomó 6,5 segundos!

Es bastante común para muchos de estos sitios de noticias no ser altamente optimizados gracias a todas sus solicitudes externas. Pero como puede ver, el tiempo de búsqueda de DNS en su sitio probablemente tomó más tiempo que la carga de sitios enteros de la mayoría de las personas. Esta es la razón por la que DNS importa.

Largos tiempos de búsqueda DNS (webpagetest)
Largos tiempos de búsqueda DNS (webpagetest)

Cómo Reducir Y Acelerar Las Búsquedas De DNS

Ahora que ya sabe un poco más acerca de cómo funciona el DNS, le mostraremos algunas recomendaciones sobre cómo reducir la velocidad de las búsquedas de DNS y acelerarlas en su sitio WordPress. En algunas herramientas de prueba de velocidad, esto también se refiere a veces como «Minimizar las búsquedas de DNS».

Minimizar las búsquedas DNS en Pingdom
Minimizar las búsquedas DNS en Pingdom

Consejo 1: Use un Proveedor de DNS Rápido

Es importante entender que, al igual que ocurre con el hosting, hay proveedores de DNS más rápidos y más lentos. Esta debe ser una de las primeras cosas que corregir.

Normalmente el DNS gratis proporcionado por registradores de dominios como GoDaddy y Namecheap es muy lento. Generalmente los proveedores DNS funcionan exactamente igual que una CDN, tienen múltiples POPs alrededor del mundo. Grandes proveedores de DNS como Amazon, Cloudflare, Dyn y DNS Made Easy, todos tienen una infraestructura masiva de DNS diseñada específicamente para entornos de baja latencia.

Ejecutamos unas pruebas para comparar las velocidades de algunos de los más conocidos proveedores de DNS. Hemos utilizado la herramienta de desempeño de KeyCDN así como la prueba de velocidad de SolveDNS, y tomamos el promedio. Se midieron las velocidades desde múltiples ubicaciones en todo el mundo. Como puede ver, excepto Cloudflare, los proveedores de DNS gratuitos son definitivamente más lentos. Es por eso que si usted es serio acerca de su negocio y sitio web le recomendamos ir con un  proveedor de DNS premium.

Velocidades de proveedores de DNS
Velocidades de proveedores de DNS

Algunos de los proveedores anteriores también son más rápidos que otros en ciertas regiones, por lo que es importante determinar dónde necesita tiempos de búsqueda de DNS rápidos, regional o globalmente. DNSPerf es otra herramienta de comparación de velocidad de DNS nueva que puede utilizar a la hora de elegir un proveedor. ¿Sabía que también puede usar DNS de Cloudflare sin su funcionalidad de CDN?

Consejo 2: Cambio de valores TTL para Tomar Ventaja de la Cache de DNS

Afortunadamente, como hemos mencionado anteriormente, debido a la cache de DNS usted no tiene que preocuparse acerca de las búsquedas sucediendo en cada carga de página. Se trata realmente de las solicitudes de primera vez. La cache de DNS funciona de manera similar a cómo se almacena en cache su sitio WordPress. Se sirve de la cache de DNS hasta que caduque. La duración de la caché del DNS está determinada por lo que se llama valor TTL (Time to Live). Cuanto mayor sea el TTL, menos probable será que el navegador tendrá que realizar otra búsqueda de DNS.

Pueden cambiarse los valores TTL con su registrador de dominios o proveedor de DNS de terceros para mejorar sus tiempos de la cache de DNS. Es importante señalar que los proveedores de servicios de internet también hacen almacenamiento de cache de DNS. A continuación, se presentan algunos valores TTL comunes.

  • 300 segundos= 5 minutos
  • 1800 segundos= 30 minutos
  • 3600 segundos= 1 hora
  • 43200 segundos= 12 horas
  • 86400 segundos= 24 horas
TTL de Cloudflare
TTL de Cloudflare

30 minutos a una hora normalmente son los valores TTL más comúnmente utilizados. Sin embargo, algunos también establecen su TTL muy bajo para permitir actualizaciones rápidas. Cloudflare es un ejemplo de que va por defecto a 5 minutos si utiliza su TTL automático. También puede ser beneficioso mirar los diferentes tipos de registros de DNS y establecer en consecuencia basando en la frecuencia de cambio. Aquí está un ejemplo:

  • Registros A y AAAA: Cambiar con más frecuencia, desde 5 minutos hasta una hora habitualmente está bien
  • Registros CNAME: Casi nunca cambian, un alto TTL como 24 horas generalmente está bien
  • Registros NS: Casi nunca cambian, un TTL más alto, como 24 horas, por lo general está bien.
  • Registros MX: Cambia menos frecuentemente, un alto TTL como 12 horas generalmente está bien
  • Registros TXT: Cambiar menos frecuentemente, un alto TTL como 12 horas generalmente está bien

Realmente no hay una respuesta correcta o incorrecta cuando se trata de TTL. Pero puede mejorar sus tiempos de búsquedas de DNS eligiendo un TTL que coincida con la frecuencia de los cambios hechos en su sitio.

Consejo 3: Reduzca el Número de Dominios (hostnames)

La manera más fácil de reducir las búsquedas de DNS de su sitio es simplemente deshacerse de las peticiones que consultan diferentes nombres de alojamiento. Recuerde, las búsquedas de DNS no se tratan del número de solicitudes, sino sobre el número de dominios diferentes. Ejecute a su sitio WordPress a través de una herramienta como Pingdom y determine si cada petición es realmente necesaria. Debido a que DNS es una asignación de un nombre de alojamiento a una dirección IP, ¿usted podría preguntarse por qué la gente no sólo apunta a una dirección IP en su lugar? Esto es porque la dirección IP puede cambiar con frecuencia, mientras que los nombres de alojamiento no lo harán.

Consejo 4: Utilice los Servicios Alternativos con DNS Más Rápido

Mientras que simplemente reducir el número de dominios (hostnames) es más fácil de decir que de hacer, recomendamos mirar primero a aquellos con mayores tiempos de búsqueda DNS. Por ejemplo, en este sitio que probamos a continuación, podemos ver fácilmente que el tiempo de búsqueda de DNS para el script de rastreo de Crazy Egg fue mucho más que otros. Esto es más probable debido a que su proveedor de DNS no es tan rápido como algunos de los otros.

Encontrar largos tiempos de búsqueda DNS
Encontrar largos tiempos de búsqueda DNS

Este es un escenario donde quizás usted podría buscar a otros proveedores como Hotjar, que proporciona el mismo servicio, pero quizás esté utilizando un proveedor de DNS más rápido. Puede ser muy importante cuando esté añadiendo servicios externos a su sitio WordPress que evalúe su desempeño.

Consejo 5: Mover y alojar recursos en una CDN

Una de las maneras más fáciles para reducir las búsquedas de DNS es mover tantos recursos como pueda a su proveedor de CDN. Si ejecuta su sitio a través de Pingdom, puede ver el número total de solicitudes de dominio. Como puede ver en este ejemplo, el 93.8% de las solicitudes son para la URL de la CDN. Hay una solicitud para el alojamiento, y una a Google Analytics. Moviendo tantos recursos a la CDN como sea posible, reduce el número de búsquedas de DNS involucradas, por lo tanto disminuye los tiempos de carga.

Peticiones por dominio
Peticiones por dominio

Ahora, por supuesto, no siempre será posible mover todo a su CDN. Siempre habrá algunos recursos externos o servicios que requieran que usted los cargue desde sus servidores. Pero recomendamos mirarlos a través de su sitio web. Muchas veces, vemos que los usuarios de WordPress tienen un montón de recursos no correctamente alojados en su CDN. Al hacer esto, usted también puede tomar ventaja de HTTP/2 y paralelización. A continuación se presentan algunos recursos que a menudo vemos que podrían ser mejorados:

Font Awesome

A veces podemos ver los desarrolladores de plugins y temas incluido Font Awesome en sitios WordPress, pero a veces los ponen en cola de tal manera que por defecto un plugin como CDN enabler no lo tomará. En este caso, recomendamos contactar al desarrollador para preguntarle cómo usted puede cargar desde su CDN.

Otro escenario común con Font Awesome es que, a veces, es cargado desde el BootstrapCDN por defecto (MaxCDN). Si bien no hay nada malo con esto, esto agrega otra búsqueda de DNS que no necesita. Sería mejor en la mayoría de los casos cargar Font Awesome desde su propia CDN de modo que no haya otra búsqueda.

Gravatars

Si usted está usando comentarios nativos de WordPress puede tener una búsqueda adicional a secure.gravatar.com para cargar los gravatars. Una solución fácil a este problema podría ser utilizar el plugin de comentarios de carga diferida. Mientras que esto no reducirá las búsquedas de DNS, la retrasará hasta que el usuario se desplace hacia abajo en la página. Por tanto, en cierto sentido, usted está reduciendo las búsquedas DNS en primera página de carga. Asegúrese de visitar nuestro blog sobre otras maneras de acelerar comentarios.

Google Fonts

Con Google Fonts usted tiene una petición extra a DNS para buscar fonts.googleapis.com para agarrar el archivo CSS. Después usted tiene peticiones adicionales para fonts.gstatic.com para descargar los archivos fuente. Cuando aloja localmente todas las peticiones del mismo dominio o CDN, lo más probable es que no necesite otro archivo CSS ya que estará dentro del archivo CSS de su tema de WordPress. Hay pros y los contras de hacerlo, pero eche un vistazo a nuestro artículo en profundidad sobre cómo alojar fuentes localmente.

Búsqueda de DNS de Google Fonts
Búsqueda de DNS de Google Fonts

Font Awesome, Gravatars, y Google Fonts son sólo un par de ejemplos de cómo se puede reducir las búsquedas de DNS, asegurando que se estén cargando desde su CDN. ¿Actualmente está cargando todo lo posible desde su CDN? Siempre es bueno echar un vistazo.

Consejo 6: Aproveche DNS Prefetching

Otra sugerencia para acelerar el DNS es utilizar DNS prefetching. Esto permite que el navegador realice búsquedas de DNS en una página en segundo plano. Puede hacerlo agregando algunas líneas de código al encabezado de su sitio WordPress. Vea algunos ejemplos a continuación.

<!-- Prefetch DNS for external assets -->
<link rel="dns-prefetch" href="//fonts.googleapis.com">
<link rel="dns-prefetch" href="//www.google-analytics.com"> 
<link rel="dns-prefetch" href="//cdn.domain.com">

DNS prefetching también es soportado por todos los principales navegadores excepto iOS Safari, Opera Mini, y navegador Android.

Compatibilidad de DNS prefetch con navegadores
Compatibilidad de DNS prefetch con navegadores

O si está ejecutando la versión de WordPress 4.6 o posterior, es posible que desee utilizar sugerencias de recursos. Los desarrolladores pueden usar el filtro wp_resource_hints para añadir dominios y URL personalizados para dns-prefetch, preconnect, prefetch, o prerender.

Consejo 7: Diferir la Carga de JavaScript

Si difiere la carga de JavaScript, esto puede prevenir la carga de las cosas hasta después de que se haya cargado completamente el documento. Esto no va a reducir el número de búsquedas de DNS necesario, pero les impedirá ser llamado inmediatamente, lo que puede acelerar la experiencia del usuario. Varvy tiene una gran explicación de cómo diferir JavaScript. Un ejemplo que usa en su sitio es su script de Google Analytics, ya que no hay ninguna razón para que cargue la parte above de fold.

En WordPress, puede utilizar un plugin gratuito como Async JavaScript para diferir la carga de JavaScript. Sin embargo, es importante saber que lo más probable es que usted tenga que ir a través de la lista y scripts que le gustaría excluir de ser diferidos. ¿Por qué? Porque algo de JavaScript será necesario para visualizar above the fold. Async JavaScript es también totalmente compatible con el plugin Autoptimize.

Diferir el JavaScript en WordPress
Diferir el JavaScript en WordPress

Asegúrese también de comprobar nuestra publicación en profundidad sobre cómo eliminar los bloquedores de visualización JavaScript y CSS.

Consejo 8: Aproveche los ANAME Récords y CNAME Flattening

Hay récords adicionales de proveedores como DNS Made Easy y Cloudflare que pueden ayudar a reducir el número de peticiones en el backend.

ANAME Récords con DNS Made Easy

ANAME récords le proporcionan la funcionalidad de un CNAME récord, pero en el nivel raíz. Así, por ejemplo, digamos que usted tiene un CNAME configurado para www.domain.com. El www primero tiene que resolver el nombre de alojamiento y después, resolver la dirección IP. Esto requiere dos peticiones. ¡Con un registro ANAME puede saltar una de estas peticiones! Si se instalan correctamente estas también pueden utilizarse en combinanción con una CDN.

CNAME

ANSWER SECTION:
www.domain.com. 1799 IN CNAME domain.com.
domain.com. 1799 IN A 192.168.1.2

ANAME

ANSWER SECTION:
www.domain.com. 1799 IN A 192.168.1.2

Sin embargo esto no es siempre cierto, si el nombre de host está en la misma zona de DNS, el A récord puede ser recuperado por la misma solicitud.

CNAME Flattening Con Cloudflare

Como en el caso de ANAME récords, Cloudflare proporciona CNAME Flattening automático en la zona apex (o raíz) para sus clientes.

Resumen

DNS es a menudo uno de los factores de rendimiento que se pasa por alto, pero puede contribuir fácilmente a una gran parte de su tiempo de carga total si no tiene cuidado. Es importante entender cómo funciona el DNS, que hay proveedores más rápidos y más lentos, y cómo se puede reducir la velocidad de las búsquedas en su sitio.

¿Tiene sugerencias adicionales para acelerar o reducir las búsquedas de DNS? Si es así, nos encantaría oír acerca de ellas más adelante en los comentarios!

Brian Jackson

Brian tiene una gran pasión por WordPress, lo ha estado utilizando durante más de 10 años e incluso ha desarrollado un par de plugins premium. Brian disfruta de los blogs, las películas y el senderismo. Conéctese con Brian en Twitter.