session_auto_start açıksa; gelen bot bile olsa session oluşacaktır. Çünkü her gelen ziyaretçi için bu durumda session otomatik oluşturulur. Yani bu durumda session id oluşması istemcinin bot olması vs. konusu ile bağlantılı olmaz. session_auto_start kapalıysa; eğer tüm sayfaların kullandığı bir PHP dosyasında session_start(); kullanırsan yine ilk durum gibi gelen bot bile olsa o sayfayı çağırdığı için session açmış olursun.
Eğer yalnızca tarayıcı kullanan ziyaretçiler için session oluşturmak istiyorsan; session_auto_start kapalı olmalı, session başlatma işlemini spesifik bir PHP dosyasına yüklemeli ve JS ile kullanıcı geldiğinde bu sayfayı XHR üzerinden ziyaret ettirmelisin ki robotik olmayan isteklerde session başlatmamış olabilirsin. (İstemci robot mu kontrolleri Cloudflare vs. gibi yapılarda bu şekilde çalışır)
Eğer amacın sadece arama motorları vs. algılamaksa bunu session üzerinden değil User-Agent bilgisi üzerinden yapman daha sağlıklı olacaktır.
Bilgilerin için teşekkür ederim hocam.
Benim şu soruyu sorma asıl amacım Botları ve kullanıcıları ayırmak. Dediğin gibi USER_AGENT ile bu işlemi zaten yapıyorum. Ama tuttuğum logları kontrol ettiğim de eğer yanlış anlamadıysam bazı gelen isteklerin bot veya örümcek vb. olduğunu fakat USER_AGENT bilgilerinde bunu anlayacak bir bilgi yazmadığını görüyuorum. Bakıyorum session_id de oluşturulmamış. Sonra loglarıma bakmaya devam ediyorum bi sonra ki kayıtta sanki aynı kullanıcı bu sefer farklı bi ip ile gelmiş gibi görünüyor. Ya da ben yanlış yorumluyorum kendime.
Az önce @Potanski arkadaşımın belirttiği IP ile doğrulama işlemine göz attım. Bu şekilde de Google Yandex gibi popüler botları algılayabilirim ama bazı ip bilgileri gizli sonuç döndürdüğü için o zamanda ne yapacağımı bilemedim.