web-dev-qa-db-fra.com

Comment puis-je me conformer à la politique de premier clic de Google avec PHP?

J'ai récemment protégé mon site par un mot de passe et obligé les utilisateurs à se connecter ou s'inscrire pour pouvoir afficher le contenu et publier des messages sur les forums. Ce faisant, Google a supprimé la plupart de mes pages dans les résultats de recherche Google, car GoogleBot ne pouvait plus les indexer en raison de la protection par mot de passe. Cela signifie que même si mon site contient des informations très pertinentes, Google ne peut plus y accéder.

J'ai effectué des recherches sur le politique relative au premier clic de Google, qui semble être une option envisageable pour mon site. Il dit essentiellement:

... nous allons analyser et indexer votre site dans la mesure où vous autorisez Googlebot à y accéder. Afin de fournir la meilleure expérience utilisateur possible et d’aider davantage d’utilisateurs à découvrir votre contenu, nous vous encourageons à essayer First Click Free. Si vous préférez limiter l'accès à votre site aux seuls abonnés, nous respecterons votre décision et afficherons une étiquette "abonnement" à côté de vos liens.

Dans cet article , Google indique également certaines règles pour la mise en œuvre de cette stratégie:

Pour mettre en œuvre First Click Free, vous devez autoriser tous les utilisateurs qui ont trouvé votre page par le biais de la recherche Google à voir le texte intégral du document que l'utilisateur a trouvé dans les résultats de recherche de Google et que le robot d'exploration de Google a trouvé sur le Web sans qu'il soit obligé de s'inscrire ou de s'abonner. voir ce contenu. Le premier clic de l'utilisateur sur votre contenu est gratuit et ne nécessite pas de connexion. Vous pouvez toutefois bloquer l'utilisateur par une connexion, une demande de paiement ou une demande d'inscription lorsqu'il tente de cliquer en dehors de cette page vers une autre section de votre site de contenu.

Je ne souhaite pas ouvrir mon site au public , mais comment puis-je laisser Google indexer à nouveau mon site tout en maintenant un niveau de protection du contenu , et adhésion obligatoire? Grâce à PHP, quelles étapes devez-vous suivre pour vous assurer que GoogleBot puisse lire et indexer le contenu de mon site, tout en empêchant les utilisateurs de consulter uniquement l'article que Google les renvoie à.

3
pattyd

Comme indiqué dans la question, la meilleure option pour ce type de problème serait de permettre à GoogleBot d’indexer le site, tout en limitant la consultation des utilisateurs habituels.

Pour ce faire, vous devez être capable de différencier trois types de spectateurs:

  • GoogleBot
  • Un visiteur étant référé par une recherche Google (comme indiqué dans la politique Premier clic)
  • Un visiteur direct référé par un site autre que Google ou sans référent

Afin de différencier ces trois types, vous devez effectuer une série de deux vérifications, l'une par HTTP_USER_AGENT et l'autre par HTTP_REFERER.

  • En utilisant $_SERVER['HTTP_USER_AGENT'], détectez si GoogleBot accède au site Web. Si la valeur est true, autorisez GoogleBot à y accéder sans nécessiter de connexion.
  • De même, avec $_SERVER['HTTP_REFERER'], détectez d'où vient l'utilisateur. Si l'utilisateur a été référé par un autre site, cette variable contiendra une chaîne contenant l'URL de ce site. Si cette variable contient https://www.google.com, vous devez autoriser le téléspectateur à accéder au site.
  • Si le lecteur n'est pas GoogleBot et que Google ne l'a pas référencé, vous devez le forcer à se connecter. Cela garantit que même s'il a été amené sur votre site par Google, son deuxième clic oblige l'utilisateur à se connecter. proviennent simplement d'un site autre que Google, ils seront également obligés de se connecter.

Voici un morceau de code qui fera ces vérifications de base

    //check if the viewer is googlebot, if so, allow
    if(strstr(strtolower($_SERVER['HTTP_USER_AGENT']), "googlebot"))
    {
       //allow access
    }

    //check if the viewer was referred by google, if so, allow
    elseif(strstr(strtolower($_SERVER['HTTP_REFERER']), "https://www.google.com"))
    {
      //allow access
    }

    //if the viewer isn't from google, block vistor viewing
    else{
      //redirect to login
    }

Pour les sites d'informations, il est important de noter que Google exige désormais 3 articles gratuits par jour si vous vous conformez à la politique de premier clic.

Il est possible de limiter le nombre d'articles gratuits auxquels un lecteur de Google Actualités peut accéder via First Click Free. Un utilisateur venant d'un hôte correspondant à [ www.google. ] ou [ news.google. ] doit pouvoir voir un minimum de 3 articles par jour. Cette pratique est décrite comme une "mesure" de l’utilisateur: lorsque l’utilisateur a cliqué sur un trop grand nombre d’articles de Google News publiés par un éditeur, le compteur des articles librement accessibles sur ce site est épuisé.

Il est également extrêmement important de noter qu'il est très facile de "falsifier" un HTTP_USER_AGENT. Il existe de nombreux plug-ins de navigateur et applications qui permettraient à un spectateur d'avoir un agent utilisateur prétendant être GoogleBot. Cela permettrait à un spoofer de visualiser toutes les pages explorables et indexables du site, quel que soit leur statut d'adhésion. Des étapes secondaires pour s’assurer que c’est vraiment le vrai GoogleBot peuvent être nécessaires, mais une vérification de base comme celle-ci devrait fonctionner dans de nombreux cas.

4
pattyd