---
title: "HTMLキャッシュの設定"
slug: "configure-html-caching"
abstract: "HTML出力キャッシュを有効にしてウェブサイトのパフォーマンスを向上させる方法、Sitecoreがキャッシュするレンダリングのキャッシュオプションも含めて。"
---
# HTMLキャッシュの設定

HTMLキャッシュはレンダリングをキャッシュする出力キャッシュで、ページ全体をキャッシュするものではありません。HTMLキャッシュはウェブサイトのパフォーマンス向上に使います。

HTML出力キャッシュを有効にするには:

1.  \\App\_Config\\Sitecore\\CMS.Core\\Sitecore.Sites.configファイルのsitesノードであらかじめ定義されたサイトのsite仕様をパッチし、サイトのcacheHtmlプロパティをtrueに設定して、そのサイトのHTML出力キャッシュを有効にします。
    
    > !注インストール時に設定されたwebsiteデフォルトのサイトはすでに存在しています。この設定は、自分で作成しキャッシュをHTMLしたいサイトごとに指定する必要があります。
    
    > !注各キャッシュのサイズは、サイトノードのhtmlCacheSizeプロパティで指定できます。
    
2.  Sitecoreがキャッシュ出力するレンダリングにキャッシュオプションを追加してください。これを行う方法は2通りあります:
    
    -   レンダリングを使うたびにオプションを指定することでローカルでできます。これを行うには、コンテンツエディターでアイテムを開き、 **プレゼンテーション** タブで **「詳細**」をクリックし、オプションを設定したいレンダリングをクリックしてください。
    -   レンダリングの定義項目でオプションを指定することで、グローバルにできます。これがこのレンダリングのすべての用途のデフォルト設定となります。これを行うには、コンテンツツリーの sitecore/Layout/Renderings 部分でレンダリング定義アイテムを開き、 **キャッシュ** セクションのオプションに移動してください。
    
    選択肢は以下の通りです:
    
    -   キャッシュ可能
        
        Sitecoreがレンダリングをキャッシュするかどうかを指定します。
        
    -   インデックス更新はクリア
        
        Sitecoreはコンテンツ検索インデックスを更新する際にキャッシュをクリアします。
        
        これは、Sitecoreインスタンスがレンダリング、コントロール、またはコードを含むサブレイアウトにHTMLキャッシュを使用しており、このコードがインデックスに依存している場合に重要です。詳細は「 [インデックス依存HTML](https://doc.sitecore.com/xp/en/developers/100/platform-administration-and-architecture/index-dependent-html-caching.html)キャッシュ」をご覧ください。
        
    -   データによって変わる
        
        Sitecoreはアクセスされたアイテムに基づいて出力をキャッシュします。これは、例えばヘッダーやフッターなど、コンテンツが非常に一貫している場合に有用です。
        
    -   デバイスごとに異なる
        
        Sitecoreは各デバイスごとに個別に出力キャッシュを行っています。
        
    -   ログインによって変わる
        
        Sitecoreは出力の2つのコピーをキャッシュします:1つは認証済みユーザー用、もう1つは非認証ユーザー用です。
        
    -   パラメータによって変化する
        
        Sitecoreはレンダリングが受け入れる各パラメータに対して出力をキャッシュします。
        
    -   クエリ文字列によって変化
        
        Sitecoreは、クエリ文字列パラメータの一意な組み合わせごとに出力をキャッシュします。
        
    -   ユーザーによって異なる
        
        Sitecoreは認証済みユーザーごとに出力キャッシュを行います。
        
3.  Sitecore cacheHtmlプロパティの値をtrueとして設定したすべてのサイトのキャッシュをクリアします。 publish:endイベントハンドラは標準的なインストールで次のように設定されています:
    
    <event name="publish:end">
     <handler type="Sitecore.Publishing.SmartHtmlCacheClearer, Sitecore.Kernel" method="ClearCache" resolve="true" />
     ...
     </event>
    
    公開時にサイトのキャッシュがクリアされたくない場合は、次のようにしてサイト定義にpreventHtmlCacheClear属性を追加できます:
    
    <site name="custom\_website" cacheHtml="true" preventHtmlCacheClear="true" … />
    

## パーソナライズとHTMLキャッシュ

> !重要パーソナライズルールを使用するレンダリングでHTMLキャッシュを有効にしないでください。パーソナライズとHTMLキャッシュの組み合わせはSitecore XP 9.2以降ではサポートされていません。

レンダリングでHTMLキャッシュが有効になると、Sitecoreは最終的なレンダリングマークアップを保存し、その後のリクエストで再利用します。キャッシュされた出力が直接提供されるため、パーソナライズルールはリクエストごとに再評価されず、本番環境でのパーソナライズ動作が一貫性や誤った動作を引き起こします。

このトピックで説明するキャッシュオプションのいずれも、HTMLキャッシュをパーソナライズルールと互換性のあるものにはしません。これらのオプションの組み合わせをいずれかの組み合わせで設定しても、リクエストごとのパーソナライズ条件の評価は復元されません。

パーソナライズルールを使用するレンダリングについては、HTMLキャッシュを無効にすることを推奨します。同じレンダリングが複数のページで使用され、そのうち一部のページだけがパーソナライズを使っている場合、レンダリング定義レベルで全体的に無効にするのではなく、影響を受けたページでキャッシュを無効にできます。これにより、パーソナライズが適用されていないページでもレンダリングがキャッシュされたままにできます。

特定のレンダリングインスタンスのキャッシュを無効にするには、エクスペリエンスエディターでページを開き、レンダリングを選択し、レンダリング設定のキャッシュ **可能な** チェックボックスをクリアしてください。