As sessões

Sessões e mecanismos de pesquisa

O uso de sessões é necessária em muitos casos, e em particular:

  •       Acompanhe o caminho do visitante no site
  •       Memorize determinadas informações (como o conteúdo de uma cesta) As

informações relacionadas à sessão são armazenadas em um arquivo no servidor. Este arquivo é exclusivo e um identificador é gerado para cada usuário. Este identificador é uma sequência de texto composta por pelo menos 32 caracteres. Torna possível fazer a correspondência entre o usuário e o arquivo que contém as informações da sessão.

O identificador pode ser armazenado em um cookie (portanto, no computador do usuário). Essa é a situação mais comum. No entanto, se o usuário não aceitar cookies, é possível transmitir esse identificador via URL. Você certamente viu URLs contendo uma string semelhante a? PHPSESSID = a9e8dc705da1560e9b6d4c1a65ae3245.

Problemas com sessões de SEO

Você deve saber que os mecanismos de pesquisa não aceitam cookies. Portanto, muitos sites resolvem esse problema usando URLs para passar o identificador da sessão, e é aí que os problemas começam.

Os robôs indexam esse tipo de URL, além disso, podemos verificá-lo facilmente. Para fazer isso, basta inserir a seguinte consulta no mecanismo de sua escolha.

Em média (depende da configuração do servidor), os arquivos da sessão são mantidos por trinta minutos. Portanto, quando o robô voltar, uma nova sessão começará com um novo URL para indexar. Observe que o conteúdo será idêntico à página visitada anteriormente pelo robô. Os robôs podem indexar a mesma página centenas de vezes.

Como você pode imaginar, depois de um tempo, os motores de busca detectar dois problemas principais:

  •       URL não permanente
  •       Duplicação de conteúdo
  •       Número infinito de páginas a indexar

Uma solução para fazer com que as sessões desapareçam?

Dizer que as sessões não devem ser usadas não é uma solução concebível. De fato, as sessões podem ser muito práticas para os desenvolvedores, como vimos no início deste artigo. Então, como você remove os IDs de sessão dos URLs? Várias soluções são possíveis:

  •       Faça login apenas quando for útil. Alguns sites abrem uma sessão na primeira página visitada quando ela realmente não é usada até o usuário fazer login.
  •       Passe o identificador em prioridade por cookies e não por URL
  •       Privar usuários da Internet que não aceitam cookies e proibir a passagem de identificadores em URLs
  •       Detectar robôs e iniciar sessões apenas com usuários da Internet

Proibir identificadores de sessão na URL com htaccess

SetEnv SESSION_USE_TRANS_SID 0

Proibir identificadores de sessão no URL via php.ini

session.use_trans_sid = 0

Para servidores IIS, eu já vi um administrador de rede resolver o problema através de uma opção simples em seu painel de administração.

Impedir a passagem de identificadores de sessão no URL

/ * Desativação do reconhecimento do identificador da sessão no URL * /

ini_set ('session.use_trans_sid', "0");

/ * Autorização para uso de cookies * /

ini_set ('session.use_cookies', "1");

/ * Autorização para usar APENAS cookies * /

ini_set ('session.use_only_cookies', "1"); * /

/ * Proibição de adicionar o identificador da sessão no código html gerado * /

ini_set ("url_rewriter.tags", "");

/ * Tudo está sob controle, iniciamos a sessão * / session_start ();

Seria possível torná-lo mais curto, mas eu entreguei o código aqui em uma versão paranóica 🙂

Detectar robôs em PHP

Existem vários métodos para detectar robôs. Por exemplo, é possível controlar o agente do usuário, o host e o IP de cada visitante para iniciar ou não uma sessão. Aqui está uma proposta para controlar apenas o agente do usuário :

<? php

function checkUaRobot () {

  $ robot = false;

  $ _UA = array ("GoogleBot", "Slurp", "MsnBot");

  // Complete esta lista com todos os UA que você deseja obter

  ($ _ UA como $ ua) {

    // Comparamos o agente do visitante da nossa lista

    se (eregi ($ ua, $ _ SERVER ["HTTP_USER_AGENT"])) retornar verdade;

  }

  // A UA não está em nossa lista, é um visitante humano

  return false;

 }

?>

// Chamamos a função

if (! CheckUaRobot ()) {session_start (); }

?>

Uma "solução" final é permitir que o Google gerencie. Ele fará a limpeza mais cedo ou mais tarde, excluindo páginas duplicadas ... mas isso não é recomendado.

 

Próximo : Formulários

Anterior : Referência técnica

Oseox Monitoring