diff --git a/docs/going-to-production.md b/docs/going-to-production.md index f65f055d0677..c0527b966a54 100644 --- a/docs/going-to-production.md +++ b/docs/going-to-production.md @@ -69,6 +69,12 @@ export async function getServerSideProps({ req, res }) { } ``` +By default, `Cache-Control` headers will be set differently depending on how your page fetches data. + +If the page is using `getServerSideProps` or `getInitialProps`, then it will use the default `Cache-Control` header configured by `next start` in order to prevent accidental caching of responses that cannot be cached. If you want a different cache behavior while using SSR you can use `res.setHeader('Cache-Control', 'value_you_prefer')`. + +If the page is using `getStaticProps` or automatic static optimization, then it will have s-maxage=REVALIDATE_SECONDS, stale-while-revalidate or if revalidate is not used s-maxage=31536000, stale-while-revalidate. + > **Note:** Your deployment provider must support edge caching for dynamic responses. If you are self-hosting, you will need to add this logic to the edge yourself using a key/value store. If you are using Vercel, [edge caching works without configuration](https://vercel.com/docs/edge-network/caching). ## Reducing JavaScript Size