Pagination et duplicate

Bonjour à tous,

Je viens de corriger quelques bugs de redirections (ma faute) sur l'un de mes pluxml et je me suis rendu compte d'un truc que je trouve louche et qui pourrait gêner le référencement.


La page d'accueil d'une catégorie/d'un tag/de la home et certainement des archives (je n'ai pas vérifié pour les archives) ressemble à :
example.com/categorie1/nom-de-la-categorie
La page 2 ressemble à :
example.com/categorie1/nom-de-la-categorie/page2
Jusqu'ici tout va bien. Maintenant si on clique sur précédent depuis la page 2 on tombe sur :
example.com/categorie1/nom-de-la-categorie/page1
Qui a exactement le même contenu que la page d’accueil de la catégorie :
example.com/categorie1/nom-de-la-categorie

2 urls pour un même contenu ça me dérange un peu (et google aussi).


Si je prend exemple sur http://www.pluxml.org/


On a http://www.pluxml.org/blog = http://www.pluxml.org/blog/page1


Outre l'effet pénalisant pour le référencement (duplicate tout ça, tout ça ...) c'est aussi ennuyant pour les systèmes de cache (navigateur, reverse proxy, proxy ...) car ça fait deux versions de la page pour rien.

Je voulais discuter de ce "problème" avec vous afin de voir si vous pensez qu'il peut être intéressant de corriger cela au niveau de plxMotor (de ce que j'ai vu c'est lui qui gère la pagination)

Réponses

  • StéphaneStéphane Member, Former PluXml Project Manager
    Bonjour petitchevalroux
    Bien vu !!! Le plus simple sera surement de modifier la fonction pagination de plxShow et de ne pas mettre page1 quand on fait précedent. ça évite aussi pour être cohérent de mettre page1 dès qu'on arrive sur le site.
    Je me note ça et je fais la modif rapidement.
    Merci

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • J'ai tenté de faire la modif la semaine dernière mais comme j'avais des problèmes avec mes redirections ça ne fonctionnait pas.


    Je tenterai peut être demain de mon cotés, histoire de mettre un peu les mains dans le cambouis :D
  • Voici la fonction modifiée de plxShow elle fonctionne tel quel pour les homes et les catégories, je n'ai pas testé pour les tags ni les archives (je n'en ai pas) mais ça devrait fonctionner
    public function pagination()
    	{
    
    		$plxGlob_arts = clone $this->plxMotor->plxGlob_arts;
    		$aFiles = $plxGlob_arts->query($this->plxMotor->motif, '', '', 0, false, 'before');
    
    		if ($aFiles AND $this->plxMotor->bypage AND sizeof($aFiles) > $this->plxMotor->bypage)
    		{
    
    			# on supprime le n° de page courante dans l'url
    			$arg_url = $this->plxMotor->get;
    
    			if (preg_match('/(\/?)(page[0-9]+)$/', $arg_url, $capture))
    			{
    				$arg_url = str_replace($capture[2], '', $arg_url);
    			}
    			if (!empty($arg_url) AND empty($capture[1]))
    				$arg_url .= '/';
    			# Calcul des pages
    			$prev_page = $this->plxMotor->page - 1;
    			$next_page = $this->plxMotor->page + 1;
    			$last_page = ceil(sizeof($aFiles) / $this->plxMotor->bypage);
    			# Generation des URLs
    			if (empty($arg_url))
    			{
    				$f_url = $this->plxMotor->urlRewrite();
    			}
    			else
    			{
    				$f_url = $this->plxMotor->urlRewrite('?'.substr($arg_url, 0, -1));
    			}
    			if ($prev_page <= 1)
    			{
    				$p_url = $f_url;
    			}
    			else
    			{
    				$p_url = $this->plxMotor->urlRewrite('?'.$arg_url.'page'.$prev_page); # Page precedente
    			}
    			$n_url = $this->plxMotor->urlRewrite('?'.$arg_url.'page'.$next_page); # Page suivante
    			$l_url = $this->plxMotor->urlRewrite('?'.$arg_url.'page'.$last_page); # Derniere page
    			# Hook Plugins
    			if (eval($this->plxMotor->plxPlugins->callHook('plxShowPagination')))
    				return;
    
    			# On effectue l'affichage
    			if ($this->plxMotor->page > 2) # Si la page active > 2 on affiche un lien 1ere page
    				echo '<span class="p_first"><a href="'.$f_url.'" title="'.L_PAGINATION_FIRST_TITLE.'">'.L_PAGINATION_FIRST.'</a></span>';
    			if ($this->plxMotor->page > 1) # Si la page active > 1 on affiche un lien page precedente
    				echo '<span class="p_prev"><a href="'.$p_url.'" title="'.L_PAGINATION_PREVIOUS_TITLE.'">'.L_PAGINATION_PREVIOUS.'</a></span>&nbsp;';
    			# Affichage de la page courante
    			printf('<span class="p_page p_current">'.L_PAGINATION.'</span>', $this->plxMotor->page, $last_page);
    			if ($this->plxMotor->page < $last_page) # Si la page active < derniere page on affiche un lien page suivante
    				echo '&nbsp;<span class="p_next"><a href="'.$n_url.'" title="'.L_PAGINATION_NEXT_TITLE.'">'.L_PAGINATION_NEXT.'</a></span>';
    			if (($this->plxMotor->page + 1) < $last_page) # Si la page active++ < derniere page on affiche un lien derniere page
    				echo '&nbsp;<span class="p_last"><a href="'.$l_url.'" title="'.L_PAGINATION_LAST_TITLE.'">'.L_PAGINATION_LAST.'</a></span>';
    		}
    	}
    
  • Tu as l'oeil du lynx, j'avais jamais remarqué ;)
  • novembre 2012 modifié
    Jos a écrit:
    Tu as l'oeil du lynx, j'avais jamais remarqué ;)
    J'ai surtout l'oeil du SEO paranos du duplicate, doublé de lunettes spéciales à écrans fumés pour regarder les logs http 8-)


    Le genre de mec casse b*rnes ^^
  • C'est une bonne chose en tout cas.
  • StéphaneStéphane Member, Former PluXml Project Manager
    Pour ceux qui suivent les devs de PluXml sur github, j'ai corrigé la fonction de pagination pour ne plus avoir le duplicate content

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • Au top, merci ;)
Connectez-vous ou Inscrivez-vous pour répondre.