Vous n'êtes pas identifié(e).
Actuellement, j'utilise un lien vers un script PHP situé sur une page "random.php" dont le rôle est de sélectionner une page du site au hasard et de faire une redirection 307 vers cette page.
Voici à quoi ça ressemble :
// accès à la base de données
$myhote="x"; $myuser="xx"; $mybase="xxx"; $mypass="xxxx";
$sql = mysqli_connect($myhote, $myuser, $mypass, $mybase);
mysqli_set_charset($sql, 'utf8');
// récupération d'une URL aléatoirement
$resultat_hasard = mysqli_query($sql, "SELECT url FROM table WHERE RAND() > 0.9 ORDER BY RAND() LIMIT 1");
while ( $liste_hasard = mysqli_fetch_array($resultat_hasard) ) { $url = $liste_hasard["post_url"]; }
mysqli_close();
// redirection 307
header("HTTP/1.1 307 Temporary Redirect");
header("Location: http://monsite.fr/".$url."");
?>
<script type="text/javascript">
<!-- tag de l'outil d'analytics -->
</script>
<?php
exit;
?>
Le script fonctionne mais j'aurais deux questions :
- est-ce qu'une redirection 307 est une bonne pratique pour ce que je veux faire ?
- côté analytics, rien ne remonte : que faire pour résoudre ça ?
🔴 Hors ligne
Question toujours d'actualité pour moi...
Auriez-vous une autre méthode ?
Est-ce que ce genre de pratique peut poser problème côté GoogleBot ?
🔴 Hors ligne
Je ne peux pas dire si ce script fait ce que tu attends, mais au niveau du code, ça ne risque pas de marcher.
Ceci n'est pas bon :
$resultat_hasard = mysqli_query($sql, "SELECT url FROM table WHERE RAND() > 0.9 ORDER BY RAND() LIMIT 1");
while ( $liste_hasard = mysqli_fetch_array($resultat_hasard) ) { $url = $liste_hasard["post_url"]; }
Le WHERE est inutile, et si tu fait un select "url", dans le while, tu n'aura rien sur "post_url". L'un ou l'autre est faux.
Du coup, ce serait plus (si la colonne est post_url):
$resultat_hasard = mysqli_query($sql, "SELECT post_url FROM table ORDER BY RAND() LIMIT 1");
while ( $liste_hasard = mysqli_fetch_array($resultat_hasard) ) { $url = $liste_hasard["post_url"]; }
Ensuite, le tag JS après la redirection HTTP ne va pas être interprété, tu ne devrais pas avoir de stat.
🔴 Hors ligne
Le WHERE est inutile, et si tu fait un select "url", dans le while, tu n'aura rien sur "post_url". L'un ou l'autre est faux.
Du coup, ce serait plus (si la colonne est post_url):
$resultat_hasard = mysqli_query($sql, "SELECT post_url FROM table ORDER BY RAND() LIMIT 1");
while ( $liste_hasard = mysqli_fetch_array($resultat_hasard) ) { $url = $liste_hasard["post_url"]; }
Oui, effectivement, il y avait une erreur sur url, c'était bien post_url, c'est d'ailleurs ce qu'il y a dans mon script depuis le départ puisqu'il fonctionne sans souci. J'imagine que j'ai oublié d'adapter la totalité de mon script avant de le copier coller ici.
Le where sur le rand sert à ne faire le tirage au sort que sur un sous-échantillon de mon ensemble d'articles, pour gagner un peu en performance : je n'effectue le tirage au sort que sur les articles ayant reçu un nombre aléatoire supérieur à 0.9.
Ensuite, le tag JS après la redirection HTTP ne va pas être interprété, tu ne devrais pas avoir de stat.
Oui, c'est justement ce qui m'a poussé à créer ce sujet au départ. Que faire pour avoir des stats qui remontent ?
Et sinon, tu me demandes à quoi sert ce script. Cela me permet de proposer un article au hasard aux visiteurs de mon site. La fonctionnalité est pas mal utilisée : ça m'a permis de faire grimper mon nombre de pages vues et le temps passé sur le site, et donc de faire baisser mon taux de rebond.
Dernière modification par Kysban (2020-07-12 22:29:01)
🔴 Hors ligne
Et sinon, tu me demandes à quoi sert ce script. Cela me permet de proposer un article au hasard aux visiteurs de mon site. La fonctionnalité est pas mal utilisée : ça m'a permis de faire grimper mon nombre de pages vues et le temps passé sur le site, et donc de faire baisser mon taux de rebond.
Salut, et in fine, tu as vu une amélioration du ranking de ces pages ? une amélioration du ranking de l'ensemble du site ?
2008, Ghiata Pierre premier site et premier pas dans le SEO. Depuis le SEO ne m'a jamais quitté...
🔴 Hors ligne
Salut, et in fine, tu as vu une amélioration du ranking de ces pages ? une amélioration du ranking de l'ensemble du site ?
Non, côté ranking, je n'ai pas mesuré d'impact positif ou négatif.
Le but est vraiment de faire de l'optimisation webmarketing.
🔴 Hors ligne
Si tu fais une redirection HTTP, ton script JS ne sera jamais interprété.
Soit tu es capable de faire des stats par un appel PHP, s'il te faut un appel JS, il faut faire une redirection avec les balises meta HTML au lieu d'un entête HTTP
🔴 Hors ligne
il faut faire une redirection avec les balises meta HTML au lieu d'un entête HTTP
Ahhh, enfin une réponse technique à mon sujet d'avril 2019.
Merci beaucoup, je vais tester ça.
Du coup, comment je fais la redirection si je passe par une page classique avec balise meta ? Je fais une 307 directement depuis le fichier htaccess ?
🔴 Hors ligne