diff --git a/docs/building_your_site/djangodevelopers.rst b/docs/building_your_site/djangodevelopers.rst
index 06797331fe..d1b69dcf3d 100644
--- a/docs/building_your_site/djangodevelopers.rst
+++ b/docs/building_your_site/djangodevelopers.rst
@@ -381,6 +381,8 @@ Examples:
.. automethod:: public
+ See: :ref:`private_pages`
+
.. note::
This doesn't filter out unpublished pages. If you want to only have published public pages, use ``.live().public()``
@@ -394,6 +396,8 @@ Examples:
.. automethod:: search
+ See: :ref:`wagtailsearch_for_python_developers`
+
Example:
.. code-block:: python
diff --git a/docs/frontend_cache_purging.rst b/docs/frontend_cache_purging.rst
index c1b03624fa..5f9f12ab36 100644
--- a/docs/frontend_cache_purging.rst
+++ b/docs/frontend_cache_purging.rst
@@ -3,6 +3,8 @@
Frontend cache purging
======================
+.. versionadded:: 0.4
+
Many websites use a frontend cache such as Varnish, Squid or Cloudflare to gain extra performance. The downside of using a frontend cache though is that they don't respond well to updating content and will often keep an old version of a page cached after it has been updated.
This document describes how to configure Wagtail to purge old versions of pages from a frontend cache whenever a page gets updated.
diff --git a/docs/performance.rst b/docs/performance.rst
index 09f06be0f0..68c6425205 100644
--- a/docs/performance.rst
+++ b/docs/performance.rst
@@ -3,11 +3,13 @@ Performance
Wagtail is designed for speed, both in the editor interface and on the front-end, but if you want even better performance or you need to handle very high volumes of traffic, here are some tips on eking out the most from your installation.
+
Editor interface
~~~~~~~~~~~~~~~~
We have tried to minimise external dependencies for a working installation of Wagtail, in order to make it as simple as possible to get going. However, a number of default settings can be configured for better performance:
+
Cache
-----
@@ -25,16 +27,19 @@ We recommend `Redis `_ as a fast, persistent cache. Install Re
Without a persistent cache, Wagtail will recreate all compressable assets at each server start, e.g. when any files change under ```./manage.py runserver```.
+
Search
------
Wagtail has strong support for `Elasticsearch `_ - both in the editor interface and for users of your site - but can fall back to a database search if Elasticsearch isn't present. Elasticsearch is faster and more powerful than the Django ORM for text search, so we recommend installing it or using a hosted service like `Searchly `_.
+
Database
--------
Wagtail is tested on SQLite, and should work on other Django-supported database backends, but we recommend PostgreSQL for production use.
+
Public users
~~~~~~~~~~~~
@@ -42,3 +47,7 @@ Caching proxy
-------------
To support high volumes of traffic with excellent response times, we recommend a caching proxy. Both `Varnish `_ and `Squid `_ have been tested in production. Hosted proxies like `Cloudflare `_ should also work well.
+
+.. versionadded:: 0.4
+
+ Wagtail supports automatic cache invalidation for Varnish/Squid. See :ref:`frontend_cache_purging` for more information.
diff --git a/docs/private_pages.rst b/docs/private_pages.rst
index 99b3641761..33767a8b5e 100644
--- a/docs/private_pages.rst
+++ b/docs/private_pages.rst
@@ -3,10 +3,13 @@
Private pages
=============
+.. versionadded:: 0.4
+
Users with publish permission on a page can set it to be private by clicking the 'Privacy' control in the top right corner of the page explorer or editing interface, and setting a password. Users visiting this page, or any of its subpages, will be prompted to enter a password before they can view the page.
Private pages work on Wagtail out of the box - the site implementer does not need to do anything to set them up. However, the default "password required" form is only a bare-bones HTML page, and site implementers may wish to replace this with a page customised to their site design.
+
Setting up a global "password required" page
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -52,6 +55,7 @@ A basic template suitable for use as ``PASSWORD_REQUIRED_TEMPLATE`` might look l