web-dev-qa-db-fra.com

Âge de position fixe, vérification à l'aide de cookies sans détection de l'agent utilisateur

J'ai construit un script jQuery de vérification de l'âge simple pour une marque d'alcool en particulier. Il demande à l'utilisateur s'il a l'âge légal pour boire avec un bouton Oui ou Non. Oui, le site Web enregistre un cookie et ne reçoit plus cette vérification de l'âge depuis un mois, ce qui est simple.

Le script de vérification de l'âge remplit l'écran en recouvrant tous les éléments derrière, en utilisant quelque chose comme:

.verify {
    position: fixed;
    top:0;
    left: 0;
    width: 100%;
    height: 100%;
}

Évidemment, cela fonctionne superbement pour les utilisateurs, mais pas pour les moteurs de recherche. J'aimerais pouvoir dire à Google/Bing de cliquer sur le bouton Oui, mais malheureusement, je sais que ce n'est pas si facile.

Sans couteaux, poignards et capes cachées, comment puis-je résoudre ce problème?

Veuillez noter que je suis au courant d'une question similaire et ce qui la rend différente est la configuration spécifique à l'esprit, pas les recommandations en général.

3
Simon Hayter

Google verra probablement la superposition même si vous la retardez avec un minuteur de plusieurs secondes. Lorsque Googlebot traite JavaScript, il semble pouvoir ignorer (ou accélérer) les délais d'expiration. Dans le passé, j’essayais de générer une sortie après un délai de 30 secondes et de vérifier ce que l’outil "Fetch and Render" de GSC "voit". L'outil Fetch and Render renvoie souvent "immédiatement" avec le contenu "chronométré" généré par JS déjà rendu.

Mais même si Googlebot a cliqué sur "Oui", il ne stockera pas le cookie, de sorte que la superposition sera toujours présente. Cependant, Googlebot peut toujours potentiellement "voir" ce qui se trouve sous la superposition - mais si "l'utilisateur" ne le peut pas, alors Google peut choisir de l'ignorer (ces jours-ci)?

Quelques possibilités:

  1. Bloquez ce fichier JS particulier avec robots.txt. Googlebot (ou tout "joli" bot) ne récupérera et n'exécutera pas ce fichier JS, ainsi la superposition n'apparaîtra jamais.

  2. Afficher la superposition uniquement aux agents utilisateurs qui prennent en charge les cookies. Googlebot et la plupart des robots des moteurs de recherche ne prennent pas en charge les cookies. Étant donné que vous utilisez un cookie comme déclencheur pour masquer (ou "ne pas afficher") la superposition, cette vérification serait néanmoins judicieuse.

    N'affichez la superposition qu'une fois que vous avez confirmé la présence d'un cookie "test" défini de manière inconditionnelle dans la demande initiale. (Vous pourriez peut-être émettre un appel AJAX pour rechercher le cookie "test", plutôt que d'attendre la deuxième demande - si vous souhaitez que cette superposition apparaisse dès? Bien que la deuxième demande soit peut-être assez tôt .) Googlebot (et la plupart des robots des moteurs de recherche) ne définit pas (ou ne renvoie pas à proprement parler "le retour") le cookie "test". Votre contrôle n'aboutit donc jamais et la superposition n'apparaît jamais. Cela empêcherait également la superposition d'apparaître à plusieurs reprises pour les "utilisateurs expérimentés" qui ont désactivé les cookies dans leur navigateur.

1
MrWhite