diff --git a/lib/config/presets.js b/lib/config/presets.js
index 3f373491be82e910a55226568ae7facd019048d0..fd63f3c04d593b77ce7974bc3a47c09a54d7c05c 100644
--- a/lib/config/presets.js
+++ b/lib/config/presets.js
@@ -20,7 +20,7 @@ async function resolveConfigPresets(
   );
   let config = {};
   // First, merge all the preset configs from left to right
-  if (inputConfig.extends) {
+  if (inputConfig.extends && inputConfig.extends.length) {
     logger.debug('Found presets');
     for (const preset of inputConfig.extends) {
       // istanbul ignore if
@@ -44,7 +44,8 @@ async function resolveConfigPresets(
   logger.trace({ config }, `Post-merge resolve config`);
   for (const key of Object.keys(config)) {
     const val = config[key];
-    if (isObject(val) && key !== 'logger') {
+    const ignoredKeys = ['api', 'content', 'logger'];
+    if (isObject(val) && ignoredKeys.indexOf(key) === -1) {
       // Resolve nested objects
       logger.trace(`Resolving object "${key}"`);
       config[key] = await resolveConfigPresets(val, logger, existingPresets);