caretta.cloud — llms.txt & GEO score
Solid, with a short list left
caretta.cloud publishes a curated llms.txt — 20 links across 5 sections, 4.8 KB in all.
Every link carries a description, averaging 136 characters — long enough to tell a model which page answers a question without opening all of them first.
The clearest gap is points at clean markdown copies. Right now: 1 of 20 end in .md or .txt (5%, detected by file extension). Closing it is worth 9 points.
What it does well
- Every link carries a description 20 of 20 described (100%)
- Descriptions say something concrete Average 136 characters across 20 described links
- Descriptions add to the title No description merely repeats its title
- A workable number of links 20 links (12–50 is the sweet spot)
What is missing
- Points at clean markdown copies +9 1 of 20 end in .md or .txt (5%, detected by file extension)
- The index is kept current +2 Cannot be confirmed — the server sends no Last-Modified header
- Link titles are descriptive +1 1 weak title (bare URLs, “here”, one-word labels)
- Server reports when it last changed +1 No Last-Modified header — clients cannot tell when this changed
Among the 22 sites measured here so far, caretta.cloud ranks 4th, against a median of 71. That comparison moves as new sites are scanned — it is a snapshot of this list, not of the web.
What caretta.cloud tells an assistant
Caretta — the assistant that answers your visitors
Caretta learns your website and answers every visitor from your own pages, in their language, around the clock. Pay per answer, nothing when it is unsure.
Content & links
Can a model pick the right page, first time?
9 of 11 checks pass. What is left: points at clean markdown copies and link titles are descriptive.
-
Every link carries a description 20 of 20 described (100%)10/10
-
Descriptions say something concrete Average 136 characters across 20 described links7/7
-
Descriptions add to the title No description merely repeats its title4/4
-
Points at clean markdown copies 1 of 20 end in .md or .txt (5%, detected by file extension)1/10
-
Link titles are descriptive 1 weak title (bare URLs, “here”, one-word labels)3/4
-
A workable number of links 20 links (12–50 is the sweet spot)4/4
-
Skippable links marked Optional An ## Optional section is present3/3
-
No duplicate links All 20 URLs are distinct2/2
-
List items are markdown links All 20 list items are links4/4
-
Enough written detail per link 34 words per link across 677 words3/3
-
Links are absolute URLs All 20 links are absolute URLs1/1
Structure
Does it follow the llms.txt shape?
All 7 checks pass in this group.
-
Exactly one H1 project title “Caretta — the assistant that answers your visitors”3/3
-
Summary directly under the title Present as a blockquote3/3
-
Summary is a usable length 154 characters3/3
-
Concrete language, not marketing filler No marketing filler detected3/3
-
Grouped into balanced sections 5 H2 sections, largest group holds 7 of 20 links4/4
-
Conforms to the published grammar Markdown only, headings used as the spec defines them2/2
-
Section names say what is inside All 5 headings are descriptive2/2
Discovery & access
Can an assistant reach it, and is it allowed to?
All 5 checks pass in this group.
-
At the root of the domain you typed Found at the standard /llms.txt path2/2
-
Sent as plain text Content-Type: text/plain; charset=utf-81/1
-
robots.txt exists 848 B of crawler rules1/1
-
AI crawlers are not blocked No AI user-agent is disallowed at the root6/6
-
robots.txt points at a sitemap A Sitemap: line is declared1/1
Search-engine basics
What a crawler reads from your homepage today
All 6 checks pass in this group.
-
Homepage title is the right length 50 characters, from title2/2
-
Title is not padded or repetitive No repeated terms1/1
-
Homepage has a meta description 154 characters, from meta description2/2
-
Canonical URL declared https://caretta.cloud/1/1
-
Language declared lang="en"1/1
-
Social card image og:image is set1/1
Depth & upkeep
Is there more than the index, and is it current?
3 of 5 checks pass. What is left: server reports when it last changed and the index is kept current.
-
Publishes llms-full.txt Companion full-text file found3/3
-
The index points at the full file llms.txt links to llms-full.txt1/1
-
Index is a sensible size 4.8 KB2/2
-
Server reports when it last changed No Last-Modified header — clients cannot tell when this changed0/1
-
The index is kept current Cannot be confirmed — the server sends no Last-Modified header0/2
What caretta.cloud should fix next
Ordered by what each one is worth. Open a row for the steps.
-
Right now: 1 of 20 end in .md or .txt (5%, detected by file extension)
Publish a .md version of each page and link to that. The single biggest win here: the model reads your content instead of your navigation and footer.
Where: Your CMS or docs build — this is the biggest single win here
- Publish a .md version of each page you link to, at a predictable URL (page.md next to page).
- Point the llms.txt links at the .md copies, not at the HTML pages.
- Strip navigation, cookie banners and footers from the markdown — that is the whole point: the model reads your content instead of your chrome.
- Declare the pair in your HTML with a link relation so clients can find it without guessing.
In your file
line 10- [Caretta pricing](https://caretta.cloud/pricing/): What Caretta costs: you pay per answer, nothing when it is unsure, and a spend cap you set once keeps the monthly bill predictable.
- [Caretta pricing](https://caretta.cloud/pricing.md): What Caretta costs: you pay per answer, nothing when it is unsure, and a spend cap you set once keeps the monthly bill predictable.
line 11- [Caretta API reference](https://caretta.cloud/api/): Reference documentation for the Caretta API — endpoints, authentication and request payloads for integrating Caretta directly into your own systems.
- [Caretta API reference](https://caretta.cloud/api.md): Reference documentation for the Caretta API — endpoints, authentication and request payloads for integrating Caretta directly into your own systems.
line 12- [Sign in or create your Caretta account](https://caretta.cloud/access/): Sign in to your Caretta account or create a new one — one line to install, no subscription required, and every unsure answer stays free.
- [Sign in or create your Caretta account](https://caretta.cloud/access.md): Sign in to your Caretta account or create a new one — one line to install, no subscription required, and every unsure answer stays free.
Placeholders in { } are yours to write — we do not invent text about your pages.
-
Right now: Cannot be confirmed — the server sends no Last-Modified header
Regenerate llms.txt when the docs change. A year-old index quietly points models at pages that have moved.
Where: Your build pipeline
- Regenerate llms.txt in the same step that publishes content, so it cannot go stale silently.
- Treat it as a build artifact, not a hand-edited file — hand-edited indexes drift within a quarter.
- An llms.txt with discontinued products is worse than none: a model will repeat the wrong facts confidently.
-
Right now: 1 weak title (bare URLs, “here”, one-word labels)
Replace bare URLs and “click here” with the page’s real name — the title is half the signal.
Where: The "[Title]" part of each link
- Replace bare URLs, "here", "click here" and one-word labels with the page’s real name.
- The title is half the signal — a model reads it before it reads your description.
In your file
line 26- [Status](https://caretta.cloud/status/): Live status of the Caretta chat transport, the platform API and this site, checked every few minutes from outside our network.
- [{the page’s real name}](https://caretta.cloud/status/): Live status of the Caretta chat transport, the platform API and this site, checked every few minutes from outside our network.Placeholders in { } are yours to write — we do not invent text about your pages.
-
Right now: No Last-Modified header — clients cannot tell when this changed
Let the server send Last-Modified on llms.txt. Without it a client has to re-download the whole file to notice a change.
Where: Your web server configuration
- Serve llms.txt as a real file on disk so the server can derive Last-Modified from its mtime.
- If it is generated by an application route, set the header yourself from the generation time.
- Without it a client has to re-download the whole file to notice a change, and cannot answer "is this current?".
Instead ofHTTP/1.1 200 OK\nContent-Type: text/plain
Do thisHTTP/1.1 200 OK\nContent-Type: text/plain\nLast-Modified: Wed, 10 Sep 2026 08:14:00 GMT
This score is Devsly’s own heuristic, not an official standard — llms.txt has no scoring body. It measures how well a file serves an AI assistant, and it does not predict whether any assistant will cite the site. The reading is a snapshot from 19 September 2026; run it again for the current state, or check a different site.
Other recently scored sites
Every scan that finds an llms.txt gets a score card. Cards link back to the full report here, not out to the site.