Force.comサイトにはサイトテンプレートを指定できる機能が用意されています。
この機能を使うと"apex:composition template"でテンプレートを指定するときに
"{!$Site.Template}"というように指定することができるようになります。
これによりサイトテンプレートを変更したくなったときはサイトの設定画面で変更するだけでコードの修正を行わずに一括で変更できるようになります。
とても便利な機能なのですが、一つ気をつけたほうがよさそうなことがありました。
Force.comサイトで表示するページはVisualforceページになります。そのため社内ユーザもログイン後ならVisualforceタブなどからアクセスすることができます。
このときサイトテンプレートを使っているとテンプレートが反映されなくなってしまいます。
"{!$Site.Template}"はForce.comサイトとしてアクセスしたときのみ適用されることが原因と思われます。この問題は"{!$Site.Template}"を使わず直接テンプレート用のページを指定することで回避できます。
システム管理者ユーザなどでアクセスできるようにしておくとちょっとした確認を行いたいときに便利だと思うので、必要に応じて使い分けるようにした方がよさそうです。