QGIS Cloud Support is repeatedly asked: ‘Why is my QGIS Cloud map so slow and what can I do to make it faster?’ Basically, the bottlenecks can be traced back to poor data management and/or a slow internet connection. In this short blog article, I would like to give you a few tips on what you can do to speed up a slow loading map.
Optimise the data
Make sure that your database is optimised and that you only use the necessary data in your web map. Reduce the number of attributes you query and use spatial indices if necessary.
Load background layers
Whenever possible, enable the option ‘Show WMS, WMTS, and XYZ-Layers as Backgroundlayers’ as follows.
- open qgiscloud.com
- log in to your account
- open the maps tab
- click on the pencil icon of the map in question
- tick the option ‘External WMS layers’
Small projects
In QGIS Cloud, the maps are rendered by a QGIS Server. This means that the QGIS server must load the project with all layers before it can deliver a map image. You can roughly estimate how long it will take to load the project at your home with QGIS Desktop. With 150 layers in a project, this takes quite some time. The QGIS Cloud QGIS Server is faster than your local QGIS Desktop, but it takes time. For this reason, it is better to split published maps with numerous layers into smaller projects.
My advice: Assign as few layers as possible to a map!
Avoid external WMS
If you use external WMS in a QGIS project on QGIS Cloud, these external WMS can have a very strong influence on performance. In principle, the QGIS Cloud QGIS Server can only deliver the map when all layers of the project have been drawn. If one or more external WMS are slow and delay the drawing process, then the QGIS Cloud map will also be correspondingly slow. In the worst case, the map will not be drawn at all if the loading of an external WMS is so slow that a timeout occurs.
My advice: Check the performance of the external data loaded in the project. If possible, avoid using external WMS. At the very least, you should load these sources as background layers.