Cómo ofuscar enlaces en Prestashop con “Winamic Link Obfuscator”

(Last Updated On: 17 mayo, 2020)

Antes de adentrarnos en el módulo Winamic Link Obfuscator que hemos creado para Prestashop, debemos tener claros algunos términos que van a darnos un enfoque más concreto del uso de este desarrollo: Link Juice y Crawl Budget.

¿Qué es el link juice?

El concepto link juice viene relacionado con la fuerza que se le pasa a otra página interna de tu sitio web u otra web externa a través de los enlaces. Si nos fijamos en una tienda online Prestashop en la que tenemos 12 productos destacados en la Home, la fuerza se estaría repartiendo en las 12 URLs de esos productos. Si en lugar de 12, tuviéramos 24, estaríamos diluyendo todavía más la fuerza debido a que se reparte entre más enlaces. Además, es muy común encontrarnos plantillas de Prestashop que tienen múltiples enlaces para un mismo producto. Por ejemplo:

ficha de producto prestashop

Podemos observar en color rojo los tres enlaces que se generan hacia la URL del producto.  Si por ejemplo tuviéramos 12 productos en la Home como hemos comentado, pasaríamos a tener 12 x 3 = 36 enlaces, haciendo que se diluya la fuerza todavía más.

En este caso concreto se podría modificar la programación de la plantilla para que el enlace «<a href>» englobe todo, tanto la imagen como el texto, pero si quisiéramos mantener el botón de vista rápida (icono del ojo) tendríamos que utilizar uno de los métodos de ofuscación comentados.

Por otro lado, existen enlaces que se repiten en todas las URLs de la web, como pueden ser enlaces que aparecen en la cabecera y en el pie de página. Hay que determinar cuáles de esos enlaces no son importantes y no queremos transmitir fuerza. Por ejemplo, no tiene mucho sentido enlazar a URLs que además tengamos como «noindex», como el aviso legal, política de privacidad, política de cookies, etc, etc.

¿Qué es el crawl budget?

El Crawl Budget (presupuesto de rastreo) es un termino utilizado para definir que Google reserva cierto tiempo para rastrear cada sitio web basándose en la autoridad que tengan. Por ejemplo, si tenemos una web con poca autoridad, poco tráfico, etc. debemos optimizarla para que Google sea capaz de rastrear el mayor número de URLs de tu web en el tiempo que tiene reservado para ti. Es por ello que debemos evitar tener muchos enlaces sin sentido o generando redirecciones 301.

¿Y por qué no utilizar rel=»nofollow»?

Esta solución mejora el Crawl Budget, ya que Google no entrará en estos enlaces, pero sigue afectando al link juice, por lo que no es la mejor solución. Aquí es cuando entra en juego el concepto de ofuscación o enmascaramiento de enlaces, y que podemos conseguir muy fácilmente con el módulo de Prestashop Winamic Link Obfuscator.

NOTA: Es importante saber que es una técnica que funciona en la actualidad pero que en algún momento Google pueda penalizar estos comportamientos. Al fin y al cabo, estamos generando «enlaces falsos».

Si quieres más información acerca de todos estos conceptos, echa un vistazo la presentación de Lino Urunuela:

[slideshare id=81322604&doc=eshow-2017-lino-urunuela-171028174757]

Existen varias maneras de ofuscar enlaces:

  1. Carga asíncrona de enlaces: Hacer que se generen los enlaces después de estar la web cargada, de manera que un usuario pueda ver los enlaces y navegar por ellos, pero Google no los detecte.
  2. Método “onclick” de javascript: Se modifican los “<a href=”…”> por otro elemento HTML como puede ser “<p>” o “<span>” añadiendo el atributo “onclick”, por ejemplo:
    <p onclick="mifuncionjavascript('enlace-1')">Mi enlace</p>
    

    y se inserta un fichero javascript insertando cada uno de los enlaces y lanzándolos con «location.href».

  3. Método de encriptación en base_64: El concepto es similar al anterior, necesitamos un fichero javascript donde se lanza «location.href», pero no insertamos en el HTML el método «onclick», sino que se genera un enlace encriptado en base_64, de manera que en el HTML se verá algo como esto:
    <p datatext="aHR0cHM6Ly93d3cuZmllc3Rhc24peC5jb20vY21zL2F0ZW5jaW9uLWFsLANssWVudGU="></p>
    

    El archivo javascript será capaz de desencriptar esta cadena y lanzar el enlace. Aunque es muy similar a la anterior, es algo más segura, ya que se lo ponemos un poco más complicado a Google. Por contra, quizás sea algo más lento debido a que tiene que encriptar el enlace cuando carga la página.

Ahora sí, vamos a ver cómo poder ofuscar enlaces en Prestashop con nuestro módulo.

link obfuscator prestashop

¿Cómo puedo ofuscar un enlace en Prestashop?

  1. Sube el módulo v1.0-winamic_linkobfuscator.zip desde “Módulos y servicios” y pulsa en “Configurar”.
  2. Edita el archivo .tpl donde tengas el enlace a ofuscar y realiza los siguientes pasos:
    – Cambiar el «a href» por «span» u otra etiqueta HTML.
    – Añadir la clase «datatext» y el atributo «datatext». Ejemplo:
<span class="datatext" datatext="{winamic_linkobfuscator::base64url_encode('https://mywebsite.com/link1')}">Mi enlace</span>

Si quieres que el enlace se abra en una pestaña nueva, puedes usar el atributo datatarget=”new” de esta manera:

<span class="datatext" datatarget="new" datatext="{winamic_linkobfuscator::base64url_encode('https://mywebsite.com/link1')}">Mi enlace</span>

Por ejemplo, si quisieras ofuscar los enlaces de los listados de productos, editaríamos el archivo producto-list.tpl quedando de esta manera:

enlace ofuscado con módulo prestashop

 

  1. Al realizar el cambio, probablemente cambie el diseño de los enlaces, por lo que tendrás que editar el CSS de la web para que se vea igual que antes de hacer el cambio.
  2. Por último, hay que evitar que Google pueda rastrear el fichero javascript que viene en el módulo para que no detecte estos «falsos enlaces». Para ello, debes editar el archivo robots.txt de la web, introduciendo lo siguiente:
Disallow: midominio.com/modules/winamic_linkobfuscator/views/js/datatext.js

IMPORTANTE: Si desactivas o desinstalas el módulo, pueden producirse errores en la web y deberás cambiar de nuevo todos los enlaces de los ficheros .tpl que hayas modificado.

Si el enlace que deseas ofuscar se genera directamente desde el back office de Prestashop, por ejemplo con un módulo de contenido HTML, no puedes insertar código PHP como hemos especificado: {winamic_linkobfuscator::base64url_encode(‘https://mywebsite.com/link1’)}. Por lo tanto, tendrás que encriptar el enlace manualmente. Para ello, puedes ir a https://www.base64encode.org/. Escribir el enlace y pulsar “Encode”:

encriptación base 64 para ofuscar enlaces

 

Una vez encriptado, puedes generar el enlace ofuscado en el editor HTML de esta manera:

<span class="datatext" datatext="aHR0cHM6Ly9taWRvbWluaW8uY29tL2hvbGE=">Mi enlace</span>
  • NOTA: En caso de que que el editor de Prestashop no guarde correctamente el parámetro «datatext», debemos editar el fichero «/root/js/tinymce.inc.js» (es posible que la ruta sea distinta dependiendo de la versión de Prestashop), y añadir: extended_valid_elements : «span[datatext|class]».

Desde Winamic te animamos a que descargues nuestro módulo para Prestashop y empieces a practicar nuestro método para ofuscar enlaces de tu tienda. Si tienes dudas o necesitas ayuda disponemos de un servicio personalizado aquí. También puedes escribirnos a info@winamic.es o encontrar información en nuestras redes sociales.

link obfuscator prestashop

Rate this post

Rubén González Platas

Programador web. Ayudo a empresas y emprendedores a crear su web corporativa y canal de venta online. ¿Tienes un proyecto en mente y no sabes cómo llevarlo a cabo? Contacta conmigo y te ayudaré.

2 comentarios en «Cómo ofuscar enlaces en Prestashop con “Winamic Link Obfuscator”»

  1. Hola,

    Soy un usario de vuestro modulo de ofuscacion de links, en su dia os lo compre, y lo he usado en varios lugares.

    Ahora lo queria usar en el menu principal del prestashop para que no transpase linkjuice a los submentus, pero al meterlo en el menu no logro que el link se active.

    Posiblemente por que el menu esta ya lamando a algun modulo javascript, no se …

    Os queria preguntar si habiais provado alguna vez la ofucacion en el ps_menu de prestahsop para los submenus.

    Responder
    • Hola Toni,
      Por lo que entiendo, estás usando el módulo por defecto de menú de Prestashop. En ese caso, habría que revisar el módulo a ver si se puede meter en algún .tpl, pero puede que haya que hacerlo desde el ps_menu.php.

      Un saludo!

      Responder

Deja un comentario