ADBOT
SOLUCIONESMejorar mi visibilidad onlineFrenar el desperdicioAparecer en la IAMedir lo que importaIABlogHablemos →
BLOG / ¿QUÉ ES? · 3 MIN

Qué es el DOM o Document Object Model

Aprendé cómo un script mal optimizado frena la carga de tu web y qué hacer para que Google no te penalice por eso.

Emiliano Elías SOCIO FUNDADOR & HEAD OF SEO · ADBOT · 14 DIC 2017
Qué es el DOM o Document Object Model
EN 30 SEGUNDOS TL;DR

El DOM es el esqueleto de una página web y funciona como una interfaz de programación que permite a los navegadores crear, modificar y estructurar los elementos del código HTML y XML.

Para mejorar los tiempos de carga y el posicionamiento en Google, tenés que evitar que los scripts de JavaScript frenen la descarga del DOM; para eso, podés referenciar los archivos externos y usar el atributo async siempre que ese código no afecte al contenido principal que ve el usuario.

Si te estás metiendo en todo lo que es optimización de tiempos de carga de sitio, seguramente escuchaste hablar del Document Object Model, o DOM. El DOM es un API de la maqueta HTML y XML (¡cuántas siglas!). Vamos por parte. API significa Application Programming Interface y sirve para hacer lo que su nombre explica: interactuar con una aplicación a través de código. A través del DOM, los programadores pueden crear documentos, navegarlos y agregarle, editarle o quitarle elementos, modificar sus atributos y alterar sus valores. Hablando mal y pronto, el DOM es la estructura o esqueleto de tu página web.

Seguramente te estarás preguntando qué relación hay entre el DOM y los tiempos de carga de un sitio. Al cargar una página, hay gran cantidad de elementos que se descargan: código HTML, imágenes, JavaScripts, hojas de estilo CSS, etc. Todos estos elementos pueden ser factores que hagan que tu página cargue más lento. Y, debido a que para Google un tiempo de carga bajo influye en el posicionamiento de un sitio, es importante asegurarse de que nada frene al DOM.

Si bien hay un ida y vuelta con respecto a Google y JavaScript, sigue siendo muy importante y muchas veces nos vemos obligados a usarlo en nuestros sitios. Es importante recalcar que JavaScript no es malo para SEO siempre y cuando el contenido no se muestre a través de él. Por ejemplo, si queremos que una serie de dropdowns se vaya actualizando según la opción seleccionada en el dropdown anterior, vamos a tener que recurrir a JavaScript. Dicho esto, hay formas y formas de mostrar el código JavaScript en una página.

Cuando se carga una página, un tag <script> puede frenar la descarga del Document Object Model hasta que se termina de procesar y luego continúa. Esto puede ser problemático si se tiene un script pesado en el <head> del código o en la parte superior del <body> por encima del contenido principal de la página. De ser así, el contenido no sería visible hasta que el código termine de procesar. A todos nos sucedió el estar navegando en una página que carga y carga y después de unos segundos aparece todo el contenido, las imágenes, etc. de golpe. Lo más probable es que en casos como esos haya un script que esté frenando al DOM de cargar y mostrarse rápidamente.

También es recomendable referenciar aquellos archivos JavaScript extensos para no tener gran cantidad de código cargando en la página misma (y más todavía si ese script aparece en todas las páginas). Para ciertos casos, va a resultar necesario usar el atributo async dentro del tag <script> para indicarle al navegador que no detenga la carga del Document Object Model a causa de ese script. El atributo async sólo se puede utilizar en los scripts referenciados y no en los que figuran en la misma página. Debajo mostramos cómo asincronar un script correctamente.

<script src="miscript.js" async></script>

Si decidís usar el atributo async, no olvides que se debe aplicar únicamente al código JavaScript que no tenga impacto con el contenido que se muestra. Por ejemplo, si tenés en la parte superior de tu código un script cuya función es cambiar la hoja de estilo según un valor seleccionado previamente por el usuario y lo cargás de manera asíncrona, se va a ver un diseño y luego va a cambiar automáticamente (porque el script corrió cuando se terminó de cargar el DOM).

En resumen, si se desea tener un tiempo de carga de página rápido, el primer paso es no frenar al DOM. En siguientes posts vamos a explicar más acerca de cómo optimizar una página web para que cargue más rápido.

Esperamos que esta breve explicación acerca de qué es el DOM o Document Object Model haya servido para entender un poco más la importancia del mismo llegado la hora de reducir los tiempos de carga de un sitio.

ARCHIVADA EN ¿QUÉ ES? JavaScriptAPIDOM
ESCRIBE Emiliano Elías SOCIO FUNDADOR & HEAD OF SEO · ADBOT

Co-fundador y Head of SEO en ADBOT desde 2011. Empezó en 2001 en DeRemate.com, coordinó el área de SEO de Digital Ventures —después FOX— desde cero con más de 120 clientes, y fue Online Marketing Manager de los canales de FOX para Latinoamérica. También fue docente de SEO en DotZero entre 2010 y 2017.

Ver sus notas → LinkedIn

Una charla de 30 minutos. Venimos con preguntas.

Nos contás cómo funciona tu negocio. Te decimos qué haríamos primero y qué dejaríamos como está.

Agendar la charla