> Content index: https://quillly.com/docs/llms.txt
> Canonical page: https://quillly.com/docs/served-urls

---
title: Served URLs: sitemaps, RSS, llms.txt and .md pages
description: Every URL Quillly serves for your blog, docs, changelog and news: pages, .md versions, sitemaps, RSS feeds, llms.txt, IndexNow keys and social images.
keywords: served URLs, llms.txt, sitemap
published: 2026-09-25
updated: 2026-09-25
url: https://quillly.com/docs/served-urls
word_count: 1353
---

# Served URLs and files

> Every URL Quillly serves for your blog, docs, changelog and news: pages, .md versions, sitemaps, RSS feeds, llms.txt, IndexNow keys and social images.

Canonical: https://quillly.com/docs/served-urls
Published: 2026-09-25

## Related Pages

- [Serve on your own domain with a reverse proxy](https://quillly.com/docs/reverse-proxy)
- [Publish into WordPress, Ghost, Webflow or Shopify](https://quillly.com/docs/publish-to-cms)
- [Analytics JavaScript API](https://quillly.com/docs/analytics-api)
- [Content types and URLs](https://quillly.com/docs/content-types)
- [AI crawlers, llms.txt and Markdown pages](https://quillly.com/docs/ai-crawlers)
- [Indexing: how your pages reach search engines](https://quillly.com/docs/indexing)
- [Web Stories](https://quillly.com/docs/web-stories)
- [Plan limits and allowances](https://quillly.com/docs/limits)

This page lists the served URLs of every section Quillly hosts for you: blog, docs, changelog and news. For each one you get the page addresses, the Markdown version of each page, the sitemap, the RSS feed, llms.txt, the IndexNow key file and the social images, on your own domain and on a Quillly subdomain.

![The parts of a served page address on acme.com, with the .md ending that returns the Markdown version and the quillly.com address the reverse proxy forwards it to](https://quillly.com/serve/v1/019c64a2-a62f-7793-aa68-2c78316d3309/images/fe20e3221969e8e8039dbdb1a1518b82b3a69b34.webp)

## How to read the served URLs tables

Each table lists one section's addresses, with your own domain in one column and a Quillly subdomain in the other.

- **Your own domain** is `acme.com` in the examples. Each section lives under its own path there, and your [reverse proxy](https://quillly.com/docs/reverse-proxy) forwards that path to Quillly.

- **Quillly subdomain** is `acme.quillly.com`. Quillly serves the whole host: blog posts sit at the root, while docs, changelog and news keep their paths.

- **Paths are the defaults**: `/blog`, `/docs`, `/changelog` and `/news`. If you chose another path, such as `/help`, it replaces the default in every address.

- **Placeholders**: `{slug}` is a page's slug and `{category}` a news category. `YOUR_WEBSITE_ID` is your website's ID, as in the rules the dashboard gives you. Every address uses `https://`.

- **Markdown**: a page with a Markdown version also returns it at its normal address when a request's `Accept` header names `text/markdown` or `text/plain` and not `text/html`.

A section that publishes into WordPress, Ghost, Webflow, Shopify or a webhook is served by that platform, so none of these addresses exist for it. See [Publish into WordPress, Ghost, Webflow or Shopify](https://quillly.com/docs/publish-to-cms).

![Which paths Quillly answers on acme.com, where your reverse proxy forwards only the section paths, and on acme.quillly.com, where Quillly answers every path](https://quillly.com/serve/v1/019c64a2-a62f-7793-aa68-2c78316d3309/images/488640202e0a30eca271ba491110b60d41ad19c4.webp)

## Blog

| What | Your own domain | Quillly subdomain |
| --- | --- | --- |
| Blog home | `acme.com/blog` | `acme.quillly.com` |
| Older posts | `acme.com/blog?page=2` | `acme.quillly.com/?page=2` |
| Post | `acme.com/blog/{slug}` | `acme.quillly.com/{slug}` |
| Post as Markdown | `acme.com/blog/{slug}.md` | `acme.quillly.com/{slug}.md` |
| Sitemap | `acme.com/blog/sitemap.xml` | `acme.quillly.com/sitemap.xml` |
| RSS feed | `acme.com/blog/rss.xml` | `acme.quillly.com/rss.xml` |
| llms.txt | `acme.com/blog/llms.txt` | `acme.quillly.com/llms.txt` |
| IndexNow key | `acme.com/blog/indexnow.txt` | `acme.quillly.com/indexnow.txt` |
| Web Story | `acme.com/blog/web-story/{slug}` | `acme.quillly.com/web-story/{slug}` |

- **The sitemap** lists the blog home, up to 1,000 posts and their published Web Stories. On a Quillly subdomain, `/sitemap.xml` and `/llms.txt` cover the whole site, blog included.

- **The RSS feed** holds the 50 newest posts. The **RSS feed** switch under **Brand** → **Identity** turns off the blog, changelog and news feeds together.

- **A post's llms.txt** is retired. `acme.com/blog/{slug}/llms.txt` answers with a permanent redirect (308) to `acme.com/blog/{slug}.md`, and the same goes for `acme.quillly.com/{slug}/llms.txt`. An llms.txt file is always an index of a site or a section; one page's text is its `.md` version.

## Docs

| What | Your own domain | Quillly subdomain |
| --- | --- | --- |
| Docs home | `acme.com/docs` | `acme.quillly.com/docs` |
| Page | `acme.com/docs/{slug}` | `acme.quillly.com/docs/{slug}` |
| Page as Markdown | `acme.com/docs/{slug}.md` | `acme.quillly.com/docs/{slug}.md` |
| Sitemap | `acme.com/docs/sitemap.xml` | In `acme.quillly.com/sitemap.xml` |
| RSS feed | None | None |
| llms.txt | `acme.com/docs/llms.txt` | `acme.quillly.com/docs/llms.txt` |
| IndexNow key | `acme.com/docs/indexnow.txt` | `acme.quillly.com/indexnow.txt` |
| Web Story | `acme.com/docs/web-story/{slug}` | `acme.quillly.com/web-story/{slug}` |

The docs home has no Markdown version of its own; its llms.txt lists every docs page. On your own domain, a docs page publishes only after the section's reverse proxy check passes, so these addresses don't lead to a missing page.

## Changelog

| What | Your own domain | Quillly subdomain |
| --- | --- | --- |
| Timeline | `acme.com/changelog` | `acme.quillly.com/changelog` |
| One entry | `acme.com/changelog#entry-{slug}` | `acme.quillly.com/changelog#entry-{slug}` |
| Entry link | `acme.com/changelog/{slug}` redirects to the entry | `acme.quillly.com/changelog/{slug}` redirects to the entry |
| Timeline as Markdown | `acme.com/changelog.md` | `acme.quillly.com/changelog.md` |
| Entry as Markdown | `acme.com/changelog/{slug}.md` | `acme.quillly.com/changelog/{slug}.md` |
| Sitemap | `acme.com/changelog/sitemap.xml` | `acme.quillly.com/changelog/sitemap.xml` |
| RSS feed | `acme.com/changelog/rss.xml` | `acme.quillly.com/changelog/rss.xml` |
| llms.txt | `acme.com/changelog/llms.txt` | `acme.quillly.com/changelog/llms.txt` |
| IndexNow key | `acme.com/changelog/indexnow.txt` | `acme.quillly.com/indexnow.txt` |
| Web Story | `acme.com/changelog/web-story/{slug}` | `acme.quillly.com/web-story/{slug}` |

Entries have no pages of their own: the timeline shows the 100 newest, and `/changelog.md` holds their full text. The feed holds the 50 newest entries, and llms.txt links the timeline and names the 15 newest. The sitemap lists the timeline, dated by its newest entry, and the entries' Web Stories.

## News

| What | Your own domain | Quillly subdomain |
| --- | --- | --- |
| News home | `acme.com/news` | `acme.quillly.com/news` |
| Category page | `acme.com/news/{category}` | `acme.quillly.com/news/{category}` |
| Story | `acme.com/news/{category}/story/{slug}` | `acme.quillly.com/news/{category}/story/{slug}` |
| Story as Markdown | `acme.com/news/{category}/story/{slug}.md` | `acme.quillly.com/news/{category}/story/{slug}.md` |
| News sitemap | `acme.com/news/sitemap.xml` | `acme.quillly.com/news/sitemap.xml` |
| RSS feed | `acme.com/news/rss.xml` | `acme.quillly.com/news/rss.xml` |
| llms.txt | `acme.com/news/llms.txt` | `acme.quillly.com/news/llms.txt` |
| IndexNow key | `acme.com/news/indexnow.txt` | `acme.quillly.com/indexnow.txt` |
| Web Story | `acme.com/news/web-story/{slug}` | `acme.quillly.com/news/web-story/{slug}` |

- **The news sitemap** follows [Google's news sitemap rules](https://developers.google.com/search/docs/crawling-indexing/sitemaps/news-sitemap): stories from the last 48 hours, up to 1,000, and no sponsored stories.

- **The RSS feed** holds the 50 newest stories. Sponsored stories are in it, with "Sponsored: " before the title.

- **llms.txt** lists the 15 newest stories, without sponsored ones.

- **Older stories**: on a Quillly subdomain, `/sitemap.xml` lists every story. On your own domain, a story older than 48 hours is in no sitemap, so search engines reach it through your news pages.

## Files for the whole site

The root of your own domain belongs to your server, so Quillly answers only under your sections' paths there. On a Quillly subdomain it serves these files too:

| File | Your own domain | Quillly subdomain |
| --- | --- | --- |
| robots.txt | Your own file | `acme.quillly.com/robots.txt` |
| Sitemap of every section | None | `acme.quillly.com/sitemap.xml` |
| llms.txt of every section | None | `acme.quillly.com/llms.txt` |
| Full text of the 50 newest items | None | `acme.quillly.com/llms-full.txt` |

On a Quillly subdomain, `robots.txt` allows every crawler and points to `/sitemap.xml` and `/llms.txt`. The [llms.txt format](https://llmstxt.org/) is an open proposal for how AI tools find a site's content.

- **IndexNow key**: one key per website, returned as plain text at every `indexnow.txt` address on this page. Quillly creates it the first time it notifies [IndexNow](https://www.indexnow.org/), so the file answers 404 until then.

- **Paused sites**: while your pages are paused after a plan ends, these files answer 404, and a Quillly subdomain's `robots.txt` blocks every crawler until you subscribe again.

## What your reverse proxy forwards

Your reverse proxy sends each section's path on your domain to the matching address on quillly.com.

| Path on acme.com | Forward to |
| --- | --- |
| `/blog` and `/blog/*` | `https://quillly.com/serve/v1/YOUR_WEBSITE_ID/blogs` |
| `/docs` and `/docs/*` | `https://quillly.com/serve/v1/YOUR_WEBSITE_ID/docs` |
| `/changelog`, `/changelog.md` and `/changelog/*` | `https://quillly.com/serve/v1/YOUR_WEBSITE_ID/changelog` |
| `/news` and `/news/*` | `https://quillly.com/serve/v1/YOUR_WEBSITE_ID/news` |

The rest of the path follows unchanged, so `acme.com/blog/launch.md` goes to `…/blogs/launch.md`. The blog's target ends in `blogs` whatever path you chose. Copy your own rule from the section's settings: the gear icon, then **Connection**.

![How a request for acme.com/docs/install.md goes through your reverse proxy to Quillly and comes back as Markdown](https://quillly.com/serve/v1/019c64a2-a62f-7793-aa68-2c78316d3309/images/468f99fb29940d3fc756868cc7db7ea463bd9032.webp)

[Open your blog](https://quillly.com/dashboard/blog)

> [!WARNING]
> The Next.js, Vercel, Netlify and PHP rules match `/changelog` and `/changelog/…` but not `/changelog.md`. To serve the timeline's Markdown, add one more rule that sends `/changelog.md` to `https://quillly.com/serve/v1/YOUR_WEBSITE_ID/changelog.md`. The PHP rules also forward only one segment after the section's path, so news stories and Web Stories don't reach Quillly through them.

> [!TIP]
> For an llms.txt of the whole site at `acme.com/llms.txt`, forward that one path to `https://quillly.com/serve/v1/YOUR_WEBSITE_ID/llms.txt`. It lists every section at its address on your domain.

## Files loaded from quillly.com

Some files come straight from `quillly.com` in every setup, so your proxy doesn't forward them. If your site sets a [Content Security Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy), allow `https://quillly.com`.

| File | Address |
| --- | --- |
| Social image of a post | `https://quillly.com/api/og?type=blog&slug={slug}&websiteId=YOUR_WEBSITE_ID` |
| Social image of the blog home | `https://quillly.com/api/og?type=blog-list&websiteId=YOUR_WEBSITE_ID` |
| Social image of a docs page | `https://quillly.com/api/og?type=docs&slug={slug}&websiteId=YOUR_WEBSITE_ID` |
| Social image of the docs home | `https://quillly.com/api/og?type=docs&websiteId=YOUR_WEBSITE_ID` |
| Social image of the changelog | `https://quillly.com/api/og?type=changelog&websiteId=YOUR_WEBSITE_ID` |
| Social image of a news story | The story's featured image, when it has one |
| Pictures from `image:` blocks | `https://quillly.com/serve/v1/YOUR_WEBSITE_ID/images/{file}.webp` |
| Web Story images and video | `https://quillly.com/serve/v1/YOUR_WEBSITE_ID/story-assets/{file}` |
| Your uploaded logo | `https://quillly.com/api/serve/YOUR_WEBSITE_ID/logo?v=…` |
| Page scripts and styles | `https://quillly.com/_next/static/…` |
| [Analytics tag](https://quillly.com/docs/analytics-api) | `https://quillly.com/qa.js`, or `/qa.cookieless.js` |
| Reading and click tracking on served pages | `https://quillly.com/qa-content.js` |
| Analytics events from served pages | `https://quillly.com/api/collect` |
| Blog search | `https://quillly.com/api/serve/YOUR_WEBSITE_ID/search?q={words}` |
| Docs search index | `https://quillly.com/api/serve/YOUR_WEBSITE_ID/docs-index` |

## Common questions

### Which sitemap do I submit to Google?

You don't need to. Once you connect Google Search Console or Bing, Quillly submits them for you: each connected section's sitemap and RSS feed on your own domain, or `/sitemap.xml`, `/rss.xml` and the news files on a Quillly subdomain.

### Why does my post's llms.txt redirect to a .md address?

llms.txt is an index of a site or a section, never one page. A post's own `llms.txt` address now sends a permanent redirect to the post's `.md` version, so old links keep working.

### Why is there no llms.txt at the root of my domain?

Your reverse proxy forwards only your sections' paths, so each section serves its own llms.txt. Add the one-path rule from the tip above for a whole-site file.

## Related

- [Content types and URLs](https://quillly.com/docs/content-types): the sections, their paths and what each one holds.

- [Serve on your own domain with a reverse proxy](https://quillly.com/docs/reverse-proxy): the rule for each stack, and how to check it.

- [AI crawlers, llms.txt and Markdown pages](https://quillly.com/docs/ai-crawlers): how AI tools read these files.

- [Indexing: how your pages reach search engines](https://quillly.com/docs/indexing): what Quillly submits, and where.

- [Web Stories](https://quillly.com/docs/web-stories): the story each post can have.

- [Plan limits and allowances](https://quillly.com/docs/limits): the hosted page views each plan includes, and what happens past them.
