diff --git a/services/licenses.js b/services/licenses.js
index ca5fb80ebb5e9631305bc200cfec46129d21eac8..851519102ca7f63b9f88ef60f78bb4f2bd733b0b 100644
--- a/services/licenses.js
+++ b/services/licenses.js
@@ -22,6 +22,7 @@ const licenseTypes = {
       'PostgreSQL',
       'Zlib',
     ],
+    aliases: ['BSD', 'Apache 2.0'],
     color: 'green',
     priority: '2',
   },
@@ -43,12 +44,14 @@ const licenseTypes = {
       'OFL-1.1',
       'OSL-3.0',
     ],
+    aliases: ['GPL', 'LGPL', 'MPL', 'MPL 1.1', 'MPL 2.0'],
     color: 'orange',
     priority: '1',
   },
   // public domain licenses do not require 'License and copyright notice' (https://choosealicense.com/appendix/#include-copyright)
   'public-domain': {
     spdxLicenseIds: ['CC0-1.0', 'Unlicense', 'WTFPL'],
+    aliases: ['CC0'],
     color: '7cd958',
     priority: '3',
   },
@@ -56,27 +59,27 @@ const licenseTypes = {
 
 const licenseToColorMap = {}
 Object.keys(licenseTypes).forEach(licenseType => {
-  const { spdxLicenseIds, color, priority } = licenseTypes[licenseType]
+  const { spdxLicenseIds, aliases, color, priority } = licenseTypes[licenseType]
   spdxLicenseIds.forEach(license => {
     licenseToColorMap[license] = { color, priority }
   })
+  aliases.forEach(license => {
+    licenseToColorMap[license] = { color, priority }
+  })
 })
-const defaultLicenseColor = 'lightgrey'
-const licenseToColor = spdxId => {
-  if (!Array.isArray(spdxId)) {
-    return (
-      (licenseToColorMap[spdxId] && licenseToColorMap[spdxId].color) ||
-      defaultLicenseColor
-    )
+
+function licenseToColor(licenses) {
+  if (!Array.isArray(licenses)) {
+    licenses = [licenses]
   }
-  const licenseType = spdxId
-    .filter(i => licenseToColorMap[i])
-    .map(i => licenseToColorMap[i])
-    .reduce((a, b) => (a.priority > b.priority ? a : b), {
-      color: defaultLicenseColor,
-      priority: 0,
-    })
-  return licenseType.color
+
+  const [{ color }] = licenses
+    .map(license => licenseToColorMap[license])
+    .filter(Boolean)
+    .concat([{ color: 'lightgrey', priority: 0 }])
+    .sort((a, b) => b.priority - a.priority)
+
+  return color
 }
 
 function renderLicenseBadge({ license, licenses }) {
diff --git a/services/licenses.spec.js b/services/licenses.spec.js
index d53385684017b3cfe7bd483cb6b75b7b85b785d5..7afe7a9693e2357ad0efb18d26dec4dffcdcac3f 100644
--- a/services/licenses.spec.js
+++ b/services/licenses.spec.js
@@ -5,11 +5,10 @@ const { licenseToColor, renderLicenseBadge } = require('./licenses')
 
 describe('license helpers', function() {
   test(licenseToColor, () => {
-    given('MIT').expect('green')
-    given('MPL-2.0').expect('orange')
-    given('Unlicense').expect('7cd958')
-    given('unknown-license').expect('lightgrey')
-    given(null).expect('lightgrey')
+    forCases([given('MIT'), given('BSD')]).expect('green')
+    forCases([given('MPL-2.0'), given('MPL')]).expect('orange')
+    forCases([given('Unlicense'), given('CC0')]).expect('7cd958')
+    forCases([given('unknown-license'), given(null)]).expect('lightgrey')
 
     given(['CC0-1.0', 'MPL-2.0']).expect('7cd958')
     given(['MPL-2.0', 'CC0-1.0']).expect('7cd958')
diff --git a/services/pypi/pypi-license.tester.js b/services/pypi/pypi-license.tester.js
index 2626a85b590a7514a40e445585c5c6dd3553854b..31c66deeac69f64dd87cbdb30981f6f140979b26 100644
--- a/services/pypi/pypi-license.tester.js
+++ b/services/pypi/pypi-license.tester.js
@@ -4,11 +4,11 @@ const t = (module.exports = require('../tester').createServiceTester())
 
 t.create('license (valid, package version in request)')
   .get('/requests/2.18.4.json')
-  .expectBadge({ label: 'license', message: 'Apache 2.0' })
+  .expectBadge({ label: 'license', message: 'Apache 2.0', color: 'green' })
 
 t.create('license (valid, no package version specified)')
   .get('/requests.json')
-  .expectBadge({ label: 'license', message: 'Apache 2.0' })
+  .expectBadge({ label: 'license', message: 'Apache 2.0', color: 'green' })
 
 t.create('license (invalid)')
   .get('/not-a-package.json')
@@ -31,6 +31,7 @@ t.create('license (from trove classifier)')
   .expectBadge({
     label: 'license',
     message: 'MIT',
+    color: 'green',
   })
 
 t.create('license (as acronym from trove classifier)')
@@ -52,4 +53,5 @@ t.create('license (as acronym from trove classifier)')
   .expectBadge({
     label: 'license',
     message: 'GPL',
+    color: 'orange',
   })