diff --git a/module/VuFind/src/VuFind/Sitemap/Generator.php b/module/VuFind/src/VuFind/Sitemap/Generator.php
index c891288689075b18b417133c41129d3f0472ee81..11f2de57039a1e1f7bba6d736caea19c4faf5eef 100644
--- a/module/VuFind/src/VuFind/Sitemap/Generator.php
+++ b/module/VuFind/src/VuFind/Sitemap/Generator.php
@@ -31,6 +31,7 @@ use VuFind\Search\BackendManager;
 use VuFindSearch\Backend\Solr\Backend;
 use VuFindSearch\ParamBag;
 use Zend\Config\Config;
+use Zend\Console\Console;
 
 /**
  * Class for generating sitemaps
@@ -106,6 +107,13 @@ class Generator
      */
     protected $warnings = [];
 
+    /**
+     * Verbose mode
+     *
+     * @var bool
+     */
+    protected $verbose = false;
+
     /**
      * Mode of retrieving IDs from the index (may be 'terms' or 'search')
      *
@@ -152,6 +160,21 @@ class Generator
         }
     }
 
+    /**
+     * Get/set verbose mode
+     *
+     * @param bool $newMode New verbose mode
+     *
+     * @return bool Current or new verbose mode
+     */
+    public function setVerbose($newMode = null)
+    {
+        if (null !== $newMode) {
+            $this->verbose = $newMode;
+        }
+        return $this->verbose;
+    }
+
     /**
      * Generate the sitemaps based on settings established by the constructor.
      *
@@ -225,6 +248,9 @@ class Generator
 
             // Update counters:
             $count += $this->countPerPage;
+            if ($this->verbose) {
+                Console::writeLine("Page $currentPage processed");
+            }
             $currentPage++;
         }
         return $currentPage;
diff --git a/module/VuFindConsole/config/module.config.php b/module/VuFindConsole/config/module.config.php
index 8289573f769a73ae58b772e816f306f99289fa60..584db8061e98068dd35211cf7f53e69b2a720159 100644
--- a/module/VuFindConsole/config/module.config.php
+++ b/module/VuFindConsole/config/module.config.php
@@ -78,7 +78,7 @@ $routes = [
     'util/expire_sessions' => 'util expire_sessions [--help|-h] [--batch=] [--sleep=] [<daysOld>]',
     'util/index_reserves' => 'util index_reserves [--help|-h] [-d=s] [-t=s] [-f=s]',
     'util/optimize' => 'util optimize [<core>]',
-    'util/sitemap' => 'util sitemap',
+    'util/sitemap' => 'util sitemap [--verbose]',
     'util/suppressed' => 'util suppressed [--help|-h] [--authorities] [--outfile=s]',
     'util/switch_db_hash' => 'util switch_db_hash [<newhash>] [<newkey>]',
 ];
diff --git a/module/VuFindConsole/src/VuFindConsole/Controller/UtilController.php b/module/VuFindConsole/src/VuFindConsole/Controller/UtilController.php
index 956bb1d0c5e487cf1a0cfd25a6e470c93b4a413c..9f0cfe20846d368d8147b36c90baf33776b49e02 100644
--- a/module/VuFindConsole/src/VuFindConsole/Controller/UtilController.php
+++ b/module/VuFindConsole/src/VuFindConsole/Controller/UtilController.php
@@ -283,6 +283,8 @@ class UtilController extends AbstractBase
             $this->serviceLocator->get('VuFind\Search\BackendManager'),
             $configLoader->get('config')->Site->url, $configLoader->get('sitemap')
         );
+        $request = $this->getRequest();
+        $generator->setVerbose($request->getParam('verbose', false));
         $generator->generate();
         foreach ($generator->getWarnings() as $warning) {
             Console::writeLine("$warning");