Je travaille sur un site Web depuis quelques mois et il a commencé à attirer un certain nombre de téléspectateurs après avoir apporté des améliorations au référencement, alors qu'il n'était encore accessible que via un domaine .heroku.com. Je me suis dit qu'il était temps d'acheter un domaine .com sur namecheap, car cela donnerait plus de légitimité au site et pourrait entraîner plus de clics.
J'ai terminé la configuration et on peut trouver mon site à exemple.com et exemple.herokuapp.com. Au début, tous les résultats de recherche dans Google conduisent toujours au site .herokuapp.com et je me trouvais sur la première page de nombreuses requêtes qui me tenaient à cœur. Mais maintenant, ma page est introuvable. Je pense que cela pourrait être dû au fait que Google considère cela comme un contenu en double et me punit sévèrement.
En gros, je veux que tous les liens dans google mènent au site .com normal et que le site herokuapp.com ne soit plus accessible ou ne le cache pas complètement de tous les moteurs de recherche. Je suis tombé sur quelques solutions possibles, mais aucune d’entre elles ne semble très propre ou pratique puisque mon site compte déjà plus de 400 pages. ( Comment se débarrasser du domaine Heroku App dans les résultats de la recherche )
Quelle serait la meilleure façon de s'y prendre?
Enfin, cela a fonctionné grâce au bon conseil de @Stephen Ostermiller.
La solution suivante fonctionnera si votre back-end s'exécute sur Node.js avec Express. Nous allons d’abord créer une redirection 301 pour toutes les pages nécessaires. Voici le code de la page about comme exemple:
/// About Page ////
router.get("/about", function(req, res){
const Host = req.hostname;
const url = req.url;
if(Host === "example.herokuapp.com"){
res.redirect(301, "http://www.example.com" + url);
} else{
res.render("about");
}
});
Il est également tout aussi facile à implémenter pour les requêtes get qui doivent compléter une requête dans votre base de données et transmettre une variable:
/// Kanji Index Route///
router.get("/", function(req, res){
/// Get all kanjis from db///
Kanji.find({}, function(err, allKanjis){
if(err){
console.log(err);
} else {
const Host = req.hostname;
const url = req.url;
if(Host === "example.herokuapp.com"){
res.redirect(301, "http://www.example.com" + url);
} else{
res.render("main/kanjis", {kanjis : allKanjis});
}
}
});
});
le req.url
ne semble capturer que la dernière partie du chemin. Veillez donc à ne pas oublier cela lors de la saisie de la route pour votre redirection.
Après avoir configuré toutes les redirections 301, suivez le guide d'utilisation de outil de changement d'adresse Google .
Google mettra un certain temps à se mettre à jour, je ne peux donc pas confirmer les résultats pour le moment. Mais je crois que cela résoudra le problème.