General 14 min read

A Link Is Not Context for Your AI — Embed the Passage, Not the URL

MMNMNOTE
ai notescontext windowlink rothallucinationmarkdownpromptingprovenance

By default, with no browsing or fetch tool active, an AI reads only the words in front of it. A bare link is a string of characters, not the page behind it. Paste the load-bearing passage into your note, and the model has a source it can actually reason over.

The confusion is old and well-documented. "A really common misconception about ChatGPT is that it can access URLs," Simon Willison wrote in March 2023, after he fed the model four URLs he had invented, every one a dead 404, and watched it return "a very convincing, entirely invented story summary."1 The link looked like an instruction to go and read a page. It was only ever a prompt to guess what such a page might say. Willison's rule was blunt: "Given a URL with descriptive words in it, ChatGPT can hallucinate the contents of the page."1 The words in the address became the raw material for a fabrication. This is not a flaw you can scold out of a model. It is what happens when you hand a text predictor a string and ask it to reason about a page it never received.

The intuition is reasonable. You paste a URL into a chat window, or you drop one into a note and ask an assistant to summarize it, and a fluent summary comes back. It reads like the model went and fetched the page. So you assume the link was the source, and the summary was the reading.

Fluency is not retrieval. The output is confident and specific, which is exactly the trap. A language model is built to produce plausible text, and a descriptive URL gives it plenty to be plausible about. Willison named the danger precisely: "it's so easy to convince yourself that it can read URLs, which can lead you down a rabbit hole of realistic but utterly misguided hallucinated content."1 The summary feels earned. Nothing behind it was ever read.

By default, without a browsing or fetch tool, an AI reasons only over the tokens in its context window: the text you typed or pasted. Anthropic calls this a finite "attention budget": "Every new token introduced depletes this budget by some amount."2 A link is a few of those tokens. The page behind it never arrives.

So the model does what it always does with a gap: it predicts. The address bar becomes a prompt, and the slug, /how-to-fix-a-leaking-tap, becomes the seed of an invented article. In 2023 Willison put it as plainly as anyone: "I promise you ChatGPT cannot access URLs. The problem is it does an incredibly convincing impression of being able to do so."1 That was a statement about a model with no fetch tool, and it still describes any assistant that lacks one. The impression of reading is the whole problem, because it is indistinguishable, from the outside, from actual reading.

The honest scope: fetch tools exist, and they are still best-effort

This is where honesty matters. Fetch tools now exist, and they are increasingly on by default. ChatGPT search launched on October 31, 2024, and the model "will choose to search the web based on what you ask, or you can manually choose to search by clicking the new web search icon."3

Willison himself updated his 2023 post to say exactly that. His correction is the model to follow: "This article is no longer accurate. ChatGPT gained the ability to browse the internet a while ago, though other LLM tools may still exhibit the same strange behaviour where they pretend to access URLs even though they can't."1 Two truths sit side by side. When a tool is invoked — ChatGPT search, or an assistant wired to the Model Context Protocol, "an open-source standard for connecting AI applications to external systems"4 — the link can be fetched. When no tool is active, the old failure returns, silently.

Even with a tool, retrieval is best-effort, not guaranteed. A robots.txt rule, a paywall, a login gate, a JavaScript-only page, or a plain timeout can all leave the fetch empty. And the page may simply be gone. So "the AI can read links now" is true, and it is not a plan. The reliable substrate is still the text you put in front of it.

The fix is not a better model. It is a habit: embed the passage, not just the pointer. Paste the load-bearing sentences into your note, attributed, with the URL kept alongside for a human to click. The text lives in the note, so it is present in context every time: no fetch, no guess, no rot.

The rot is not hypothetical. Pew Research found that "38% of webpages that existed in 2013 are not available today," and that "25% of all the pages we collected from 2013 through 2023 were no longer accessible as of October 2023."5 Jonathan Zittrain, tracing the same decay in The Atlantic, concluded that "link rot and content drift are endemic to the web."6 His numbers are stark: "50 percent of the links embedded in Court opinions since 1996 ... no longer worked. And 75 percent of the links in the Harvard Law Review no longer worked," while "more than half of all articles in The New York Times that contain deep links have at least one rotted link."6 A link points at a moving target. The embedded quote does not move.

Steph Ango's line about tools applies just as well to sources: "Apps are ephemeral, but your files have a chance to last."7 The chat window is ephemeral, and so is the URL. The passage you copied into a plain-text note, stored on your own device, is the part with a chance to last. Archiving the page for a future human reader is the companion move — the case for that is save the page, not the link. This piece is its twin on the machine side: put the text where the model will read it.

The practice: what to do tomorrow

Start with the next source you were about to link. Instead of dropping a bare URL, copy the two or three sentences that actually carry the claim, paste them into the note under the link, and mark them as a quote. Do that, and any assistant — with a fetch tool or without one — has the substance in hand.

Five moves make it a discipline rather than a chore:

  1. Embed the load-bearing passage, not the whole page. A few attributed sentences beat a link, and where you place them inside the note shapes what a model retrieves — the case for that is how you split a note decides what an AI finds in it.
  2. Keep the URL and an accessed date beside the quote, for the human who will want the original.
  3. Attribute the quote with author, publication, and date, so the model can weigh it instead of guessing its provenance.
  4. When the source is the AI's own answer, save the answer with its sources too — the companion habit is a bibliography for what the AI just told you.
  5. Remember what a link is for. A URL alone is a fine bookmark for a person, as in a note that is just a URL; it is not a source for a machine.

Three diagnostic questions catch the common failures. Is the claim in the note, or only the link to it? If only the link, the model is one missing fetch away from inventing the rest. Would this note still carry its evidence if the page vanished tomorrow? If not, embed the passage now, while it is still there. Am I asking the model to reason, or to guess? A pasted quote is reasoning material; a bare URL, with no tool, is an invitation to guess.

Frequently asked questions

Only when a browsing or fetch tool is active. With search or browsing on, ChatGPT can retrieve the page, best-effort, since paywalls, logins, and robots.txt rules can block it. With no tool active, it cannot read the link; it predicts the page's contents from the words in the URL. To be certain, paste the passage itself.

Why does an AI make up a summary of a page it never opened?

Because a language model completes text. Given a descriptive URL and no fetched page, it fills the gap with plausible content. Simon Willison demonstrated this by asking ChatGPT to summarize four URLs he had invented — all dead 404s — and it produced "a very convincing, entirely invented story summary."1 The confidence is real; the reading never happened.

How do I give an AI a source it can actually use?

Paste the load-bearing text into your prompt or note, not just the link. Copy the two or three sentences that carry the claim, attribute them to the author and date, and keep the URL alongside for a human. The embedded passage sits in the model's context window every time — no fetch required, and nothing to rot.

Often, yes. ChatGPT search launched on October 31, 2024, and the model "will choose to search the web based on what you ask, or you can manually choose to search."3 Assistants wired to external tools can fetch too. But retrieval stays best-effort, and a page that has rotted away cannot be fetched at all. The embedded text always works.

Do I need browsing enabled for an AI to read a URL?

To fetch a live page, yes: a browsing or search feature has to be active, or the assistant must be connected to a fetch tool such as one built on the Model Context Protocol.4 Without that, the model guesses from the URL string. An embedded passage needs no feature, no plan, and no connection: it is already in the note.

Because, absent a fetch tool, the model never received the page, only the address. Willison's rule holds for any assistant without browsing: "Given a URL with descriptive words in it, ChatGPT can hallucinate the contents of the page."1 The answer looked sourced but was generated from the URL alone. Paste the text you want it to use.

A link is a promise that the source exists somewhere. The embedded passage is the source itself — present, attributed, on your own device, readable by you and by any model you ask. Give the machine the words, not the address.

The clearest early account of this behavior is Simon Willison's, and to his credit he updated it the moment the tools caught up; the discipline outlives the vintage of any one model. To keep the passage and its link together as plain Markdown on your own device, mnmnote.com opens a new note in a tab.

Footnotes

  1. Willison, Simon. "ChatGPT couldn't access the internet, even though it really looked like it could." Simon Willison's Weblog, 2023-03-10 (Update: 2024-08-29). https://simonwillison.net/2023/Mar/10/chatgpt-internet-access/. Accessed 2026-07-12. 2 3 4 5 6 7

  2. Anthropic. "Effective context engineering for AI agents." Anthropic Engineering, 2025-09-29. https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents. Accessed 2026-07-12.

  3. Wiggers, Kyle. "OpenAI launches ChatGPT search, its Google challenger." TechCrunch, 2024-10-31. https://techcrunch.com/2024/10/31/openai-launches-its-google-challenger-chatgpt-search/. Accessed 2026-07-12. 2

  4. Model Context Protocol. "Introduction." modelcontextprotocol.io. https://modelcontextprotocol.io/. Accessed 2026-07-12. 2

  5. Chapekis, Athena, Samuel Bestvater, Emma Remy, and Gonzalo Rivero. "When Online Content Disappears." Pew Research Center, 2024-05-17. https://www.pewresearch.org/data-labs/2024/05/17/when-online-content-disappears/. Accessed 2026-07-12.

  6. Zittrain, Jonathan. "The Internet Is Rotting." The Atlantic, 2021-06-30. https://www.theatlantic.com/technology/archive/2021/06/the-internet-is-a-collective-hallucination/619320/. Accessed 2026-07-12. 2

  7. Ango, Steph. "File over app." stephango.com, 2023-07-01. https://stephango.com/file-over-app. Accessed 2026-07-12.