diff --git a/arkindex/documents/indexer.py b/arkindex/documents/indexer.py
index b838eecf5a6c355069f84db3212dfbcc53699f15..b48ec44296ebfa5dd306fadfc4352f06ea894d16 100644
--- a/arkindex/documents/indexer.py
+++ b/arkindex/documents/indexer.py
@@ -186,8 +186,11 @@ class Indexer(object):
         """
         Drop an existing collection
         """
-        solr.delete_doc_by_query(self.collection_name, '*:*', **self.solr_options)
-        logger.info(f'Dropped index for {self.collection_name}')
+        if solr.collections.exists(self.collection_name):
+            solr.delete_doc_by_query(self.collection_name, '*:*', **self.solr_options)
+            logger.info(f'Dropped index for {self.collection_name}')
+        else:
+            logger.info(f'Skipping drop for {self.collection_name}: collection does not exist')
 
     def get_elements(self):
         # First make the query that returns all indexable elements.
diff --git a/arkindex/documents/management/commands/reindex.py b/arkindex/documents/management/commands/reindex.py
index aafa67ce3b56c55ba1c1678696ce0ac7fde84d06..e0e6c95fe818f80356ef9ef4a889067ae88c3e39 100644
--- a/arkindex/documents/management/commands/reindex.py
+++ b/arkindex/documents/management/commands/reindex.py
@@ -48,9 +48,9 @@ class Command(BaseCommand):
         for corpus in corpora:
             self.stdout.write(f"Indexing {corpus.name}")
             indexer = Indexer(corpus.id)
-            indexer.setup()
-            if options.get('setup'):
-                return
             if options.get('drop'):
                 indexer.drop_index()
+            indexer.setup()
+            if options.get('setup'):
+                continue
             indexer.index()