The Plain Fetch viewer
In short
The viewer requests a URL the way a plain-fetch agent does: no JavaScript, one request for HTML, one for markdown, one for llms.txt and one for a path that should not exist. It shows the initial HTML on the left, the readable text on the right, and seven flags underneath.
Pre-loaded with www.wikipedia.org, read 4 November 2026. Type any public URL to run your own.
The page answers a plain fetch: 4 of 6 checks found.
Initial HTML what a plain fetch receives
<!DOCTYPE html>
<html lang="en" class="__variable_980b0d __variable_201314 __variable_0b45e9 bg-white">
<head>
<meta charSet="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
[... 24 more head elements folded ...]
<title>Cleveland Clinic: Every Life Deserves World Class Care
</title>
<meta name="description" content="Cleveland Clinic, a non-profit academic medical center, provides clinical and hospital care and is a leader in research, education and health information."/>
<link rel="canonical" href="https://my.clevelandclinic.org/"/>
[... 19 more head elements folded ...]
</head>
<body>
<div hidden=""><!--$--><!--/$-->
</div>
<script>[... 156 characters folded ...]
</script>
<script>[... 146 characters folded ...]
</script>
<script id="schema-script" type="application/ld+json">[... 1,081 characters folded ...]
</script>
<div id="d89JF2Fa-exV-5ixaiTVui1y_gqYcnxAVAB0ZZvIj8rs">
</div>
<div id="ccf-lcwidget-chat" class="hidden d365-mkt-config" data-website-id="89JF2Fa-exV-5ixaiTVui1y_gqYcnxAVAB0ZZvIj8rs" data-hostname="ca264331a46e4359af48029ef070df94.svc.dynamics.com" data-app-id="cb30e344-c0a8-4f14-9 [... 163 characters folded ...]>
</div>
<header data-identity="centered-site-header" aria-label="Site Header" class="relative z-50 bg-white border-b border-gray-400">
<div class="print:hidden">
<div data-identity="utility-nav" class="w-full bg-gray-300 ">
<div class="w-full flex justify-between items-stretch">
<div class="flex-1 min-w-0">
<section data-identity="single-line-nav" class="flex text-rem12px leading-rem24px bg-gray-300 text-gray-900 max-w-full print:hidden">
<div data-identity="single-line-nav-label" class="flex-none font-bold h-rem40px py-rem8px pl-rem16px bp1400:pl-rem32px">Locations:
</div>
<div class="relative h-rem40px overflow-hidden">
<div class="overflow-x-auto invisible-scrollbar whitespace-nowrap h-full pr-rem16px bp1400:pr-rem32px "><a href="https://www.clevelandclinicabudhabi.ae/en" target="_blank" class="px-rem12px py-rem8px first:pl-rem16px inline-block transition hover:text-blue-600 ">Abu Dhabi</a><span data-identity="divider" class="text-gray-400 select-none last:hidden inline">|</span><a href="https://my.clevelandclinic.org/canada" target="_blank" class="px-rem12px py-rem8px inline-block transition hover:text-blue-600 ">Canada</a><span data-identity="divider" class="text-gray-400 select-none last:hidden inline">|</span><a href="https://my.clevelandclinic.org/florida" target="_blank" class="px-rem12px py-rem8px inline-block transition hover:text-blue-600 ">Florida</a><span data-identity="divider" class="text-gray-400 select-none last:hidden inline">|</span><a href="https://clevelandcliniclondon.uk/" target="_blank" class="px-rem12px py-rem8px inline-block transition hover:text-blue-600 ">London</a><span data-identity="divider" class="text-gray-400 select-none last:hidden inline">|</span><a href="https://my.clevelandclinic.org/locations/nevada" target="_blank" class="px-rem12px py-rem8px inline-block transition hover:text-blue-600 ">Nevada</a><span data-identity="divider" class="text-gray-400 select-none last:hidden inline">|</span><a href="https://my.clevelandclinic.org/" target="_blank" class="px-rem12px py-rem8px inline-block transition hover:text-blue-600 ">Ohio</a><span data-identity="divider" class="text-gray-400 select-none last:hidden inline">|</span>
</div><img data-identity="single-line-nav-fade-left" alt="Gray gradient" loading="lazy" width="16" height="40" decoding="async" data-nimg="1" class="absolute left-0 top-0 z-[2]" style="color:transparent" srcSet="/_next/static/ [... 208 characters folded ...]><img data-identity="single-line-nav-fade-right" alt="Gray gradient" loading="lazy" width="32" height="40" decoding="async" data-nimg="1" class="absolute right-0 top-0 z-[2]" style="color:transparent" srcSet="/_next/stati [... 213 characters folded ...]>
</div>
</section>
</div>
<div class="flex-shrink-0 hidden bp1100:block">
<section data-identity="single-line-nav" class="flex text-rem12px leading-rem24px bg-gray-300 text-gray-900 max-w-full print:hidden">
<div id="desktop-notification-spot-id" class="flex items-center justify-center flex-shrink-0 h-rem40px py-rem8px px-rem12px pl-rem16px">
</div><span data-identity="notification-divider" class="select-none opacity-0 pointer-events-none transition duration-00 ease-out inline-flex items-center justify-center self-center text-gray-400 h-[18px] text-[18px] leading-[18px]">|</span>
<div class="relative h-rem40px overflow-hidden">
<div class="overflow-x-auto invisible-scrollbar whitespace-nowrap h-full pr-rem16px bp1400:pr-rem32px "><a href="tel:8002232273" class="px-rem12px py-rem8px inline-block transition hover:text-blue-600 text-blue-600 hover:text-blue-800 hidden bp1100:inline-block"> 800.223.2273</a><span data-identity="divider" class="text-gray-400 select-none last:hidden bp900:hidden bp1100:inline">|</span><a href="https://my.clevelandclinic.org/online-services/mychart" class="px-rem12px py-rem8px inline-block transition hover:text-blue-600 hidden bp1100:inline-block">MyChart</a><span data-identity="divider" class="text-gray-400 select-none last:hidden bp900:hidden bp1100:inline">|</span><a href="https://my.clevelandclinic.org/professionals" class="px-rem12px py-rem8px inline-block transition hover:text-blue-600 hidden bp1100:inline-block">Medical Professionals</a><span data-identity="divider" class="text-gray-400 select-none last:hidden bp900:hidden bp1100:inline">|</span><a href="https://jobs.clevelandclinic.org/" class="px-rem12px py-rem8px inline-block transition hover:text-blue-600 hidden bp1100:inline-block">Careers</a><span data-identity="divider" class="text-gray-400 select-none last:hidden bp900:hidden bp1100:inline">|</span><a href="https://give.ccf.org/give/187824#!/donation/checkout" target="_blank" class="px-rem12px py-rem8px inline-block transition hover:text-blue-600 text-forestGreen-500 hover:text-forestGreen-800 hidden bp1100:inline-block">Donate Now</a><span data-identity="divider" class="text-gray-400 select-none last:hidden bp900:hidden bp1100:inline">|</span>
</div><img data-identity="single-line-nav-fade-left" alt="Gray gradient" loading="lazy" width="16" height="40" decoding="async" data-nimg="1" class="absolute left-0 top-0 z-[2]" style="color:transparent" srcSet="/_next/static/ [... 208 characters folded ...]><img data-identity="single-line-nav-fade-right" alt="Gray gradient" loading="lazy" width="32" height="40" decoding="async" data-nimg="1" class="absolute right-0 top-0 z-[2]" style="color:transparent" srcSet="/_next/stati [... 213 characters folded ...]>
</div>
</section>
</div>
</div>
</div>
</div>
<div class="min-h-[5rem] flex flex-row gap-x-rem8px justify-between items-center w-full bp1100:grid bp1100:grid-cols-[3fr_6fr_4fr] bp1400:grid-cols-[2fr_5fr_2fr] bp1100:min-h-[9.5rem]"><a href="https://my.clevelandclinic.org/" data-identity="logo">
<div class="relative ml-rem16px bp1100:pl-rem32px bp1400:ml-rem32px z-[10] w-[160px] h-[40px] bp1100:w-[191px] bp1100:h-[44px] py-rem48px "><img alt="Cleveland Clinic logo" loading="lazy" decoding="async" data-nimg="fill" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;object-fit:contain;color:transparent" sizes="100vw" srcSet=" [... 1173 characters folded ...]>
</div></a>
<div class="flex-1 flex justify-center min-w-0 print:hidden">
<div data-identity="primary-nav" class="bg-white flex items-center justify-center hidden bp1100:block">
<div data-identity="mobile-primary-nav" class="w-full bp900:hidden">
<div class="relative">
<div class="px-rem32px"><a data-identity="ss-link" href="https://my.clevelandclinic.org/providers" class="text-brandBlue-500 hover:text-blue-800 transition font-bold leading-rem24px stroke-brandBlue-500 hover:stroke-blue-800 hover:text-blue-80 [... 264 characters folded ...]>Find a Provider</a><a data-identity="ss-link" href="https://my.clevelandclinic.org/locations" class="text-brandBlue-500 hover:text-blue-800 transition font-bold leading-rem24px stroke-brandBlue-500 hover:stroke-blue-800 hover:text-blue-80 [... 264 characters folded ...]>Locations and Directions</a><button data-identity="mobile-secondary-column-heading" class="text-brandBlue-500 pr-rem24px font-bold leading-rem24px stroke-brandBlue-500 hover:stroke-blue-800 hover:text-blue-800 relative text-rem16px border-b py-rem1 [... 182 characters folded ...]><span class="flex-1">Services</span>
<div class="absolute w-[36px] h-[36px] flex items-center justify-center right-0 translate-x-rem12px">
<svg xmlns="http://www.w3.org/2000/svg" width="9" height="18" viewBox="0 0 9 18" fill="none">[... 176 characters folded ...]
</svg>
</div></button><button data-identity="mobile-secondary-column-heading" class="text-brandBlue-500 pr-rem24px font-bold leading-rem24px stroke-brandBlue-500 hover:stroke-blue-800 hover:text-blue-800 relative text-rem16px border-b py-rem1 [... 182 characters folded ...]><span class="flex-1">Patients and Visitors</span>
<div class="absolute w-[36px] h-[36px] flex items-center justify-center right-0 translate-x-rem12px">
<svg xmlns="http://www.w3.org/2000/svg" width="9" height="18" viewBox="0 0 9 18" fill="none">[... 176 characters folded ...]
</svg>
</div></button><button data-identity="mobile-secondary-column-heading" class="text-brandBlue-500 pr-rem24px font-bold leading-rem24px stroke-brandBlue-500 hover:stroke-blue-800 hover:text-blue-800 relative text-rem16px border-b py-rem1 [... 182 characters folded ...]><span class="flex-1">Health Library</span>
<div class="absolute w-[36px] h-[36px] flex items-center justify-center right-0 translate-x-rem12px">
<svg xmlns="http://www.w3.org/2000/svg" width="9" height="18" viewBox="0 0 9 18" fill="none">[... 176 characters folded ...]
</svg>
</div></button>
</div>
</div>
</div>
<ul data-identity="desktop-primary-nav" class="flex items-center gap-x-rem16px bp1400:gap-x-rem24px hidden bp900:flex">
<li class="flex items-baseline text-rem15px leading-rem20px"><a data-identity="ss-link" href="https://my.clevelandclinic.org/providers" class="text-brandBlue-500 hover:text-blue-800 transition py-rem4px px-rem8px" target="_blank" rel="noopener noreferrer">Find a Provider</a>
</li>
<li class="flex items-baseline text-rem15px leading-rem20px"><a data-identity="ss-link" href="https://my.clevelandclinic.org/locations" class="text-brandBlue-500 hover:text-blue-800 transition py-rem4px px-rem8px" target="_blank" rel="noopener noreferrer">Locations and Directions</a>
</li>
<li class="flex items-baseline text-rem15px leading-rem20px"><button class="py-rem4px px-rem8px rounded-[0.3125rem] group transition leading-rem23px text-brandBlue-500 hover:text-blue-800 flex justify-between items-center
duration-[380ms] ease-in-out motion-reduce:transition-none " aria-expanded="false"><span>Services</span>
<svg width="11" height="8" viewBox="0 0 11 8" fill="none" xmlns="http://www.w3.org/2000/svg" class="ml-rem8px transform transition-all duration-[390ms] ease-in-out motion-reduce:transition-none rotate-0">[... 312 characters folded ...]
</svg></button>
</li>
<li class="flex items-baseline text-rem15px leading-rem20px"><button class="py-rem4px px-rem8px rounded-[0.3125rem] group transition leading-rem23px text-brandBlue-500 hover:text-blue-800 flex justify-between items-center
duration-[380ms] ease-in-out motion-reduce:transition-none " aria-expanded="false"><span>Patients and Visitors</span>
<svg width="11" height="8" viewBox="0 0 11 8" fill="none" xmlns="http://www.w3.org/2000/svg" class="ml-rem8px transform transition-all duration-[390ms] ease-in-out motion-reduce:transition-none rotate-0">[... 312 characters folded ...]
</svg></button>
</li>
<li class="flex items-baseline text-rem15px leading-rem20px"><button class="py-rem4px px-rem8px rounded-[0.3125rem] group transition leading-rem23px text-brandBlue-500 hover:text-blue-800 flex justify-between items-center
duration-[380ms] ease-in-out motion-reduce:transition-none " aria-expanded="false"><span>Health Library</span>
<svg width="11" height="8" viewBox="0 0 11 8" fill="none" xmlns="http://www.w3.org/2000/svg" class="ml-rem8px transform transition-all duration-[390ms] ease-in-out motion-reduce:transition-none rotate-0">[... 312 characters folded ...]
</svg></button>
</li>
</ul>
</div>
</div>
<div class="flex flex-row justify-end gap-rem12px bp1100:hidden ml-auto flex-shrink-0 print:hidden">
<div data-identity="mobile-icons-container" class="flex flex-row items-center justify-end bp1100:hidden relative z-[10] pr-rem16px bp1100:pr-rem24px bp600:pr-rem32px gap-x-rem8px bg-white">
<div id="mobile-notification-spot-id" class="flex items-center justify-center">
</div><span aria-hidden="true" data-identity="notification-divider" class="self-stretch opacity-0 pointer-events-none transition duration-300 ease-out block w-px bg-gray-400"></span><a href="/search"><img data-identity="search-icon" alt="Search" loading="lazy" width="26" height="26" decoding="async" data-nimg="1" style="color:transparent" srcSet="/_next/static/media/LondonGreenSearchIcon.6d7e718f.svg?w=32&q=75 1x [... 151 characters folded ...]></a>
<div class="ml-rem8px"><button data-identity="action-button" class="transition select-none text-white bg-brandBlue-500 hover:bg-blue-800 group block font-medium w-fit text-rem18px leading-rem24px px-rem24px rounded-[0.3125rem] text-center focu [... 85 characters folded ...]>Menu</button>
</div>
</div>
</div>
<div class="hidden items-center bp1100:flex bp1100:flex-row bp1100:gap-rem32px bp1100:pr-rem32px justify-end print:hidden"><a href="/search" class="flex-shrink-0"><img data-identity="search-icon" alt="Search" loading="lazy" width="26" height="26" decoding="async" data-nimg="1" class="bp1100:block" style="color:transparent" srcSet="/_next/static/media/LondonGreenSearchIcon.6d7e718f [... 172 characters folded ...]></a><a data-identity="link-button" class="transition select-none text-white bg-brandBlue-500 hover:bg-blue-800 group block font-medium w-fit text-rem18px leading-rem24px px-rem24px rounded-[0.3125rem] text-center focus-stand [... 104 characters folded ...]>Appointments</a>
</div>
</div>
<div class="print:hidden">
<div data-identity="notification-banner-pill" class="group absolute top-[37px] bp1100:top-[34px] left-0 right-0 w-fit z-[10] opacity-0 pointer-events-none transition-all duration-500 delay-200 mx-auto flex justify-center "><button aria-label="Open notification banner" class="pl-rem8px bp1100:pl-rem12px pr-9 bp1100:pr-rem48px max-w-[310px] max-h-rem32px bp1100:max-h-rem48px py-[6px] bp1100:py-rem12px bg-blue-600 group-hover:bg-blue-800 tran [... 165 characters folded ...]><img alt="Exclamation point" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="w-[20px] h-[20px] bp1100:w-[26px] bp1100:h-[26px] mr-[10px]" style="color:transparent" srcSet="https://assets.cleve [... 373 characters folded ...]><span class="text-white font-bold text-rem14px leading-rem19px bp1100:text-rem17px bp1100:leading-rem22px overflow-hidden whitespace-nowrap">Closures & Updates</span></button><button aria-label="Close notification button" class="absolute right-rem8px bp1100:right-rem12px top-1/2 transform -translate-y-1/2 flex items-center" data-identity="notification-banner-close-pill-button" title="Close notification button"><img alt="Blue close icon" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="w-[20px] h-auto bp1100:w-[25px] hover:scale-110 transition duration-300 ease-out" style="color:transparent" srcSet="/ [... 203 characters folded ...]></button>
</div>
</div>
</header>
<div data-identity="dynamic-page" data-template="generic-homepage">
<div data-identity="hero-media" class="relative h-[calc(90vh-215px)] min-h-[500px] w-full">
<div data-identity="video" class="w-full relative aspect-video overflow-hidden h-[calc(90vh-215px)] min-h-[500px]"><video controlsList="nodownload" autoPlay="" disablePictureInPicture="" loop="" muted="" poster="https://assets.clevelandclinic.org/asset/e5633ffc-83df-4fad-8ed2-b8c08a4079e8/thumbnail/webimage-Enterprise-Homepage-Hero-V [... 84 characters folded ...]><source src="https://assets.clevelandclinic.org/asset/e5633ffc-83df-4fad-8ed2-b8c08a4079e8/Enterprise-Homepage-Hero-Video.mp4" type="video/mp4"/></video><button data-identity="action-button" class="transition select-none hover:outline-none block bp600:hidden absolute hover-no-mobile:z-[9] focus-visible:z-[9] top-rem40px right-rem32px bp1100:right-rem64px peer"><img alt="Mobile Pause icon" loading="lazy" width="12" height="12" decoding="async" data-nimg="1" class="mr-0 w-[42px] h-[28px]" style="color:transparent" srcSet="/_next/static/media/icon-pause-white-mobile.c509e030.svg? [... 171 characters folded ...]></button><button data-identity="action-button" class="transition select-none rounded-[0.3125rem] border-white text-white hover:outline hover:outline-white hover:outline-2 hover:outline-offset-0 focus-visible:outline focus-visible [... 314 characters folded ...]><img alt="Pause icon" loading="lazy" width="12" height="12" decoding="async" data-nimg="1" class="mr-rem8px" style="color:transparent" srcSet="/_next/static/media/icon-pause-white.b93d6cab.svg?w=16&q=75 1x, /_next/st [... 130 characters folded ...]>Pause video</button>
<div data-identity="overlay" class="absolute inset-0 top-0 left-0 w-full h-full z-[8] transition-discrete transition-[opacity,overlay,display] duration-300 bg-black/60 hidden opacity-0 starting:opacity-0 peer-hover-no-mo [... 101 characters folded ...]>
</div>
</div>
<div data-identity="hero-gradient" class="absolute bottom-0 w-full h-3/4 bg-[linear-gradient(180deg,rgba(75,75,75,0)_19.64%,rgba(39,38,38,0.83)_82.46%),linear-gradient(0deg,rgba(0,0,0,0)_0%,rgba(0,0,0,0)_100%)]">
</div>
<div data-identity="hero-text" class="absolute bottom-rem96px left-0 right-0 container">
<h1 class="w-full bp600:w-9/12 bp900:w-1/2 bp1400:w-5/12 text-rem40px leading-rem44px bp900:text-rem48px bp900:leading-rem52px text-white mb-rem40px">
<div class="font-black">We’re here when you need us — for every care in the world.<!-- -->
</div>
</h1><a href="https://my.clevelandclinic.org/providers" class="text-white underline underline-offset-[5px] mt-rem8px mr-rem32px block bp600:inline-block w-fit bp600:w-auto font-medium relative hover:z-[9] focus-visible:z-[9] focus-visible:outline-none">Our Providers</a><a href="https://my.clevelandclinic.org/locations" class="text-white underline underline-offset-[5px] mt-rem8px mr-rem32px block bp600:inline-block w-fit bp600:w-auto font-medium relative hover:z-[9] focus-visible:z-[9] focus-visible:outline-none">Locations & Directions</a><a href="https://my.clevelandclinic.org/patients/information/access" class="text-white underline underline-offset-[5px] mt-rem8px mr-rem32px block bp600:inline-block w-fit bp600:w-auto font-medium relative hover:z-[9] focus-visible:z-[9] focus-visible:outline-none">Appointments</a>
</div><button aria-label="Scroll to next section" data-identity="action-button" class="transition select-none stroke-white touch-manipulation cursor-pointer active:scale-110 bg-brandGreen-500 items-center justify-center outlin [... 218 characters folded ...]>
<svg class="-rotate-90" width="22" height="13" viewBox="0 0 22 13" fill="none" xmlns="http://www.w3.org/2000/svg">[... 285 characters folded ...]
</svg></button>
<div data-identity="overlay" class="absolute inset-0 top-0 left-0 w-full h-full z-[8] transition-discrete transition-[opacity,overlay,display] duration-300 bg-black/60 hidden opacity-0 starting:opacity-0 peer-hover:opacity-100 peer-hover:block peer-focus-visible:opacity-100 peer-focus-visible:block">
</div>
</div>
<div id="main-content" class="my-rem96px">
<div class="anchor-scroll-offset">
<section id="featured-services" data-identity="featured-services" class="bp1100:container my-rem96px">
<div data-identity="featured-services-list-mobile" class="bp1100:hidden">
<div class="px-rem16px bp600:container">
<div data-identity="overline" class="mb-rem32px bp1100:mb-rem40px"><span data-identity="overline-text" class="text-rem13px leading-rem16px font-medium text-gray-900">Featured Services</span>
</div>
Shown with 124 long blocks (scripts, styles, long tags) folded into a marker that says how many characters they hide; line breaks added before block tags because the source is minified; the pane stops after the first 200 words; the page is 294 KB.
Reading view the text a plain-fetch client can extract
title: Cleveland Clinic: Every Life Deserves World Class Care
We’re here when you need us — for every care in the world.
Locations: Abu Dhabi | Canada | Florida | London | Nevada | Ohio | | 800.223.2273 | MyChart | Medical Professionals | Careers | Donate Now | Find a Provider Locations and Directions Services Patients and Visitors Health Library Find a Provider Locations and Directions Services Patients and Visitors Health Library Menu Appointments Closures & Updates Pause video We’re here when you need us — for every care in the world. Our Providers Locations & Directions Appointments Featured Services Cancer Breast Cancer Cancer Genetic Counseling and Testing Colorectal Cancer Heart Tumors Kidney Cancer Leukemia Lung Cancer Melanoma Non-Hodgkin Lymphoma Ovarian Cancer Pancreatic Cancer Prostate Cancer Sarcoma Stomach Cancer Thyroid Cancer Mesothelioma View all services Children’s Services Cancer Care for Children Cardiology Care for Children Digestive Care for Children Endocrinology Care for Children Kidney Care (Nephrology) for Children Liver Care for Children Neonatal Care and Surgery Neurology Care for Children Neurosurgery for Children Orthopaedics for Children Pediatric Ear, Nose & Throat Care (Otolaryngology) Pediatric Eye Care Pediatric Primary Care Respiratory Care for Children Rheumatology for Children Urology Care for Children View all services Digestive Care Bariatric Surgery Celiac Disease Colonoscopy Colorectal Surgery Crohn’s Disease Fecal Incontinence Gastroparesis Hemorrhoids Hernia Repair Inflammatory
848 more words follow in the initial HTML.
| Check | Result | Detail |
|---|---|---|
| H1 in the initial HTML | Found one H1 | First H1: We’re here when you need us — for every care in the world. |
| First 200 words in the initial HTML | Found 200 of 200 words | The initial HTML carries 1048 words of visible text; the first 200 are marked in the left pane. |
| llms.txt present and linked | Note present, not linked | 1925 bytes, 10 links. Structure grade B (5 of 6). Nothing on the home page points to it. Ora's lab found 86 percent of llms.txt fetches arrived through a link. |
| Markdown on request | Missing 200 text/html | Accept: text/markdown returned 200 with text/html; charset=utf-8. The server ignores the header. |
| Status of a made-up path | Found 404 | /agent-ready-html-missing-path-check returned 404: a real status code for a missing page. |
| JSON-LD types | Found MedicalOrganization, QuantitativeValue | 2 schema.org types in JSON-LD blocks on the home page: MedicalOrganization, QuantitativeValue. |
| OpenAPI link | Note none on the home page | No OpenAPI link on the home page. It matters only for a site that ships an API. |
Run the full check
The viewer read one page with four requests. The full check we recommend next is Ora's scan. Its Access layer runs 42 checks worth 30 of its 100 points, among them content without JavaScript, bot detection, llms.txt, markdown on request, JSON-LD and the sitemap (Ora's check catalogue, contract 1.38.0, read 5 November 2026). Open Ora's report for clevelandclinic.org.
Limits: Ora reads public URLs only, says two runs of one scan land within a couple of points without publishing repeat-scan data, and keeps the product that fixes what it finds behind a waitlist. Cloudflare's scanner at isitagentready.com is a quick free alternative, and Mintlify's score covers documentation.
What the viewer does
It sends four plain GET requests with the user agent Mozilla/5.0 (compatible; agent-readiness-crawl/1.0): the URL itself, the same URL with Accept: text/markdown, /llms.txt on the same host, and a made-up path at the root. It runs no JavaScript. The left pane is the first bytes of the HTML as text, with long scripts and styles folded into a marker that says how many characters they hide. The H1 and the first 200 words of visible text are marked in both panes. The flags under the panes say what the four responses added up to.
Limits
- Ten seconds for all four requests together, 1.5 MB read from the home page, at most five redirects, each one checked again.
- http and https only, default ports only. Private, local and internal addresses and names are refused.
- Ten runs per address per minute. The counter lives in memory on the edge function, so it is per instance rather than global. Past ten you get a 429 with a Retry-After header.
- Results are cached for 24 hours by the response headers. Nothing is written to a database: the viewer keeps the first 200 words and the extracted fields for the length of the request and keeps no page body beyond that.
What it does not tell you
A plain fetch from this server is not a real agent. Bot protection weighs the source address more than the user agent, so a page that answers 200 here can still refuse an agent, and the reverse. Ora's lab found (2026-10-19) that returning 403 to agent user agents and hiding the answer in JavaScript were the only two of 19 configurations that stopped retrieval; the viewer can see the second, and can only hint at the first. The initial HTML reference covers both. The server logs and the published crawler address ranges settle the first.
The seven flags
- H1 in the initial HTML
- Whether the HTML the server sends already contains an H1. It is the cheapest sign that the page does not depend on scripts to say what it is.
- First 200 words in the initial HTML
- Whether at least 200 words of visible text arrive in the initial HTML. Under 40 words with an app root element is flagged as a JavaScript shell.
- llms.txt present and linked
- Whether /llms.txt answers with a plain-text file, whether the home page links it (an anchor, a link element or a Link header), and the structure grade the index uses.
- Markdown on request
- Whether a request with Accept: text/markdown comes back as text/markdown. Cloudflare Radar found 3.9 percent of scanned top sites passing this at its April 2026 launch.
- Status of a made-up path
- Whether a path that should not exist returns 404 or 410. A 200 is a soft 404 and reads as a live page.
- JSON-LD types
- The schema.org types found in JSON-LD blocks on the page. Ora's lab found JSON-LD made no difference when the answer was already in the HTML.
- OpenAPI link
- Whether the page links an OpenAPI file, by an anchor or a service-desc link relation. It matters only for a site that ships an API.
Sources
- Ora: AgentReady launch post (Ora's lab findings) https://ora.ai/blog/agentready-launch, read 4 November 2026
- Ora check catalogue, contract 1.38.0 (132 checks, 42 in the Access layer) https://ora.ai/api/checks, read 5 November 2026
- Ora home page (the fixing product is behind a waitlist) https://ora.ai/, read 5 November 2026
- Ora: Introducing Deep Scan (repeat scans) https://ora.ai/blog/introducing-deep-scan, read 5 November 2026
- Ora llms.txt (public URLs only) https://ora.ai/llms.txt, read 5 November 2026
- Vercel: Make your site readable by AI agents https://vercel.com/kb/guide/make-your-site-readable-by-ai-agents, read 4 November 2026
- llms.txt proposal (llmstxt.org) https://llmstxt.org/, read 4 November 2026
Last reviewed 5 November 2026