gracefulheartcpr.comscanned Jul 25, 2026 · 15:212.65s
Public AI visibility report

gracefulheartcpr.comAI visibilityNeeds Work

This site has a useful foundation, but important gaps still limit AI readability.

Key strengths include AI guidance file and plain-text page access, while homepage access and crawler policy need attention.

Recommended next step

remove AI crawler Disallow: / rules or replace them with narrower path-level restrictions for private content only.

Turn this scan into weekly monitoring.

Send yourself a magic link that opens a workspace already watching this domain for weekly AI visibility changes.

Overall score

51/100
Needs Work
Download PDF
Go to fixesOverall position565 out of 1,159Leaderboard

// score breakdown

Points by check

8 checks

Crawlability0/20
Robots.txt0/15
llms.txt15/15
Sitemap10/10
Markdown support15/15
Semantic HTML5.7/10
Structured data0/10
Content signals5/5
4pass1warn3fail

Public link

llmscan.dev/scan/Ypcf81A9EBM02D8T-olUt

Signals checked

8 AI visibility signals

Fix bundle

4 copy-ready files

Share badge

Needs Work · 51/100

Add a polished proof badge

A compact badge for footer, press, or trust sections that links visitors to this public report.

Embed codellmscan.dev/scan/Ypcf81A9EBM02D8T-olUt
<a href="https://www.llmscan.dev/scan/Ypcf81A9EBM02D8T-olUt"
  target="_blank"
  rel="noopener"
>
  <img
    src="https://www.llmscan.dev/scan/Ypcf81A9EBM02D8T-olUt/badge.png"
    alt="LLM Scan AI visibility score badge"
    width="460"
    height="120"
    style="width: 260px; max-width: 100%; height: auto;"
  />
</a>
Open badge
L
LLM Scan
Needs Work
Score
51/100

Share your score

Post the public report with: “We scored 51/100 for AI-readability.”

Download fixes

Grab generated files and implementation notes for the highest-impact gaps.

Rescan weekly

Save this domain to catch regressions after content, sitemap, or robots changes.

Monitor weekly

// signal breakdown

8 signals AI systems depend on

The homepage is reachable, but robots.txt blocks GPTBot, ClaudeBot, and Google-Extended from crawling the site.

Signal weight

0/20
Fail

Evidence

url
https://gracefulheartcpr.com/
finalUrl
https://gracefulheartcpr.com/
status
200

Recommendation

Next step: Remove AI crawler Disallow: / rules or replace them with narrower path-level restrictions for private content only.

robots.txt explicitly blocks GPTBot, ClaudeBot, and Google-Extended from the whole site.

Signal weight

0/15
Fail

Evidence

robotsTxtUrl
https://gracefulheartcpr.com/robots.txt
exists
true
rawRobotsTxt
# robots.txt — gracefulheartcpr.com # Policy: allow search + retrieval, block model training. # Content Signals: https://contentsignals.org/ # --------------------------------------------------------------------------- # Content signals (applies to all agents) # search = yes -> index and return links/excerpts # ai-input = yes -> RAG, grounding, generative search answers # ai-train = no -> no training or fine-tuning # --------------------------------------------------------------------------- User-agent: * Content-Signal: search=yes,ai-input=yes,ai-train=no,use=reference Allow: / Disallow: /api/ Disallow: /admin/ # --------------------------------------------------------------------------- # ALLOW — retrieval, search indexing, and user-triggered fetches. # These drive citations and referral traffic. # # All of these agents share ONE group. That is deliberate: per RFC 9309 a # crawler obeys exactly one group — the most specific match — and ignores every # other group, including "*". Giving each agent its own group containing only # "Allow: /" would therefore exempt it from the wildcard's Disallow rules, and # these named crawlers would be free to fetch /api/ and /admin/. Listing them # together keeps one copy of the rules, so the two cannot drift apart either. # --------------------------------------------------------------------------- # OpenAI — search index and user-initiated fetch User-agent: OAI-SearchBot User-agent: ChatGPT-User # Anthropic — search index and user-initiated fetch User-agent: Claude-SearchBot User-agent: Claude-User # Perplexity User-agent: PerplexityBot User-agent: Perplexity-User # Meta — user-initiated fetch (distinct from meta-externalagent) User-agent: Meta-ExternalFetcher # DuckDuckGo assistant User-agent: DuckAssistBot # Conventional search (also powers Google AI Overviews and Copilot) User-agent: Googlebot User-agent: Bingbot User-agent: Applebot Content-Signal: search=yes,ai-input=yes,ai-train=no,use=reference Allow: / Disallow: /api/ Disallow: /admin/ # --------------------------------------------------------------------------- # BLOCK — model training and dataset collection. # --------------------------------------------------------------------------- # OpenAI training crawler User-agent: GPTBot Disallow: / # Anthropic training crawler User-agent: ClaudeBot Disallow: / # Google Gemini training opt-out (does NOT affect Google Search or AI Overviews) User-agent: Google-Extended Disallow: / # Apple Intelligence training opt-out (does NOT affect Applebot search indexing) User-agent: Applebot-Extended Disallow: / # Common Crawl — feeds most public training corpora User-agent: CCBot Disallow: / # Meta training User-agent: meta-externalagent Disallow: / # ByteDance training User-agent: Bytespider Disallow: / # Amazon — trains Alexa and Amazon's models. Included so this policy remains # complete on its own: Cloudflare's managed robots.txt block covers Amazonbot, # and if that managed block is ever disabled the coverage must not vanish with # it. User-agent: Amazonbot Disallow: / # Additional training / dataset crawlers User-agent: AI2Bot Disallow: / User-agent: cohere-training-data-crawler Disallow: / User-agent: Diffbot Disallow: / User-agent: ImagesiftBot Disallow: / User-agent: Omgilibot Disallow: / User-agent: PanguBot Disallow: / User-agent: Timpibot Disallow: / User-agent: Webzio-Extended Disallow: / # Cloudflare browser rendering crawler User-agent: CloudflareBrowserRenderingCrawler Disallow: / # --------------------------------------------------------------------------- # Agent reference documents # Curated Markdown written for retrieval, so an agent does not have to infer # the site's structure or pricing by crawling pages. # --------------------------------------------------------------------------- # Site index: https://gracefulheartcpr.com/llms.txt # Full reference: https://gracefulheartcpr.com/llms-full.txt # --------------------------------------------------------------------------- # Sitemap # --------------------------------------------------------------------------- Sitemap: https://gracefulheartcpr.com/sitemap.xml

Recommendation

Next step: Remove AI crawler Disallow: / rules or add narrower Allow/Disallow rules if AI crawlers should be able to discover public content.

The llms.txt file was found and includes the expected text, length, heading, and URL signals.

Signal weight

15/15
Pass

Evidence

llmsTxtUrl
https://gracefulheartcpr.com/llms.txt
present
true
accessible
true

The sitemap.xml file is valid and contains URL entries.

Signal weight

10/10
Pass

Evidence

sitemapUrl
https://gracefulheartcpr.com/sitemap.xml
sitemapUrls
[https://gracefulheartcpr.com/sitemap.xml]
robotsSitemapUrls
[]

The homepage returns markdown content when requested with Accept: text/markdown, giving AI systems a cleaner text representation with less navigation chrome to parse.

Signal weight

15/15
Pass

Evidence

url
https://gracefulheartcpr.com/
acceptHeader
text/markdown
status
200

The homepage has some semantic HTML signals, but one or more title, metadata, heading, landmark, content, or link text checks need improvement.

Signal weight

6/10
Warn

Evidence

url
https://gracefulheartcpr.com/
quality
partial
score
57

Recommendation

Next step: Shorten the meta description to 160 characters or fewer. Avoid skipped heading levels so sections progress from h1 to h2 to h3 without gaps. Add missing semantic elements: article.

No JSON-LD, Microdata, or RDFa structured data was found on the page.

Signal weight

0/10
Fail

Evidence

url
https://gracefulheartcpr.com/
quality
none
hasStructuredData
false

Recommendation

Next step: Add JSON-LD structured data with Organization or WebSite schema so AI systems can identify the site owner or website entity.

AI content usage signals detected via Content-Signal robots.txt directives.

Signal weight

5/5
Pass

Evidence

url
https://gracefulheartcpr.com/
hasContentSignals
true
hasContentSignalHeader
false

Recommendation

Next step: Consider adding Content-Signal HTTP header, AI-specific head meta tags, robots noai/noimageai directive so AI systems can consistently discover content usage preferences across robots.txt, HTTP headers, and HTML metadata.

// generated fixes

Downloadable fix files

Preview the generated files below. Enter your email to reveal the full fixes, download the bundle, or copy the agent-ready implementation prompt.

Done-for-you

Agency package

Not sure how to ship the technical fixes? Book a call and we can help turn this report into implemented updates.

Fix planning from your scan

Implementation guidance

AI visibility monitoring

llms.txtMarkdown
# CPR Training Cleveland & Northeast Ohio | Graceful Heart > AHA-certified CPR, BLS & First Aid training in Cleveland and Northeast Ohio. Graceful Heart offers BLS, Heartsaver, and First Aid courses — same-day digital eCards. Request a class today. This llms.txt file summarizes the public, canonical resources that AI assistants and crawlers should use to understand this site. ## Site Overview - Canonical URL: https://gracefulheartcpr.com/- Site type: website
robots.txtTXT
# robots.txt additions# Copy these blocks into the existing robots.txt file. Keep current rules unless a note calls out a conflicting Disallow. # AI crawler access# Add explicit Allow rules for blocked AI crawlers; remove or narrow conflicting Disallow rules if your crawler target requires precedence.User-agent: GPTBotAllow: / User-agent: ChatGPT-UserAllow: /
schema.jsonJSON
{  "@context": "https://schema.org",  "@graph": [    {      "@type": "Organization",      "@id": "https://gracefulheartcpr.com/#organization",      "name": "CPR Training Cleveland & Northeast Ohio | Graceful Heart",      "description": "AHA-certified CPR, BLS & First Aid training in Cleveland and Northeast Ohio. Graceful Heart offers BLS, Heartsaver, and First Aid courses — same-day digital eCards. Request a class today.",      "url": "https://gracefulheartcpr.com/",      "logo": "https://gracefulheartcpr.com/apple-touch-icon-180x180.png",
head metaHTML
# Content-Signal recommendations Use these directives to make AI-use preferences explicit for compliant crawlers and AI systems. They are advisory signals, so keep them aligned with robots.txt, terms, and access controls. ## Recommended values - ai-train=no: AI model training, fine-tuning, and dataset creation.- search=yes: AI search indexing, snippets, and discovery.- ai-input=yes: AI answer grounding, retrieval, and generated-response context.

Related scans

Similar AI visibility reports

Browse leaderboard