Jump to content

Problème de pagination dans les catégories


larson210
 Share

Recommended Posts

In English (translate google)

My prestashop store: https://www.bebecreation.fr
Version of my prestashop: Prestashop 1.7.4.2

Hello to all the community,
I have a problem with the pagination in my categories of my prestashop store.
indeed, we have a duplication of url on page 1 of the store using pagination. Let me explain:

we can notice that if we click on the number 1 of the pagination (wood category for example) we have the url of the page which ends with:? page = 1
The concern is that it is exactly the same page as the basic one without this "? Page = 1" that makes us a duplicate page for google.
if you are on page 2 and you use the "prev" function it's the same, you will have the front page with "? page = 1" instead of the base url.
I give my personal example:
when I go to my "wood" category of my shop the url is:
https://www.bebecreation.fr/16-bois
if I click on the pagination to see the other pages, (2,3,4 ...) I would have this url:
https://www.bebecreation.fr/16-bois?page=2, https://www.bebecreation.fr/16-bois?page=3, https://www.bebecreation.fr/16-bois? page = 4 ......
If I click on 1 I will get this URL:
https://www.bebecreation.fr/16-bois?page=1
while I should have obtained this one:
https://www.bebecreation.fr/16-bois
Ditto with prev on page 2, if I am on page 2 of my category, using the peview button I will have the url with the end in: "? Page = 1" instead of https: // www .bebecreation.fr / 16-wood
this is valid for all the categories of the store with pagination.
Please bring us solutions if there are any.
Kind regards.

En Français:

Ma boutique prestashop: https://www.bebecreation.fr
Version de mon prestashop: Prestashop 1.7.4.2

Bonjour à toute la communauté,
j'ai un soucis avec la pagination dans mes catégories de ma boutique prestashop.
en effet, nous avons une duplication d'url sur la page 1 de la boutique en utilisant  la pagination. Je m'explique:

nous pouvons remarquer que si nous cliquons sur le numéro 1 de la pagination (catégorie bois par exemple) nous avons l'url de la page qui fini par: ?page=1
Le soucis c'est que c'est exactement la même page que celle de base sans ce  "?page=1" cela nous fait une page doublon pour google.
si vous êtes en page 2 et que vous utilisez la fonction "prev" c'est pareil, vous aurez la page d'avant avec "?page=1" au lieu de l'url de base.
je donne mon exemple personnel:
quand je vais dans ma catégorie "bois" de ma boutique l'url est:
https://www.bebecreation.fr/16-bois
si je clique sur la pagination pour voir les autres pages, (2,3,4...) j'aurais cette url:
https://www.bebecreation.fr/16-bois?page=2 , https://www.bebecreation.fr/16-bois?page=3, https://www.bebecreation.fr/16-bois?page=4 ......
Si je clique sur 1 j'obtiendrai cette URL:
https://www.bebecreation.fr/16-bois?page=1
alors que j'aurai du obtenir celle-ci:
https://www.bebecreation.fr/16-bois
Idem avec prev sur la page 2, si je me trouve sur la page 2 de ma catégorie, en utilisant le bouton peview j'aurai l'url avec la fin en : "?page=1" au lieu de https://www.bebecreation.fr/16-bois
ceci est alable pour toutes les catégorie de la boutique comportant une pagination.
Merci de nous apporter des solutions si il en existe.
Amicalement.

Edited by larson210 (see edit history)

Share this post


Link to post
Share on other sites

Non cela ne fait pas de page doublon dans google car vous devriez avoir une canonical expliquant à google que c'est exactement la même page avec des filtres (indice: il est probable que google l'ai déjà compris au demeurant).

Par ailleurs, votre template ne devrait pas présenter page= lorsque c'est 1

Share this post


Link to post
Share on other sites

Merci de votre réponse, 

le soucis c'est que mon Template le fait... après avoir regardé dans le fichier "pagination.tpl" c'est le même code que celui d'origine Prestashop...

Outre le fait de la balise canonical, quand on prend un wordpress il n'y a pas ce soucis, la page est directement dirigée en URL comme il le faut sans le "=1"... je suppose donc qu'un défaut de programmation est à l'origine de ce soucis.

Ce qu'il serait bon c'est d'en trouver la source et la résoudre pour ne plus avoir ce problème. 

Petite info, ce soucis à été relevé par l'agence de référencement (Eskimoz) , qui m'a demandé de le résoudre pour le SEO. Ce qui me laisse à penser que cela à son importance quand même

quelqu'un aurait il un début de piste pour remédier à ce soucis de codage?

merci

Share this post


Link to post
Share on other sites

Il y a 12 heures, doekia a dit :

Non cela ne fait pas de page doublon dans google car vous devriez avoir une canonical expliquant à google que c'est exactement la même page avec des filtres (indice: il est probable que google l'ai déjà compris au demeurant).

Par ailleurs, votre template ne devrait pas présenter page= lorsque c'est 1

Il ne peut pas avoir de canonical car le canonical est désactivé dans le code et visible donc on se demande bien pourquoi :

  <!-- suppression de canonical
      <link rel="canonical" href="https://www.bebecreation.fr/16-bois">
  end suppression canonical  -->
<!-- suppression de href lang
  
                  <link rel="alternate" href="https://www.bebecreation.fr/16-bois" hreflang="fr">
      end suppression href lang  -->

J'adore ces agence SEO qui assènes des vérités sans jamais mettre les mains dans le moteur des sites.
Pas un seul technicien dans leur équipe, des commerciaux, rédacteur mais alors pour savoir comment fonctionne la machine, y a personne, je suis dubitatif de plus en plus sur l'enfumage de ce métier.

Share this post


Link to post
Share on other sites

et pour couronner le tout on a une belle DIV affichée directement dans le head.

<div class="modal fade" id="registrationRewardPopup" tabindex="-1" role="dialog" aria-labelledby="registrationRewardPopupLabel">
    <div class="modal-dialog wkRewardPopup" role="document">
        <div class="modal-content">
            [...]
        </div>
    </div>
</div>

  </head>

  <body id="category" class="lang-fr country-fr currency-eur layout-left-column page-category tax-display-enabled category-id-16 category-bois category-id-parent-12 category-depth-level-3">

Cela aussi l'agence vous en a parler car Google ne doit pas du tout aimer se retrouver avec du code là où il ne doit pas être.

Share this post


Link to post
Share on other sites

merci de vos réponses

Mediacom87, pour te répondre, ils ne m'ont pas encore parlé de cette div, il va falloir que je me penche dessus en effet

On 11/18/2020 at 12:33 AM, Mediacom87 said:

Il ne peut pas avoir de canonical car le canonical est désactivé dans le code et visible donc on se demande bien pourquoi :

  <!-- suppression de canonical
      <link rel="canonical" href="https://www.bebecreation.fr/16-bois">
  end suppression canonical  -->
<!-- suppression de href lang
  
                  <link rel="alternate" href="https://www.bebecreation.fr/16-bois" hreflang="fr">
      end suppression href lang  -->

J'adore ces agence SEO qui assènes des vérités sans jamais mettre les mains dans le moteur des sites.
Pas un seul technicien dans leur équipe, des commerciaux, rédacteur mais alors pour savoir comment fonctionne la machine, y a personne, je suis dubitatif de plus en plus sur l'enfumage de ce métier.

Concernant la canonical, ils me l'ont fait mettre en commentaire, il faut que j'en recherche la raison

On 11/17/2020 at 1:40 PM, doekia said:

si Eskimoz le dit, alors qui suis-je pour avoir un avis différent - désolé

Doekia, je ne souhaite vexer personne dans ce post mais essayer de trouver des solution à un soucis, je ne fait que mentionner les raisons de ma questions, sur un soucis relevé par l'agence de référencement que j'ai mandaté pour optimiser ma boutique… Il ne s'agit en rien d'évaluer les compétences de chacun et de les mettre en concurrence. Pour autant ils ont eu le même discours que toi sur le fait que google savais interpréter les résultats, mais que dans un sens il serai préférable malgré tout que le code soit fait de sorte à ce que ca "coule de source" si je puis m'exprimer ainsi. 

Pour ma part personnelle je pense que si dans Wordpress ils ont codé de sorte à ce que ce soucis n'existe pas je pense que prestashop peux aussi le faire alors pourquoi ne pas faire en sorte que cela le soit.

Je ne sais pas si les différents modules installés peuvent mettre le Bazard, ou le thème utilisé… j'aimerais juste savoir si une solution pour résoudre ce soucis était possible et je suppose que oui mais je ne sais pas par ou commencer.

Comment faire en sorte que la pagination de la page 1 ne s'affiche pas:  "?page=1" mais tout simplement l'url de la page? ceci que ce soit en cliquant sur le chiffre "1" de la pagination ou sur la flèche "prev" à côté du chiffre  "1" quand on est sur la page "2" ?

Quels fichiers sont en relation avec cette fonctionnalité, et comment éventuellement les modifier pour obtenir le résultat escompté?

Encore merci pour vos réponses.

On 11/17/2020 at 11:29 AM, doekia said:

Non cela ne fait pas de page doublon dans google car vous devriez avoir une canonical expliquant à google que c'est exactement la même page avec des filtres (indice: il est probable que google l'ai déjà compris au demeurant).

Par ailleurs, votre Template ne devrait pas présenter page= lorsque c'est 1

oui c'est ce que j'aimerais résoudre.

Share this post


Link to post
Share on other sites

On 11/18/2020 at 12:37 AM, Mediacom87 said:

et pour couronner le tout on a une belle DIV affichée directement dans le head.

<div class="modal fade" id="registrationRewardPopup" tabindex="-1" role="dialog" aria-labelledby="registrationRewardPopupLabel">
    <div class="modal-dialog wkRewardPopup" role="document">
        <div class="modal-content">
            [...]
        </div>
    </div>
</div>

  </head>

  <body id="category" class="lang-fr country-fr currency-eur layout-left-column page-category tax-display-enabled category-id-16 category-bois category-id-parent-12 category-depth-level-3">

Cela aussi l'agence vous en a parler car Google ne doit pas du tout aimer se retrouver avec du code là où il ne doit pas être.

Suggères tu donc qu'elle soit inséré après le </head> c'est ca?

Edited by larson210 (see edit history)

Share this post


Link to post
Share on other sites

il y a 8 minutes, larson210 a dit :

Suggères tu donc qu'elle soit inséré après le </head> c'est ca?

Je ne suggère rien, j'affirme que c'ets de l’incompétence de développeur de balancer du code affichage dans le header.

à un moment donné cela m'énerve de venir expliquer à ces tocard ce qui est la base du premier cours de leur vie.

Share this post


Link to post
Share on other sites

il y a 22 minutes, larson210 a dit :

Comment faire en sorte que la pagination de la page 1 ne s'affiche pas:  "?page=1" mais tout simplement l'url de la page? ceci que ce soit en cliquant sur le chiffre "1" de la pagination ou sur la flèche "prev" à côté du chiffre  "1" quand on est sur la page "2" ?

Vous pouvez rapport le souci auprès de PrestaShop directement pour qu'il soit pris en considération sur es prochaines version de PrestaShop.https://github.com/PrestaShop/PrestaShop/issues/new/choose

Share this post


Link to post
Share on other sites

10 minutes ago, Mediacom87 said:

Je ne suggère rien, j'affirme que c'ets de l’incompétence de développeur de balancer du code affichage dans le header.

à un moment donné cela m'énerve de venir expliquer à ces tocard ce qui est la base du premier cours de leur vie.

Je te comprends, et quand on vois les prix auxquels on paye ces modules, c'est d'autant plus frustrant…

Et tout d'abord, @Mediacom87, je tenais sincèrement à te remercier de ton aide et de la rapidité à laquelle tu réponds!

Share this post


Link to post
Share on other sites

1 minute ago, Mediacom87 said:

Vous pouvez rapport le souci auprès de PrestaShop directement pour qu'il soit pris en considération sur es prochaines version de PrestaShop.https://github.com/PrestaShop/PrestaShop/issues/new/choose

@Mediacom87 Donc ceci est un soucis d'ordre général, que vous retrouvez tous sur vos boutique et non suite à l'installation d'un Template mal codé ou module comme celui que vous m'avez précédemment cité (la div dans le head)

Share this post


Link to post
Share on other sites

Ok, votre réponse ne m'enchante pas j'eu espéré que c'était déjà remonté ou qu'il eu fallu simplement réinitialiser un module qui m'aurai mis le Bazard ou revoir du code de mon thème... bref un truc "connu" . Merci en tout cas du temps que vous m'avez consacré.

bonne journée à vous!

PS @Mediacom87: je viens de poster un autre soucis , si vous en avez la réponse, ca serai avec plaisir!

 

Edited by larson210 (see edit history)

Share this post


Link to post
Share on other sites

bon, je viens e tester sur un e version 1.7.6.9 de Prestashop avec le template classic et les urls sont bonnes sur cette version donc soit il y a eu une modification au niveau du code de PrestaShop soit au niveau du template mais là encore il faut analyser.

Share this post


Link to post
Share on other sites

2 minutes ago, Mediacom87 said:

bon, je viens e tester sur un e version 1.7.6.9 de Prestashop avec le template classic et les urls sont bonnes sur cette version donc soit il y a eu une modification au niveau du code de PrestaShop soit au niveau du template mais là encore il faut analyser.

C'est une excellente nouvelle, donc le soucis à déjà été relevé et modifié! reste à savoir ou...

Avez vous une idée des fichiers qui codent cette pagination (j'ai vérifié pagination.tpl sans succès).  Je suppose que c'est dans un autre ficher ou fichier de module que ca se trouve.

Share this post


Link to post
Share on other sites

après il faut installer la même version que vous et effectuer aussi le test.

si les urls sont bonnes alors c'ets votre template, sinon, c'ets qu'il vous suffit de mettre à jour PrestaShop en même temps, votre version est périmée depuis tellement longtemps que discuter de possibles erreurs de codage est un pléonasme tellement des milliers de bugs furent corrigées depuis dessus.

Share this post


Link to post
Share on other sites

Je suis mille fois d'accord avec vous..... j'aimerais tellement que ca soit aussi simple. Autant je travaille avec prestashop depuis des années ( premiere version 1.4 si je ne me trompe pas...) autant à chaque mises à jour de prestashop c'est la croix et la bannière.. car les modules spécifiques n'avancent pas en même temps que les versions de prestashop, entrainant d'attendre que ceux ci indispensable pour moi soient compatibles,
autant , dés que je teste que ce soit en local ou sur un autre hébergement de faire la MAJ prestashop se met à chaque fois en carafe....Donc pour finir je me retrouve toujours à refaire une boutique complète en partant de 0 et en refaisant toutes mes catégories, articles et modification de fichiers pour mes modules etc.... ( cela me prend presque 3 semaines  1 mois) pour tout refaire....  Sans compter je vous le donne en mille, un gros soucis de référencement car les URL ne sont plus tout a fait les mêmes....

C'est vraiment dommage que la MAJ de prestashop ne se fasse jamais sans soucis de mon côté, ce qui me rend fébrile de les tenter au risque de tout planter.

Share this post


Link to post
Share on other sites

Et vous comprenez maintenant pourquoi une petite franges de professionnels présents sur ce forum déconseille réellement cette version 1.7 car elle interdit de ne pas faire les mise à jours.

Si mon site est encore en version 1.6 (merci @doekia de ta version) ce n'est pas pour rien.

Share this post


Link to post
Share on other sites

                                {if $p != 1}
                                        {assign var='p_previous' value=$p-1}
                                        <li id="pagination_previous{if isset($paginationId)}_{$paginationId}{/if}" class="pagination_previous">
                                                <a{$no_follow_text} href="{$link->goPage($requestPage, $p_previous)}" rel="prev">
                                                        <i class="icon-chevron-left"></i> <b>{l s='Previous'}</b>
                                                </a>
                                        </li>

et

    public function goPage($url, $p)
    {
        $url = rtrim(str_replace('?&', '?', $url), '?');
        return $url.($p == 1 ? '' : (!strstr($url, '?') ? '?' : '&').'p='.(int)$p);
    }

Donc le lien le contient nativement pas ?p=1 dans le paginateur d'origine.

Nous devons ici parler du paginateur de la navigation à facette le corriger pour qu'il n'insère pas page pour la page 1

Share this post


Link to post
Share on other sites

  • 5 months later...
Posted (edited)

Bonjour à tous,

je ne vais pas rouvrir un autre topic concernant ce soucis.

J'ai changé radicalement de thème en achetant un Template vraiment optimisé SEO, qui est vraiment pas mal sur ce point…

je rencontre néanmoins un petit soucis. J'aimerais que les pages paginées génèrent automatiquement sur le {$category.name} le numéro de page (sauf page 1).

Exemple:

page 1 de la catégorie "attache tétine" --> <title><h1>attache tétine</h1>

page 2 de la catégorie "attache tétine" --> <h1>attache tétine - page 2</h1>

page 3 de la catégorie "attache tétine" --> <h1>attache tétine - page 3</h1>

etc....

Le but de l'opération: N'avoir qu'UN seul H1 du même nom…  Car dans cette histoire, si j'ai 10 pages de produits paginés sur cette catégorie "attache tétine" alors j'ai 10 pages avec ce même nom en balise tille H1...

Quel serait alors le code qui me permettrait d'automatiser l'opération de renommage des pages paginées en reprenant le numéro de la page (comme dans les url) et l'intégrer dans la balise H1 du {$category.name} ?

Voici mon bout de code de catégory.tpl:

{block name="category_head"}
    {if isset($category)}
       <section class="kl-category-section">
           {if $category.image.large.url}
              <img class="img-fluid" src="{$category.image.large.url}" alt="{$category.name}" loading="lazy">
           {/if}
          <div class="container">
             <div class="row">
                <div class="col">
                   <div class="kl-intro">
                      <h1>{$category.name}</h1>
                       {if isset($category) && $category.description && !isset($smarty.get.page)}
                          <div id="category-description">
                              {$category.description nofilter}
                          </div>
                           {if $category.description|strip_tags|strlen > 330}
                              <p class="more-description kl-see-more">{l s='Read more' d='Shop.Fashionseo'} <br> <i class="material-icons">expand_more</i></p>
                           {/if}
                       {/if}
                   </div>
                </div>
             </div>
          </div>
       </section>
    {/if}
{/block}

 

Merci beaucoup de votre aide!

Edited by larson210 (see edit history)

Share this post


Link to post
Share on other sites

Je viens de mettre comme ceci:

<h1>{$category.name} {$smarty.get.page}</h1>

Cela me met bien un numéro sur les pages paginées j'aurais aimé malgré tout qu'on ai ma mention "page" et le numéro.

une petite idée pour mettre en dur ce nom "page" avant le numéro de la page?

merci

Share this post


Link to post
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
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More