diff --git a/mypy.ini b/mypy.ini
index 132059dca299ae9e9433f95c3ff3002b61ed736d..9c56abd8fdb03f282acd2c5ce46b0bfd3ba7aa55 100644
--- a/mypy.ini
+++ b/mypy.ini
@@ -1,2 +1,5 @@
 [mypy]
 files = whatformat/**/*.py
+
+[mypy-flask_caching.*]
+ignore_missing_imports = True
diff --git a/requirements.txt b/requirements.txt
index 230e7b2028a77d12ce744934d6e249e11e7d133a..4352144b61f56010ac9170c73d2b632921b7d3aa 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,2 +1,3 @@
 python-dateutil==2.8.1
 Flask==1.1.1
+Flask-Caching==1.8.0
diff --git a/whatformat/app.py b/whatformat/app.py
index 042a9e035d25ba1fcb56a751fde42838cb129c57..c544cbdac6126986aa05b3fe3a524bee2c2746bb 100644
--- a/whatformat/app.py
+++ b/whatformat/app.py
@@ -1,13 +1,16 @@
 """Flask app for What Format."""
 
 from flask import Flask, jsonify, render_template, request
+from flask_caching import Cache
 from whatformat.util import whatdateformat
 
 # pylint: disable=invalid-name ; These variables are standard for Flask.
 app = Flask(__name__)
+cache = Cache(app, config={'CACHE_TYPE': 'simple'})
 
 
 @app.route('/')
+@cache.cached(query_string=True)
 def landing():
     """Render the homepage."""
     date_string = request.args.get('date')
@@ -15,6 +18,7 @@ def landing():
 
 
 @app.route('/date')
+@cache.cached(query_string=True)
 def date():
     """Return date format strings matching date_string."""
     date_string = request.args.get('date')