Fully Stocked: In Which City Is This Container Ship Moored?
Bellingcat Maritime Mysteries. A container ship at the quay, no EXIF, no caption. Google Lens found the photo on a dozen sites, one of them leaked a Pexels file name, and the original on Pexels is tagged Hamburg. The cranes and the bridge in the frame confirm it.
Title: Fully Stocked (Bellingcat Challenge, Maritime Mysteries series)
Description: Ship shape and ready to get underway. A picture-perfect ship waiting to be found. Container vessels are a common sight in ports around the world, but this one is particularly well-stocked. They’re a vital part of the global supply chain, but where is this one moored?
Question: In which city would you find this port?
The answer, up front: the photo is a Pexels stock photo by Sascha Hormel, taken in the port of Hamburg at the HHLA Container Terminal Burchardkai. The challenge site accepted the answer.
HamburgThe title is the hint. “Fully Stocked”, “picture-perfect”: the photo is a stock photo, and stock photos carry their location in the listing.

The whole brief. No EXIF: the file carries an edit date from 2024 and nothing else, no camera, no GPS. No caption, no port name in plain view.
Step 1: Google Lens
Cropped to the ship and the cranes, Google Lens returns the same photo over and over:

Lens on the ship side of the frame. The selection leaves out the empty sky, which only adds noise.

The same frame on a Green MEP’s blog, an electrician’s site in the US, a logistics firm in Mauritius, a print shop and a business school. Unrelated sites in four countries using one photo: that is a stock photo.
How sure? Very. Nobody photographs the same ship from the same spot at the same angle for a dozen unrelated companies. One photographer took it once, and everyone else licensed it.
None of these pages says where the ship is. They use it as decoration. What’s needed is the original listing.
Step 2: The file name gives the source away
Open one of the hits in the browser’s dev tools. On Rasmus Andresen’s post the image has an empty alt, but its data-title and its file name are the original upload name:

pexels-hormel-media-1095814: the platform, the photographer’s handle and the photo ID, all in the file name.
pexels-hormel-media-1095814-scaled-aspect-ratio-16-9
Pexels names downloads pexels-<user>-<id>, and WordPress keeps the name on upload. Two leads in one string: the source is Pexels, and the photo ID is 1095814.
Step 3: Find the original on Pexels
Either open the ID directly (pexels.com/photo/1095814/) or put Lens and the platform together: same image, plus the search term pexels.
[challenge image in Google Lens] + pexels

First hit: the Pexels listing, “shallow focus photography of black ship”.
The Pexels page has the uncropped original and the metadata the reposts stripped:

Sascha Hormel, 16 May 2018, 5184 × 3456. Location: Hamburg, HH, Germany. Description: “A large cargo ship in the port of Hamburg, cranes loading containers under a clear sky.”
How sure? The location field on a stock site is typed in by the uploader, so on its own it is a claim, not a proof. It needs a check from inside the picture. That’s Step 4.
Step 4: The match
Challenge photo and Pexels original, one above the other:

Top: the challenge. Bottom: Pexels 1095814. Same hull, same lettering, same …RDKAI on the boom below the white gantry, same pylon, same crane row. The original shows more boom at the top: the highest one, cut off in the challenge, reads …URCHARDKAI.
The challenge is a crop of the Pexels photo, with a different colour grade. Every fixed feature sits in the same place.
Verification: the picture says Hamburg on its own
The stock listing is one source. The photo itself is the second, and it doesn’t depend on Pexels at all.
The crane label. The ship-to-shore cranes carry their terminal’s name on the boom:

Three booms, each with the end of the same word: …RDKAI. In the Pexels original the top boom, cut off here, shows more of it: …URCHARDKAI.
“Burchardkai” is the name of Container Terminal Burchardkai (CTB), the largest HHLA terminal in the port of Hamburg, on the former Elbe island of Waltershof. There is no second Burchardkai.
The bridge. On the horizon, between the ship and the crane row:

A cable-stayed bridge with an A-shaped pylon and a long, high approach: the Köhlbrandbrücke.
The Köhlbrandbrücke is the most recognisable structure in the port, and the geometry fits. Burchardkai’s berths 1 to 6 line the north side of the Waltershofer Hafen, with Eurogate’s Container Terminal Hamburg on the south side opposite. Looking east out of the basin, Burchardkai is on the left, a row of Eurogate cranes is on the right, and the Köhlbrandbrücke (main span around 53.519, 9.952) stands about 2.5 km away to the east-southeast. That is exactly the layout of the photo. From that angle you look almost along the bridge, so its two pylons line up into one.
Crane label and bridge each point to Hamburg on their own. Together they place the photo in one basin.
The ship. UASC is the United Arab Shipping Company, which merged into Hamburg-based Hapag-Lloyd in 2017. That makes a UASC hull at a Hamburg terminal in 2018 unsurprising, but it’s no proof: these ships call at ports all over the world. The cranes and the bridge are the proof.
Ruling out the alternative: the colour grade and the crop differ between the copies, so the reposts could in theory come from a different shot of a different port. They can’t: the hull lettering, the gap in the crane row and the pylon line up in every copy, and only the uncropped original shows the longer crane label.
The moment it’s settled: …RDKAI on the boom below the white gantry in both frames, and …URCHARDKAI on the boom above it in the original.
Answer
HamburgPort of Hamburg, HHLA Container Terminal Burchardkai, with the Köhlbrandbrücke in the background. Pexels photo 1095814 by Sascha Hormel, 16 May 2018.
Takeaways
- A photo on a dozen unrelated sites is stock. Then the job is no longer geolocation, it’s finding the original listing, because that’s where the metadata survived.
- Read the reposts’ source code, not their text. Captions get rewritten, but file names and
data-titleattributes often still carry the platform, the author and the ID. - Lens plus a platform name narrows the search. Image plus
pexels,unsplashorshutterstockpushes the original listing to the top. - A stock location is a claim, so check it inside the frame. Look for anything that carries a name: crane booms, quay walls, signs. Text cut off in a crop is often complete in the original.
- The challenge title is part of the brief. “Fully Stocked” pointed at stock photos before the first search.
Sources
- Bellingcat Challenge 6: Fully Stocked
- Pexels 1095814: Sascha Hormel, Flacher Fokus Fotografie des schwarzen Schiffes
- Rasmus Andresen: FSG: Windhorst wird seiner Verantwortung nicht gerecht, repost with the Pexels file name
- Wikipedia: Containerterminal Burchardkai
- Wikipedia: Hapag-Lloyd, United Arab Shipping Company (UASC)
- Wikipedia: Köhlbrandbrücke
- OpenStreetMap: Köhlbrandbrücke and Waltershofer Hafen