Dataset · Live

Bayanat Labs Arabic Web Rights Census

Which Arabic websites tell AI crawlers to stay out? The census reads the machine-readable AI-use signals that the hosts in its list publish: the robots.txt rule for each crawler token it checks, Cloudflare Content-Signal values, TDMRep reservations, IETF Content-Usage values and noai values in X-Robots-Tag or meta robots. As of 31 October 2026, 824 of the 33,985 hosts checked fully block at least one AI-training crawler in robots.txt; among the 31,653 of them from the Common Crawl sample alone, 555 do. 213 block all four of GPTBot, CCBot, ClaudeBot and Google-Extended. 1,511 reserve AI training by at least one signal: a robots.txt block, Content-Signal ai-train=no or a TDMRep reservation. 958 carry Content-Signal ai-train=no, 187 of them inside a Cloudflare managed robots.txt block, and 0 of the 31,520 hosts where TDMRep could be read declare a reservation. The list holds 36,190 hosts: Arabic-language hosts from Common Crawl plus popular domains under Arab and Arabic-script country-code TLDs, taken from the Tranco list. All 36,190 were requested, and unreachable, timed-out and challenged hosts are never counted as allowing anything. A robots.txt allow, or a missing signal, is not permission to reuse a site's content: the census reports signals, not licences.

By Bayanat Labs· Updated · CC0 1.0· اقرأ بالعربية
LicenceCC0 1.0 (data); CC BY 4.0 (card text, stats.json and charts); Apache-2.0 (code and web app)
Versionv0.1.0 · Census 2026-10, version v0.1.0, as of 31 October 2026; the code is tagged on GitHub and not on PyPI yet.
Published
Updated
Who it is forAI-governance and policy researchers and journalists who need opt-out evidence for Arabic websites, corpus builders who honour machine-readable reservations, and Arabic publishers who want to compare their own signals with other sites.
LevelBeginner

Arabic websites robots.txt AI crawlers AI training opt-out TDMRep Content-Signal

Key numbers

36190hosts in the census list: Arabic-language hosts from Common Crawl plus popular domains under Arab and Arabic-script country-code TLDs
36190of them requested, all of the list
33985hosts checked: robots.txt answered with a file, or with a client-error reply or more than five redirects, which mean there is none; the base of every rate
31653of the hosts checked come from the Common Crawl sample alone
824hosts checked that fully block at least one AI-training crawler in robots.txt
555of them among the hosts from the Common Crawl sample alone
213fully block all four of GPTBot, CCBot, ClaudeBot and Google-Extended
1511reserve AI training by at least one signal (a robots.txt block, Content-Signal ai-train=no or a TDMRep reservation); they make up the exclusion list
958carry Content-Signal ai-train=no
187of those inside a Cloudflare managed robots.txt block
0hosts that declare a TDMRep reservation
31520hosts checked where TDMRep could be read (tdmrep.json, or the homepage headers and head)
489hosts with a full block for Bytespider
381for GPTBot
367for Amazonbot
360for ClaudeBot
292for Meta-ExternalAgent
280for CCBot
241for Google-Extended
1170requested hosts unreachable (DNS, connection, TLS or server error), never counted as allowing anything
650timed out
385answered with a challenge or block page
1313requests made during local network outages
11of them ended in a timeout, connection or TLS error rather than at the DNS look-up, so they may have reached the host
7hosts that may therefore have received a fourth request; every other host received at most three
74gaps under 5 seconds between requests to the same host in the ledger's wall-clock times, where the system clock was corrected backwards; the spacing was enforced on the machine's monotonic clock
4.924seconds, the shortest of those gaps
14hosts whose robots.txt redirected more than five times, which the census fetcher read as no robots.txt
78hosts whose robots.txt request was refused as unauthorised or forbidden, counted as having no robots.txt and not contacted again
1708requests repeated once without certificate verification after a certificate check failed

Counted by script from the released files. Each key number is read from stats.json in the Hugging Face dataset, which holds every number on the dataset card with the table, row and column it comes from, and pinned to its SHA-256; MANIFEST.json lists every file with its size and SHA-256.

Downloads and identifiers

Get started

Load a table with the datasets library, or query it with DuckDB straight from the Hub. The parser and fetcher install from GitHub at the v0.1.0 tag; the package is not on PyPI yet.

from datasets import load_dataset

hosts = load_dataset("Bayanat-Labs/arabic-web-rights-census", "hosts", split="train")
agg = load_dataset("Bayanat-Labs/arabic-web-rights-census", "aggregates", split="train")

pip install "arabic-web-rights-census @ git+https://github.com/Bayanat-Labs/arabic-web-rights-census@v0.1.0"
awrc robots robots.txt --bot GPTBot

What is released

PartLicenceIn this release
hosts: one row per listed host of census 2026-10, with the robots.txt rule for each of 26 crawler tokens, Content-Signal, TDMRep and noai values and derived classesCC0 1.0Yes
bot_rules: one row per requested host and crawler token, with the matched groupCC0 1.0Yes
aggregates: rates by crawler, sector and country label, weighted by hosts and by Arabic pages in Common Crawl (Parquet and CSV)CC0 1.0Yes
Exclusion list (CSV): hosts that reserve AI training by at least one signal, with the signals found and the time they were readCC0 1.0Yes
Provenance ledger (one row per request), crawler token list (bots.yaml) and host-list inputs, including the Common Crawl SQLCC0 1.0Yes
Dataset card text, stats.json and chartsCC BY 4.0Yes
Census code on GitHub: host list, fetcher, robots.txt, TDMRep and Content-Signal parsers, tables and chartsApache-2.0Yes
Domain lookup web app on Hugging Face Spaces, interface in English and ArabicApache-2.0Yes
IBM Plex Sans Arabic font in the web app, unmodified (SIL Open Font License 1.1)SIL Open Font License, copyright IBM Corp.Yes

Attribution: Arabic Web Rights Census by Bayanat Labs. Data CC0 1.0; card text and charts CC BY 4.0. https://huggingface.co/datasets/Bayanat-Labs/arabic-web-rights-census

Intended uses

  • Measure how many of the listed sites signal an AI-training opt-out, by crawler, sector and country label, weighted by hosts or by Arabic pages.
  • Look up the robots.txt rule, Content-Signal and TDMRep values that a host published for each crawler token on the census dates.
  • Use the exclusion list as one input when a corpus honours machine-readable reservations of text and data mining rights.

Out of scope

  • Treating a robots.txt allow or a missing signal as permission to reuse a site's content: terms of use and licences still apply and were not read.
  • Using the exclusion list as a complete register of reservations or as legal advice: it covers only the hosts and signals in this census, at the time they were read.

Rights at a glance

Training, display, redistribution and synthetic-voice use are separate permissions.

UseStatusNote
TrainingAllowedThe data are facts read from public policy files and Common Crawl's index, under CC0 1.0; no website content is included.
DisplayAllowedData under CC0 1.0; card text, stats.json and charts under CC BY 4.0 with attribution.
RedistributionAllowedData under CC0 1.0; card text, stats.json and charts under CC BY 4.0; code and web app under Apache-2.0; the bundled font under the SIL Open Font License.
Synthetic voiceNot applicableNo audio.

Limitations

  • All requests came from one network connection in the United States; some hosts, including some government hosts, may refuse or drop connections from outside their region and appear as unreachable or timed out.
  • Unreachable (1,170), timed-out (650) and challenged (385) hosts are reported and never counted as allowing anything; they are left out of every rate.
  • Page weights come from one Common Crawl crawl, which does not collect pages from hosts that block CCBot, so blocking hosts are under-represented in the list; the Tranco hosts reduce this bias but do not remove it, and their language was not checked.
  • Sector labels are rule-based and are not checked site by site; country labels come from the top-level domain, and hosts under generic top-level domains are labelled gTLD.
  • Hosts whose robots.txt request was refused as unauthorised or forbidden (78) are counted as having no robots.txt, as the robots.txt standard provides for client-error replies, and were not contacted again; such a reply may be a block on unknown crawlers rather than a missing file.
  • Terms of use, licences and robots.txt comments are not read, and robots.txt bodies are not released: each host row keeps the SHA-256 of the body as served.

Sources and licences

SourceLicenceRedistributed here
robots.txt, tdmrep.json and homepage headers of each listed host, requested from 30 to 31 October 2026, at least 5 seconds apartFacts read from public policy files; robots.txt bodies and page content are not releasedNo
Common Crawl crawl CC-MAIN-2026-43, columnar index (cc-index-table)Common Crawl terms of use; host and page counts only, no page contentNo
Tranco list PYK6JOnly a rank bucket is released, never the exact rankNo
Crawler operators' documentation and the ai.robots.txt project, for the crawler tokens in bots.yamlToken names and purposes only; ai.robots.txt is MITNo

Each host's robots.txt, /.well-known/tdmrep.json and homepage were requested by the census fetcher with the BayanatLabs-OpenData user agent; the homepage was requested only when robots.txt allowed it, its headers and head were read and its body was dropped. Each host received at most three requests (7 hosts may have received a fourth: 11 of the 1,313 requests made during local network outages ended in a timeout, connection or TLS error rather than at the DNS look-up and may have reached the host), with at least 5 seconds between requests to the same host, measured on the machine's monotonic clock (the ledger records wall-clock times, and 74 gaps read between 4.924 and 5 seconds where the system clock was corrected backwards, at three instants). A host was not contacted again after an access-denied or rate-limit reply, a challenge page or a login redirect, and no challenge was solved. Hosts whose first robots.txt request timed out or failed to connect were requested once more, at least an hour later. Every request is in the provenance ledger with its time, status and SHA-256. The census used its own fetcher (awrc.fetch), not the polite-fetch library described on the crawler page. Where they differ: it requested /.well-known/tdmrep.json without checking robots.txt; it kept cookies a host set in memory for the run and sent them back to that host; it retried a 5xx robots.txt once after 30 seconds; it treated more than five robots.txt redirects as no robots.txt (14 hosts); it followed homepage redirects without reading the target host's robots.txt; and when a certificate check failed it repeated the request once without verification (1,708 requests). Platform subdomains (blog and site-builder hosts) and IP addresses are left out of the list, because their robots.txt is set by the platform and their names can name private people. Related from Bayanat Labs: the crawler page, which states the user agent and how to opt out. Source details

How to cite

Cite as:

Bayanat Labs (2026). Arabic Web Rights Census, census 2026-10 (version 0.1.0), as of 2026-10-31. Bayanat Labs. https://huggingface.co/datasets/Bayanat-Labs/arabic-web-rights-census

No DOI. Cite the URL in the citation above and the date you read it.

@misc{bayanatlabs2026arabicwebrightscensus,
  author       = {{Bayanat Labs}},
  title        = {Arabic Web Rights Census, census 2026-10 (version 0.1.0), as of 2026-10-31},
  year         = {2026},
  month        = oct,
  howpublished = {\url{https://huggingface.co/datasets/Bayanat-Labs/arabic-web-rights-census}}
}

How we handle citations

Changelog

DateVersionChange
v0.1.0Census as of 31 October 2026: host, crawler-rule and aggregate tables, exclusion list and charts on Hugging Face; domain lookup web app on Hugging Face Spaces; code and method on GitHub.

Corrections and removal requests

If something in this release should not be there, or is wrong, email hello@bayanatlabs.com. We handle removal requests within 30 days, and platform requests within 24 hours. How removal requests work

Related product: Bayanat Knowledge

Need production-grade, rights-cleared data?

We publish synthetic fixtures, open benchmarks, results, code and guides for free. Data at scale is licensed or built to order: ready-to-license Arabic speech and text datasets with commercial AI-use rights written into the agreement, and custom collection, annotation and evaluation.

Bayanat Knowledge: License books, subject-organized MSA text, and structured question-answer data. Each collection has a clear training task, with its own counts and licensing details.