web-dev-qa-db-fra.com

De multiples formes de la page d'index étant indexés par les moteurs de recherche

J'ai remarqué que les moteurs de recherche marquaient mon index ou ma page d'accueil avec un contenu/titre/description en double, etc. En gros, il s'agissait de l'indexation:

http://www.example.com
https://www.example.com
http://www.example.com/
https://www.example.com/

Je pense avoir résolu un problème avec l'utilisation de la canonicalisation comme ceci:

<link rel="canonical" href="https://www.example.com/" />

Mais cela me montre toujours qu'il y a un doublon entre ces deux URL:

http://www.example.com/
https://www.example.com/

Étrangement, j'ai canonique que je voulais

https://www.example.com/

Comment puis-je arrêter les moteurs de recherche d'indexer toutes ces variations afin qu'ils les voient tous comme un seul domaine? Je pourrais les ajouter au robots.txt fichier, mais je crains qu'il arrêterait l'indexation du site tout à fait.

1
LOTUSMS

La manière correcte de favoriser https par rapport à http a été corrigée en modifiant le fichier htaccess avec les lignes suivantes

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule ^ https://%{HTTP_Host}%{REQUEST_URI} [L,R=301,NE]
</IfModule>

J'ai téléchargé Screaming Frog pour explorer le site et voir exactement ce que les moteurs de recherche voient. J'ai réalisé que les deux versions ont été explorées, mais la version http a montré qu'elle était 301ed. Ce qui est exactement ce que les moteurs de recherche doivent voir. Cependant, j'ai réalisé que mes pages étaient dupliquées dans chaque version sans statut 301 (seul le chemin d'accès d'origine l'était). Après quelques recherches, j'ai découvert qu'une directive vers une page d'erreur 404 résout ce problème. J'ai donc encore modifié htaccess et c'est le code final

<IfModule mod_rewrite.c>
    ErrorDocument 404 /404.php
    RewriteEngine On

    # It favors the www version without a canonical tag
    RewriteCond %{HTTP_Host} !^www\.example\.com$ [NC]
    RewriteRule ^ https://www.example.com%{REQUEST_URI} [L,R=301,NE]

    # It favors the https version of URI
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule ^ https://%{HTTP_Host}%{REQUEST_URI} [L,R=301,NE]

    # To externally redirect /dir/file.php to /dir/file
    RewriteCond %{THE_REQUEST} \s/+(.+?)\.php[\s?] [NC]
    RewriteRule ^ /%1 [R=301,NE,L]

    RewriteCond %{REQUEST_FILENAME}.php -f
    RewriteRule ^(.+?)/?$ $1.php [L]
</IfModule>

Voir la question initiale dans mon StackOverflow ici ( https://stackoverflow.com/questions/51504638/removing-the-php-file-extension-from-the-url-request )

0
LOTUSMS