# Link relations

Pages declare markdown versions and their llms.txt

**In short:** Add <link rel="describedby" href="/llms.txt"> to every page, and rel="alternate" type="text/markdown" on pages with a markdown version.

- Category: Ecosystem Integration · weight 9 of 100 within the category
- Ecosystem Integration is worth 20 in technical, 15 in generic, regulated and commerce (points of 100, by scoring profile)
- Audit ID E8 (as shown on reports) · rubric v2.1

## What it checks

Whether your pages declare their markdown version and the llms.txt that covers them, with link relations.

## Why it matters

llms.txt v2 lets an agent that lands on any page find the markdown version and the llms.txt without guessing URLs: rel="alternate" type="text/markdown" points to the markdown, rel="describedby" to the llms.txt.

## When it applies

Applies when your homepage or a sampled page loaded (HTTP 200). If we checked no pages, or none loaded (for example every request was answered 403 or 429), E8 is Unverified: removed from scoring, never scored as a zero.

An audit that doesn’t apply, or that we couldn’t verify, is removed from your score and its weight shared among the Ecosystem Integration audits that do apply. It is never scored as a zero.

## How it’s scored

Per page that loads (HTTP 200): 0.5 for rel="alternate" type="text/markdown" + 0.5 for rel="describedby", from an HTML <link> or the Link: response header. The score is the mean over your homepage and up to 3 pages sampled from your llms.txt links; a link to a markdown version (/docs/method.md) samples the page it mirrors (/docs/method).

> **Measurement.** Every scan checks your homepage and up to 3 pages linked from your llms.txt; the research corpus is captured the same way by LLMSRankBot, which obeys robots.txt. Today any rel="describedby" link earns its half point, wherever it points. Checking that it points to the llms.txt that covers the page is planned.

> **llms.txt v2.** New in rubric v2.0, from llms.txt v2 (Aug 2026): pages advertise their markdown version and their llms.txt “as HTML <link> elements, or as an HTTP Link: response header.”

## How to fix

1. Add <link rel="describedby" href="/llms.txt"> to every page’s <head>, or send Link: </llms.txt>; rel="describedby" site-wide.
2. On each page with a markdown version, add <link rel="alternate" type="text/markdown" href="/page.md">.
3. For a page under a subpath file, point describedby at the most specific llms.txt that covers it (for example /docs/llms.txt).

## Example

```
<link rel="alternate" type="text/markdown" href="/docs/refunds.md">
<link rel="describedby" href="/llms.txt">
```

## Frequently asked questions

### Which link relations does the link relations check look for?

The two llms.txt v2 recommends: `rel="alternate" type="text/markdown"` pointing to the page’s markdown version, and `rel="describedby"` pointing to the llms.txt that covers the page. Each is worth 0.5 per page, and the score is the mean over your homepage and up to 3 pages sampled from your llms.txt links; a `.md` link in the file samples the HTML page it mirrors.

Sources: [llmstxt.org — The /llms.txt file, v2 (modified 2026-08-10)](https://llmstxt.org/) · [IANA — Link Relations registry (alternate, describedby)](https://www.iana.org/assignments/link-relations/link-relations.xhtml) · [LLMSRank — Link relations audit](https://llmsrank.dev/docs/audits/link-relations.md)

### Should I use a <link> element in the head or an HTTP Link header?

Either counts; we read both together. A header such as `Link: </llms.txt>; rel="describedby"` (RFC 8288) can be set site-wide at your server or CDN. `<link>` elements must be in the `<head>` of the HTML the server sends: we read only up to `</head>` (at most 256 KB) and don’t run JavaScript, so tags added client-side aren’t seen.

Sources: [RFC 8288 — Web Linking (the HTTP Link header)](https://datatracker.ietf.org/doc/html/rfc8288) · [llmstxt.org — The /llms.txt file, v2 (modified 2026-08-10)](https://llmstxt.org/)

### Can a page without a markdown version still score on link relations?

Yes, half: `rel="describedby"` alone earns 0.5 for that page, so add it everywhere, including your homepage. Only an `alternate` with `type="text/markdown"` earns the other half; alternates for languages or RSS feeds don’t. Pages that don’t answer HTTP 200 are left out, and if none does the audit is Unverified rather than zero.

Sources: [LLMSRank — Link relations audit](https://llmsrank.dev/docs/audits/link-relations.md) · [IANA — Link Relations registry (alternate, describedby)](https://www.iana.org/assignments/link-relations/link-relations.xhtml)

### Which llms.txt should rel="describedby" point to?

The one that covers the page: `/llms.txt` for most sites, or the most specific file for a section with its own, such as `/docs/llms.txt` for pages under `/docs/`. The llms.txt v2 example header does exactly that: `Link: </docs/page.html.md>; rel="alternate"; type="text/markdown", </docs/llms.txt>; rel="describedby"`.

Sources: [llmstxt.org — The /llms.txt file, v2 (modified 2026-08-10)](https://llmstxt.org/) · [LLMSRank — Markdown pages and link relations](https://llmsrank.dev/learn/markdown-pages.md)

### How many sites declare link relations, in LLMSRank’s research?

Few, and none fully. In our 187-site research corpus (rubric v2.1; homepages and up to 3 linked pages captured 2026-09-29 by LLMSRankBot, which obeys robots.txt), link relations applied to 142 sites. None earned full marks, 97 (68.3%) declared neither relation on any page, and 27 scored 0.5; the mean was 0.129. 45 sites were Unverified because no page loaded for us (403, 429, a robots.txt block, nothing captured, or the site joined the corpus after the September page sample).

Sources: [LLMSRank — How we score (rubric v2.0)](https://llmsrank.dev/docs/method.md) · [LLMSRank — Link relations audit](https://llmsrank.dev/docs/audits/link-relations.md)

See also: [all audits](https://llmsrank.dev/docs/audits.md) · [how scoring works](https://llmsrank.dev/docs/method.md)
