Probleme d'indexation google

Discussion dans 'Problèmes de référencement spécifiques à vos sites' créé par NoWayHome, 3 Mars 2015.

  1. NoWayHome
    NoWayHome WRInaute discret
    Inscrit:
    25 Avril 2006
    Messages:
    93
    J'aime reçus:
    0
    bonsoir.

    J'ai découvert un petit soucis sur mon référencement.

    mon site est architecturé classiquement

    example.com/index.php
    example.com/page1.php
    example.com/page2.php

    pourtant j'ai découvert que google avait fait une drole d'indexation, créant des pages qui n'existe pas :

    ndd.com/index.php/page1.php

    la premiere chose c'est que j'aimerais savoir comment corriger cela pour que si un visiteur clique sur
    example.com/index.php/page1.php
    il aille sur ndd.com/page1.php

    et la deuxieme , savoir pourquoi google fait cela et d'ou il est allé chercher ces urls et comment corriger ça ?

    merci
     
  2. p0k3
    p0k3 WRInaute occasionnel
    Inscrit:
    2 Juin 2010
    Messages:
    353
    J'aime reçus:
    0
    Dans ton .htaccess, tu peux ajouter cette ligne :

    Code:
    redirect 301 /index.php/(.*) /$1
    
    Je pense que ça devrait fonctionner

    D'une manière générale, Google ne devrait pas avoir à indexer un index.php, c'est la page d'accueil...
    Donc faire :

    Code:
    redirect 301 /index.php /
    
    Permettrait à google d'indexer l'accueil sans 'index.php'

    Ensuite, quand tu fais tes liens, tu les écris comment ?
     
  3. NoWayHome
    NoWayHome WRInaute discret
    Inscrit:
    25 Avril 2006
    Messages:
    93
    J'aime reçus:
    0
    Bonjour

    Merci pour la réponse.

    Alors j'ai trouvé l'origine du problème, la cause, le symptome et la solution.

    Par contre pour les liens déja indexé je regarderais pour ta méthode.
    Code:
    redirect 301 /index.php/(.*) /$1
    Bon j'explique , ça servira peut etre à qq un jour.

    - l'origine du probleme :
    Le trailing-slash
    Il s'agit du / qui s'ajoute ( ou pas ) à la fin d'une URL.

    <your-domain-here>/<some-directory-here>/
    (with trailing slash)
    <your-domain-here>/<some-directory-here>
    (no trailing slash)

    - La cause du probleme.
    Je fait de l'url rewritting pour certaines pages, histoire d'avoir

    <your-domain-here>/la-page-2-produits.html
    plutot que
    <your-domain-here>/selection.php?produit=2

    mon premier probleme c'est que ce rewritting présentait une erreur.
    RewriteRule page-rewrite.html page-no-rewritte.php?id=$1 [NC]

    je n'avais pas mis le $ à la fin de la page rewrite
    RewriteRule page-rewrite.html$ page-no-rewritte.php?id=$1 [NC]

    et pour cause ( à cause de mon "second probleme )

    mon second probleme c'est que sur cd meme ndd, j'ai un wordpress et que celui ci est configuré pour que les permaliens soient de type
    /%category%/%postname%/

    avec trailing slash donc.

    ce trailing slash etait occassionais des erreurs sur les autres pages rewrité non wordress , d'ou la désactivation du $.

    - le symptome.

    <your-domain-here>/<some-directory-here>/ ET <your-domain-here>/<some-directory-here>
    affichais la MEME page.
    sauf que l'on peut continué à browser avec <your-domain-here>/<some-directory-here>/ , en "incrementant" le chemin url avec les pages suivantes.
    <your-domain-here>/index.php/page1.php/contact.php ...

    il suffit alors , pour une raison que j'ignore par contre, que les robots testent le trailing slash, pour avoir une page correcte et continue le crawling en referencant des pages qui n'existe pas vraiment.

    - la solution
    1- passer les permaliens du blog sans le trailing slash.
    /%category%/%postname%

    2- Ajouter ce code au htaccess
    Code:
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]
    
    cela va permettre de retirer les / à la fin des urls lorsqu'ils sont mis

    3- bien rajouter le $ dans son rewritting
    RewriteRule page-rewrite.html$ page-no-rewritte.php?id=$1 [NC]

    4- respecter un ordre pour le htaccess.

    le code du 2.
    le code de rewritting.
    le rewrite de wordpress

    Et .. voila.
    les / sont retiré automatiquement , que cela soit sur les pages wordpress ou non.
    il n'y a plus d'erreur

    petite note :
    hors site wordpress , si les pages sont dans un sous repertoire et que vous voulez retirer le /
    le code est :
    Code:
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]
    
    Il ne me reste plus qu'a faire le redirect 301 pour les urls mal indexé.
    un peu long et complexe peut etre dans mon explication mais j'espere que ça aidera qq un jour.