www.akkahotels.com — llms.txt & GEO score
Published once, then left alone
www.akkahotels.com publishes a curated llms.txt — 13 links across 10 sections, 6 KB in all.
Every link carries a description, which is more than most files manage.
The clearest gap is points at clean markdown copies. Right now: 0 of 13 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 13 of 13 described (100%)
- Descriptions add to the title No description merely repeats its title
- A workable number of links 13 links (12–50 is the sweet spot)
- Grouped into balanced sections 10 H2 sections and 13 sub-headings, largest group holds 4 of 13 links
What is missing
- Points at clean markdown copies +10 0 of 13 end in .md or .txt (0%, detected by file extension)
- Link titles are descriptive +4 8 weak titles (bare URLs, “here”, one-word labels)
- List items are markdown links +4 36 of 49 list items are plain text, not links
- Descriptions say something concrete +3 Average 37 characters across 13 described links
Among the 22 sites measured here so far, www.akkahotels.com ranks 15th, 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 www.akkahotels.com tells an assistant
AKKA Hotels
AKKA Hotels is a premium hotel chain operating in Antalya and Istanbul, offering unforgettable accommodation experiences with family-friendly vacation experiences, luxury comfort and superior service quality. | AKKA Hotels, Antalya ve İstanbul'da faaliyet gösteren premium otel zinciridir. | AKKA Hotels ist eine Premium-Hotelkette in Antalya und Istanbul. | AKKA Hotels - премиум сеть отелей в Анталии и Стамбуле.
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 13 of 13 described (100%)10/10
-
Descriptions say something concrete Average 37 characters across 13 described links4/7
-
Descriptions add to the title No description merely repeats its title4/4
-
Points at clean markdown copies 0 of 13 end in .md or .txt (0%, detected by file extension)0/10
-
Link titles are descriptive 8 weak titles (bare URLs, “here”, one-word labels)0/4
-
A workable number of links 13 links (12–50 is the sweet spot)4/4
-
Skippable links marked Optional Nothing is marked as skippable0/3
-
No duplicate links All 13 URLs are distinct2/2
-
List items are markdown links 36 of 49 list items are plain text, not links0/4
-
Enough written detail per link 60 words per link across 780 words3/3
-
Links are absolute URLs All 13 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 “AKKA Hotels”3/3
-
Summary directly under the title Present as a blockquote3/3
-
Summary is a usable length 414 characters — too long3/3
-
Concrete language, not marketing filler No marketing filler detected3/3
-
Grouped into balanced sections 10 H2 sections and 13 sub-headings, largest group holds 4 of 13 links4/4
-
Conforms to the published grammar Markdown only, headings used as the spec defines them2/2
-
Section names say what is inside All 10 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 122 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
3 of 6 checks pass. What is left: title is not padded or repetitive, language declared and social card image.
-
Homepage title is the right length 55 characters, from title2/2
-
Title is not padded or repetitive “hotels” appears twice — brand padding that spends visible characters0/1
-
Homepage has a meta description 161 characters, from meta description — Google will truncate it2/2
-
Canonical URL declared https://www.akkahotels.com/en1/1
-
Language declared No lang attribute on <html>0/1
-
Social card image No og:image — shares render as a bare link0/1
Depth & upkeep
Is there more than the index, and is it current?
2 of 5 checks pass. What is left: publishes llms-full.txt, the index points at the full file and the index is kept current.
-
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 6 KB2/2
-
Server reports when it last changed Server sends Last-Modified1/1
-
The index is kept current 445 days old0/2
What www.akkahotels.com should fix next
Ordered by what each one is worth. Open a row for the steps.
-
Right now: 0 of 13 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 10- [Turkish](https://www.akkahotels.com/tr) | [English](https://www.akkahotels.com/en) | [German](https://www.akkahotels.com/de) | [Russian](https://www.akkahotels.com/ru)
- [Turkish](https://www.akkahotels.com/tr.md) | [English](https://www.akkahotels.com/en.md) | [German](https://www.akkahotels.com/de.md) | [Russian](https://www.akkahotels.com/ru.md)
line 15- [Turkish](https://www.akkahotels.com/antedon/tr) | [English](https://www.akkahotels.com/antedon/en) | [German](https://www.akkahotels.com/antedon/de) | [Russian](https://www.akkahotels.com/antedon/ru)
- [Turkish](https://www.akkahotels.com/antedon/tr.md) | [English](https://www.akkahotels.com/antedon/en.md) | [German](https://www.akkahotels.com/antedon/de.md) | [Russian](https://www.akkahotels.com/antedon/ru.md)
line 19- [Turkish](https://www.akkahotels.com/alinda/tr) | [English](https://www.akkahotels.com/alinda/en) | [German](https://www.akkahotels.com/alinda/de) | [Russian](https://www.akkahotels.com/alinda/ru)
- [Turkish](https://www.akkahotels.com/alinda/tr.md) | [English](https://www.akkahotels.com/alinda/en.md) | [German](https://www.akkahotels.com/alinda/de.md) | [Russian](https://www.akkahotels.com/alinda/ru.md)
Placeholders in { } are yours to write — we do not invent text about your pages.
-
Right now: 8 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 10- [Turkish](https://www.akkahotels.com/tr) | [English](https://www.akkahotels.com/en) | [German](https://www.akkahotels.com/de) | [Russian](https://www.akkahotels.com/ru)
- [{the page’s real name}](https://www.akkahotels.com/tr) | [English](https://www.akkahotels.com/en) | [German](https://www.akkahotels.com/de) | [Russian](https://www.akkahotels.com/ru)line 15- [Turkish](https://www.akkahotels.com/antedon/tr) | [English](https://www.akkahotels.com/antedon/en) | [German](https://www.akkahotels.com/antedon/de) | [Russian](https://www.akkahotels.com/antedon/ru)
- [{the page’s real name}](https://www.akkahotels.com/antedon/tr) | [English](https://www.akkahotels.com/antedon/en) | [German](https://www.akkahotels.com/antedon/de) | [Russian](https://www.akkahotels.com/antedon/ru)line 19- [Turkish](https://www.akkahotels.com/alinda/tr) | [English](https://www.akkahotels.com/alinda/en) | [German](https://www.akkahotels.com/alinda/de) | [Russian](https://www.akkahotels.com/alinda/ru)
- [{the page’s real name}](https://www.akkahotels.com/alinda/tr) | [English](https://www.akkahotels.com/alinda/en) | [German](https://www.akkahotels.com/alinda/de) | [Russian](https://www.akkahotels.com/alinda/ru)Placeholders in { } are yours to write — we do not invent text about your pages.
-
Right now: 36 of 49 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 16- 5-star family hotel with panoramic sea view in Kemer
- [5-star family hotel with panoramic sea view in Kemer]({https://your-site/path}.md): {what this page covers}line 20- 5-star holiday resort by the sea, close to ancient cities
- [5-star holiday resort by the sea, close to ancient cities]({https://your-site/path}.md): {what this page covers}line 24- 4-star hotel designed for families with children in nature
- [4-star hotel designed for families with children in nature]({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: Average 37 characters across 13 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 10- [Turkish](https://www.akkahotels.com/tr) | [English](https://www.akkahotels.com/en) | [German](https://www.akkahotels.com/de) | [Russian](https://www.akkahotels.com/ru)
- [Turkish](https: {what is on the page — numbers, limits, formats}line 15- [Turkish](https://www.akkahotels.com/antedon/tr) | [English](https://www.akkahotels.com/antedon/en) | [German](https://www.akkahotels.com/antedon/de) | [Russian](https://www.akkahotels.com/antedon/ru)
- [Turkish](https: {what is on the page — numbers, limits, formats}line 19- [Turkish](https://www.akkahotels.com/alinda/tr) | [English](https://www.akkahotels.com/alinda/en) | [German](https://www.akkahotels.com/alinda/de) | [Russian](https://www.akkahotels.com/alinda/ru)
- [Turkish](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: 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: 445 days old
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: No lang attribute on <html>
Set <html lang="…">. It tells screen readers how to pronounce the page and models which language to expect.
Where: The <html> tag
- Set lang to the page’s actual language: <html lang="tr"> or <html lang="en">.
- It tells screen readers how to pronounce the page and models which language to expect.
Instead of<html>
Do this<html lang="tr">
-
Right now: No og:image — shares render as a bare link
Add an og:image. One tag, and it is the difference between a link and a card wherever you are shared.
Where: The <head> of your homepage
- Add an og:image pointing at a 1200×630 PNG or JPG, with an absolute URL.
- Add og:title and og:description alongside it so the card is not assembled from guesses.
- Without it, every share of your link renders as bare text.
Do this<meta property="og:image" content="https://acme.example/og.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="630">
-
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
-
Right now: “hotels” appears twice — brand padding that spends visible characters
Say the brand once. Use the freed characters to describe what the product does.
Where: The <title> tag on your homepage
- Say the brand once. The repeated word this check found is spending visible characters for nothing.
- Use the freed characters to describe what the product does.
Instead of<title>Hurdacı — İstanbul Hurdacı | Hurdacı</title>
Do this<title>Scrap metal collection in Istanbul — same-day payment</title>
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.