Référencement de page irréaliste. /?p=15

WRInaute occasionnel
Bonjour à tous,

Je me permets de poster un message (question que j'ai déjà posée ailleurs) pour récolter un maximum d'avis.
Mon site possède donc depuis quelques temps (je ne sais pas comment évaluer la date initiale d'indexation des pages en question) deux pages indexées alors même qu'elles n'existent pas en soi (ou tous les sites les possèdent dans ce cas) et que cela arrive sur deux pages alors qu'il y a 50 000 combinaisons possibles.

Donc, monsite . com /?p=15
monsite . com /?p=17

Sont donc indexées, ce qui fait un beau duplicat puisqu'elles reprennent le contenu de la home mais sont identifiées comme des pages à part.

Quelqu'un a-t-il déjà rencontré cela ?
Comment cela pourrait ne pas pénaliser le référencement ?

Par contre, j'ai vu que webrankinfo mettait en 301 toutes les pages du type monsite . com /?p=etc
Mon service technique m'indique ne pas savoir le faire, n'est-ce pas un htaccess avec redirection de toute url contenant /?p= ?


Merci à vous !
 
WRInaute passionné
La home est certainement la page la plus importante aux yeux de Google, tu dois être certain qu'elle ne soit accessible que par une seule URL, c'est le B-A-BA. Il te faut une redirection PHP du genre :

Code:
if (!ereg ("www\.example\.com$", $_SERVER['REQUEST_URI'])) {
   header("Status: 301 Moved Permanently", false, 301);
   header("Location: http://www.example.com");
}

En gros si l'adresse demandée n'est pas http://www.example.com tu renvoies en 301 vers http://www.example.com. Ce code fonctionne tout en haut de ton fichier index.php si ta page d'index n'affiche que la home. Sinon (si le fichier gère aussi les catégories par exemple) il faudra écrire plus de règles mais tu ne dois pas passer à coté sinon Google t'indexera des pages qui n'existent pas, parfois il les inventera de lui même (ça m'est arrivé sur un site où il testait tout et n'importe quoi malgré des liens internes et externes ok).

Mon service technique m'indique ne pas savoir le faire
Change de service technique, c'est la base de la base de la base de la base quoi !

Sinon tu peux aussi le faire par .htaccess. Tu as déjà redirigé sans les "www" vers l'URL avec, c'est déjà une bonne chose
 
WRInaute occasionnel
Je connais tout ça ne t'inquiète pas ^^ (mais c'est gentil de faire un rappel tout de même !)
Ma question concernait précisément les url du type :
/?p=15
Exact pour le .htaccess, mais du coup, je vois mal comment impacter les ?p= sans impacter les autres variables ?

Edit : Je crois que l'équipe technique ne maîtrise pas htaccess, ils m'induisent en erreur car tout cela me semble très simple.



Thx.
 
WRInaute passionné
ce genre de chose doivent se traiter en php comme le suggère lambi521. Tu peux aussi ajouter un petit test en début de chaque script pour contrôler qu'il n'y a pas de paramètre GET en trop par rapport à ceux prévus. Si oui => redirection vers l'accueil par exemple.

Il y a aussi la solution de la balise canonical.
 
WRInaute occasionnel
Disons que j'ai un sous-domaine qui utilise wordpress, pas mon domaine principal, serait-ce là que viendrait l'erreur ?

Thx à vous deux.
 
WRInaute accro
C'est effectivement une url typique wordpress. Or WP gère les redirections de l'url "de base" vers les permaliens, quelle que soit la forme. Elles ont dû s'indexer avant la mise en place des permaliens, ou avec quelqu'un qui un jour a tapé au hasard, pour voir ce que ça donne.
Normalement le .htaccess de WP fait des redirections 301, donc pas de problème de DC. (et au pire, tu utilises la balise canonical)

Sur un site non wordpress, si tu n'as que deux pages, le plus simple serait de faire les redirections 301 à la main dans le htaccess
 
WRInaute passionné
Je connais tout ça ne t'inquiète pas ^^ (mais c'est gentil de faire un rappel tout de même !)
Oui, ne connaissant pas le niveau de chacun, je fais un petit rappel quand je répond, on gagne du temps parfois :)

Si c'est pour ce paramètre alors c'est encore plus simple. Tu mets :
Code:
if (isset($_GET['p'])) {
header("Status: 301 Moved Permanently", false, 301);
header("Location: http://www.example.com");
}

Si la variable p est définie sur la home, on renvoie vers l'URL classique. Après à toi de modifier comme tu le souhaites mais le principal est là. Moi mon index.php gère la home, les catégories et les pages par fabricants donc là j'ai imbriqué une 10aine de règles qui redirigent toutes les URLs qui ne me conviennent pas vers les bonnes. Comme ça je suis sûr que je n'ai qu'une seule URL (et la bonne) possible pour afficher la page, donc pas de DC donc Google content :D
 
WRInaute occasionnel
De mon côté, cela ne fonctionne pas :s

Le site est fait avec symphonie, et j'aimerais (pour ceux qui n'auraient pas suivi la conversation depuis le début) que cela fasse comme Webrankinfo tout simplement :
-https://www.webrankinfo.com/?p=1 > home (en 301).
-https://www.webrankinfo.com/?p=2 > home (en 301).
-https://www.webrankinfo.com/?p=etc. > home (en 301).

On teste avec l'équipe de développement un peu toutes les solutions.

@Marie-Aude : on possède en effet un wordpress mais celui-ci est en sous-domaine et rien n'a été fait dessus apparemment :s

En tout cas, merci à vous d'être intervenu et d'intervenir sur ce sujet ;)

Thx d'avance.
 
WRInaute accro
Il existe toujours une infinité d'URLs possibles pour une page donnée. Le problème n'existe réellement que s'il y a des liens vers ces URLs quelque part (Google ne les invente pas). En général un lien mal formé quelque part est le coupable (par exemple une mauvaise config qui ferait que des liens WP ne pointent pas vers la "bonne" URL).

Un problème qui peut se présenter est que dans certaines circonstances, une fois que ce genre de lien incorrect a existé, ça peut continuer à auto-générer ce genre de liens à partir des liens que Google a en cache, même si le lien incorrect original est supprimé (ça dépend de comment les liens dynamiques sont construits), mais je pense que c'est un cas qui reste assez rare.

Dans ce cas, la seule solution c'est au début du script de récupérer toutes les variables qui ont une signification, de construire l'URL "canonique" correspondante, et si l'URL demandée n'est pas l'URL canonique, hop, redirect. Mais ça peut être plus ou moins compliqué à mettre en place, et avec du rewriting j'imagine que ça peut être carrément galère.

Ton équipe technique est mal formée: rien n'est impossible, il y a juste des choses qui coûtent plus cher :twisted:

Jacques.
 
WRInaute occasionnel
Salut jcaron :

Google ne les invente pas
Bien sûr, c'est pourquoi je soupçonne des bls malveillants.

Il y a forcément une manière rapide, sachant que le site ne possède pas d'url basée sur /? de mettre en 301 > home les urls de ce type ?
Le problème, c'est qu'il ne s'agit pas d'un chemin comme les autres puisqu'en soit, /?=15 n'est qu'une variable sur l'url monsite.com/
.
C'est là où je pêche, n'arrivant pas à créer une règle...

Techniquement, cela ne doit pas être dur ?

Ps : Mais merci pour le temps passé sur mon cas jcaron ;)
ps2 : quand je dis "impossible", je veux dire "il n'y arrive pas".
 
WRInaute passionné
Il n'y a rien de plus simple, tu coles ça :
Code:
<?php
if (!ereg ("www\.example\.com$", $_SERVER['REQUEST_URI'])) {
   header("Status: 301 Moved Permanently", false, 301);
   header("Location: http://www.example.com");
}
?>
AU TOUT DEBUT de ton fichier index.php, ça fonctionne à 100% c'est obligé, rien n’empêche un header HTTP de faire son devoir. Si ça ne fonctionne pas, c'est que tu l'as mal mis en place (une recherche rapide sur Google d'aidera...)

C'est là où je pêche, n'arrivant pas à créer une règle...
Tu as encore beaucoup à apprendre petit scarabé ! :lol:
 
WRInaute passionné
Si ça ne fonctionne pas une fois mis en place, poste le bout de code de ton fichier ici que je vois comment vous avez codé ça, je te dirai où est le problème (avec ce que j'ai bouffé comme rewriting/htaccess/headers/301, ça ne me pose aucun problème).

J'avais 10 fois plus de règles imbriquées à écrire pour un site et je peux te dire que ça marche, Google ne crawle plus que les URLs parfaites. Mais c'était un très gros casse-tête d'imbriquer les règles pour couvrir tous les types d'URLs avec tous les types de variables sans en oublier une et sans en faire planter aucune.
 
WRInaute occasionnel
Problème réglé assez facilement (je n'ai pas accès au code de ces sites, je ne fais donc que l'intermédiaire).

Merci à vous ;)
 
Discussions similaires
Haut