Putruppo $_SERVER['HTTP_USER_AGENT'] non restituisce una stringa standardizzata in riferimento al browser utilizzato o crawler, dunque c'è da costruirsi una classe o funzione custom, sapendo che ci sono molti browser con relative versioni da gestire, idem per gli OS.
Sul web comunque trovi già progetti piu o meno recenti dove affrontano questo tipo di problematica.