Building sites VF page ,you may need to go through Visualforce tags such as 

- [apex:include](http://www.salesforce.com/docs/developer/pages/Content/pages_compref_include.htm)
- [apex:define](http://www.salesforce.com/docs/developer/pages/Content/pages_compref_define.htm)
- [apex:insert](http://www.salesforce.com/docs/developer/pages/Content/pages_compref_insert.htm)
- [apex:component](http://www.salesforce.com/docs/developer/pages/Content/pages_compref_component.htm)

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 .