Table of Contents

Web - Prerendering / Snapshoting (Dynamic to Static Web Site Generation)

About

Prerendering is a web static generator method that will take a dynamic website and turn it into a static web application.

You then:

The website (called a progressive static site) is created at build time via a static site generator where every statically exported HTML page is an entry point to the full application.

Method

Built time

The page is created at built time.

Example with React: see React - Server-rendered markup (renderToString / hydrate)

Crawling

The principle is:

Use case

There are some use-cases where prerendering might not be a great idea.

List

wget

Wget

wget \
     --recursive \ # Download the whole site.
     --page-requisites \ # Get all assets/elements (CSS/JS/images).
     --adjust-extension \ # Save files with .html on the end.
     --span-hosts \ # Include necessary assets from offsite as well.
     --convert-links \ # Update links to still work in the static version.
     --restrict-file-names=windows \ # Modify filenames to work in Windows as well.
     --domains yoursite.com \ # Do not follow links outside this domain.
     --no-parent \ # Don't follow links outside the directory you pass in.
     https://hostname.com/whatever/path # The start URL to download

others

Name Headless browser used Create React App Support
React Snap pupetteer Yes
react-snapshot jsdom Yes
prerender-spa-plugin pupetteer / jsdom WebPack
phenomic Yes
Prep PhantomJs No

A lot are present on this page: alternatives

Other: