Gli url potresti semplificarli con un mod_rewrite traducendoli in url seo-friendly.
Il fatto che attendi un certo numero di interrogazioni per fare il test captcha significa che comunque, finchè non fai il test un ipotetico bot riesce a fare le interrogazioni del caso.
Io al tuo posto farei un processo di controllo in questo modo:
1: verifico se l'ip è presente nel database con una sessione attiva (non scaduta)
2: se non lo è, gli faccio il test captcha, se lo supera, registro una sessione relativa a quell'utente memorizzo nel database il PHPSESSID, e l'indirizzo IP.
3: finchè la sessione utente è attiva l'utente umano può proseguire la ricerca.
4: per essere più sicuro rifaccio periodicamente il test captcha e comunque lo rifaccio quando scade la sessione.