Descontrol de URL con parámetros amp%253B%25

Si has visto en Search Console que las páginas indexadas tienen parámetros raros como amp%253B%2525252525253Bamp%252525 entonces tienes un problema de parametrización e indexación en tu Prestashop.

¿Cómo puedo saber si tengo un problema con los parámetros en mi Prestashop?

Nos tenemos que ir a Search Console y filtrar por páginas que contengan «?«, en el caso de que veamos algún resultado como en la siguiente captura, tenemos

filtrar parametro p search console

Como podemos ver, además de los parámetros amp%25 en la URL, esta página web también tiene otros problemas de category_rewrite, star, p y parámetros url. Será mejor que se ponga manos a la obra para arreglar todo ese desastre!

Vamos a la parte realmente importante, como nos gusta evitar comprar módulos innecesarios y hacer las cosas nosotros mismos, en el post de hoy vamos a seguir en esa línea. Os traemos la solución gratuita a este problema.

OJO!! La solución TOTAL a este problema, además de desindexar estas URL es descubrir por dónde está la fuga de parámetros en tu tienda Prestashop y solucionarlo, ya que si no, este cambio únicamente es un parche temporal.

Como en casi todos nuestros post, tenemos que tirar de abrir Filezilla y encontrar el fichero responsable del bloque SEO de Prestashop. En este ejemplo hemos tomado el tema Classic (es la plantilla por defecto) y la versión 1.7. Es posible que dependiendo del tema y versión utilizadas, puede cambiar un poco el código. En caso de que no te funcione, envíame un formulario de contacto y te ayudaré.

La ruta por defecto de este fichero es:

/public_html/themes/classic/templates/_partials/head.tpl

Y el trozo de código que tenemos que cambiar es el siguiente:

{block name='head_seo'}
  <title>{block name='head_seo_title'}{$page.meta.title}{/block}</title>
  <meta name="description" content="{block name='head_seo_description'}{$page.meta.description}{/block}">
  <meta name="keywords" content="{block name='head_seo_keywords'}{$page.meta.keywords}{/block}">
  {if $page.meta.robots !== 'index'}
    <meta name="robots" content="{$page.meta.robots}">
  {/if}
  {if $page.canonical}
    <link rel="canonical" href="{$page.canonical}">
  {/if}
  {block name='head_hreflang'}
      {foreach from=$urls.alternative_langs item=pageUrl key=code}
            <link rel="alternate" href="{$pageUrl}" hreflang="{$code}">
      {/foreach}
  {/block}
{/block}

Vamos a añadir una variable nueva, que coja la URL actual de la página donde estemos, con parámetros incluidos, y vamos a usar un condicional para comprobar si ciertas reglas se cumplen, en este caso, vamos a comprobar si ciertas cadenas de texto se encuentran en la URL.

El código final quedará así:

{block name='head_seo'}
  <title>{block name='head_seo_title'}{$page.meta.title}{/block}</title>
  <meta name="description" content="{block name='head_seo_description'}{$page.meta.description}{/block}">
  <meta name="keywords" content="{block name='head_seo_keywords'}{$page.meta.keywords}{/block}">

  {assign "ruta" "https://{$smarty.server.HTTP_HOST}{$smarty.server.REQUEST_URI}"}
  {if $ruta|strstr:'amp%'}
    <meta name="robots" content="noindex,follow">
  {else}
    {if $page.meta.robots !== 'index'}
      <meta name="robots" content="{$page.meta.robots}">
    {/if}
  {/if}

  {if $page.canonical}
    <link rel="canonical" href="{$page.canonical}">
  {/if}
  {block name='head_hreflang'}
      {foreach from=$urls.alternative_langs item=pageUrl key=code}
            <link rel="alternate" href="{$pageUrl}" hreflang="{$code}">
      {/foreach}
  {/block}
{/block}

Podemos ver la nueva variable ruta y el condicional de si encuentra la cadena «amp%«. Podemos añadir tantos condicionales como queramos (pista, también nos sirve para controlar el resto de parametrizaciones descontroladas que tengamos en nuestra tienda online Prestashop.).

Una vez guardado y subido el fichero a nuestro servidor, comprobamos que efectivamente está funcionando correctamente. Para ello vamos a cargar en el navegador la URL que nos está dando problemas, presionar CTRL+U (con esto se nos abrirá el código fuente de la página) y con CTRL+F buscaremos la cadena «robots«, y deberíamos de ver esto:

noindex amp2525 prestashop

Y un problema más de Prestashop arreglado sin gastarnos decenas de euros en módulos! =)

 

Consultor SEO | Web | + posts

Programador reconvertido a consultor SEO. Me gusta automatizar cosas, de hecho, este articulo ha sido generado a partir de otras webs de forma automática.