<Devsly/>
NotebookLM Watermark Remover
Remove the NotebookLM watermark from PDF slide exports — free, unlimited, and 100% in your browser.
View
NotebookLM Video Watermark Remover
Remove the NotebookLM watermark from every frame of your MP4 and auto-trim the end card — free and unlimited.
View
Gemini Watermark Remover
Remove the Gemini (Veo) sparkle watermark from every frame of your AI-generated MP4 — free and unlimited.
View
MCP https://devsly.io/mcp MCP Tools API Docs

Keyboard Shortcuts

Navigation

Quick Search
/ Ctrl + K
Toggle Dark Mode
/ Ctrl + D
Close Dialogs
Esc

Tool Actions

Execute / Process
/ Ctrl + Enter
Clear Input
/ Ctrl + Shift + C
Copy Output
/ Ctrl + Shift + X

Editor

Select All
/ Ctrl + A
Undo
/ Ctrl + Z
Redo
/ Ctrl + Shift + Z
Questions or ideas? Reach us on LinkedIn — we reply. Connect

vercel.com — llms.txt & GEO score

Re-scan this site
91 /100 A+ · 91 of 100 points

Built for machines, not just declared

vercel.com publishes a curated llms.txt — 24 links across 9 sections, 4.6 KB in all.

20 of those links (83%) point at clean .md copies rather than HTML pages. That is the strongest single signal here and the one most sites skip: a model reads the content instead of the navigation, cookie banner and footer around it.

The clearest gap is points at clean markdown copies. Right now: 20 of 24 end in .md or .txt (83%, detected by file extension). Closing it is worth 2 points.

Exceptional. There is genuinely nothing left on our checklist. Scanned 20 September 2026 against 34 checks — 27 passed, 5 partial, 2 missing.

vercel.com GEO score card: 91 out of 100, with the score broken down across content, structure, discovery, search-engine basics and depth.
vercel.com scored 91/100 on 20 September 2026. Source file: https://vercel.com/llms.txt.
91/100geo score
24links
9sections
4.6 KBsize

What it does well

  • Every link carries a description 24 of 24 described (100%)
  • Descriptions add to the title No description merely repeats its title
  • Link titles are descriptive All 24 titles are meaningful
  • A workable number of links 24 links (12–50 is the sweet spot)

What is missing

  • Points at clean markdown copies +2 20 of 24 end in .md or .txt (83%, detected by file extension)
  • The index is kept current +2 Cannot be confirmed — the server sends no Last-Modified header
  • Descriptions say something concrete +1 Average 64 characters across 24 described links
  • Enough written detail per link +1 22 words per link across 530 words

Among the 22 sites measured here so far, vercel.com ranks 1st, 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 vercel.com tells an assistant

Vercel

Vercel is a cloud platform for building, deploying, and scaling web applications and AI workloads.

Content & links

Can a model pick the right page, first time?

47/52

7 of 11 checks pass. What is left: descriptions say something concrete, points at clean markdown copies, list items are markdown links and enough written detail per link.

  • Every link carries a description 24 of 24 described (100%)
    10/10
  • Descriptions say something concrete Average 64 characters across 24 described links
    6/7
  • Descriptions add to the title No description merely repeats its title
    4/4
  • Points at clean markdown copies 20 of 24 end in .md or .txt (83%, detected by file extension)
    8/10
  • Link titles are descriptive All 24 titles are meaningful
    4/4
  • A workable number of links 24 links (12–50 is the sweet spot)
    4/4
  • Skippable links marked Optional An ## Optional section is present
    3/3
  • No duplicate links All 24 URLs are distinct
    2/2
  • List items are markdown links 8 of 32 list items are plain text, not links
    3/4
  • Enough written detail per link 22 words per link across 530 words
    2/3
  • Links are absolute URLs All 24 links are absolute URLs
    1/1

Structure

Does it follow the llms.txt shape?

20/20

All 7 checks pass in this group.

  • Exactly one H1 project title “Vercel”
    3/3
  • Summary directly under the title Present as a blockquote
    3/3
  • Summary is a usable length 98 characters
    3/3
  • Concrete language, not marketing filler No marketing filler detected
    3/3
  • Grouped into balanced sections 9 H2 sections, largest group holds 5 of 24 links
    4/4
  • Conforms to the published grammar Markdown only, headings used as the spec defines them
    2/2
  • Section names say what is inside All 9 headings are descriptive
    2/2

Discovery & access

Can an assistant reach it, and is it allowed to?

11/11

All 5 checks pass in this group.

  • At the root of the domain you typed Found at the standard /llms.txt path
    2/2
  • Sent as plain text Content-Type: text/plain; charset=utf-8
    1/1
  • robots.txt exists 629 B of crawler rules
    1/1
  • AI crawlers are not blocked No AI user-agent is disallowed at the root
    6/6
  • robots.txt points at a sitemap A Sitemap: line is declared
    1/1

Search-engine basics

What a crawler reads from your homepage today

7/8

5 of 6 checks pass. What is left: homepage has a meta description.

  • Homepage title is the right length 31 characters, from title
    2/2
  • Title is not padded or repetitive No repeated terms
    1/1
  • Homepage has a meta description 45 characters, from meta description — thin for a snippet
    1/2
  • Canonical URL declared https://vercel.com
    1/1
  • Language declared lang="en"
    1/1
  • Social card image og:image is set
    1/1

Depth & upkeep

Is there more than the index, and is it current?

6/9

3 of 5 checks pass. What is left: server reports when it last changed and the index is kept current.

  • Publishes llms-full.txt Companion full-text file found
    3/3
  • The index points at the full file llms.txt links to llms-full.txt
    1/1
  • Index is a sensible size 4.6 KB
    2/2
  • Server reports when it last changed No Last-Modified header — clients cannot tell when this changed
    0/1
  • The index is kept current Cannot be confirmed — the server sends no Last-Modified header
    0/2

What vercel.com should fix next

Ordered by what each one is worth. Open a row for the steps.

+9 pts
  • Right now: 20 of 24 end in .md or .txt (83%, 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

    1. Publish a .md version of each page you link to, at a predictable URL (page.md next to page).
    2. Point the llms.txt links at the .md copies, not at the HTML pages.
    3. Strip navigation, cookie banners and footers from the markdown — that is the whole point: the model reads your content instead of your chrome.
    4. Declare the pair in your HTML with a link relation so clients can find it without guessing.

    In your file

    line 37
    - [Vercel REST API OpenAPI description](https://vercel.com/openapi.json): Machine-readable OpenAPI 3.0 description for the public REST API.
    line 62
    - [Agent resource catalog](https://vercel.com/.well-known/ai-catalog.json): Experimental catalog of agent-facing resources.
    line 63
    - [Product taxonomy](https://vercel.com/docs/taxonomy.json): Canonical product names, aliases, and deprecations.

    Placeholders in { } are yours to write — we do not invent text about your pages.

  • 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

    1. Regenerate llms.txt in the same step that publishes content, so it cannot go stale silently.
    2. Treat it as a build artifact, not a hand-edited file — hand-edited indexes drift within a quarter.
    3. An llms.txt with discontinued products is worse than none: a model will repeat the wrong facts confidently.
  • Right now: Average 64 characters across 24 described links

    Write 60+ characters that add information the title does not: numbers, limits, formats, names.

    Where: The text after ": " on each link

    1. Write 60 characters or more, and make them add information the title does not.
    2. Cover every link: this is measured per LINK, not per description, so an undescribed line counts as zero.
    3. Name the concrete things on the page: numbers, limits, formats, model names.
    4. If the description could be pasted under any other link, it is not a description yet.

    In your file

    line 56
    - [Vercel Academy](https://vercel.com/academy/llms.txt): Courses and learning paths.
    - [Vercel Academy](https: {what is on the page — numbers, limits, formats}
    line 58
    - [Vercel Changelog sitemap](https://vercel.com/changelog/sitemap.md): Product updates and release notes.
    - [Vercel Changelog sitemap](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: 22 words per link across 530 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

    1. Count the words in your file against the number of links — aim for 30 or more per link.
    2. A list of page names is an index, not documentation; the descriptions are what a model actually reads.
    3. Add a line of context under each "## " heading saying what that group covers.
  • Right now: 45 characters, from meta description — thin for a snippet

    Add a 70–160 character meta description. It is the snippet under your result, and assistants reuse it verbatim.

    Where: The <meta name="description"> tag on your homepage

    1. Target 70–160 characters; beyond that Google truncates it mid-sentence.
    2. Write it as the sentence you would want quoted, because assistants reuse it verbatim.
    Instead of
    <meta name="description" content="Welcome to our website.">
    Do this
    <meta name="description" content="Industrial spare parts for food processing lines, shipped across Europe with same-week dispatch and two-year warranty.">
  • Right now: 8 of 32 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

    1. Turn each plain line into a markdown link: "- [Title](https://your-site/page.md): description".
    2. A line without a URL gives a model something to read but nowhere to go — it cannot follow, quote or verify it.
    3. 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.
    4. Note that "#" is a heading in markdown, not a comment — lines starting with # become H1/H2 headings.

    In your file

    line 9
    - Deploy and scale web applications, APIs, and AI workloads from a Git repository or the Vercel CLI.
    - [Deploy and scale web applications, APIs, and AI workloads from a Git repository or the Vercel CLI.]({https://your-site/path}.md): {what this page covers}
    line 10
    - Automate projects, deployments, domains, and account resources through the Vercel REST API or SDK.
    - [Automate projects, deployments, domains, and account resources through the Vercel REST API or SDK.]({https://your-site/path}.md): {what this page covers}
    line 11
    - Connect an authenticated AI assistant to Vercel projects, deployments, logs, analytics, and documentation through Vercel MCP.
    - [Connect an authenticated AI assistant to Vercel projects, deployments, logs, analytics, and documentation through Vercel MCP.]({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 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

    1. Serve llms.txt as a real file on disk so the server can derive Last-Modified from its mtime.
    2. If it is generated by an application route, set the header yourself from the generation time.
    3. Without it a client has to re-download the whole file to notice a change, and cannot answer "is this current?".
    Instead of
    HTTP/1.1 200 OK\nContent-Type: text/plain
    Do this
    HTTP/1.1 200 OK\nContent-Type: text/plain\nLast-Modified: Wed, 10 Sep 2026 08:14:00 GMT

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 20 September 2026; run it again for the current state, or check a different site.