Skip to content

Free images for commercial sites: what to actually check

4 min readProTechBridge

We needed four photographs for this site. Budget was zero, the site is commercial, and the images had to be genuinely free for that use, not "free with attribution", not "free for personal projects".

The licensing turned out to be the straightforward part. The two images we rejected both passed every licence check cleanly, and shipping either would have been worse than shipping nothing.

Get the licence right first

For commercial use with no attribution obligation, the practical bar is CC0 or Public Domain. Not CC-BY, which requires visible credit. Not CC-BY-SA, which can impose obligations you do not want. Not "free" on a stock site whose terms change next quarter.

The reliable route is a source that exposes machine-readable licence metadata. Wikimedia Commons does:

curl -s "https://commons.wikimedia.org/w/api.php?action=query&format=json\
&prop=imageinfo&iiprop=extmetadata&titles=File:Example.jpg" \
  | grep -o '"LicenseShortName":{"value":"[^"]*"'

If that does not return CC0, move on. Do not rely on a search filter, a listing page, or a summary: read the licence field on the file itself. A search interface can be wrong; the metadata is what the uploader asserted.

Then actually open the image

This is the step that catches what licensing cannot.

The first rejection was ideal in thumbnail: a laptop on a desk showing an analytics dashboard, well lit, exactly the subject we wanted for a data section. At full size, the dashboard's list items read:

Some shitty stuff 1 Some shitty stuff 2

A developer's placeholder text, immortalised in a CC0 photograph, invisible at thumbnail size and perfectly legible at the width we intended to display it. That would have gone live on a consultancy's homepage.

The second rejection was a genuinely beautiful golden-hour shot of a container port. Also CC0, no issue there. But the containers carried clear, legible branding: MAERSK, Hapag-Lloyd, CMA CGM, OOCL.

A CC0 licence covers the photograph. It says nothing about trademarks inside the frame. Using it editorially is fine; placing it immediately beside a section headed "Software we built" is different, because a reader can reasonably infer those companies are clients. Nobody sues over this, but a prospect noticing you implied a relationship you do not have is its own cost.

We used a different aerial shot of the same subject where the containers read as colour blocks rather than logos.

A checklist that catches both

Licence aside, look at every candidate at the size you will display it and ask:

  • Readable text on any screen, sign or label. Placeholder copy, someone's real email, a half-visible brand name.
  • Trademarks or logos, particularly if the surrounding content could imply endorsement or a client relationship.
  • Identifiable faces. A model release is separate from an image licence. CC0 does not grant you personality rights.
  • Dated giveaways. A specific phone model or an old OS ages a page badly.
  • Tone against your copy. A photograph of people celebrating, next to an article about losing money, reads as carelessness.

Also check the pixels themselves. One image we processed early came out letterboxed: a black bar across the top, introduced by a botched crop rather than present in the original. It looked fine in a file browser and appalling as a full-width hero. Open the file at full size before it ships.

Weight matters more than it used to

A photograph that is now a full-bleed hero rather than a small card is your Largest Contentful Paint element, and LCP is a ranking input.

Resize to the largest width you will actually display: 1600 to 1800px is plenty for a full-width hero, and compress until quality is visibly affected, then step back once. Ours land between 200KB and 450KB. A 5MB original scaled by CSS costs a visitor the full 5MB.

What we would tell a client

Free images are fine for a commercial site if you do the work: verify the licence from machine-readable metadata, open every candidate at full size, and check for text, trademarks and faces before it ships.

The two we rejected were not licensing failures. They were failures of looking. Every automated check in the world passes an image with profanity on a screen, because no check knows what your homepage is for.

If you cannot find something appropriate, use no image. A clean typographic section beats a photograph that quietly undermines the claim next to it.

  • Web design
  • Brand
  • Licensing

Need a hand with this in practice?

Reading about it is one thing. If you want someone to actually do it, that is what we are for.