Jump to content

Duplicados y canonical 1.6.1


sinergiagrabados

Recommended Posts

Hola a todos,

 

Es solo para ver si alguien me puede confirmar si he aplicado bien este código que copié de un tema del foro porque tengo un montón de duplicados en tools de google y para hacer la redirección ya que tengo activado la opción de 301 y parece que no va...  Trabajo con la 1.6.1 y el código lo he aplicado en el header.tpl del tema:

 

<!-- canonical -->
            {if $page_name == 'index' or $page_name == 'search'}
            <link rel="canonical" href="{$base_dir}" />
            {elseif $page_name == 'category' or $page_name == 'best-sales' or $page_name == 'cart'
            or $page_name == 'discount' or $page_name == 'manufacturer' or $page_name == 'new-products'
            or $page_name == 'prices-drop'}
            <link rel="canonical" href="{$base_dir}{$request_uri|substr:1|regex_replace:'/\/(.*)/':''|regex_replace:'/\?(.*)/':''}" />
            {else}
            <link rel="canonical" href="{$base_dir}{$request_uri|substr:1}" />
            {/if}
        <!-- /canonical -->
 
Tengo un montón de url que ya no existen eliminadas  y otras que se han modificado y me gustaría limpiar esto para que google me de un poquito más de vidilla...
 
Si el código es correcto espero que más de uno lo pueda utilizar y solucionar estas cosillas.  Gracias.
Link to comment
Share on other sites

¿Ninguna opinión?

 

Se siguen manteniendo las duplicadas y las que ya no existen me salen como la imagen que pongo adjunta.

 

 

Este filtro ya no existe y por lo que parece el código no está haciendo su función, espero que lo haya colocado bien.

 

Se agradecerá cualquier opinión ya que no encuentro nada que me aclare esto.

post-313604-0-39486500-1444799861_thumb.jpg

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

Utilizo una versión de ps anterior, concretamente la 1.6.0.11 y el código que has puesto no me fue bien; el que me funciona es el siguiente:

<!-- canonical -->
{if isset($smarty.get.p) && !empty($smarty.get.p)}
    {assign var="pagenumber" value={l s=' - Page  %1$d' sprintf=$smarty.get.p[spam-filter]
    {assign var="pagination" value="?p={$smarty.get.p}"}
{else}
    {assign var="pagenumber" value=""}
    {assign var="pagination" value=""}
{/if}
    {assign 'pages_array' ['best-sales', 'new-products', 'adresses', '404', 'address', 'authentication', 'my-account', 'contact-form', 'discount', 'guest-tracking', 'index', 'history', 'manufacturer', 'order-opc', 'order-follow' ,'order-carrier' ,'order-payment', 'order-detail', 'order-slip', 'order-return', 'order-confirmation', 'order-address', 'password', 'search', 'prices-drop', 'sitemap', 'store-infos', 'stores', 'supplier-list', 'suppliers']}
    {assign 'noindex_pages_array' ['404', 'address', 'my-account', 'guest-tracking', 'order-opc', 'order-follow' ,'order-carrier' ,'order-payment', 'order-detail', 'order-slip', 'order-confirmation', 'order-address', 'cart', 'search', 'supplier-list', 'supplier', 'suppliers']}
{if isset($smarty.server.REQUEST_URI)}
    {assign 'noindex_vars' ['noredirect','orderway','orderby','content_only']}
    {foreach from=$noindex_vars item=v}
{if stristr($smarty.server.REQUEST_URI,$v)}
    {assign var=nobots value=true}
    {break}
{/if}
    {/foreach}

{/if}

{if $page_name == 'product' && isset($product->id)}
        <link rel="canonical" href="{$link->getProductLink($product->id)}"/>
{elseif $page_name == 'manufacturer' && isset($manufacturer->id)}
        <link rel="canonical" href="{$link->getManufacturerLink($manufacturer->id)}{$pagination}"/>
{elseif $page_name == 'supplier' && isset($supplier->id)}
        <link rel="canonical" href="{$link->getSupplierLink($supplier->id)}{$pagination}"/>
{elseif $page_name == 'category' && isset($category->id)}
        <link rel="canonical" href="{$link->getCategoryLink($category->id)}{$pagination}"/>
{elseif in_array($page_name,$pages_array)}
        <link rel="canonical" href="{$link->getPageLink($page_name)}"/>
{elseif $page_name == 'cms' && isset($cms->id)}
        <link rel="canonical" href="{$link->getCmsLink($cms->id)}"/>
{else}
    {assign var=amn value=explode("-",$page_name)}
{if strpos($page_name,"module-") !== false && count($amn) == 3}
        <link rel="canonical" href="{$link->getModuleLink($amn.1,$amn.2)}{$pagination}"/>
{else}
        <!-- <link rel="canonical" href="{$base_dir|replace:'.fr/':'.fr'|replace:'http':'https'}{$request_uri|regex_replace:'/\?(.*)/':''|replace:'index.php':''}{$pagination}" /> -->
        <link rel="canonical" href="{rtrim($base_dir,'/')}{$request_uri|regex_replace:'/\?(.*)/':''|replace:'index.php':''}{$pagination}" />
  {assign var=nobots value=true}
{/if}
{/if}
{if in_array($page_name,$noindex_pages_array)}
  {assign var=nobots value=true}
{/if}
        <meta name="robots" content="{if isset($nobots)}no{/if}index,{if isset($nofollow) && $nofollow}no{/if}follow" />        
<!-- /canonical -->

Si lo pruebas observa que tendrás que comentar la línea meta robots para que no esté duplicada.

 

Respecto a las url que ya no existen o las modificadas, eso es otro tema y tendrás que hacer un redireccionamineto 301 en el htaccess.

Link to comment
Share on other sites

Utilizo una versión de ps anterior, concretamente la 1.6.0.11 y el código que has puesto no me fue bien; el que me funciona es el siguiente:

<!-- canonical -->
{if isset($smarty.get.p) && !empty($smarty.get.p)}
    {assign var="pagenumber" value={l s=' - Page  %1$d' sprintf=$smarty.get.p[spam-filter]
    {assign var="pagination" value="?p={$smarty.get.p}"}
{else}
    {assign var="pagenumber" value=""}
    {assign var="pagination" value=""}
{/if}
    {assign 'pages_array' ['best-sales', 'new-products', 'adresses', '404', 'address', 'authentication', 'my-account', 'contact-form', 'discount', 'guest-tracking', 'index', 'history', 'manufacturer', 'order-opc', 'order-follow' ,'order-carrier' ,'order-payment', 'order-detail', 'order-slip', 'order-return', 'order-confirmation', 'order-address', 'password', 'search', 'prices-drop', 'sitemap', 'store-infos', 'stores', 'supplier-list', 'suppliers']}
    {assign 'noindex_pages_array' ['404', 'address', 'my-account', 'guest-tracking', 'order-opc', 'order-follow' ,'order-carrier' ,'order-payment', 'order-detail', 'order-slip', 'order-confirmation', 'order-address', 'cart', 'search', 'supplier-list', 'supplier', 'suppliers']}
{if isset($smarty.server.REQUEST_URI)}
    {assign 'noindex_vars' ['noredirect','orderway','orderby','content_only']}
    {foreach from=$noindex_vars item=v}
{if stristr($smarty.server.REQUEST_URI,$v)}
    {assign var=nobots value=true}
    {break}
{/if}
    {/foreach}

{/if}

{if $page_name == 'product' && isset($product->id)}
        <link rel="canonical" href="{$link->getProductLink($product->id)}"/>
{elseif $page_name == 'manufacturer' && isset($manufacturer->id)}
        <link rel="canonical" href="{$link->getManufacturerLink($manufacturer->id)}{$pagination}"/>
{elseif $page_name == 'supplier' && isset($supplier->id)}
        <link rel="canonical" href="{$link->getSupplierLink($supplier->id)}{$pagination}"/>
{elseif $page_name == 'category' && isset($category->id)}
        <link rel="canonical" href="{$link->getCategoryLink($category->id)}{$pagination}"/>
{elseif in_array($page_name,$pages_array)}
        <link rel="canonical" href="{$link->getPageLink($page_name)}"/>
{elseif $page_name == 'cms' && isset($cms->id)}
        <link rel="canonical" href="{$link->getCmsLink($cms->id)}"/>
{else}
    {assign var=amn value=explode("-",$page_name)}
{if strpos($page_name,"module-") !== false && count($amn) == 3}
        <link rel="canonical" href="{$link->getModuleLink($amn.1,$amn.2)}{$pagination}"/>
{else}
        <!-- <link rel="canonical" href="{$base_dir|replace:'.fr/':'.fr'|replace:'http':'https'}{$request_uri|regex_replace:'/\?(.*)/':''|replace:'index.php':''}{$pagination}" /> -->
        <link rel="canonical" href="{rtrim($base_dir,'/')}{$request_uri|regex_replace:'/\?(.*)/':''|replace:'index.php':''}{$pagination}" />
  {assign var=nobots value=true}
{/if}
{/if}
{if in_array($page_name,$noindex_pages_array)}
  {assign var=nobots value=true}
{/if}
        <meta name="robots" content="{if isset($nobots)}no{/if}index,{if isset($nofollow) && $nofollow}no{/if}follow" />        
<!-- /canonical -->

Si lo pruebas observa que tendrás que comentar la línea meta robots para que no esté duplicada.

 

Respecto a las url que ya no existen o las modificadas, eso es otro tema y tendrás que hacer un redireccionamineto 301 en el htaccess.

Hola y gracias por la respuesta.

 

Entiendo que funcionaría igual...  Siento decirte que aún soy un aficionado con el tema código y me gustaría que me dijeras a que te refieres cuando dices "comentar la linea...."

 

Y con el tema de redireccionamiento ¿tengo que coger las que ya no existen y trabajarlo con el htaccess o bien puedo hacerlo con el robots y herramientas webmaster y eliminación de url que para mi sería más sencillo y se hacerlo?

 

Gracias.

Link to comment
Share on other sites

El código que tu has puesto al principio no es igual que el que he puesto yo, no funciona exactamente igual. Respecto a lo de comentar la línea, me refiero a esta línea:

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

Prestashop la lleva por defecto, por lo que si copias el code que te he puesto, esa línea quedará duplicada; puedes comentar o eliminar una de las dos.

 

Respecto a las urls modificadas, si google las tiene indexadas lo suyo es que las redirecciones a la nueva url. Las urls que ya no existen si google las tiene indexadas quedarán huerfanas; puedes hacer lo que dices con webmastertools, pero yo lo que haría es direccionarlas a alguna parte de mi tienda, por ejemplo al index, aunque yo lo que hago es crearme una página cms donde explico que ese producto ya no existe blalblabla.... y las redirijo todas ahí, es una forma de no perder tráfico.

Link to comment
Share on other sites

El código que tu has puesto al principio no es igual que el que he puesto yo, no funciona exactamente igual. Respecto a lo de comentar la línea, me refiero a esta línea:

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

Prestashop la lleva por defecto, por lo que si copias el code que te he puesto, esa línea quedará duplicada; puedes comentar o eliminar una de las dos.

 

Respecto a las urls modificadas, si google las tiene indexadas lo suyo es que las redirecciones a la nueva url. Las urls que ya no existen si google las tiene indexadas quedarán huerfanas; puedes hacer lo que dices con webmastertools, pero yo lo que haría es direccionarlas a alguna parte de mi tienda, por ejemplo al index, aunque yo lo que hago es crearme una página cms donde explico que ese producto ya no existe blalblabla.... y las redirijo todas ahí, es una forma de no perder tráfico.

Muuchas gracias!!

 

Ahora lo entiendo y voy a aplicarlo durante el día y vemos a ver que pasa con las duplicadas y haré lo que comentas y crearé también una cms porque al index prefiero que no redirija.  Me has ayudado mucho, de verdad.

 

Lo que no entiendo es porque no funciona esto del canonical en esta versión de ps porque de hecho tendría que funcionar solo poniendo lo del 301 en preferencias de url ¿verdad?  ¿Sabes si en proximas versiones lo solucionarán y si es así tendré que quitar este código?

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...