diff --git a/swh/indexer/metadata_dictionary/codemeta.py b/swh/indexer/metadata_dictionary/codemeta.py
--- a/swh/indexer/metadata_dictionary/codemeta.py
+++ b/swh/indexer/metadata_dictionary/codemeta.py
@@ -67,9 +67,13 @@
             namespace = m.group("namespace")
             localname = m.group("localname")
             if namespace == ATOM_URI and localname in ("title", "name"):
-                # Convert Atom name/title to Codemeta name; in case codemeta:name
+                # Convert Atom to Codemeta name; in case codemeta:name
                 # is not provided or different
                 doc["name"].append(self.xml_to_jsonld(child))
+            elif namespace == ATOM_URI and localname in ("author", "email"):
+                # ditto for these author properties (note that author email is also
+                # covered by the previous test)
+                doc[localname].append(self.xml_to_jsonld(child))
             elif namespace in _IGNORED_NAMESPACES:
                 # SWORD-specific namespace that is not interesting to translate
                 pass
diff --git a/swh/indexer/tests/metadata_dictionary/test_codemeta.py b/swh/indexer/tests/metadata_dictionary/test_codemeta.py
--- a/swh/indexer/tests/metadata_dictionary/test_codemeta.py
+++ b/swh/indexer/tests/metadata_dictionary/test_codemeta.py
@@ -213,6 +213,10 @@
       <codemeta:author>
         <codemeta:name>Author 2</codemeta:name>
       </codemeta:author>
+      <author>
+        <name>Author 3</name>
+        <email>bar@example.org</email>
+      </author>
     </entry>
     """
 
@@ -223,6 +227,7 @@
         "author": [
             {"name": "Author 1", "email": "foo@example.org"},
             {"name": "Author 2"},
+            {"name": "Author 3", "email": "bar@example.org"},
         ],
     }