www.wgod.co — llms.txt & GEO score
An index of pages, not of content
www.wgod.co publishes a short llms.txt: 6 links across 3 sections, 994 bytes in all.
Only 83% of the links carry a description, so the rest are a coin flip: a model has to open them to find out what they are.
The clearest gap is points at clean markdown copies. Right now: 0 of 6 end in .md or .txt (0%, detected by file extension). Closing it is worth 10 points.
What it does well
- Descriptions add to the title No description merely repeats its title
- List items are markdown links All 6 list items are links
- 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 6 end in .md or .txt (0%, detected by file extension)
- Link titles are descriptive +4 3 weak titles (bare URLs, “here”, one-word labels)
- Grouped into balanced sections +3 3 H2 sections, largest group holds 5 of 6 links
- Publishes llms-full.txt +3 No llms-full.txt alongside the index
Among the 24 sites measured here so far, www.wgod.co ranks 19th, 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.wgod.co tells an assistant
WGOD
WGOD is a community for AI creators. It has a library of video prompts, downloadable resources, forums, a blog and a member feed.
Content & links
Can a model pick the right page, first time?
4 of 11 checks pass. What is left: every link carries a description, descriptions say something concrete, points at clean markdown copies, link titles are descriptive, a workable number of links, skippable links marked Optional and enough written detail per link.
-
Every link carries a description 5 of 6 described (83%)8/10
-
Descriptions say something concrete Average 79 characters across 5 described links6/7
-
Descriptions add to the title No description merely repeats its title4/4
-
Points at clean markdown copies 0 of 6 end in .md or .txt (0%, detected by file extension)0/10
-
Link titles are descriptive 3 weak titles (bare URLs, “here”, one-word labels)0/4
-
A workable number of links 6 links — thin for an index of a real site2/4
-
Skippable links marked Optional Nothing is marked as skippable0/3
-
No duplicate links All 6 URLs are distinct2/2
-
List items are markdown links All 6 list items are links4/4
-
Enough written detail per link 21 words per link across 128 words2/3
-
Links are absolute URLs All 6 links are absolute URLs1/1
Structure
Does it follow the llms.txt shape?
6 of 7 checks pass. What is left: grouped into balanced sections.
-
Exactly one H1 project title “WGOD”3/3
-
Summary directly under the title Present as a blockquote3/3
-
Summary is a usable length 129 characters3/3
-
Concrete language, not marketing filler No marketing filler detected3/3
-
Grouped into balanced sections 3 H2 sections, largest group holds 5 of 6 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/plain; charset=utf-81/1
-
robots.txt exists 567 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: homepage title is the right length, canonical URL declared and social card image.
-
Homepage title is the right length 4 characters, from title — shorter than search engines prefer0/2
-
Title is not padded or repetitive No repeated terms1/1
-
Homepage has a meta description 60 characters, from meta description — thin for a snippet2/2
-
Canonical URL declared No rel="canonical" link0/1
-
Language declared lang="en"1/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?
1 of 5 checks pass. What is left: publishes llms-full.txt, the index points at the full file, server reports when it last changed 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 994 B2/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 www.wgod.co should fix next
Ordered by what each one is worth. Open a row for the steps.
-
Right now: 0 of 6 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 7- [Prompts](https://www.wgod.co/prompts): Video prompts: copy-ready prompts with preview videos, shared by members and the team.
- [Prompts](https://www.wgod.co/prompts.md): Video prompts: copy-ready prompts with preview videos, shared by members and the team.
line 8- [Downloads](https://www.wgod.co/downloads/): Resources: scripts, themes, add-ons and design files with versions, reviews and free or points-based downloads.
- [Downloads](https://www.wgod.co/downloads.md): Resources: scripts, themes, add-ons and design files with versions, reviews and free or points-based downloads.
line 9- [Forums](https://www.wgod.co/forums/): Forums: discussion boards on AI tools, development, design and general topics.
- [Forums](https://www.wgod.co/forums.md): Forums: discussion boards on AI tools, development, design and general topics.
Placeholders in { } are yours to write — we do not invent text about your pages.
-
Right now: 3 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 7- [Prompts](https://www.wgod.co/prompts): Video prompts: copy-ready prompts with preview videos, shared by members and the team.
- [{the page’s real name}](https://www.wgod.co/prompts): Video prompts: copy-ready prompts with preview videos, shared by members and the team.line 9- [Forums](https://www.wgod.co/forums/): Forums: discussion boards on AI tools, development, design and general topics.
- [{the page’s real name}](https://www.wgod.co/forums/): Forums: discussion boards on AI tools, development, design and general topics.line 10- [Blog](https://www.wgod.co/blog): Blog: articles and guides written by approved authors.
- [{the page’s real name}](https://www.wgod.co/blog): Blog: articles and guides written by approved authors.Placeholders in { } are yours to write — we do not invent text about your pages.
-
Right now: 3 H2 sections, largest group holds 5 of 6 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: 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: 6 links — thin for an index of a real site
Either curate to roughly 10–40 links, or go the other way and map everything to .md copies. The costly middle is a long list of HTML links with no descriptions.
Where: The link lists in llms.txt
- Aim for roughly 10–40 curated links.
- Above about fifty, a model has to read the whole file before it can choose, and every entry gets diluted.
- If you generated the file from a sitemap, delete most of it: curation is the entire value of the format.
- Below ten, add the pages you would send a new customer to first.
-
Right now: 5 of 6 described (83%)
Add ": " and one short line after every link. An undescribed link is a coin flip — the model has to open it to find out what it is.
Where: Each "- [Title](url)" line
- Add ": " and one short line after every link — not most of them, every one.
- Describe what the page answers, not what it is called.
- An undescribed link is a coin flip: the model has to open it to find out.
In your file
line 19- [sitemap.xml](https://www.wgod.co/sitemap.xml)
- [sitemap.xml](https://www.wgod.co/sitemap.xml): {one line on what this page covers}Placeholders in { } are yours to write — we do not invent text about your pages.
-
Right now: 4 characters, from title — shorter than search engines prefer
Write a 30–60 character title that names the product and what it does.
Where: The <title> tag on your homepage
- Target 30–60 characters; past 60 the result gets cut off in search.
- Put what you do before the brand name — the first words are what survives truncation.
Instead of<title>Acme Parts | Acme | Industrial Spare Parts Supplier Europe Acme</title>
Do this<title>Industrial spare parts for food lines — Acme</title>
-
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: No rel="canonical" link
Add <link rel="canonical"> so www and non-www are not counted as two competing sites.
Where: The <head> of every page
- Add <link rel="canonical" href="..."> with the absolute, preferred URL.
- Pick one host — www or non-www — and make every canonical point at it.
Do this<link rel="canonical" href="https://acme.example/">
-
Right now: Average 79 characters across 5 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.
Instead of- [API](https://acme.example/api.md): API documentation
Do this- [API](https://acme.example/api.md): REST endpoints, auth with bearer tokens, rate limits and pagination
-
Right now: 21 words per link across 128 words
A list of names is not documentation. Aim for 30+ words per link across the file — summary, section context and descriptions together. For an exhaustive map what matters instead is that the list is grouped so a model can skip whole branches.
Where: The descriptions and section context in llms.txt
- Count the words in your file against the number of links — aim for 30 or more per link.
- A list of page names is an index, not documentation; the descriptions are what a model actually reads.
- Add a line of context under each "## " heading saying what that group covers.
-
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
-
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
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 27 October 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.