Prestashop : optimisation de votre boutique pour le référencement

Déjà diffusé le 9 juin 2013 @ 11 h 15 min

c’est le principe de la gestion de templates <{SMARTY}>
c’est ce qui permet de compresser le code, et la gestion du cache des templates.

http://www.smarty.net/

Tu peux tout à fait utiliser du php dans tes templates tpl.
http://www.smarty.net/docsv2/fr/language.function.php.tpl

Avec effectivement l’utilisation de smarty.

{php}
// inclusion directe d’un script PHP depuis le template.
include(‘/chemin/vers/display_weather.php’);
{/php}

Et tu peu créer toute sorte de conditions avec les smarty:

{if $status == ‘ok’}

{else}

{/if}

Pas tout les cms utilisent ce type de gestionnaire de templates.

Je peux juste vous dire, que « c’est très puissant » et accessible, pas aussi compliquer que ça.
Le language Smarty, c’est beaucoup plus simple que le Php.

Avec juste ça :
{if $variable}

{else}

{/if}

Tu peut déjà faire plein de choses pour le SEO dans les templates.

 

Une autre astuce pour éviter le DC avec Prestashop,
c’est d’utiliser la balise canonical.
<link rel= »canonical » href= »… »>

Vous pouvez aussi faire un truc comme ceci dans le header de votre thème :

Exemple pour avoir la/les pages du Panier et la page contact en noindex,NoFollow :

Ajoutez ce bout de code dans le header de votre thème:

Code: Tout sélectionner
{if $page_name == panier && $page_name == contact}
<meta name="robots" content="noindex,follow">
{else}
<meta name="robots" content="{if isset($nobots)}no{/if}index,follow">
{/if}

Lorsque la page est : « panier » ou « contact,
la balise robots est en nonindex,nofollow.

Une autre astuce très simple est d’ajouter ce bout de code dans la page ( templates ) que l’on souhaite en noindex, nofollow :

Code: Tout sélectionner
{php}$nobots = '1'; {/php}

Pour activer le noindex des pages « order by » des categories de prestashop:

On va vérifier dans l’url si certaines variables existent.

Toujours dans votre fichier header.tpl de votre thème Prestashop.

Vous copier/coller ce code :

ATTENTION: le code doit être juste « avant » la balise : <meta name= »robots » content= »…

Code: Tout sélectionner

{php}
// Detection d'un eventuel numero de page
if (isset($_GET['p'])) {
$varpagenumber=$_GET['p'];
if($varpagenumber>1) {
$paramurl="?p=$varpagenumber";
$smarty->assign('nobots', 1);
};
};
if (isset($_GET['n'])) {
$varpagenumber=$_GET['n'];
if($varpagenumber>1) {
$paramurl.=(empty($paramurl)?"?":"&")."n=$varpagenumber";
$smarty->assign('nobots', 1);
};
};
// Detection des variables eventuelles de tri de produits
if (isset($_GET[‘orderby’])) {
$varorderby=$_GET[‘orderby’];
$paramurl.=(empty($paramurl)? »? »: »& »). »orderby=$varorderby »;
$smarty->assign(‘nobots’, 1);
};
if (isset($_GET[‘orderway’])) {
$varorderway=$_GET[‘orderway’];
$paramurl.=(empty($paramurl)? »? »: »& »). »orderway=$varorderway »;
$smarty->assign(‘nobots’, 1);
};{/php}

Astuce: pour garder propre le code de fichier header.tpl.
Vous pouvais créer un fichier : include_head.tpl que vous ajouter dans le dossier de votre thème.
Dans ce fichier vous copier le code php ci-dessus.

Et ensuite dans votre header.tpl
vous remplacer le code, par :

Code: Tout sélectionner
{include file='include_head.tpl'}

Pour inclure la balise <meta canonical dans votre thème Prestashop :

Toujours dans le fichier header.tpl

–> Copier /coller ce bout de code, entre les balises <head> et </head>

Code: Tout sélectionner
{if $page_name == index}
<link rel="canonical" href="{$base_dir}" />
{elseif $page_name == product}
<link rel="canonical" href="{$base_dir}{$request_uri}" />
{else}
<link rel="canonical" href="{$base_dir}{$request_uri|substr:1|regex_replace:'//(.*)/':''|regex_replace:'/?(.*)/':''}" />
{/if}

Voilà, avec tout cela, vous devriez ne plus avoir de Duplicat Content dans votre boutique Prestashop.

Luc

Mots clefs de l'article :

Aucun commentaire

Laissez un commentaire !

Catégories

Autres articles sur le blog