Jump to content

Prestashop 1.4 Y Seo - Etiquetas Meta Y Títulos Duplicados


antoniofdez

Recommended Posts

Buenos días a todos!

 

Con el año nuevo me he propuesto seguir mejorando el proyecto que tengo en marcha en PrestaShop 1.4.8.3 y para ello, hay que trabajar el SEO. Tras hacer un análisis de la situación actual de la tienda con Google Webmaster Tools, me encuentro con que hay muchísimas etiquetas meta duplicadas.

 

En concreto, me refiero a la paginación dentro de las categorías de productos, al ordenar el listado por nombre, precio, etc... Y lo mismo ocurre con los fabricantes. Tras buscar tanto en el foro español como en el inglés, encontré este enlace con el que se soluciona este problema, sin embargo, me crea otro diferente:

 

http://www.presto-changeo.com/en/content/6-prestashopseotips

 

Tras hacer los cambios en  /classes/Tools.php me encuentro con que sí, funciona, se añade a las etiquetas title el número de página de la categoría en la que nos encontramos y, en caso de ordenar la lista de productos, también se añade el respectivo parámetro. De esta manera se soluciona el problema.

 

Sin embargo y si entro dentro de un producto, veo que me cambia el orden de la etiqueta title. Y es que en vez de mostrar "Nombre producto - Nombre tienda" lo hace al revés, primero muestra el nombre de la tienda seguido del nombre del producto.

Open /classes/Tools.php and replace the function completeMetaTags (around line #500) with the function below.
static public function completeMetaTags($metaTags, $defaultValue)
    {
        global $cookie;
        $no_duplication = "";
        if (self::getValue('p'))
            $no_duplication .= ($no_duplication != ""?" #":"#").self::getValue('p');
        if ($no_duplication != "")
            $no_duplication = " (".$no_duplication.")";
        if ($metaTags['meta_title'] == NULL)
            $metaTags['meta_title'] = Configuration::get('PS_SHOP_NAME').' - '.$defaultValue;
        $metaTags['meta_title'] .= $no_duplication;
        if ($metaTags['meta_description'] == NULL)
            $metaTags['meta_description'] = (Configuration::get('PS_META_DESCRIPTION', intval($cookie->id_lang)) ? Configuration::get('PS_META_DESCRIPTION', intval($cookie->id_lang)) : '');
        $metaTags['meta_description'] .= $no_duplication;
        if ($metaTags['meta_keywords'] == NULL)
            $metaTags['meta_keywords'] = Configuration::get('PS_META_KEYWORDS', intval($cookie->id_lang)) ? Configuration::get('PS_META_KEYWORDS', intval($cookie->id_lang)) : '';
        return $metaTags;
    }
Open /classes/Tools.php and replace the function getHomeMetaTags (around line #490) with the function below.
static public function getHomeMetaTags($id_lang)
    {
        global $cookie, $page_name;

        /* Metas-tags */
        $metas = Meta::getMetaByPage($page_name, $id_lang);
        $ret['meta_title'] = (isset($metas['title']) AND $metas['title']) ? Configuration::get('PS_SHOP_NAME').' - '.$metas['title'] : Configuration::get('PS_SHOP_NAME');
        $ret['meta_description'] = (isset($metas['description']) AND $metas['description']) ? $metas['description'] : '';
        $ret['meta_keywords'] = (isset($metas['keywords']) AND $metas['keywords']) ? $metas['keywords'] :  '';
        $no_duplication = "";
        if (self::getValue('p'))
            $no_duplication .= ($no_duplication != ""?" #":"#").self::getValue('p');
        if ($no_duplication != "")
        {
            $ret['meta_title'] .= " (".$no_duplication.")";
            $ret['meta_description'] .= " (".$no_duplication.")";
        }
           return $ret;
    } 

Supongo que para evitar esto hay que hacer algún cambio en estas funciones que dejo a continuación pero hace muchos años que no programo y estoy muy oxidado  :(. Por lo tanto, lo único que necesito es evitar que se cambie el orden de la etiqueta "title" y ya me valdría perfectamente este código...

Link to comment
Share on other sites

  • 3 weeks later...

Hu0la !

 

prueba a cambiar esto:

if ($metaTags['meta_title'] == NULL)
$metaTags['meta_title'] = Configuration::get('PS_SHOP_NAME').' - '.$defaultValue;

por esto:

if ($metaTags['meta_title'] == NULL)
$metaTags['meta_title'] = $defaultValue.' - '.Configuration::get('PS_SHOP_NAME');

debería de funcionarte ;)

Link to comment
Share on other sites

Buenas,

 

¿Tienes un PS 1.4 en funcionamiento? ¿y puedes cobrar por tarjeta?

 

(el modulo de redsys para tarjetas con el nuevo codigo de seguirdad no estaba disponible para 1,4... como lo has solucionado?)

 

SI quieres relanzar el proyecto no estaría de mas pasar a 1,6. Te dará mas opciones a nivel de instalación de nuevos modulos, SEO, responsive, una template mas actual... en definitiva, muy recomendable aunque el upgrade de 1,4 a 1,6 no es simple.

 

Sobre el tema que preguntabas, además de la modificación de metas... no está de mas relanzar el sitemap y pedir reindex de las zonas modificadas puesto que es posible que google haya dejado de indexar areas duplicadas y no se entere de las modificaciones que has hecho.

Link to comment
Share on other sites

Hay módulos de pago, y seguramente gratuitos tambien, que te aceptan lo del pago con TPV y SHA256, yo lo tengo funcionando en la 1.4 pero me costó bastante.

 

Al final eran los de Redsys que tenian que cambiarme ellos las claves, y no las habian cambiado. Ya podia darle yo vueltas ^_^

Link to comment
Share on other sites

Buenas,

 

¿Tienes un PS 1.4 en funcionamiento? ¿y puedes cobrar por tarjeta?

 

(el modulo de redsys para tarjetas con el nuevo codigo de seguirdad no estaba disponible para 1,4... como lo has solucionado?)

 

SI quieres relanzar el proyecto no estaría de mas pasar a 1,6. Te dará mas opciones a nivel de instalación de nuevos modulos, SEO, responsive, una template mas actual... en definitiva, muy recomendable aunque el upgrade de 1,4 a 1,6 no es simple.

 

Sobre el tema que preguntabas, además de la modificación de metas... no está de mas relanzar el sitemap y pedir reindex de las zonas modificadas puesto que es posible que google haya dejado de indexar areas duplicadas y no se entere de las modificaciones que has hecho.

 

Sí, trabajamos con PS 1.4 y cobramos con tarjeta. Desde que se hizo el cambio en Redsys hubo buenos compañeros que adaptaron los módulos para haceros compatibles con esta versión de PS. El tema del SEO se puede tratar igual en cualquier versión siempre y cuando se hagan las cosas bien y se eviten duplicidades :-). 

Link to comment
Share on other sites

Hu0la !

 

prueba a cambiar esto:

if ($metaTags['meta_title'] == NULL)
$metaTags['meta_title'] = Configuration::get('PS_SHOP_NAME').' - '.$defaultValue;

por esto:

if ($metaTags['meta_title'] == NULL)
$metaTags['meta_title'] = $defaultValue.' - '.Configuration::get('PS_SHOP_NAME');

debería de funcionarte ;)

 

Muchas gracias por contestar!!! Voy a probarlo y si funciona edito el post  :) . Un saludo!

 

[EDITADO]

 

Funciona!!! Muchas gracias :-)

Edited by antoniofdez (see edit history)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...