Il buffering dell'output c'entra poco e niente, se tu il tag title lo metti nel <body> della pagina il titolo viene visualizzato comunque correttamente (sia con ob_start che senza). Il discorso è appunto che questo secondo lo standard va messo nel tag <head>, facilissimo che google non lo indicizzi se non lo trova al suo posto.
Come hai già detto basta inserire la query&co. prima di mandare in output il tag <head>, non vedo dove sia il problema