Las páginas web se fu­n­da­me­n­tan en es­tru­c­tu­ras de datos. El código HTML es en sí un sistema de marcas o etiquetas (tags en inglés) mediante las cuales se organizan fra­g­me­n­tos de texto según de­te­r­mi­na­das ca­te­go­rías, pe­r­te­ne­n­cias o formas de pre­se­n­ta­ción. Mediante estas etiquetas los de­sa­rro­lla­do­res web definen párrafos, títulos, enu­me­ra­cio­nes, enlaces, subrayan o destacan palabras mediante elementos de formato como cursiva o negrita, y señalan elementos como gráficos, tablas o vídeos. Los programas que tienen que in­te­r­pre­tar esta in­fo­r­ma­ción reciben, así, in­fo­r­ma­ción detallada sobre la es­tru­c­tu­ra de un documento HTML y sobre cómo han de re­pre­se­n­tar los elementos marcados con una de­te­r­mi­na­da etiqueta. Sin embargo, estos mismos programas no pueden in­te­r­pre­tar el contenido de estos elementos.

Tomemos como ejemplo la pu­bli­ca­ción de una noticia: la imagen de la izquierda muestra qué in­fo­r­ma­ción entiende el navegador y la de la derecha cómo in­te­r­pre­ta­ría el artículo una persona:

Mientras que un usuario entiende a primera vista que el headline es el título del artículo, el sub­hea­d­li­ne el autor y el elemento en cursiva la fecha de pu­bli­ca­ción, un programa que in­te­r­pre­ta la página solo entiende la in­fo­r­ma­ción que le pro­po­r­cio­na el código HTML, esto es: Headline (<h1>), Sub­hea­d­li­ne <h2>, Italic <i>.

Esto se vuelve es­pe­cia­l­me­n­te im­po­r­ta­n­te cuando este programa es el crawler de un buscador que ha de valorar la re­le­va­n­cia de la página para la búsqueda. Es por esto que muchos we­b­ma­s­te­rs elaboran sus do­cu­me­n­tos en HTML con in­fo­r­ma­ción semántica adaptada a la capacidad de in­te­r­pre­ta­ción de las máquinas y a través de la cual se pueda definir la im­po­r­ta­n­cia de cada contenido. Se habla aquí de los datos es­tru­c­tu­ra­dos.

¿Para qué se usan los datos es­tru­c­tu­ra­dos?

Esta idea de es­tru­c­tu­rar los datos de las páginas web de manera que las máquinas in­te­r­pre­ten co­rre­c­ta­me­n­te co­n­te­ni­dos ela­bo­ra­dos por personas es la premisa principal de la de­no­mi­na­da web semántica. Esto resulta muy relevante en el caso de bu­s­ca­do­res basados en texto como Google, Bing o Yahoo. Con su co­rre­s­po­n­die­n­te eti­que­ta­do, los robots de estos bu­s­ca­do­res tienen la capacidad de evaluar in­fo­r­ma­ción semántica y tra­n­s­fo­r­mar­la en formas de re­pre­se­n­ta­ción propias como Knowledge Graph (gráfico de co­no­ci­mie­n­to de Google), marcado en verde en la imagen, o en rich snippets, como este marcado en rojo en el ejemplo. Estos últimos son de especial im­po­r­ta­n­cia para los ad­mi­ni­s­tra­do­res de páginas web.

Los rich snippets son extractos de contenido que aparecen en las listas de re­su­l­ta­dos (SERP) aco­m­pa­ña­n­do al URL, al título y a la de­s­cri­p­ción. Para poder mostrarse así, los co­n­te­ni­dos más re­le­va­n­tes han de estar eti­que­ta­dos en código HTML y formar parte de una de­te­r­mi­na­da categoría de in­fo­r­ma­ción. Ac­tua­l­me­n­te, Google in­te­r­pre­ta datos es­tru­c­tu­ra­dos para mo­s­trar­los en rich snippets en las si­guie­n­tes ca­te­go­rías:

  • In­fo­r­ma­ción sobre el producto: precio, di­s­po­ni­bi­li­dad, va­lo­ra­ción y co­me­n­ta­rios de usuarios
  • Recetas: imagen, tiempo de ela­bo­ra­ción, calorías y va­lo­ra­ción
  • Va­lo­ra­cio­nes de usuarios: re­s­tau­ra­n­tes, películas, comercios
  • Eventos: musicales, co­n­cie­r­tos, ex­po­si­cio­nes o fe­s­ti­va­les incluida la fecha
  • Software: va­lo­ra­ción, precio, co­me­n­ta­rios de usuarios
  • Vídeos: de­s­cri­p­ción y vista previa
  • Noticias: titular, fecha de pu­bli­ca­ción, in­fo­r­ma­ción sobre el autor e imagen

Para los ad­mi­ni­s­tra­do­res de páginas web, la ventaja de los rich snippets es clara, pues llaman más fá­ci­l­me­n­te la atención del usuario al usar vi­si­ble­me­n­te más espacio, au­me­n­ta­n­do la ratio de clics. Esta re­pre­se­n­ta­ción visual de la página en las SERP se puede ampliar también con las llamadas Brea­d­cru­m­bs (miga de pan) y la Sitelinks Search Box.

Según propias de­cla­ra­cio­nes de Google, cuando la in­fo­r­ma­ción de una página se muestra como una sitelinks search box (caja de búsqueda con enlaces a la web) significa que, aunque la dirección de la página se deduce fá­ci­l­me­n­te del término de búsqueda, no ocurre lo mismo con la intención de la pregunta, que es el objetivo del usuario dentro de la página. Así, mostrando el resultado con enlaces directos a las su­b­pá­gi­nas más re­le­va­n­tes de la web, el usuario se ahorra clics in­ne­ce­sa­rios para explorar la página, ha­cié­n­do­lo desde la misma lista de re­su­l­ta­dos. Para los ad­mi­ni­s­tra­do­res web, estos enlaces traen consigo la ventaja de que un resultado extendido con estos elementos de in­fo­r­ma­ción adicional llamará más la atención.

Los brea­d­cru­m­bs, por su parte, po­si­cio­nan la página mostrada en los re­su­l­ta­dos en el contexto de la página web, pro­po­r­cio­na­n­do al usuario una orie­n­ta­ción (de aquí el nombre de "miga de pan" usado para definir a esta línea de na­ve­ga­ción):

Los re­su­l­ta­dos que se mostrarán ampliados dependen bá­si­ca­me­n­te de cómo los in­te­r­pre­ta el buscador. Por eso, se re­co­mie­n­da marcar la página web ade­cua­da­me­n­te, ya que los bu­s­ca­do­res necesitan datos es­tru­c­tu­ra­dos para poder generar rich snippets, brea­d­cru­m­bs o sitelinks.

Cómo es­tru­c­tu­rar los datos de una página web

Los we­b­ma­s­te­rs disponen desde hace algún tiempo de tres formatos estándar para organizar los co­n­te­ni­dos en datos es­tru­c­tu­ra­dos: mi­cro­fo­r­ma­tos, mi­cro­da­tos y RDFa. Los tres formatos de es­tru­c­tu­ra­ción de datos se basan en marcas se­má­n­ti­cas que pueden ser rea­li­za­das en código HTML. Según el formato, se usan atributos HTML clásicos o elementos nuevos. Desde hace algunos años y de forma creciente también se usa el formato JSON-LD, que, al contrario que los otros tres, no se basa en HTML.

Mi­cro­fo­r­ma­tos

Este formato se usa para la anotación semántica de do­cu­me­n­tos HTML y XHTML, y en él se usan atributos clásicos como class, rel y rev, los cuales son fá­ci­l­me­n­te in­te­r­pre­ta­bles por los crawlers para extraer in­fo­r­ma­ción semántica sencilla. Una forma muy típica de aplicar este formato es para definir datos de contacto con el mi­cro­fo­r­ma­to hCard, que se integra en el código HTML como class="vcard".

Eti­que­ta­do clásico de datos de contacto en código HTML

01<div>
02<div>Nombre Apellido</div>
03<div>Empresa</div>
04<div>Número de teléfono</div>
05<a href="http://paginaweb.es/">http://paginaweb.es/</a>
06</div>

Eti­que­ta­do de los datos de contacto con el mi­cro­fo­r­ma­to hCard

01<div class="vcard">
02<div class="fn">Nombre Apellido</div>
03<div class="org">Empresa</div>
04<div class="tel">Número de teléfono</div>
05<a class="url" href="http://paginaweb.es/">http://paginaweb.es/</a>
06</div>

Mientras que en código HTML los datos de contacto solo se podían marcar como elementos div, el mi­cro­fo­r­ma­to hCard, mediante el atributo de HTML class="vcard", permite marcar datos como nombre, or­ga­ni­za­ción o número de teléfono como in­fo­r­ma­ción semántica.

Los mi­cro­fo­r­ma­tos permiten usar atributos conocidos de HTML, pero esto es, al mismo tiempo, lo que limita sus po­si­bi­li­da­des de eti­que­ta­do, ya que el número de elementos ya está definido y no se puede ampliar. Otra de­s­ve­n­ta­ja es que la uti­li­za­ción de atributos class puede llevar a co­n­fli­c­tos con CSS. Tampoco soporta una interfaz de pro­gra­ma­ción de apli­ca­cio­nes (API) para la ab­s­tra­c­ción de datos.

RDFa

El W3C re­co­mie­n­da el formato RDFa (Resource De­s­cri­p­tion Framework in At­tri­bu­tes) para integrar elementos de RDF en código HTML, XHTML y XML. En lugar de usar clásicos atributos HTML, RDFa introduce atributos nuevos que permiten una anotación semántica más compleja. En el siguiente ejemplo se muestran los datos de contacto como datos es­tru­c­tu­ra­dos en formato RDFa:

Anotación de los datos de contacto con RDFa

01<div xmlns:v="http://rdf.data-vo­ca­bu­la­ry.org/#" typeof="v:Person">
02<div property="v:name">Nombre Apellido</div>
03<div property="v:af­fi­lia­tion">Empresa</div>.
04<div property="v:tel">Número de teléfono</div>
05<a href="http://www.paginaweb.es" rel="v:url">www.paginaweb.es</a>.
06</div>

Con la anotación en formato RDFa se ha de definir al comienzo el lenguaje XML como namespace (xmlns). El atributo typeof determina el sujeto de una afi­r­ma­ción RDF y define con qué tipo de dato se asocia este sujeto. El atributo property determina al predicado de la frase y pro­po­r­cio­na una propiedad al contenido de un elemento. Entre las ventajas de este formato para es­tru­c­tu­rar datos se en­cue­n­tran la po­si­bi­li­dad de definir un vo­ca­bu­la­rio propio, lo cual deriva de su elevada co­m­ple­ji­dad, y de compactar el código usando prefijos. Además, soporta una DOM API (Document Object Model Ap­pli­ca­tion Pro­gra­m­mi­ng Interface) mediante la cual se pueden extraer datos es­tru­c­tu­ra­dos de una web para usarlos para apli­ca­cio­nes in­ter­ac­ti­vas. Una de­s­ve­n­ta­ja es su orie­n­ta­ción hacia XML y XHTML, aunque ya se puede integrar en HTML5. En la página de Schema.org se tiene acceso a un vo­ca­bu­la­rio es­ta­n­da­ri­za­do para la anotación con RDFa, que ponemos a tu di­s­po­si­ción en un detallado tutorial para su apli­ca­ción.

Mi­cro­da­tos

En este caso, se trata de un módulo in­de­pe­n­die­n­te de HTML5 que amplía el vo­ca­bu­la­rio de anotación existente con atributos que sirven para la in­te­gra­ción de marcas se­má­n­ti­cas en el código fuente. Este formato, como los dos primeros, también usa atributos sencillos como tags de HTML para ca­ra­c­te­ri­zar elementos. La sintaxis con mi­cro­da­tos parte de un vo­ca­bu­la­rio con el que los elementos o ítems se pueden describir como pares de nombre-valor, co­n­s­ti­tu­ye­n­do un ejemplo de equi­li­brio entre una cierta co­m­ple­ji­dad, fle­xi­bi­li­dad y capacidad de am­plia­ción. Los mi­cro­da­tos soportan una ex­po­r­ta­ción nativa JSON para la tra­n­s­fe­re­n­cia y el al­ma­ce­na­mie­n­to de datos es­tru­c­tu­ra­dos y la DOM API. También es co­m­pa­ti­ble con Schema.org.

JSON-LD

Este formato es el estándar más actual para la anotación semántica de páginas web y sus siglas co­rre­s­po­n­den a "Ja­va­S­cri­pt Object Notation for Linked Data", es decir, a la co­di­fi­ca­ción para datos enlazados basada en JSON. Google considera que este formato de anotación es el más sencillo, pero no lo soporta aún para todos los tipos de datos. Al contrario que los demás, este formato no se basa en atributos HTML. En su lugar, un bloque con datos JSON se integra en el archivo HTML en el lugar que co­rre­s­po­n­da. Nuestra guía muestra cómo funciona JSON-LD y qué hay que tener en cuenta en su uti­li­za­ción.

El proyecto Schema.org

Iniciado por los bu­s­ca­do­res ma­yo­ri­ta­rios Google, Bing, Yahoo y Yandex, Schema.org nace con la voluntad de unificar la anotación semántica de co­n­te­ni­dos web. Para ello, en su web, la comunidad co­la­bo­ra­ti­va que hay detrás pone a di­s­po­si­ción un esquema de datos es­tru­c­tu­ra­dos que sirven como estándar a los de­sa­rro­lla­do­res web, en caso de que quieran optimizar sus páginas para los cuatro grandes bu­s­ca­do­res. Este sistema soporta RDFa, mi­cro­da­tos y JSON-LD. Visita nuestra guía digital para pro­fu­n­di­zar en Schema.org.

Comprueba los datos es­tru­c­tu­ra­dos con Google

La anotación de do­cu­me­n­tos HTML con marcas se­má­n­ti­cas es una tarea delicada muy proclive a errores, por lo que ge­ne­ra­l­me­n­te se re­co­mie­n­da de­sa­rro­llar el código de una página web paso a paso y, tras cada uno de ellos, validar las marcas in­tro­du­ci­das. Para ello se dispone de la he­rra­mie­n­ta gratuita de Google Stru­c­tu­red Data Testing Tool. En ella se pueden in­tro­du­cir elementos únicos o el URL para examinar, en su totalidad, los datos es­tru­c­tu­ra­dos de una web. Por otro lado, con el Marcador de datos Google pone a di­s­po­si­ción de we­b­ma­s­te­rs una he­rra­mie­n­ta con la cual se pueden marcar los datos de una web di­re­c­ta­me­n­te en el navegador. Sin embargo, estas marcas no afectan al código fuente, por lo que las etiquetas in­tro­du­ci­das de esta manera solo pueden ser re­co­no­ci­das por Google, que las utiliza para sus formas de re­pre­se­n­ta­ción extendida (como el knowledge graph). Otros bu­s­ca­do­res como Bing o Yahoo no pueden in­te­r­pre­tar estas co­ne­xio­nes.

Ir al menú principal