In realtà è proprio così che devi fare. Di solito io preferisco mettere tutto il codice php prima e lasciare "in mezzo" all'html solo gli echo e cicli/if

Codice PHP:
<?php
   
...tutto il codice phpcome le query
   $titolo 
= ....;
?>
<html>
  <head>
     <title><?php echo $titolo ?></title>
  </head>
 <body>
 </body>
</html>
Se invece vuoi separare la logica di busiiness (codice php) dalla presentazione (html) puoi usare uno tra i tanti template engine, come twig o smarty