salesforce.com の Visualforce で <title> を表示する

問題

salesforce.com の Visualforce ページで、アプリケーションページではなく公開用に独自デザインされたWebサイトを構築する際、ページに<title>を入れたい。

しかし、<apex:page> タグにshowHeader=”false”を設定すると<title>が表示されなくなる。showHeader=”true” とすると、<title> が表示されるが、一緒に salesforce.com のデザイン用の CSS もざくざくと読み込まれてしまう。独自デザインされたWebサイトページの場合、サイト用に作成した CSS との調整が難しいのでこれは困る。

<title>はSEOにも絶対に必要なので、JavaScript で<title>を表示する(=検索エンジンが読み取れない)などの方法も困る。

解決

<apex:page> タグの内側に<head> <title>….</title></head>を記載すれば、他の自動出力ヘッダと一緒に<head>をうまくマージして出力してくれる。

例)

<apex:page showHeader=”false” title=”salesforce.com page title attribute”>
<!– ↑こちらのtitle属性は表示されない –>
<apex:includeScript value=”{!$Resource.jquery}”/>
<!– ↑headタグの外側にスクリプトのinclude指定をしてもOK –>
<head>
<title>page title in visualforce page</title>
</head>
</apex:page>