diff --git a/nomad/config.py b/nomad/config.py
index 87d1f163e6a2aad3293a1caa575b7754b23882c4..f20b8e84b2fef91ceb0f467ea9aabc1a5f481560 100644
--- a/nomad/config.py
+++ b/nomad/config.py
@@ -205,6 +205,7 @@ parser_matching_size = 9128
 console_log_level = logging.WARNING
 max_upload_size = 32 * (1024 ** 3)
 raw_file_strip_cutoff = 1000
+use_empty_parsers = False
 
 
 springer_db_relative_path = 'normalizing/data/SM_all08.db'
diff --git a/nomad/parsing/__init__.py b/nomad/parsing/__init__.py
index 9b8383c752500c81b0f90b9d79e7e11ababec315..02f172eea84c8746c12293c255d633483f623d18 100644
--- a/nomad/parsing/__init__.py
+++ b/nomad/parsing/__init__.py
@@ -456,28 +456,33 @@ parsers = [
         name='parser/onetep', code_name='ONETEP', domain='DFT',
         parser_class_name='onetepparser.OnetepParser',
         mainfile_contents_re=r'####### #     # ####### ####### ####### ######'
-    ),
+    )
+]
+
+if config.use_empty_parsers:
     # There are some entries with PIDs that have mainfiles which do not match what
     # the actual parsers expect. We use the EmptyParser to produce placeholder entries
     # to keep the PIDs. These parsers will not match for new, non migrated data.
-    EmptyParser(
-        name='missing/octopus', code_name='Octopus', domain='DFT',
-        mainfile_name_re=r'(inp)|(.*/inp)'
-    ),
-    EmptyParser(
-        name='missing/crystal', code_name='Crystal',
-        mainfile_name_re=r'.*\.cryst\.out'
-    ),
-    EmptyParser(
-        name='missing/wien2k', code_name='WIEN2k',
-        mainfile_name_re=r'.*\.scf'
-    ),
-    EmptyParser(
-        name='missing/fhi-aims', code_name='FHI-aims', domain='DFT',
-        mainfile_name_re=r'.*\.fhiaims'
-    ),
-    BrokenParser()
-]
+    parsers.extend([
+        EmptyParser(
+            name='missing/octopus', code_name='Octopus', domain='DFT',
+            mainfile_name_re=r'(inp)|(.*/inp)'
+        ),
+        EmptyParser(
+            name='missing/crystal', code_name='Crystal',
+            mainfile_name_re=r'.*\.cryst\.out'
+        ),
+        EmptyParser(
+            name='missing/wien2k', code_name='WIEN2k',
+            mainfile_name_re=r'.*\.scf'
+        ),
+        EmptyParser(
+            name='missing/fhi-aims', code_name='FHI-aims', domain='DFT',
+            mainfile_name_re=r'.*\.fhiaims'
+        )
+    ])
+
+parsers.append(BrokenParser())
 
 """ Instantiation and constructor based config of all parsers. """