UNmiss Blog

Docker Hub Froze Its Sitemap and Nothing Broke

Docker Hub submits 134,009 URLs: 101,703 community repositories against 177 official images. We counted all 14 sitemap files and checked the profiles for orphans.

Every site that wants to be crawled keeps a list of itself. Docker Hub keeps one, declares it in robots.txt, and hosts it on a CloudFront domain rather than its own. On 29 August 2026 we pulled the index and every child file, in full, and parsed every URL inside.

Then we looked at the dates.

They all read January 2024. Not most — the index, all 14 child files, and 95.5% of the individual entries carry exactly 17 January 2024. Nothing in that tree has been regenerated in more than 2 and a half years.

By the usual telling, that is a slow-motion disaster: a stale map, a crawler working from an out-of-date address book, a site quietly falling out of the index. That is not what we found. The pages still load, and the link profile sits near the top of this series. Buried in those entries is a better story — about who publishes on Docker Hub, and how little most of them publish.

Results at a glance

134,009
URL entries in the sitemap tree
3.95
Referring domains per page
85
UNmiss website audit score
The short version

Docker Hub's public sitemap has not been rebuilt since January 2024, and it lists 134,009 URL entries — overwhelmingly community-published repository pages, not the official images most people picture.

Despite the frozen map, hub.docker.com carries roughly 3.95 referring domains per page, a density matched in this series only by MDN and beaten only by 2 far smaller sites. The reason is not the sitemap. It is what the pages are for.

A map that stopped being redrawn

The tree is unusually tidy for something abandoned. 14 child files, each capped at exactly 10,000 URLs rather than the 50,000 the specification allows, with the last holding the remainder. The filenames say nothing about their contents, so the only way to know what is inside is to parse every path. The files are gzipped, which some HTTP clients decompress transparently and others do not — a trap that makes them look corrupt.

The abandonment does not show. All 14 files returned cleanly, with no rate limiting, no redirects and no blocked leaves. The detail pages we spot-checked returned 200 and are server-rendered enough for a crawler to read: the title tag states the image name and what it is. A sitemap can be 2 and a half years old and still describe a site that works, because a sitemap is a hint about discovery, not a contract about content.

The cost is at the edges. Anything published since early 2024 is not in the file, and at least one entry now points at a page that no longer exists. Staleness buys not collapse, just a widening gap between map and territory.

Most publishers ship exactly one image

The sitemap lists 2 kinds of thing in any volume: repository pages and the account pages that own them. Sort the repositories by owning namespace and the shape of the platform appears.

65.7% of the namespaces in this file own exactly one repository, and the median publisher owns one. This is not a platform of prolific vendors with sprawling catalogues; it is a long tail of people who pushed a single image and stopped. At the other end, balenalib alone holds 2,118 repositories, and the largest 8 namespaces account for over 4,300.

That distribution matters more than it looks. Contributors to such a site are usually described as interchangeable units of supply. They are not: almost all arrive once. The catalogue grows because the population of one-time publishers grows, not because existing publishers keep publishing. That makes the onboarding path for a first upload the entire growth mechanism.

A Docker Official Image page on Docker Hub, showing the image name, description and pull instructions
What to notice: this is the page type most people picture when they think of Docker Hub, and it is the rarest thing in the sitemap. Community repository pages outnumber official images 574 to 1.

Why a registry page earns links

Docker Hub's referring domains per page is the third-highest we have recorded in this series, level with MDN and an order of magnitude above every other catalogue of comparable size. PyPI, the closest structural comparison — a registry with a page per artefact — sits nearly 50 times lower.

The difference is not marketing and it is not sitemap hygiene. A Docker Hub repository page is an address other people need to write down. A tutorial naming an image, a README documenting a dependency, a CI configuration referencing one — each is a citation created by someone solving their own problem, and the page they cite is the only correct destination, because there is no second canonical place to point.

PyPI, measured the same way, does not get this benefit. Our reading is that package names travel through that ecosystem as text rather than links — an interpretation, not something we measured. The lesson is uncomfortable: link density follows whether your page is the natural thing to paste into a sentence, and no content strategy manufactures that.

The UNmiss Backlink Analyzer report for hub.docker.com showing referring domains and the dofollow to nofollow split
What to notice: 529,795 referring domains, and 87.8% of the measured links are dofollow. Divided across the 134,009 pages in the sitemap, that is the 3.95 figure in the chart above.

What the audit actually shows

Our website audit scores hub.docker.com at 85, with no critical issues and 112 checks passed — level with Eventbrite, above Meetup and Rotten Tomatoes, a few points below PyPI and MDN.

Read as a report card, 85 is unremarkable. Read as a fact about how the site is built, it is more interesting. The technical and on-page subscores are close to perfect; the points come off in speed. That is the profile you would expect from an app that renders enough server-side for a crawler to read a repository page's title and description, then hydrates into a heavy client-side interface for the humans who log in. It is legible to crawlers at the level of individual pages, the only level that matters here.

The perfect pairing that proves nothing

One pattern looked, at first, like a discovery. The account pages and the distinct namespaces owning the repository pages are the same set exactly — 32,035 of each, with no account that owns nothing and no owner without an account. A perfect 1 to 1.

It is arithmetically true and means almost nothing. The generator emits one account page per namespace owning at least one listed repository, so the pairing is guaranteed by construction rather than discovered. The tell is that a dead legacy namespace, which no longer resolves, still received an account entry. It is the most common failure in this kind of analysis: a pattern in an XML file that describes the generator, not the business behind it.

Copy this in an afternoon

None of this requires a registry, only being deliberate about what your map claims.

1. Fetch your own sitemap the way a crawler would. Pull the index, then every child file, and parse the paths rather than trusting filenames. If you cannot state your sitemap's composition by page type, you do not know what you are asking to be crawled.

2. Check the timestamps before anything else. Read the lastmod values across the whole tree, not just the index. A single frozen date means the generator stopped, and nobody gets an alert because nothing visibly breaks.

3. Count your long tail by owner, not by page. Group your generated pages by whatever created them and look at the median. If most owners contribute exactly one page, growth depends on first-time contributors, and your roadmap should reflect that rather than the handful of heavy accounts you hear from most.

4. Divide referring domains by page count. Total link numbers on a large catalogue flatter everyone. The per-page figure tells you whether the pages themselves earn citations, or whether a few famous ones carry the domain.

What you cannot copy

The unfair advantage is that a Docker Hub repository page is the address a machine needs, not just a page a human reads. When anything has to name where an image lives, there is exactly one right URL, and it is on this domain. That is why a sitemap frozen since January 2024 has not visibly hurt: the links were never coming from it.

And here is what we could not check:

These figures describe January 2024, not today. The sitemap has not been rebuilt in more than 2 and a half years, and 95.5% of its entries carry a single date in that month. Every composition number here describes that frozen snapshot; we cannot know how many repository pages exist now, though the true figure is certainly larger.

This is not the size of Docker Hub. The sitemap is a curated slice, not a registry dump, and we did not independently count Docker Hub's public repositories. Its 32,035 account pages are publishers with at least one listed repository — not a census of accounts, a far larger number we did not measure.

The 134,009 figure counts entries, not distinct pages. Two URLs appear twice in the same child file, so the distinct total is 134,007, and one malformed legacy entry with an extra path segment returns a 404. Both are trivial in proportion, and both mean "entries" is the honest word.

Our own link tool does not fully reconcile with itself. The dofollow and nofollow figures sum to slightly more than the total backlinks figure from the same run. We publish referring domains and the dofollow share because the per-page analysis rests on them, but the gap is our defect and the headline backlink total should be treated as approximate.

We measured structure, not outcomes. We have no traffic, ranking or revenue data. Everything here is about what the site publishes and what links to it. Whether the long tail of single-image publishers produces meaningful visits is a question this method cannot answer.

Free, no account
Check whether your own map still matches your site

Docker Hub's sitemap stopped being regenerated and nothing raised a flag. Run the UNmiss Website Audit to see what a crawler actually finds on your domain.

  • Crawls your site the way a search engine does
  • Separates critical issues from warnings and notices
  • Scores on-page, technical, speed and mobile
Run a free website audit

Frequently asked questions

How many URLs are in Docker Hub's sitemap?

134,009 URL entries across an index and 14 child files. An exact count, not an estimate: every child file was fetched in full and every entry parsed, with three independent counting methods agreeing. Two URLs appear twice, so the distinct total is 134,007. Files are capped at 10,000 entries each, the last holding 4,009.

What is actually in it?

Community repository pages account for 101,703 entries, or 75.9% of the tree. Account and organisation profiles account for 32,035, Docker Official Images 177, Docker Desktop extensions 91, and static pages 3. Types were derived by parsing all 134,009 paths, since filenames are non-descriptive and types are not cleanly separated by file.

When was the sitemap last updated?

January 2024. Every lastmod value in the index reads 2024-01-17, each child file's last-modified header matches, and 128,027 of the 134,009 entries carry that exact date. As of 29 August 2026 that is more than 2 and a half years without regeneration.

Does that mean the pages are broken?

No. We requested detail pages with a standard browser user agent and 5 of 5 returned HTTP 200 with no redirects, covering repository pages, an official image and a profile. They are server-rendered enough for search engines to read, with the image name in the title tag. One malformed legacy entry returns a 404.

How concentrated is publishing on the platform?

Very. 21,051 of the 32,035 namespaces, or 65.7%, own exactly one repository, and the median owns one. At the top, balenalib alone holds 2,118 repositories and the largest 8 namespaces hold over 4,300 between them.

What does the backlink profile look like?

Our tool reports 529,795 referring domains for hub.docker.com and a domain rank of 97, with 65,080,678 dofollow and 9,077,748 nofollow links, an 87.8% dofollow share. Across the 134,009 pages that is 3.95 per page. Its separate total backlinks figure of roughly 71.6 million does not reconcile with its own split, a defect on our side.

How does that compare to the rest of this series?

Only calculator.net at 143 across 222 pages and Healthline at 14.4 across 42,567 pages score higher; MDN is level at 3.9 across 66,772 pages. Everything else is below 1: GOV.UK 0.906, GeeksforGeeks 0.6, itch.io 0.318, Eventbrite 0.148, PyPI 0.082, Meetup 0.069, Rotten Tomatoes 0.063 and levels.fyi 0.026.

What did the technical audit find?

A score of 85 with 0 critical issues, 2 warnings, 4 notices and 112 checks passed. Subscores were 23 of 25 on page, 65 of 67 technical, 2 of 2 mobile and 22 of 29 on speed. That ties Eventbrite and sits below PyPI at 91, MDN and itch.io at 88, and GOV.UK at 86.

The tempting conclusion is that sitemaps do not matter. That is the wrong lesson. The sitemap has not mattered here because the pages it describes are cited by people who never touch a search engine to find them; a younger catalogue with a frozen sitemap would simply never be discovered.

The right lesson is what a catalogue is worth per page. Docker Hub carries almost 4 referring domains per page because each page is the one correct answer to a question a developer has to answer in writing. Most programmatic catalogues have the opposite property: the page is one of many ways to describe the same thing, so nobody has to link to it. That difference is settled before you write a template.

If you run a site with generated pages, the honest first step is not to publish more. It is to check whether what you already claim still holds — whether the map is current, whether the pages behind it load, and whether a crawler can read them without running your JavaScript. The UNmiss Website Audit will tell you in a few minutes.

Measured on 29 August 2026. Composition was counted by fetching the index and all 14 child files in full and parsing every one of the 134,009 URL entries; no sampling was used, and an independent recount using three separate methods confirmed the total.

Backlink figures come from the UNmiss Backlink Analyzer and audit scores from the UNmiss Website Audit, both run against hub.docker.com on that date. Comparison figures were produced with the same tools and method earlier in this series.

Blog