Non so se lo davi già per scontato, comunque la variabile $_SERVER['HTTP_REFERER'] contiene il cosiddetto 'referer', l'indirizzo da cui l'utente arriva alla tua pagina web.
Se è vuota si tratta di accesso diretto, altrimenti poi dovrai esaminarla per stabilire se si tratta di un motore o di un altro tipo di link.