PrestaShop (1.6) – No indexar productos

Empiezo mi blog con un post que me hace especial ilusión, un poquito de código para Prestashop. En este caso para optimizar los recursos que Google utiliza para indexar tu e-commerce, algo que a los SEO’s les pone a mil.

¿Para qué nos puede servir no indexar productos? Páginas de Dropshipping, marketplaces, productos similares… Donde el producto tiene un contenido pobre comparado con la competencia y/o muy similar con otros artículos de tu página web.

Imagina, por sólo un momento que tu catálogo de productos lo compartes con 100.000 páginas web. Ya sea porque has tenido la fantástica y original idea de tener una web de dropshipping o se te ha ido la pinza haciendo un marketplace, donde el usuario genera contenido y hace copia y pega en todos los marketplaces que conoce. El usuario quiere vender, no le expliques sobre contenido duplicado…

Así que en este artículo vamos a focalizar en estos dos casos porque la problemática es similar: El contenido duplicado.

Al tema, ¿cuál es el problema que se presenta en estos casos? Compartes las descripciones de productos / anuncios con un montón de webs más que habitan en la “red de redes”. Tienes dos opciones:

1- Desindexar productos/anuncios hasta que no tengas contenido suficientemente atractivo y original.

2- Morir de un Pandazo. ¿Qué es un pandazo? Es cuando los bots de google aplican un algoritmo (Panda) para detectar si tienes contenido duplicado externo, lo compara con otras webs y te penaliza.

Así que nos interesa no ser penalizados. ¿Qué más conseguimos con esta acción? Se ha detectado que Google tiene un presupuesto para rastrear cada web.

Los Seo’s tenemos la creencia de que Google utiliza un “crawl budget” (creencia que no ha sido confirmada). Lo que si sabemos con certeza es que los robots rastrean a menudo tu web, y hay que ponerselo fácil:

  • Que la web cargue rápido para que la puedan leer
  • Que rastreen el contenido realmente importante
  • Que rastreen las modificaciones para que detecte “contenido fresco”

Vamos, que vea que nos movemos y que además queremos ponerselo más fácil.

Lo que no debemos hacer es que Google utilice recursos en rastrear todas las páginas, y entre ellas muchas que no interesan. Para ello por un lado tendremos que añadir en el archivo robots.txt un Disallow hacia la carpeta de los productos. De este modo lo que estaremos es bloqueando el rastreo de los productos, y nos ahorraremos un problema de rastreo.

Ahora lo que nos interesa es que tampoco se indexen los contenidos, lo haremos añadiendo una etiqueta meta noindex en la cabecera <head>. El objetivo es que dentro del <head> implementemos una etiqueta como esta: <meta name=”robots” content=”noindex”>

Y aquí ya tenemos que tocar código en Prestashop ( la verdad es que en WordPress te lo ponen bastante más fácil si quieres añadir una etiqueta noindex a un producto o a todos..).

Es por esto que lanzo aquí algunos de los códigos que podemos incluir en el header.tpl de la plantilla utilizada para Prestashop. En esta ocasión lo he probado en Prestashop 1.6. Disclaimer: no sé como reacciona con la versión 1.7.

Vamos al turrón: Si queremos no indexar ningún producto, salvo uno, debéis ir al header.tpl  de vuestro theme y modificar esta línea:

<meta name="robots" content="{if isset($nobots)}no{/if}index,{if isset($nofollow) && $nofollow}no{/if}follow" />

por:

{if $page_name=='product' && $smarty.get.id_product!= 16}

            <meta name="robots" content="noindex,follow" />

    {else}

            <meta name="robots" content="{if isset($nobots)}no{/if}index,{if isset($nofollow) && $nofollow}no{/if}follow" />

{/if}

Disclaimer: En este caso, has salvado un producto de no ser indexado pero cuidado, no lo bloquees por robots.txt. Si lo bloqueas por robots, no se podrá rastrear por los bots de google.

Este ejemplo tenéis que tener en cuenta que yo quería indexar sólo el producto con la id “16”, debéis hacer lo mismo vosotros con el producto que queráis salvar de esta quema. Las id de los productos se encuentran fácilmente en la url o en el backend, en la lista de productos, el primer campo que os sale. Aprovecho esto para que vayáis a un post interesante sobre cambiar de orden la ID del producto para que la url sea un poco más limpia.

Si no quieres indexar ni un producto sólo hace falta quitar la parte donde le decimos la excepción:  “&& $smarty.get.id_product!= 16”, quedando de esta forma:

{if $page_name=='product'}

            <meta name="robots" content="noindex,follow" />

    {else}

            <meta name="robots" content="{if isset($nobots)}no{/if}index,{if isset($nofollow) && $nofollow}no{/if}follow" />

{/if}

Si has leído hasta aquí, tienes un regalo. Cómo aplicar etiqueta noindex a páginas de usuario que no interesan indexar. Si tampoco queremos indexar páginas que no tienen importancia (order, best-sales, discount, etc..)  podemos hacerlo de la siguiente manera:

{if $page_name== 'order' or $page_name== 'discount' or $page_name== 'authentication' or $page_name== 'pagenotfound' or $page_name== 'best-sales' or $page_name== 'supplier' or $page_name=='product' && $smarty.get.id_product!= 16}
        <meta name="robots" content="noindex,follow" />
{else}
        <meta name="robots" content="{if isset($nobots)}no{/if}index,{if isset($nofollow) && $nofollow}no{/if}follow" />
{/if}

Con esto conseguimos que sólo se indexen las categorías, landings y los productos que nos interesan realmente por negocio.

Recomendación:

Si tienes previsión de empezar una página grande, que tenga un catálogo de miles de referencias, te recomiendo bloquear de inicio la indexación de productos, focalizarte en indexar categorías e ir abriendo poco a poco el rastreo y la indexación a los productos, a medida que veas que los bots de google van pasando con más asiduidad y se van descargando más contenido.