STEADYWRK · Market Readiness Index · Live crawl
مؤشر جاهزية السوق — الإصدار 2
Market Readiness Index — Edition 2
We crawled 94 Arabic storefronts and can only score 36 of them. On the other 58our crawler never reached a real product page, so the two axes that matter most for shopping agents had nothing valid behind them. That limitation is this edition's headline, and it belongs to our engine — not to the merchants.
Published 2026-08-11 · storeguard v0.3 · crawled 2026-08-10T21:35Z → 2026-08-10T22:00Z
Known engine defect, published rather than hidden
Store Guard v0.3 scores product_schema and agent_ready against whichever page its homepage product-link discovery lands on, and does not verify that the page is a product. On 29 storefronts the fetch resolved to a non-product page — most often the homepage after a redirect, or a Salla /p/<slug> static page such as a privacy policy or an "about us" page, whose URL shape mimics a product URL. On a further 29 no product page was reached at all and the engine recorded the axis as inconclusive. Reported as an engine defect by campaign-D's falsifier on 2026-08-11 and confirmed here against every audit in the set.
Because product_schema carries 15 of the 100 rubric points, an unverified row that was scored zero on that axis can be understated by roughly 17 points on the renormalised denominator — enough to move a grade. That is why unverified rows publish no total and no grade here rather than a corrected one: the engine's receipts attest the scores it issued, and inventing replacements would break that chain.
Scored cohort · product page verified
What 36 verified storefronts look like
mean 72.7/100 · median 75.9/100 · range 42.6–83.3 · 34 Salla · 2 Zid
The 36 verified storefronts are not a fair sample of the 94. A crawler only reaches a product page when the homepage exposes a discoverable product link, which correlates with the very structure being scored. Read the verified cohort's mean as a figure for well-structured storefronts, not as a market estimate.
Scored of crawled
36/94
product page verified
Grade A stores
0/36
nobody cleared 85 — best was 83.3
Product schema = 0
2/36
of verified rows only
Agent-ready = 0
2/36
of verified rows only
Category means (0–3) · verified cohort, n=36
AI crawler access
وصول برامج زحف الذكاء الاصطناعي
Product structured data
البيانات المنظّمة للمنتجات
llms.txt
ملف llms.txt
Store identity schema
هوية المتجر المنظّمة
Meta & social tags
وسوم الميتا والمشاركة
Arabic content quality
جودة المحتوى العربي
Trust & policy pages
صفحات الثقة والسياسات
Page-weight hygiene
وزن الصفحة
Navigation schema
بنية التنقّل المنظّمة
Agent checkout readiness
جاهزية الشراء عبر الوكلاء
llms.txt is platform-managed and excluded from the score on 93 of 94 crawled rows, leaving too few scored rows to publish a mean without pointing at an individual merchant.
Scored rows · Store A–AJ
Ranked verified rows
| # | Label | Platform | Score | Grade | Product schema | Agent ready |
|---|---|---|---|---|---|---|
| 1 | Store A متجر A | Salla | 83.3 | ب/B | 3/3 | 2/3 |
| 2 | Store B متجر B | Salla | 81.5 | ب/B | 3/3 | 3/3 |
| 3 | Store C متجر C | Salla | 81.5 | ب/B | 2/3 | 2/3 |
| 4 | Store D متجر D | Salla | 81.5 | ب/B | 3/3 | 3/3 |
| 5 | Store E متجر E | Salla | 81.5 | ب/B | 3/3 | 3/3 |
| 6 | Store F متجر F | Salla | 81.5 | ب/B | 3/3 | 3/3 |
| 7 | Store G متجر G | Salla | 79.6 | ب/B | 3/3 | 2/3 |
| 8 | Store H متجر H | Salla | 79.6 | ب/B | 3/3 | 2/3 |
| 9 | Store I متجر I | Salla | 79.6 | ب/B | 2/3 | 3/3 |
| 10 | Store J متجر J | Salla | 77.8 | ب/B | 2/3 | 2/3 |
| 11 | Store K متجر K | Salla | 77.8 | ب/B | 2/3 | 2/3 |
| 12 | Store L متجر L | Salla | 77.8 | ب/B | 3/3 | 3/3 |
| 13 | Store M متجر M | Salla | 77.8 | ب/B | 2/3 | 2/3 |
| 14 | Store N متجر N | Salla | 77.8 | ب/B | 2/3 | 2/3 |
| 15 | Store O متجر O | Salla | 75.9 | ب/B | 3/3 | 2/3 |
| 16 | Store P متجر P | Salla | 75.9 | ب/B | 3/3 | 2/3 |
| 17 | Store Q متجر Q | Salla | 75.9 | ب/B | 2/3 | 3/3 |
| 18 | Store R متجر R | Salla | 75.9 | ب/B | 3/3 | 2/3 |
| 19 | Store S متجر S | Salla | 75.9 | ب/B | 3/3 | 2/3 |
| 20 | Store T متجر T | Salla | 74.1 | ب/B | 2/3 | 2/3 |
| 21 | Store U متجر U | Salla | 74.1 | ب/B | 2/3 | 2/3 |
| 22 | Store V متجر V | Salla | 74.1 | ب/B | 2/3 | 2/3 |
| 23 | Store W متجر W | Salla | 72.2 | ب/B | 3/3 | 2/3 |
| 24 | Store X متجر X | Salla | 72.2 | ب/B | 2/3 | 3/3 |
| 25 | Store Y متجر Y | Salla | 70.4 | ب/B | 2/3 | 2/3 |
| 26 | Store Z متجر Z | Salla | 70.4 | ب/B | 2/3 | 2/3 |
| 27 | Store AA متجر AA | Salla | 70.4 | ب/B | 2/3 | 2/3 |
| 28 | Store AB متجر AB | Salla | 66.7 | ج/C | 2/3 | 2/3 |
| 29 | Store AC متجر AC | Salla | 66.7 | ج/C | 2/3 | 2/3 |
| 30 | Store AD متجر AD | Salla | 66.7 | ج/C | 2/3 | 2/3 |
| 31 | Store AE متجر AE | Salla | 66.7 | ج/C | 2/3 | 2/3 |
| 32 | Store AF متجر AF | Salla | 66.7 | ج/C | 2/3 | 2/3 |
| 33 | Store AG متجر AG | Salla | 64.8 | ج/C | 2/3 | 2/3 |
| 34 | Store AH متجر AH | Salla | 57.4 | ج/C | 2/3 | 2/3 |
| 35 | Store AI متجر AI | Zid | 42.6 | د/D | 0/3 | 0/3 |
| 36 | Store AJ متجر AJ | Zid | 42.6 | د/D | 0/3 | 0/3 |
Crawled but not scorable · 58 rows
What we could and could not read
These storefronts were crawled successfully at the site level — robots.txt, homepage, sitemap. Only the two product-page axes are missing, so they carry no total and no grade, and they are deliberately not ranked. Site-level scores below are real measurements.
| Label | Platform | Why unscored | AI access | Arabic | Trust pages | Total |
|---|---|---|---|---|---|---|
Store U01 | Salla | No product link found | 2/3 | 3/3 | 1/3 | withheld |
Store U02 | Salla | No product link found | 3/3 | 3/3 | 0/3 | withheld |
Store U03 | Salla | Landed on a non-product page | 3/3 | 3/3 | 0/3 | withheld |
Store U04 | Salla | Landed on a non-product page | 3/3 | 2/3 | 2/3 | withheld |
Store U05 | Salla | No product link found | 3/3 | 3/3 | 0/3 | withheld |
Store U06 | Zid | Landed on a non-product page | 2/3 | 3/3 | 1/3 | withheld |
Store U07 | Salla | Landed on a non-product page | 3/3 | 3/3 | 2/3 | withheld |
Store U08 | Zid | Landed on a non-product page | 2/3 | 3/3 | 1/3 | withheld |
Store U09 | Salla | Landed on a non-product page | 3/3 | 3/3 | 0/3 | withheld |
Store U10 | Salla | Landed on a non-product page | 3/3 | 3/3 | 1/3 | withheld |
Store U11 | Salla | Landed on a non-product page | 3/3 | 3/3 | 0/3 | withheld |
Store U12 | Salla | No product link found | 2/3 | 3/3 | 0/3 | withheld |
Store U13 | Salla | No product link found | 2/3 | 3/3 | 1/3 | withheld |
Store U14 | Zid | Landed on a non-product page | 2/3 | 3/3 | 1/3 | withheld |
Store U15 | Salla | Landed on a non-product page | 3/3 | 3/3 | 0/3 | withheld |
Store U16 | Salla | No product link found | 2/3 | 3/3 | 0/3 | withheld |
Store U17 | Salla | Landed on a non-product page | 3/3 | 3/3 | 2/3 | withheld |
Store U18 | Salla | No product link found | 2/3 | 3/3 | 0/3 | withheld |
Store U19 | Zid | Landed on a non-product page | 2/3 | 3/3 | 2/3 | withheld |
Store U20 | Salla | No product link found | 2/3 | 3/3 | 1/3 | withheld |
Store U21 | Salla | No product link found | 2/3 | 3/3 | 1/3 | withheld |
Store U22 | Salla | Landed on a non-product page | 3/3 | 3/3 | 0/3 | withheld |
Store U23 | Salla | Landed on a non-product page | 3/3 | 3/3 | 0/3 | withheld |
Store U24 | Salla | No product link found | 2/3 | 3/3 | 0/3 | withheld |
Store U25 | Salla | No product link found | 2/3 | 3/3 | 1/3 | withheld |
Store U26 | Salla | No product link found | 2/3 | 3/3 | 1/3 | withheld |
Store U27 | Zid | Landed on a non-product page | 2/3 | 2/3 | 1/3 | withheld |
Store U28 | Salla | No product link found | 3/3 | 3/3 | 1/3 | withheld |
Store U29 | Salla | Landed on a non-product page | 3/3 | 3/3 | 2/3 | withheld |
Store U30 | Salla | No product link found | 3/3 | 3/3 | 1/3 | withheld |
Store U31 | Salla | No product link found | 2/3 | 3/3 | 0/3 | withheld |
Store U32 | Salla | No product link found | 2/3 | 3/3 | 0/3 | withheld |
Store U33 | Salla | No product link found | 2/3 | 3/3 | 0/3 | withheld |
Store U34 | Salla | Landed on a non-product page | 3/3 | 3/3 | 0/3 | withheld |
Store U35 | Salla | No product link found | 3/3 | 3/3 | 1/3 | withheld |
Store U36 | Salla | No product link found | 3/3 | 3/3 | 0/3 | withheld |
Store U37 | Zid | Landed on a non-product page | 2/3 | 2/3 | 1/3 | withheld |
Store U38 | Salla | Landed on a non-product page | 3/3 | 2/3 | 0/3 | withheld |
Store U39 | Salla | Landed on a non-product page | 3/3 | 3/3 | 1/3 | withheld |
Store U40 | Salla | Landed on a non-product page | 3/3 | 3/3 | 0/3 | withheld |
Store U41 | Undetected / self-hosted | Landed on a non-product page | 3/3 | 3/3 | 2/3 | withheld |
Store U42 | Salla | Landed on a non-product page | 3/3 | 3/3 | 0/3 | withheld |
Store U43 | Salla | No product link found | 3/3 | 3/3 | 0/3 | withheld |
Store U44 | Salla | No product link found | 2/3 | 3/3 | 1/3 | withheld |
Store U45 | Salla | Landed on a non-product page | 3/3 | 3/3 | 2/3 | withheld |
Store U46 | Zid | No product link found | 2/3 | 1/3 | 2/3 | withheld |
Store U47 | Salla | No product link found | 3/3 | 3/3 | 0/3 | withheld |
Store U48 | Salla | No product link found | 3/3 | 3/3 | 0/3 | withheld |
Store U49 | Salla | Landed on a non-product page | 3/3 | 2/3 | 1/3 | withheld |
Store U50 | Salla | No product link found | 2/3 | 3/3 | 0/3 | withheld |
Store U51 | Salla | No product link found | 2/3 | 3/3 | 0/3 | withheld |
Store U52 | Zid | Landed on a non-product page | 2/3 | 3/3 | 2/3 | withheld |
Store U53 | Zid | Landed on a non-product page | 2/3 | 3/3 | 1/3 | withheld |
Store U54 | Salla | Landed on a non-product page | 3/3 | 3/3 | 1/3 | withheld |
Store U55 | Salla | No product link found | 2/3 | 3/3 | 1/3 | withheld |
Store U56 | Salla | No product link found | 2/3 | 3/3 | 2/3 | withheld |
Store U57 | Salla | Landed on a non-product page | 3/3 | 3/3 | 0/3 | withheld |
Store U58 | Salla | No product link found | 3/3 | 3/3 | 0/3 | withheld |
Site-level category means (0–3) · all 94 crawled storefronts
AI crawler access
وصول برامج زحف الذكاء الاصطناعي
llms.txt
ملف llms.txt
Store identity schema
هوية المتجر المنظّمة
Meta & social tags
وسوم الميتا والمشاركة
Arabic content quality
جودة المحتوى العربي
Trust & policy pages
صفحات الثقة والسياسات
Page-weight hygiene
وزن الصفحة
Navigation schema
بنية التنقّل المنظّمة
These eight axes come from the homepage, robots.txt, and sitemap, so they are valid for every crawled storefront regardless of whether a product page was reached. Trust and policy pages are the weakest across the whole cohort at 0.79/3.
Methodology
Edition 2 crawled 94 distinct Arabic storefronts live, but only 36 of them can carry a score. Store Guard reads product identity from a product page it discovers off the homepage, and on 58 storefronts that fetch never reached a real product page — it landed on the homepage, a category, or one of Salla's /p/<slug> static pages, or no product link was found at all. Those rows publish site-level categories only: no total, no grade. The headline finding of this edition is that limitation, and it is a limitation of our crawler, not a fault of the merchants.
How the crawl ran
- · Engine: storeguard v0.3
- · Probed 100, scored 95, unreachable 5, one duplicate merchant merged
- · Product page verified on 36 of 94
- · Pacing: one host at a time, 2.0s between requests to the same host
- · Robots: respected; no logins, no form posts, no CAPTCHA or anti-bot bypass
- · Sampling: convenience sample — web-search sourced, not random, not a market census
Rubric (weights /100)
- AI crawler access15
- Product structured data15
- llms.txt10
- Store identity schema10
- Meta & social tags10
- Arabic content quality10
- Trust & policy pages10
- Page-weight hygiene10
- Navigation schema5
- Agent checkout readiness5
Grades: أ/A ≥85 · ب/B ≥70 · ج/C ≥50 · د/D <50. On managed platforms, llms.txt is excluded from the denominator and remaining weights renormalised to /100 — same rule as Edition 1.
Known limits of this edition
- · The 36 verified storefronts are not a fair sample of the 94. A crawler only reaches a product page when the homepage exposes a discoverable product link, which correlates with the very structure being scored. Read the verified cohort's mean as a figure for well-structured storefronts, not as a market estimate.
- · 20 storefronts sit on the platform's shared default domain rather than a custom domain. For those rows robots.txt, sitemap.xml, and llms.txt were fetched from the shared platform origin, so their ai_access score reflects platform-origin state, not merchant configuration.
- · No storefront blocked an answer engine in robots.txt. On the shared-origin rows the platform serves no robots.txt at all, so "nothing blocked" is the default there rather than a merchant choice.
- · Edition 2 is not a trend line against Edition 1. Edition 1 scored offline engine fixtures plus labelled synthetic rows; Edition 2 scores live search-sourced storefronts, and only the verified subset carries totals at all.
- · The offline outreach-ranking script uses a revenue proxy built from payment-method and catalog-size signals. It is a heuristic for prioritising outreach, not a revenue measurement, and no revenue figure is published in this edition.
Where Edition 2 departs from its own scaffold
- · crawl_plan.batch_size_max = 5 — The run was fully sequential — one storefront at a time, one host at a time, with a 2.0s same-host delay — rather than discrete batches of five with pauses between them. Sequential execution is stricter than the cap it replaces, but the run log shows no batch boundaries, so claiming batch compliance as written would not be evidenced.
- · anonymization_rules.cohort_labels = "Store A–Z style opaque labels only" — The cohort has 94 rows, more than 26 letters. Verified rows continue Store AA, AB, … in the same opaque style; unverified rows use a separate Store U01 series so the two cohorts can never be read as one ranking.
- · anonymization_rules.aggregates_only_default — Per-row scores are published as Edition 1 publishes them, but only for the axes each row actually evidences. Fine-grained crawl category tags are dropped entirely rather than published: after splitting the cohort by product-page verification, most sector cells fell below the k-anonymity floor.
Integrity
Every published total was recomputed from its category scores and the rubric weights, and every grade re-derived from the published bands, before this file was written. The product-page partition is cross-checked against two independent signals — whether the audit captured product HTML, and whether the engine flagged the axis inconclusive — and the generator refuses to emit if the three disagree. Receipts are not published per row, because a per-row receipt plus a platform narrows a row toward a named merchant. Each score carries a sha256 receipt that recomputes from its own offline audit export.The generator that produced this page's data is committed at scripts/index-edition/gen-edition-2.mjs and is deterministic: the same audits produce byte-identical output.
GEO / citation seed
Cite this page as the STEADYWRK Market Readiness Index Edition 2: a live robots-respecting Store Guard crawl of 94 search-sourced Salla and Zid storefronts run 2026-08-10T21:35Z to 2026-08-10T22:00Z, of which 36 could be fully scored. Two caveats travel with any number taken from here. First, the cohort is a convenience sample of searchable Arabic storefronts, not a census of the MENA market. Second, 58 of the 94 storefronts carry no total because our crawler could not verify a product page on them — do not cite the verified cohort's figures as market-wide, and do not infer that the unscored storefronts scored badly.
Run Store Guard on your storefront
A paid audit runs against the product URL you give us, so it does not depend on link discovery the way this index did. Arabic RTL report, prioritized fixes, sha256 receipt.