Saltar al contenido

Evitar contenido duplicado en Blogger: tipos de página y uso de condicionales

En este artículo voy a compartir algunos tips o trucos que he aprendido a lo largo de los años, destinados a conseguir una indexación óptima por parte de los buscadores -como por ejemplo Google– de los diversos tipos de páginas que componen un blog de Blogger. Dado que existen muchas estructuras posibles de indexación, analizaré y explicaré detalladamente el procedimiento, para que cada cual siga su propio "camino".

Bien, lo primero que hay que hacer es exponer el problema que tienen todos los blogs en general (incluyendo los de Blogger): el contenido duplicado. Cuando escribimos un artículo, éste no aparece sólo en su propia página web, sino que también aparecerá en muchas otras páginas del blog, que se generan automáticamente. Concretamente, y como mínimo, aparecerá en todas las páginas de etiquetas en las que se haya categorizado al artículo, así como en las diversas páginas de archivo, que pueden ser varias: por semana, por mes, etc… (incluso existen archivos por días o por búsquedas de términos, que también se generan automáticamente). Por no hablar de la página inicial del blog, que también contiene los últimos artículos publicados.

El resultado de esto, que es inherente a todo blog y tiene por función facilitar la navegación por el mismo de cara a encontrar lo que se busca, es que el mismo artículo (el mismo contenido) aparece al mismo tiempo en muchas páginas del blog (se accede a él desde muchas URL diferentes, en definitiva). La mayor parte de las veces estará acompañado de otros artículos, pero estará duplicado e incluso triplicado y cuadruplicado, a fin de cuentas.

Esto es algo que puede ser bueno para navegar internamente por el blog, pero que es muy malo para los buscadores (como Google, el más paradigmático de todos). Si se piensa es bastante lógico. ¿Cómo puede saber un buscador cuál es la URL original del artículo, de cara a indexar dicha versión y descartar las demás? Sin entrar en más consideraciones, baste decir que Google penaliza fuertemente el contenido duplicado -por considerarlo irrelevante para el usuario y "ruido" en las búsquedas-, de forma que es muy habitual que se penalicen los blogs que no depuran bien su estructura de indexación. Y los blogs no están preparados en esto cuando se crean nuevos.

Puede resultar paradójico, pues Blogger pertenece a Google, pero en efecto ocurre así. Si no especificas qué páginas han de ser indexadas por el buscador y cuáles no, pues son copias, los buscadores pueden incluso excluirte de sus índices. Esto es más habitual de lo que pueda pensarse (de hecho es un error clásico de los principiantes en el blogging). En realidad existe una razón lógica para que los blogs no estén "preparados" contra la duplicidad de contenido desde su misma creación, y no es otra que la increíble diversidad de objetivos y fines que puede tener un blog (uso privado, etc…). A muchos de estos usos no les interesan los buscadores, o incluso buscan precisamente no estar indexados en su totalidad.

Partiendo de la base de que nuestro objetivo sea el contrario, esto es, conseguir la máxima difusión, habrá que tener mucho cuidado con el contenido duplicado, y pensar qué tipo de páginas queremos que Google nos indexe o, por el contrario, elimine del buscador. Nuestro objetivo ha de ser siempre el mismo: un contenido, una única URL para el buscador. De esta forma nos aseguraremos el evitar penalizaciones, y al mismo tiempo podremos conocer exactamente a través de qué tipo de páginas están llegando nuestros visitantes a nosotros (pues son las únicas indexadas). Esto es otra ventaja añadida. Para conseguirlo, lo que hay que hacer es decir al buscador qué páginas ha de indexar y qué páginas no. Un contenido, una única URL.

Las cuatro clases o tipos de página en Blogger.

Antes de nada, lógicamente hemos de tener muy claro los cuatro tipos de página que tiene un blog de Blogger. Así podremos pensar en cuáles indexamos y cuáles no. Los tipos de página son los siguientes:

  1. Página principal y siguientes en antigüedad (son a las que accedemos cuando clicamos en "Entradas anteriores"), y también todas las páginas de etiquetas: Grupo denominado INDEX.
  2. Todas las páginas de archivos por fechas y búsquedas: Grupo denominado ARCHIVE.
  3. Páginas propias de cada artículo o entrada: Grupo denominado ITEM.
  4. Nuevas páginas "estáticas" de Blogger: Grupo denominado STATIC_PAGE.

Así pues, parece claro que -en principio- deberemos asegurarnos de que las páginas de tipo "item" (las de los artículos) estén indexadas. Para esto no hay que hacer nada, pues por defecto todo se indexará (no hay orden de lo contrario). Mi consejo es que saquéis directamente de los buscadores todas las páginas de tipo "archive" (los archivos). Estas páginas no añaden más que ruido a los buscadores, y nuestros visitantes podrán de todas formas navegar por el archivo de artículos sin problemas desde dentro del propio blog.

Excluir de los buscadores las páginas de archivos de un blog de Blogger, para evitar el contenido duplicado.

Afortunadamente hacer esto es sencillo. La propia interfaz de Blogger cuenta con opciones para personalizar la indexación según el tipo de página.

Estas opciones se encuentran en el menú principal, dentro de la pestaña "Configuración". Una vez en ella, accederemos a "Preferencias para motores de búsqueda".

Mucho cuidado aquí, pues todas las páginas del tipo al que apliquemos "noindex" no aparecerán en las búsquedas. Sólo se ha de marcar en "Archivos y páginas de búsqueda".

Aspecto del menú de preferencias para motores de búsqueda de Blogger.

Además de aplicar "noindex", también tendremos muchas otras opciones, como decir al buscador que no siga los enlaces de esas páginas, que no las almacene en su caché, etc… (para más información sobre las órdenes que pueden darse al buscador puede consultarse, por ejemplo, este artículo informativo del propio Google). Nosotros de momento marcamos sólo "noindex", sin meternos en más honduras.

Con esto habremos conseguido que las muchas páginas que se generan con las búsquedas de los usuarios, con los diversos archivos, etc… no cuenten para el buscador, eliminando por tanto mucho "ruido" y favoreciendo la correcta indexación de los contenidos de nuestra web por los buscadores.

Ahora bien, todavía nos quedará por establecer nuestra política de indexación para las páginas tipo "Index", es decir, la portada, páginas siguientes y páginas de etiquetas. Esto ya es mucho más complicado, pues tendremos que usar condicionales en el código, es decir, editar nuestra plantilla HTML. No podemos sacar todas las páginas tipo "Index" del buscador sin más (podría hacerse desde el mismo menú anterior), ¡pues estaríamos eliminando también nuestra portada!

El problema de la indexación de las páginas tipo Index: cómo eliminar sólo algunas de ellas y no todas.

Como decimos, el problema surge con las páginas tipo "index". Mi recomendación es sacar de los buscadores todas las páginas de etiquetas (son aquellas a las que accedemos cuando clicamos en una categoría del blog, mostrándonos todas las entradas a las que hemos puesto dicha etiqueta). Las páginas de etiquetas son una fuente de contenido duplicado tan potente como las de archivos. Pero claro, si eliminamos de los buscadores todas las páginas tipo "index", sacamos también la portada del blog, ¡cosa que seguro que no queremos hacer! Para terminar de embrollar el asunto, las páginas de navegación (las anteriores o más antiguas que siguen tras nuestra portada) también recomiendo excluirlas, pues también están duplicadas. Estas últimas pertenecen igualmente al tipo "index".

Afortunadamente, se pueden excluir de los buscadores todas las páginas "index" menos la portada. Para ello, es necesario saber cómo crear condicionales en el código de un blog de Blogger. No es demasiado complicado una vez se conoce la mecánica. Lo explico a continuación.

Añadir condicionales en el código de Blogger para no indexar páginas de etiquetas, categorías y "anteriores".

Son relativamente sencillos de usar: tenemos la condición IF ("si" o "en caso de que"), a la que habrá que añadir == o !=, que equivaldrán a "es igual a" o "no es igual a".

Parece un poco lioso, se verá mejor con un ejemplo:

<b:if cond='data:blog.pageType == &quot;archive&quot;'>
<meta content='noindex' name='robots'/>
</b:if>

¿Qué le estoy diciendo aquí a Blogger? Pues que si el tipo de página es "archive", entonces los robots (buscadores) deben aplicar "noindex", es decir, no deben indexar esa página.

Este código debería añadirse al principio, dentro de <HEAD>, lógicamente.

*Importante: realizar cualquier cambio en el código con mucho cuidado, siempre sabiendo lo que se está haciendo. Nunca olvidar hacer primero una copia de la plantilla por si acaso. Un error podría suponer sacar una página importante del buscador.

Para no indexar las páginas de etiquetas y "entradas anteriores", respetando la portada, la cosa se complica, pues todas pertenecen al tipo "index". Deberemos añadir otra condición más: si la página tipo "index" es la portada, entonces sí indexar, en caso contrario no. Para añadir este tipo de condicionales se usa ELSE ("de otro modo", "en otro caso"). Veamos el código:

<b:if cond='data:blog.pageType == &quot;index&quot;'>

<!-- si nos encontramos en una página tipo index -->

    <b:if cond='data:blog.homepageUrl != data:blog.url'>
      <!-- y no en la página principal -->


      <meta content='noindex' name='robots'/>

      <!-- entonces no indexar -->

           <b:else/>
    <!-- en caso contrario -->


      <meta content='index' name='robots'/>

      <!-- entonces indexar -->
    </b:if>

</b:if>

Como puede verse, por cada IF que declaremos habrá después que cerrarlo. Es importante destacar también que data:blog.homepageUrl se refiere a la página principal o portada del blog, mientras que data:blog.url alude a la página en la que se esté en ese momento, sea cual sea ésta. Así pues la línea <b:if cond=’data:blog.homepageUrl != data:blog.url’> quiere decir "si la página en la que estamos no es la página principal del blog…". Es decir, con el código anterior hemos indicado a Blogger: "si estamos en una página tipo index, pero no en la principal, entonces no indexar, en caso contrario sí".

Así pues, para excluir todas las páginas de etiquetas, las de entradas antiguas, archivos y búsquedas (es decir, todas las que tienen contenido duplicado), habrá que ponerlo todo junto (copiar el siguiente fragmento de código y pegarlo directamente dentro de la etiqueta <head>):

<b:if cond='data:blog.pageType == &quot;index&quot;'>

    <b:if cond='data:blog.homepageUrl != data:blog.url'>
      <meta content='noindex' name='robots'/>

    <b:else/>

      <meta content='index' name='robots'/>
    </b:if>

</b:if>

<b:if cond='data:blog.pageType == &quot;archive&quot;'>
<meta content='noindex' name='robots'/>
</b:if>

Otras posibilidades y trucos de indexación.

Como antes comenté ésta no es la única opción posible para estructurar correctamente la indexación de un blog. Esto es así pues la clave, la meta final que debe guiarnos, es evitar el contenido duplicado (recordemos, un contenido, una única URL). De esta forma, si en nuestras páginas de etiquetas y archivos no aparece el mismo contenido que en la página propia de cada artículo, entonces habremos evitado el contenido duplicado.

¿Cómo conseguir esto? Es relativamente sencillo. Las mejores opciones pasan por que en las páginas de archivos y etiquetas aparezca sólo el primer párrafo del texto -como es el caso del presente blog-, o incluso sólo el título de la entrada, a modo de listado. El contenido íntegro estará disponible en la página del artículo en sí (y sólo allí). Incluso mejor todavía sería que en los archivos, portada, entradas antiguas, búsquedas y etiquetas apareciese un pequeño texto introductorio único, a modo de entradilla o lead periodístico. Todo esto es posible hacerlo, y será objeto de análisis en un futuro artículo (para no extenderme demasiado aquí).

Tip 1: Mostrar sólo el primer párrafo del texto en las páginas que no sean la del propio artículo hará que evitemos el contenido duplicado.

Otro consejo que conviene tener en cuenta se refiere a la estructura de etiquetas de nuestro blog. Hay que pensarla muy bien, y reducirla al mínimo indispensable. Lo ideal y óptimo es que cada artículo tenga sólo una etiqueta, o al menos las mínimas posibles. De esta forma conseguiremos que en las páginas de etiquetas no se repitan los artículos, evitando una vez más duplicar contenido. Las etiquetas han de usarse como categorías específicas, a modo de menú de navegación, si es posible.

Tip 2: Planificar bien la estructura de etiquetas es una labor importante: cuanto menos se repitan los artículos en las páginas de categorías más claro estará todo para Google y resto de buscadores.

Si seguimos bien estos dos consejos podríamos incluso indexar todas las páginas generadas automáticamente por el blog sin ningún tipo de problema. De hecho podría ser algo realmente beneficioso, si nos tomamos la molestia de crear entradillas únicas para las páginas de archivos, etiquetas, etc… Los buscadores nos agregarían estas páginas sin conflicto alguno, incluso creando para los usuarios del buscador sub-enlaces relacionados con el principal, convirtiendo así lo que empezó como un simple blog en un auténtico portal.

Establecer opciones personalizadas para los buscadores en una única entrada en particular.

Como ya hemos visto, esto podría hacerse mediante condicionales, pero seguramente lo más fácil sea hacerlo directamente desde la consola de redacción de entradas del propio Blogger:

Preferencias para motores de búsqueda al crear una entrada en Blogger.

Como puede verse, directamente podremos establecer una Descripción de búsqueda (equivalente a las meta-etiquetas description y keywords), así como incluso etiquetas relativas a la indexación (en el poco frecuente caso de que queramos escribir una entrada para que no aparezca en los buscadores).

Si preferimos la opción "manual" en el código, se haría como siempre con condicionales, dentro de la etiqueta <head> del código de nuestro blog:

<b:if cond='data:blog.url == &quot;AQUÍ LA URL DEL POST&quot;'> <meta content='AQUÍ LA DESCRIPCIÓN' name='description'/> <meta content='AQUÍ LAS PALABRAS CLAVE' name='keywords'/><meta content='AQUÍ LA ORDEN DE INDEXACIÓN' name='robots'/></b:if>

Referencias de interés.

Por último, os dejo algunas referencias realmente buenas sobre el tema que hemos tratado en este artículo, para aquellas personas que quieran ampliar información: