Discoverability
A dataset is published when it can be found without knowing the portal's address by heart. Otherwise the catalog is an internal drive with a pretty cover.
This chapter is about the catalog as a whole: what the platform must do by itself for hundreds and thousands of pages, where to register the catalog, and how to check that search engines see it. How to make a single page or a repository findable without a portal is in the chapter "Making a Publication Findable".
Search engines
Google Dataset Search and similar systems read schema.org/Dataset markup on the dataset page. Next to it you need a sitemap, through which the search engine walks all dataset pages: according to the dataportals-registry export (release 1.27.0 of 15 October 2026) this is the most common machine address of catalogs, about 7,000 records. Titles and descriptions are written in human language. A dataset called "Export 12" cannot be found.
On a portal, markup and the sitemap are not written by hand: the platform must produce them for every page.
| Platform | schema.org markup on the dataset page | Sitemap |
|---|---|---|
| CKAN | the ckanext-dcat extension, structured data module | not in the core; third-party ckanext-sitemap extensions, not maintained by the CKAN community, the most recent updated in 2024 |
| Dataverse | in the core | in the core: generated by an administrator command, a large catalog is split into several files |
| InvenioRDM | in the core | in the core since v13: generated and updated automatically, listed in robots.txt |
| GeoNetwork | in the core: schema.org JSON-LD on the record page; Croissant fields for the ISO 19115-3 schema are in the branch of the upcoming 4.4.13 release, not in 4.4.12 | in the core, but the robots.txt linking to it sits inside the GeoNetwork address, not at the site root; the sitemap is submitted to search engines by hand |
| Cloud services | check the dataset page: markup is sometimes trimmed | check the /sitemap.xml address |
Google advises putting markup on one canonical dataset page, and on copies (for example in search results or on a portal that harvested the dataset from its source) linking to it with the sameAs property. This matters for federation: if a regional portal repeats a city's record with full markup and no link to the original, the search engine sees two different datasets.
What a search engine does not see
A search robot reads an HTML page and follows links. Anything that cannot be reached that way does not exist for it, even if a person sees it easily in a browser.
An interface drawn by a script. The page arrives as an empty shell, and a script loads the list of datasets and descriptions from an API. A robot that does not run scripts sees an empty page; so does a web archive. This is how the "Compendia" section of the Rosstat website works: the page HTML contains not a single link to a document, and the list is loaded by a separate request (this is how it looked in the web archive in February 2026). Rosstat documents are still found in search, but mostly because other sites link to them. The dataset page on data.europa.eu is built the same way: the source HTML has neither a description nor markup, and everything is drawn by a script (October 2026). The archive of Accounts Chamber bulletins serves documents through a search API, and robots never reach the PDFs themselves; this case is analysed in the chapter on archiving.
The cure is not to abandon the API but to give every dataset an ordinary page: the server returns HTML straight away with the description, file links and markup, and dataset lists are paged with ordinary links. The API is in addition to pages, not instead of them.
A site closed to foreign addresses. Search engines, web archives, aggregators and AI agents come from cloud data centres in various countries. If a site does not respond to requests from abroad, it drops out of all of them at once. On 12 October 2026 neither rosstat.gov.ru nor ach.gov.ru opened from a foreign server. What this means for a catalog and how to check it is analysed in the anti-pattern "The door is closed to programs" and in the chapter on archiving.
A sitemap the search engine does not know about. A search engine looks for robots.txt only at the site root. GeoNetwork puts its robots.txt with a sitemap link inside its own address, for example /geonetwork/srv/api/robots.txt, and the documentation explicitly advises registering the sitemap with search engines by hand. In October 2026 geodata.nz, geocat.ch and the Estonian geodata catalog had no robots.txt at the root. GeoNetwork 4.4 serves schema.org markup on record pages, but without a sitemap a robot may never reach those pages. So GeoNetwork catalogs are found mainly through aggregators (data.europa.eu, which replaced the INSPIRE geoportal from 1 July 2026, and national geocatalogs), not through ordinary search.
Spam has markup too
schema.org/Dataset markup is added by the page owner, and nobody checks it. The Web Data Commons project extracts such markup from the open Common Crawl web index. In the 2024 release, the Dataset type was found on 694,000 pages from about 2,000 sites. By I. Begtin's manual estimate (June 2024), of 1.4 million objects marked up this way, about a third are junk (for example, ordinary reference site articles marked up as datasets), a third are data vendors' pages, and only a third are data that can be downloaded.
The DataCatalog type, used to mark up a whole catalog, is so rare that Web Data Commons did not break it out as a separate subset in either 2023 or 2024. A check of the catalog registry in 2024 found such markup on about one catalog in a thousand.
Large portals mark up differently too. In 2024 data.gov served trimmed markup: the name and keywords. In October 2026, on the new catalog.data.gov, dataset markup includes both the licence and a list of files. data.europa.eu has no markup in its HTML at all.
The practical conclusion: markup by itself does not distinguish your dataset from spam. Fill in what spam usually lacks: the licence, the publisher, a list of files with direct links (distribution with contentUrl) and a link to the catalog (includedInDataCatalog), as in the example in Google's documentation.
Aggregators and registries
A higher-level portal will find you only through a dump you have agreed on. How this works and how to get harvested is analysed in the chapter "Federation and Harvesting".
Independent aggregators and dataset search engines (Dateno, find.data.gov.scot, research aggregators) do not crawl the whole internet either. They keep a list of sources and maintain a harvester for each platform type. Hence two reliable ways to reach them:
- Publish where harvesting already happens. A national or agency portal, Zenodo, a domain repository: their harvesters are already set up, and a new dataset reaches aggregators without any effort on your part.
- Install standard software with a known interface. CKAN serves its API and DCAT, DKAN a
data.jsonfile, JKAN a commondata.json, InvenioRDM a REST API and OAI-PMH. Harvesters for them are already written; it is enough to report the catalog's address. A custom-built portal with its own interface needs a separate harvester, and an aggregator gets to it last or not at all.
How much this matters can be seen in a Russian example. In 2024, of 154 Russian catalogs in the Dateno registry, about 15 were indexed. The reasons given were: government sites are closed to foreign addresses, lists under the methodological recommendations are awkward to harvest, and 40–50 custom-built portals each need their own harvester. Finland, where catalogs run on standard software, was much easier to harvest.
In addition, the catalog is registered where its audience looks for the list of portals itself:
- the national registry or the country's higher-level portal;
- re3data for a research repository: the repository itself submits a request through the site form, and after review a record appears with subjects, conditions and certificates;
- FAIRsharing for a database or a standard;
- the dataportals-registry, which describes catalogs for those looking for a portal rather than a dataset.
Registration does not replace a dump. A registry entry with a broken address is worse than no entry: update it after the portal moves.
Programs
A program needs a stable API or a file with all descriptions, and documentation without a captcha. An llms.txt file is a short note for a language model about what is on the site; it is a proposed format, not an adopted standard. MCP is a way to give a program the list of a catalog's queries. Both make sense when such programs already use the catalog. They do not fix the absence of DCAT. More in the chapter on trends.
How to check that the catalog is found
Substitute the portal's address and the address of one dataset page:
PORTAL=https://portal.example
PAGE=https://portal.example/dataset/budget-2026
# the sitemap responds and is listed in robots.txt
curl -s "$PORTAL/robots.txt" | grep -i sitemap
curl -s -o /dev/null -w "%{http_code}\n" "$PORTAL/sitemap.xml"
# the dataset page has Dataset markup
curl -s "$PAGE" | grep -o '"@type": *"Dataset"' | head -1
Then three steps that a command cannot check:
- Run the dataset page through Google's Rich Results Test: it will show errors in the Dataset markup.
- Add the site to Google Search Console and submit the sitemap. It shows how many pages the search engine has indexed and why it skipped the rest.
- A few weeks later, search for five to ten datasets by title in Google Dataset Search. If copies from aggregators come up rather than your pages, check
sameAsand that the dataset page opens without a login.
A short order of work
The address, schema.org, the sitemap and a dump in the right profile are already in the requirements checklist. Here they are joined by registering the catalog in a relevant registry, submitting the sitemap to Search Console and a check a month later: the dataset is found by search, the dump opens.
Sources
- Dataset markup in Google's documentation: the canonical dataset page,
sameAs, the sitemap - ckanext-dcat: Google Dataset Search; third-party ckanext-sitemap extensions: a GitHub search, 11 October 2026
- The sitemap in Dataverse, schema.org export in Dataverse
- Sitemaps in InvenioRDM, release v13
- GeoNetwork 4.4 and search engines:
robots.txtinside the catalog address, advice to register the sitemap by hand; RFC 9309:robots.txtis read only from the site root; the absence of a rootrobots.txtat geodata.nz, geocat.ch and metadata.geoportaal.ee: a check on 12 October 2026 - Rosstat's "Compendia" section: a web archive snapshot of 13 February 2026 (the list is loaded by a request to
/compendium/getPage); the unavailability of rosstat.gov.ru and ach.gov.ru from a foreign server and the HTML of a data.europa.eu dataset page: a check on 12 October 2026 - Web Data Commons: schema.org subsets, 2024 release and 2023 release
- Dataset markup on catalog.data.gov: a check of a dataset page on 12 October 2026
- JKAN, DKAN, InvenioRDM
- I. Begtin, Telegram (in Russian): Rosstat and Ajax, 16 November 2022; the Accounts Chamber archive, 30 November 2022; GeoNetwork and search engines, 1 April 2023; the quality of Dataset markup in Common Crawl, 20 June 2024; Dataset and DataCatalog in schema.org, 15 September 2024; how to get into the Dateno index, 22 October 2024; Russian catalogs in Dateno, 15 August 2024; geoblocking and AI agents, 14 July 2025
- Registering a repository in re3data
- llms.txt, Model Context Protocol
- Metadata Export
- The dataportals-registry export, release 1.27.0 of 15 October 2026. A sitemap is marked for about 7,000 catalogs.