kafcryogenics.com — llms.txt & GEO score
An index of pages, not of content
kafcryogenics.com publishes a curated llms.txt — 17 links across 3 sections, 4.8 KB in all.
Every link carries a description, averaging 71 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: 0 of 17 end in .md or .txt (0%, detected by file extension). Closing it is worth 10 points.
What it does well
- Every link carries a description 17 of 17 described (100%)
- Descriptions add to the title No description merely repeats its title
- A workable number of links 17 links (12–50 is the sweet spot)
- AI crawlers are not blocked No AI user-agent is disallowed at the root
What is missing
- Points at clean markdown copies +10 0 of 17 end in .md or .txt (0%, detected by file extension)
- Grouped into balanced sections +3 3 H2 sections, largest group holds 17 of 17 links
- Link titles are descriptive +3 4 weak titles (bare URLs, “here”, one-word labels)
- Publishes llms-full.txt +3 No llms-full.txt alongside the index
Among the 22 sites measured here so far, kafcryogenics.com ranks 10th, 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 kafcryogenics.com tells an assistant
KAF Cryogenics
KAF Cryogenics works on cryogenic, LNG, LPG and LCO2 equipment, pressure vessels, dished heads and related engineering support for industrial gas, energy and process applications. The scope covers cryogenic storage tanks for LIN, LOX and LAR, LNG storage and regasification equipment, LPG storage and transfer systems, LCO2 storage and transport tanks, ambient vaporizers, pressure vessels, dished heads, power generation packages, engineering support, repair and maintenance, spare parts and used equipment. Equipment configurations are reviewed against the design code applicable to the destination market and application (ASME Section VIII, EN 13458, EN 13530, EN 13445, EN 12542, AD 2000 and the EU Pressure Equipment Directive PED 2014/68/EU), with quality, environmental and welding management referenced to ISO 9001, ISO 14001 and ISO 3834-2.
Content & links
Can a model pick the right page, first time?
6 of 11 checks pass. What is left: descriptions say something concrete, points at clean markdown copies, link titles are descriptive, skippable links marked Optional and list items are markdown links.
-
Every link carries a description 17 of 17 described (100%)10/10
-
Descriptions say something concrete Average 71 characters across 17 described links6/7
-
Descriptions add to the title No description merely repeats its title4/4
-
Points at clean markdown copies 0 of 17 end in .md or .txt (0%, detected by file extension)0/10
-
Link titles are descriptive 4 weak titles (bare URLs, “here”, one-word labels)1/4
-
A workable number of links 17 links (12–50 is the sweet spot)4/4
-
Skippable links marked Optional Nothing is marked as skippable0/3
-
No duplicate links All 17 URLs are distinct2/2
-
List items are markdown links 5 of 22 list items are plain text, not links3/4
-
Enough written detail per link 33 words per link across 568 words3/3
-
Links are absolute URLs All 17 links are absolute URLs1/1
Structure
Does it follow the llms.txt shape?
5 of 7 checks pass. What is left: summary is a usable length and grouped into balanced sections.
-
Exactly one H1 project title “KAF Cryogenics”3/3
-
Summary directly under the title Present as a blockquote3/3
-
Summary is a usable length 849 characters — too long0/3
-
Concrete language, not marketing filler No marketing filler detected3/3
-
Grouped into balanced sections 3 H2 sections, largest group holds 17 of 17 links1/4
-
Conforms to the published grammar Markdown only, headings used as the spec defines them2/2
-
Section names say what is inside All 3 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/plain1/1
-
robots.txt exists 71 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 62 characters, from title — will be cut off2/2
-
Title is not padded or repetitive No repeated terms1/1
-
Homepage has a meta description 202 characters, from meta description — Google will truncate it2/2
-
Canonical URL declared https://kafcryogenics.com/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: publishes llms-full.txt and the index points at the full file.
-
Publishes llms-full.txt No llms-full.txt alongside the index0/3
-
The index points at the full file No llms-full.txt exists to link to0/1
-
Index is a sensible size 4.8 KB2/2
-
Server reports when it last changed Server sends Last-Modified1/1
-
The index is kept current Last changed 17 days ago2/2
What kafcryogenics.com should fix next
Ordered by what each one is worth. Open a row for the steps.
-
Right now: 0 of 17 end in .md or .txt (0%, 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 12- [About](https://kafcryogenics.com/about/): Company overview, quality policy, health and safety policy, standards and certifications, statutory company registration details
- [About](https://kafcryogenics.com/about.md): Company overview, quality policy, health and safety policy, standards and certifications, statutory company registration details
line 13- [Equipment Categories](https://kafcryogenics.com/products/): Overview of all eleven equipment categories
- [Equipment Categories](https://kafcryogenics.com/products.md): Overview of all eleven equipment categories
line 14- [Cryogenic Storage Tanks](https://kafcryogenics.com/products/cryogenic-storage-tanks/): Vertical and horizontal vacuum insulated tanks for LIN, LOX and LAR
- [Cryogenic Storage Tanks](https://kafcryogenics.com/products/cryogenic-storage-tanks.md): Vertical and horizontal vacuum insulated tanks for LIN, LOX and LAR
Placeholders in { } are yours to write — we do not invent text about your pages.
-
Right now: 3 H2 sections, largest group holds 17 of 17 links
Group links under headings a reader would look for, and spread them — one group holding most of the file is the same as no grouping.
Where: The "## " headings in llms.txt
- Split the link list into at least five "## " groups by what a reader would be looking for.
- Typical split: Docs, API, Guides, Product, Company, Optional.
- Grouping is what lets a model skip nine tenths of the file and still find the right page.
Instead of## Links - [A](...) - [B](...) - [C](...)
Do this## Docs - [A](...) ## API - [B](...) ## Optional - [C](...)
-
Right now: 4 weak titles (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 11- [Home](https://kafcryogenics.com/): Equipment categories, industries served, scope of services
- [{the page’s real name}](https://kafcryogenics.com/): Equipment categories, industries served, scope of servicesline 12- [About](https://kafcryogenics.com/about/): Company overview, quality policy, health and safety policy, standards and certifications, statutory company registration details
- [{the page’s real name}](https://kafcryogenics.com/about/): Company overview, quality policy, health and safety policy, standards and certifications, statutory company registration detailsline 25- [FAQ](https://kafcryogenics.com/faq/): Technical questions and answers grouped by equipment category
- [{the page’s real name}](https://kafcryogenics.com/faq/): Technical questions and answers grouped by equipment categoryPlaceholders in { } are yours to write — we do not invent text about your pages.
-
Right now: No llms-full.txt alongside the index
Generate an llms-full.txt that inlines every linked page. Community convention rather than spec, but assistants with a large context window take the whole thing in one request.
Where: Your docs build, output at /llms-full.txt
- Concatenate the markdown of every page listed in llms.txt into one file.
- Keep the heading structure: a client uses those headings to navigate a multi-megabyte file.
- Regenerate it in the same build step that publishes the docs, so it cannot drift.
- Note that llms-full.txt is a community convention, not part of the proposal — useful, but optional.
-
Right now: Nothing is marked as skippable
Move the nice-to-haves under ## Optional so a model on a tight budget knows what to drop first.
Where: A new "## Optional" section at the end of llms.txt
- Move the nice-to-have links — history, press, careers — under "## Optional".
- By convention a client may skip that whole section when context is tight.
- This is you deciding what gets dropped first, instead of the model guessing.
Do this## Optional - [Company history](https://acme.example/about.md): Background, not needed to answer product questions
-
Right now: 849 characters — too long
Aim for 80–350 characters: one or two sentences that make sense read aloud on their own.
Where: The "> " line in llms.txt
- Aim for 80–350 characters: one or two sentences that stand on their own when read aloud.
- Under 80 and it says nothing specific; over 350 and a model summarises your summary.
- Cut adjectives first — they are the part that carries no information.
-
Right now: Average 71 characters across 17 described links
Write 60+ characters that add information the title does not: numbers, limits, formats, names.
Where: The text after ": " on each link
- Write 60 characters or more, and make them add information the title does not.
- Cover every link: this is measured per LINK, not per description, so an undescribed line counts as zero.
- Name the concrete things on the page: numbers, limits, formats, model names.
- If the description could be pasted under any other link, it is not a description yet.
In your file
line 13- [Equipment Categories](https://kafcryogenics.com/products/): Overview of all eleven equipment categories
- [Equipment Categories](https: {what is on the page — numbers, limits, formats}line 26- [Request Equipment](https://kafcryogenics.com/request-equipment/): Short structured equipment request form
- [Request Equipment](https: {what is on the page — numbers, limits, formats}line 27- [Contact](https://kafcryogenics.com/contact/): Contact form and direct contact details
- [Contact](https: {what is on the page — numbers, limits, formats}Placeholders in { } are yours to write — we do not invent text about your pages.
-
Right now: 5 of 22 list items are plain text, not links
A file list needs `- [Title](url): description`. A plain line gives a model something to read but nowhere to go — it cannot follow it, quote it, or check it.
Where: Every "- " line in llms.txt
- Turn each plain line into a markdown link: "- [Title](https://your-site/page.md): description".
- A line without a URL gives a model something to read but nowhere to go — it cannot follow, quote or verify it.
- If a fact has no page behind it (an address, a phone number), put it in the free-text body above the sections, not in a file list.
- Note that "#" is a heading in markdown, not a comment — lines starting with # become H1/H2 headings.
In your file
line 35- Equipment requests are reviewed against the technical parameters that define this equipment category: capacity, MAWP, orientation, insulation type, medium and applicable design code.
- [Equipment requests are reviewed against the technical parameters that define this equipment category: capacity, MAWP, orientation, insulation type, medium and applicable design code.]({https://your-site/path}.md): {what this page covers}line 36- The applicable design code depends on the destination market and application; equipment is configured to the code the project requires.
- [The applicable design code depends on the destination market and application; equipment is configured to the code the project requires.]({https://your-site/path}.md): {what this page covers}line 37- Technical documentation (datasheets, drawings, material and test certificates) is provided per project according to the scope agreed for that order.
- [Technical documentation (datasheets, drawings, material and test certificates) is provided per project according to the scope agreed for that order.]({https://your-site/path}.md): {what this page covers}Placeholders in { } are yours to write — we do not invent text about your pages.
-
Right now: No llms-full.txt exists to link to
Mention llms-full.txt inside llms.txt. Guessing the filename works often enough to be tempting and not often enough to rely on.
Where: Inside llms.txt
- Mention the full file in llms.txt itself, as a link or a line of context.
- Guessing the filename works often enough to be tempting and not often enough to rely on.
Do thisFull inlined text: https://acme.example/llms-full.txt
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 21 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.