Building sites VF page ,you may need to go through Visualforce tags such as
apex:include apex:define apex:insert apex:component
You can adopt template based approach where you define reusable template and later implement the template .
Some of the best practices is to put all CSS and js in static resource .