scanned 2026-08-24 08:42 UTC · cached · refresh in 0h · rubric 2026.11.0
○Unverified public scan
Built with WordPress
At risk
AgentSpeed tests how easily automated agents can discover, understand, and act on irancell.ir. The score weights five categories of machine-readability; the ticks on the arc are the 37 individual checks behind it.
Send this to whoever edits the site. The link shows the score and grade as a preview card, and it stays current: it re-reads the latest scan rather than freezing today’s number.
Top fixes
Checks tagged “emerging” are 2026 agent-protocol standards most of the web hasn’t adopted yet. Adopting early is an edge, not a defect.
failLink response headers+3 ptsDiscoverability
No HTTP Link: response headers. Emit canonical/alternate/describedby relations so HEAD-only or stream-rendering agents get them without parsing HTML.
Show me exactly what to do
What this means
HTTP responses can carry a Link header: the same canonical and alternate-language information your HTML declares, but delivered in the response envelope itself. Agents that only send a HEAD request, or that decide what to do while the page is still streaming, read the header without parsing any HTML. Yours is missing (or carries none of the relations agents use: canonical, alternate, describedby).
Why it matters
An agent triaging fifty URLs doesn’t want to download and parse fifty pages to learn which are duplicates of which. The Link header answers at the cheapest possible layer. Sites that provide it get correctly de-duplicated and correctly language-routed even by the most minimal fetchers.
Do this
Emit a Link header alongside each page, mirroring what your HTML head already declares. Example: Link: <https://yoursite.com/page>; rel="canonical".
Don’t lose this report
Get it in your inbox now, plus a heads-up whenever irancell.ir’s agent-readiness score changes. Free, unsubscribe anytime.
Prefer we just watch it for you? Monitor rescans weekly and emails what changed, $29/mo. Start monitoring →
This scan graded one page. Your site is more than one page.
Weakest on this scan: performance, 60/100 — responses slow or unreliable enough that agents can give up before the page answers.
This graded your homepage. Your pricing, docs, and checkout live on other pages: the ones assistants actually quote when they recommend you. A 69/100 here means agents are already missing things on the page you polish most. The $29 Deep Scan grades your homepage plus up to 10 more pages we discover, against all 37 checks, then emails a PDF with every failing check and its exact fix, ranked by what costs you the most visibility. One-time, delivered in minutes, no subscription.
مشترکین شخصی مشترکین سازمانی اخبار بازارگاه ایرانسل ترابرد به ایرانسل محصولاتمحصولاتمحصولات فیبر نوریفیبر نوریفیبر نوری معرفی فیبرنوریمعرفی فیبرنوریمعرفی فیبرنوری خرید سرویس فیبرنوریخرید سرویس فیبرنوریخرید سرویس فیبرنوری خرید بسته فیبر نوریخرید بسته فیبر نوریخرید بسته فیبر نوری پوشش شبکه فیبر نوریپوشش شبکه فیبر نوریپوشش شبکه فیبر نوری سیمکارتسیمکارتسیمکارت دائمیدائمیدائمی اعتباریاعتباریاعتباری TD-LTETD-LTETD-LTE جستجوی سریع سیمکارتجستجوی سریع سیمکارتجستجوی سریع سیمکارت حراج شمارههای رندحراج شمارههای رندحراج شمارههای رند مودممودممودم مودم 5Gمودم 5Gمودم 5G مودم TDLTEمودم TDLTEمودم TDLTE مودم 4Gمودم 4Gمودم 4G مودم فیبرنوریمودم فیبرنوریمودم فیبرنوری اینترنت ثابت نسل ۵ (FWA)اینترنت ثابت نسل ۵ (FWA)اینترنت ثابت نسل ۵ (FWA) پیش ثبتنامپیش ثبتنامپیش ثبتنام مودم FWAمودم FWAمودم FWA ––– خدماتخدماتخدمات خدمات اینترنتخدمات اینترنتخدمات اینترنت اینترنت همراهاینترنت همراهاینترنت همراه اینترنت ثابتاینترنت ثابتاینترنت ثابت اینترنت 5Gاینترنت 5Gاینترنت 5G بستههای پیشنهادی اینترنت ثابتبستههای پیشنهادی اینترنت ثابتبستههای پیشنهادی اینترنت ثابت بستههای پیشنهادی اینترنت همراهبستههای پیشنهادی اینترنت همراهبستههای پیشنهادی اینترنت همراه بوم و بوم+بوم و بوم+بوم و بوم+ تعرفه اینترنت همراهتعرفه اینترنت همراهتعرفه اینترنت همراه خدمات دیجیتالخدمات دیجیتالخدمات دیجیتال اپلیکیشن ایرانسل مناپلیکیشن ایرانسل مناپلیکیشن ایرانسل من جیبجتجیبجتجیبجت دانا پلاسدانا پلاسدانا پلاس آهنگ پیشوازآهنگ پیشوازآهنگ پیشواز ریتمریتمریتم دانادانادانا خدمات حسابخدمات حسابخدمات حساب پرداخت قبض سیمکارت دائمیپرداخت قبض سیمکارت دائمیپرداخت قبض سیمکارت دائمی بازپرداخت اقساط سرویس اعتباریبازپرداخت اقساط سرویس اعتباریبازپرداخت اقساط سرویس اعتباری خرید آنلاین شارژخرید آنلاین شارژخرید آنلاین شارژ دریافت شارژ یا اینترنت اضطراریدریافت شارژ یا اینترنت اضطراریدریافت شارژ یا اینترنت اضطراری مشاهده روشهای شارژ و پرداختمشاهده روشهای شارژ و پرداختمشاهده روشهای شارژ و پرداخت افزایش سقف مصرف مجازافزایش سقف مصرف مجازافزایش سقف مصرف مجاز سرویس پرداخت اعتباریسرویس پرداخت اعتباریسرویس پرداخت اعتباری راهنمای مدیریت حسابراهنمای مدیریت حسابراهنمای مدیریت حساب خدمات بینالمللخدمات بینالمللخدمات بینالملل رومینگرومینگرومینگ تماس و پیامک بینالمللتماس و پیامک بینالمللتماس و پیامک بینالملل خدمات مکالمه و پیامکخدمات مکالمه و پیامکخدمات مکالمه و پیامک بستههای مکالمهبستههای مکالمهبستههای مکالمه تعرفه مکالمه و پیامکتعرفه مکالمه و پیامکتعرفه مکالمه و پیامک تماس از طریق voLTEتماس از طریق voLTEتماس از طریق voLTE بوم و بوم+بوم و بوم+بوم و بوم+ میزبان تماسمیزبان تماسمیزبان تماس لطفا با من تماس بگیریدلطفا با من تماس بگیریدلطفا با من تماس بگیرید اعلام تماسهای ناموفقاعلام تماسهای ناموفقاعلام تماسهای ناموفق اعلام بازگشت به شبکهاعلام بازگشت به شبکهاعلام بازگشت به شبکه پیامگیر صوتیپیامگیر صوتیپیامگیر صوتی خدمات پایهخدمات پایهخدمات پایه سرویس امدادرسانسرویس امدادرسانسرویس امدادرسان سرویس ایرانسل یارسرویس ایرانسل یارسرویس ایرانسل یار ردیابی تلفن همراه مفقودیردیابی تلفن همراه مفقودیردیابی تلفن همراه مفقودی کدهای دستوری ایرانسلکدهای دستوری ایرانسلکدهای دستوری ایرانسل تبدیل 3G به 4Gتبدیل 3G به 4Gتبدیل 3G به 4G تعویض سیمکارت نسل چهارم همراه و ثابتتعویض سیمکارت نسل چهارم همراه و ثابتتعویض سیمکارت نسل چهارم همراه و ثابت تغییر مالکیت آنلاینتغییر مالکیت آنلاینتغییر مالکیت آنلاین تبدیل سیمکارت اعتباری به دائمیتبدیل سیمکارت اعتباری به دائمیتبدیل سیمکارت اعتباری به دائمی عیبیابی و تعمیر مودمهای ایرانسلعیبیابی و تعمیر مودمهای ایرانسلعیبیابی و تعمیر مودمهای ایرانسل استعلام سیم کارت بهناماستعلام سیم کارت بهناماستعلام سیم کارت بهنام سرویسهای شارژ و اینترنت اضطراریسرویسهای شارژ و اینترنت اضطراریسرویسهای شارژ و اینترنت اضطراری ––– پشتیبانیپشتیبانیپشتیبانی تماس با ایرانسلتماس با ایرانسلتماس با ایرانسل مناطق تحت پوششمناطق تحت پوششمناطق تحت پوشش نمایندگیهای ایرانسلنمایندگیهای ایرانسلنمایندگیهای ایرانسل نصب دکل BTSنصب دکل BTSنصب دکل BTS پرسش و پاسخپرسش و پاسخپرسش و پاسخ ––– سرویسهای ویژهسرویسهای ویژهسرویسهای ویژه اینترنت ثابت نسل ۵ (FWA)اینترنت ثابت نسل ۵ (FWA)اینترنت ثابت نسل ۵ (FWA) فیبرنوریفیبرنوریفیبرنوری ––– اخباراخباراخبار بازارگاه ایرانسلبازارگاه ایرانسلبازارگاه ایرانسل ترابرد به ایرانسلترابرد به ایرانسلترابرد به ایرانسل مشترکان شخصیمشترکان شخصیمشترکان شخصی مشترکان سازمانیمشترکان سازمانیمشترکان سازمانی ENENEN En جستجو کنید... آخرین جستجوهای شما بیشترین جستجوهای کاربران خرید با اسنپپی از ایرانسل، BMW داره! کلیک کنید کلیک کنید برنده با هر تیم! لیگ ایرانسل؛ پیشبینی کن، جایزه ببر کلیک کنید کلیک کنید ۱۲۰ دقیقه مکالمه رایگان هدیه ایرانسل ویژه استان همدان کلیک کنید کلیک کنید یه تیر و دو نشون با فروشگاه ایرانسل! دریافت مودم هدیه با خرید بسته ۶۵۰ گیگابایتی کلیک کنید کلیک کنید وضوح بیمرز، کیفیت بینهایت! خرید اقساطی تلویزیون بدون پیشپرداخت در بازارگاه ایرانسل کلیک کنید کلیک کنید «صفر نهصد و…؟»اُ نداره تا ۲۰ میلیون اعتبار اسنپپی و ۳ جایزه ۹۰۰ میلیونی چرا ۰۹۰۰؟ چرا ۰۹۰۰؟ بستههای تابستانی رومینگ ایرانسل در سفرهای خارجی به مقصدهای متنوع بیشتر بدانید بیشتر بدانید هر ۱۰۰ هزار تومان شارژ یک امتیاز در قرعهکشی ۱۰ جایزه ۲۰۰ میلیونی اطلاعات بیشتر اطلاعات بیشتر ‹ › ایرانسلمن سرویس فیبر نوری خرید سیمکارت خرید بسته تماس با ما ایرانسلمن سرویس فیبر نوری حراج شماره رند خرید سیمکارت خرید بسته تماس با ما پیشنهادهای ایرانسل سرویس پرداخت اعتباری بدون پرداخت مبلغ، محصولات و خدمات ایرانسل را خریداری کنید. اطلاعات بیشتر گوشی موبایل خرید گوشی موبایل و لوازم جانبی آن از فروشگاه معتبر و مورد تایید ایرانسل. خرید بسته ویژه مکالمه با خرید بستههای مکالمه، نگران هزینه تماس خود نباشید. اطلاعات بیشتر بسته اینترنت اختصاصی بستههای اینترنتی که مخصوص شماست در دسترس شما خواهد بود. خرید سرویس رومینگ با استفاده از خدمات رومینگ میتوانید خارج از ایران هم به اینترنت دسترسی داشته باشید. خرید خرید شارژ با تنها چند کلیک سیم کارت خود را به مقدار لازم شارژ کنید. خرید پرداخت قبض سیم کارت به راحتی و در هر زمان قبض سیم کارت خود یا دیگران را پرداخت کنید. پرداخت پیامگیر صوتی حتی در زمانی که پاسخگو نیستید، پیام دیگران را دریافت کنید. اطلاعات بیشتر حراج شماره رند ۹۰۳-۴۴۴۴۴۴۴ ۹۳۹-۱۰۰۰۰۰۰ ۹۳۳۵۰۰۰۰۰۰ خرید ‹ › اخبار ایرانسل ایرانسل نحوه محاسبه حجم اینترنت را در حضور خبرنگاران شفاف کرد واکنش ایرانسل به ابهام درباره مصرف اینترنت: دقیقاً به اندازه مصرف ترافیک بینالملل از حجم بسته کسر میشود تأکید مدیرعامل ایرانسل بر تبدیل مدلهای سنتی به شراکت راهبردی با تأمینکنندگان پیشنهادهای ویژه رومینگ ایرانسل برای اربعین ۱۴۰۵ مشاهده بیشتر ایرانسل من فروشگاه ایرانسل مشاهده فروشگاه سیم کارتها سیمکارتهای گوناگون با مزایای منحصر به فرد! بسته های اینترنت بستههای اینترنت متفاوت مناسب با نیاز شما گوشی تلفن همراه خرید تلفن همراه، با اصالت و ضمانت مودم و لوازم دیجیتال بیشترین پوششدهی، کامل ترین لوازم سیم کارتها بسته های اینترنت گوشی تلفن همراه مودم و لوازم دیجیتال سیم کارت اعتباری چرا سیم کارت اعتباری؟ ۱۲ گیگابایت اینترنت هدیه ۱۰۰۰ دقیقه مکالمه با خطوط داخلی ۱۰۰۰ پیامک به تمام خطوط داخلی خرید سیم کارت دائمی چرا سیم کارت دائمی؟ ۷۵ گیگابایت اینترنت هدیه ۱۵۰۰ دقیقه مکالمه با خطوط داخلی ۴۵۰ پیامک به تمام خطوط داخلی خرید سیم کارت 0900 چرا سیم کارت 0900؟ ۶۰۰ گیگابایت اینترنت یکساله ۱۰۸۰۰ دقیقه مکالمه با خطوط داخلی ۱۰۸۰۰ پیامک به خطوط داخلی خرید مشاهده بیشتر اینترنت همراه چرا اینترنت همراه؟ سرعت بالای اینترنت بستههای اینترنت بهصرفه خرید و فعالسازی آسان خرید اینترنت ثابت TD-LTE چرا اینترنت ثابت TD-LTE؟ بستههای ویژه برای مودمهای ثابت مناسب برای مصرف خانگی و اداری تا 600 گیگابایت اینترنت هدیه خرید بوم و بوم + چرا اینترنت بوم و بوم +؟ شخصیسازی بستهها قیمت به صرفه تبدیل زمان مکالمه به اینترنت و بالعکس خرید مشاهده بیشتر گوشی سامسونگ جدیدترین گوشی سامسونگ S24 Ultra Z Flip 3 Z Fold 3 خرید گوشی شیاومی جدیدترین گوشی شیاومی 14T pro Redmi Note 13 Poco F6 خرید گوشی آیفون جدیدترین گوشی آیفون 17 pro max 16 pro max 16 pro 16 خرید مشاهده بیشتر مودم اینترنت برندهای مودم همراه ایرانسل TP-Link D-Link خرید ساعت هوشمند برندهای ساعت هوشمند Samsung Xiaomi Huawei خرید لوازم جانبی دستهبندی لوازم جانبی شارژر و سیم شارژر هدست و هندزفری خرید مشاهده بیشتر ‹ › مشاهده فروشگاه خدمات دیجیتال ایرانسل اپلیکیشن ایرانسل من مدیریت جامع خدمات سیمکارت و حساب سامانه دانا پلاس تجربه نوین تبادل آنلاین دانش آی اسپرت تماشای فوتبال و مسابقات ورزشی در isport سامانه پیشواز لحظات شاد هنگام انتظار سامانه دانا یک تجربه متفاوت در آموزش آنلاین کیف پول دیجیتال جیب جت مدیریت جامع خدمات سیمکارت و حساب جریان پویای
Show your score
Embed this badge on your site. It links back to this live scan and updates on every rescan.
Get this report by email, then a heads-up when irancell.ir’s agent-readiness actually changes: a check regressing, or the composite dropping.
Two things never trigger an email: a score change caused by us publishing a new rubric, because that is a different instrument rather than a change to your site, and movement explained only by timing-derived checks, which shift run to run on a site nobody touched.
Want it on your own schedule, with Slack or a webhook instead of email? Score-drift monitoring is on every paid plan.
This score says whether an AI agent could read irancell.ir. AI traffic analytics says whether one actually came, and which pages turned it away.
Full breakdown
16 pass0 warn12 fail9 skip
Discoverability
pass
robots.txt present
A robots.txt is reachable at the site root.
100/100
pass
robots.txt allows AI agents
All 9 answer-time access agents allowed.
100/100
fail
Content-Signal directivesemerging
No Content-Signal directives. Add e.g. `Content-Signal: ai-train=no, ai-summarize=yes` to declare granular AI usage policy beyond binary allow/disallow.
0/100
pass
llms.txt present
Found /llms.txt but missing H1 header and markdown links. Not scored.
100/100
pass
Sitemap present
sitemap.xml reachable and referenced from robots.txt.
100/100
fail
Link response headers
No HTTP Link: response headers. Emit canonical/alternate/describedby relations so HEAD-only or stream-rendering agents get them without parsing HTML.
0/100
pass
Canonical URL
Canonical points to self: https://irancell.ir/.
100/100
fail
MCP server cardemerging
No valid MCP Server Card at /.well-known/mcp/server-card.json. Publish one so agents can discover your tools without HTML scraping.
0/100
skip
OAuth authorization metadataemerging
Agent-protocol discovery was not probed for this scan.
—
skip
OAuth resource metadataemerging
Not measured: the origin answered HTTP 403 for this resource, which says we were refused or could not be served, not that the resource is missing.
—
skip
API catalog / OpenAPIemerging
Not measured: the origin answered HTTP 403 for this resource, which says we were refused or could not be served, not that the resource is missing.
—
skip
Web Bot Authemerging
Agent-protocol discovery was not probed for this scan.
—
Readability
fail
Markdown negotiationemerging
Accept: text/markdown returns HTML, not markdown. Serve a markdown variant of primary content when requested; agents summarize and cite it more reliably.
0/100
fail
Text-to-markup ratio
Visible text is 3.8% of HTML weight (19809/516528 bytes). 2% of the document is inline script, 91% is markup.
29/100
pass
Content without JavaScript
Primary content is present in the initial HTML — agents without JS can read it. (Measured statically; a rendered comparison was not run because the static reading sufficed.)
Declared lang="fa-IR" with 2 well-formed hreflang alternate(s).
100/100
pass
Page title
A concise <title> is present (26 chars).
100/100
pass
Meta description
A well-sized meta description is present (189 chars).
100/100
Structured data
pass
JSON-LD present
Found 1 JSON-LD block.
100/100
pass
Structured data validates
1/1 checkable block(s) validated cleanly against schema.org.
100/100
fail
Schema type coverage
Page looks like Article|BlogPosting|NewsArticle; missing JSON-LD type(s): Article|BlogPosting|NewsArticle.
0/100
Coherence: do your channels agree?
skip
JSON-LD price matches the visible priceemerging
No price declared in JSON-LD, so there is nothing to cross-check. (Whether a price SHOULD be declared is the structured-data checks’ question.)
—
fail
JSON-LD name appears on the pageemerging
JSON-LD names "MTN Irancell" appear nowhere in the page title or visible text. Stale structured data after a rename, or machine-only content: either way an agent identifies an entity your visitors never see.
0/100
skip
Declared language matches the contentemerging
Content language could not be named with confidence: no verdict over a guess.
—
Actionability
pass
Paywall / login wall
No paywall or login-wall detected on the landing URL.
100/100
fail
Agent Skills manifestemerging
No Agent Skills manifest at /.well-known/agent-skills.json. Enumerate the tasks agents can perform (search, add-to-cart, contact-support) so they pick the right one without scraping.
0/100
fail
WebMCP actionsemerging
No WebMCP detected. On pages with first-class actions (cart, support, account), embed a WebMCP server so on-page agents invoke tools directly.
0/100
fail
Commerce protocol manifestemerging
No agentic-commerce discovery manifest (x402 at /.well-known/x402.json, UCP at /.well-known/ucp, or ACP at /.well-known/acp.json). Agents that buy pre-flight these before attempting a transaction; publishing the one for your commerce protocol is how they learn you accept agent-initiated purchases.
0/100
pass
Primary action reachable
A primary offering and a price or call to action were both identifiable from the served HTML, so an agent can tell what this page sells and what it costs without running scripts.
100/100
pass
Reachability
HTTP 200.
100/100
skip
Primary action is clickableemerging
This page does not ask the reader to do anything, so there is no primary action to check. Informational pages are not penalised here.
—
skip
Filters reachable by URLemerging
This page does not offer to filter or sort a list, so there is nothing to address by URL. Pages without facets are not penalised here.
—
Performance
fail
Time to first byte
TTFB 3219ms. Slow. Agents time out aggressively.
20/100
skip
Full render time
Full-render time unavailable (browser pass skipped or failed).
—
pass
Page weight
Initial document is a lean 504 KB.
100/100
Beyond the scan
Running AI agents of your own? AgentSpeed also monitors them in production: every run, its latency, cost, and failures, with alerts when something breaks. Free for 10,000 events a month, no credit card.
Run reports like this for every client: white-label PDFs and weekly monitoring for up to 15 domains, $149/mo. AgentSpeed for Agencies →
Methodology & limitations
This score is a measurement of machine-readability for automated agents under the published rubric 2026.11.0. AgentSpeed does not assess security, legitimacy, privacy, or financial trust.
Most stacks set this in one place: Next.js headers() config, an nginx add_header line, or a CDN response-header rule.
If you serve translations, add rel="alternate" entries with hreflang, matching your HTML.
Paste into Claude Code, Cursor, or any assistant with your repository open. It carries this finding, the steps, and the shortcuts to avoid.
Or copy it written for your tool:
What to check
Run: curl -sI https://yoursite.com | grep -i "^link:" and confirm the relations appear.
Hit Re-scan above: "Link response headers" flips to PASS.
What to avoid
The header must AGREE with the HTML. A Link header pointing one place while the in-page canonical points another gives machines two contradictory answers, which is worse than one missing answer.
Don’t inject the same site-wide canonical on every page via a blanket CDN rule; each page names its own clean URL, exactly as in the HTML tag.
Visible text is 3.8% of HTML weight (19809/516528 bytes). 2% of the document is inline script, 91% is markup.
Show me exactly what to do
What this means
Of everything your server sends for this page, very little is actual readable text. The rest is code, styling, and markup wrapper. Agents fetched a lot of bytes and found few words.
Why it matters
Agents work with retrieval budgets. A page that is 2% text either gets skimmed (and mis-summarised) or skipped. More signal per byte means more of your actual message survives into the agent’s summary.
Do this
Confirm your real copy is server-rendered. See the JavaScript check; these two usually fail together.
Cut boilerplate wrappers: deeply nested divs, inline SVG logos repeated per section, base64 images inlined into HTML.
Move large inline styles and scripts into external files.
Check how much of the document is inline script: your report now says. If most of it is, that is your framework serializing state for hydration, often a second copy of text already in the HTML. Send only the props a component cannot recompute, and render statically where a page does not need to hydrate.
Paste into Claude Code, Cursor, or any assistant with your repository open. It carries this finding, the steps, and the shortcuts to avoid.
Or copy it written for your tool:
What to check
Re-scan: "Text-to-markup ratio" improves, and "Page weight" often improves alongside.
What to avoid
Don’t pad the page with keyword text to inflate the ratio. The ratio is a proxy for substance, and stuffing is the opposite of substance.
Headings (H1, H2, H3…) are the page’s outline. Yours skip levels, repeat H1s, or use styled text instead of real heading tags, so the outline machines extract is scrambled.
Why it matters
Agents use the heading tree to navigate long pages and to decide which section answers a question. A broken tree means quotes get attributed to the wrong section, or sections are missed entirely.
Do this
Exactly one H1 per page: the page’s actual title.
Nest without skipping: H2 for sections, H3 for subsections. Never jump H1 to H4 for visual size.
If a heading looks right but is a styled <div>, make it a real <h2> and adjust CSS. Machines only see tags.
Paste into Claude Code, Cursor, or any assistant with your repository open. It carries this finding, the steps, and the shortcuts to avoid.
Or copy it written for your tool:
What to check
Re-scan: "Heading hierarchy" flips to PASS.
What to avoid
Don’t pick heading levels for their font size; style with CSS and keep levels semantic.
Page looks like Article|BlogPosting|NewsArticle; missing JSON-LD type(s): Article|BlogPosting|NewsArticle.
Show me exactly what to do
What this means
Your structured data exists but only covers the basics (say, Organization) while the page is really a product page, an article, or an FAQ. The machine-readable caption is missing the part that describes what this page actually is.
Why it matters
An agent looking for "running shoes under $100" matches against Product markup with offers. A product page carrying only Organization markup is invisible to that query shape: the agent knows who you are but not what this page sells.
Do this
Identify the page’s real type: Product (with offers), Article, FAQPage, HowTo, LocalBusiness, Event.
Add that type’s JSON-LD alongside the Organization block, filled from the page’s actual content.
For Product: include name, price, priceCurrency, and availability. Those are the fields agents actually query.
Paste into Claude Code, Cursor, or any assistant with your repository open. It carries this finding, the steps, and the shortcuts to avoid.
Or copy it written for your tool:
What to check
Re-scan: "Schema type coverage" improves. Keep "Structured data validates" green while you add.
The coherence checks below compare your declared price and name to the visible page; they should stay (or flip to) PASS.
What to avoid
Only declare types the page genuinely is. A blog post marked up as a Product to appear in shopping queries is the exact incoherence assistants are getting better at detecting.
Keep declared values synced with the page. If a sale changes the visible price, the JSON-LD price must change in the same deploy.
Time to first byte is how long your server thinks before it starts answering: the gap between an agent asking for the page and the first byte of HTML arriving. Yours crossed our threshold (under 200ms scores full marks, over 2 seconds fails).
Why it matters
Agents fetch with tight timeouts and many pages in parallel. A server that takes seconds to start answering gets cut off mid-queue, and a page that times out is a page that was never read. Speed here is not polish; it decides whether the content gets fetched at all.
Do this
Cache the HTML itself. Marketing and docs pages rarely change per visitor; serve them from a CDN or static cache so no application code runs per request.
If you are on serverless hosting, cold starts are a common cause: keep the function warm or pre-render the page.
Move slow work (database queries, third-party API calls) out of the first response; render the shell fast and fill personalised details after.
Paste into Claude Code, Cursor, or any assistant with your repository open. It carries this finding, the steps, and the shortcuts to avoid.
Or copy it written for your tool:
What to check
Run: curl -o /dev/null -s -w "%{time_starttransfer}\n" https://yoursite.com and watch the number drop.
Hit Re-scan above: "Time to first byte" improves a bucket at a time (under 500ms passes).
What to avoid
Don’t answer fast with an empty shell that loads content by JavaScript. That trades this warning for the much worse "content requires JavaScript" failure, since most agents never run your scripts.
Don’t special-case known crawler user agents onto a faster path. Serving different performance to different audiences is the pattern crawlers penalise when they detect it.
No Content-Signal directives. Add e.g. `Content-Signal: ai-train=no, ai-summarize=yes` to declare granular AI usage policy beyond binary allow/disallow.
Show me exactly what to do
What this means
Content-Signal is a newer robots.txt directive (pushed by Cloudflare) that lets you state a granular AI policy: for example "don’t train on my content, but summarising it in answers is fine". Classic robots.txt only offers all-or-nothing per crawler; this adds the middle ground. We looked for a Content-Signal line in your robots.txt and response headers and found none.
Why it matters
Without a granular signal, crawlers infer your intent from blunt allow/block rules, and sites often block more than they mean to just to avoid training use. A declared signal lets you keep answer visibility (summaries, citations) while opting out of what you object to. This is an emerging standard: honoring is voluntary and adoption is early, which is why it is flagged as emerging and weighs little.
Do this
Decide your actual policy first: are you fine with AI training on your content? With summarisation in answers? With search indexing?
Express it as one line in robots.txt, for example: Content-Signal: ai-train=no, ai-summarize=yes.
Keep your existing User-agent rules; the signal adds nuance on top, it doesn’t replace them.
Paste into Claude Code, Cursor, or any assistant with your repository open. It carries this finding, the steps, and the shortcuts to avoid.
Or copy it written for your tool:
What to check
Open yoursite.com/robots.txt and confirm the Content-Signal line is live.
Hit Re-scan above: "Content-Signal directives" flips to PASS.
What to avoid
Don’t declare signals that contradict your User-agent rules, such as ai-summarize=yes while blocking every AI crawler; conflicting instructions get you treated as unreliable.
Don’t add the line just for the score. It is a public policy statement; say what you mean, because compliant crawlers will act on it.