Os bots de mecanismos de pesquisa (às vezes chamados de spiders ou crawlers) são programas de computador (bots) que rastreiam as páginas da web. Em outras palavras, eles visitam páginas da web, encontram links para outras páginas e as visitam. Freqüentemente, eles mapeiam o conteúdo que encontram para usar posteriormente para fins de pesquisa (indexação). Eles também ajudam os desenvolvedores a diagnosticar problemas com seus sites.
Como sabemos, o uso cada vez maior de JavaScript na web é certamente benéfico para os usuários, mas renderizar JS é um desafio para os mecanismos de pesquisa. Se o seu site não for gerenciado adequadamente por bots, ou se o seu conteúdo mudar com frequência, você deve renderizar suas páginas dinamicamente e servir HTML renderizado para rastreadores em vez de código JavaScript. Assim, para o fazer, deve saber se o pedido foi feito por um utilizador real ou por um crawler (bot motor de pesquisa).
PHP não tem nenhuma função embutida para detectar bots de mecanismos de pesquisa. No entanto, a função a seguir pode ser usada para esse propósito.

Exemplo:

<?php
  
function is_bot($system) {
      
    // Bots list 
    $bot_list = array(
        'Googlebot', 'Baiduspider', 'ia_archiver',
        'R6_FeedFetcher', 'NetcraftSurveyAgent',
        'Sogou web spider', 'bingbot', 'Yahoo! Slurp',
        'facebookexternalhit', 'PrintfulBot', 'msnbot',
        'Twitterbot', 'UnwindFetchor', 'urlresolver'
    );
      
    // If it is search engine bot
    // returns true, else returns false
    foreach($bot_list as $bl) {
        if( stripos( $system, $bl ) !== false )
            return true;
    }
      
    return false;
}
  
echo is_bot('Googlebot');
  
?>

Saída:

1

Esta função compara o agente do usuário PHP com uma lista de spiders comuns de mecanismos de pesquisa, mais de 180 bots, spiders e crawlers.

Quando 'Googlebot' é fornecido como entrada, a função retorna true (1), pois a entrada fornecida é o nome de um robô de mecanismo de pesquisa.