## Table of Contents

- [Result-level expansion](#result-level-expansion)
  - [When to use.html()](#when-to-usehtml)
  - [When to use.markdown()](#when-to-usemarkdown)
- [Page-level content](#page-level-content)
- [The two-step pattern](#the-two-step-pattern)
  - [Why not expand everything?](#why-not-expand-everything)
- [Expansion with pagination](#expansion-with-pagination)
- [Expansion in agent workflows](#expansion-in-agent-workflows)
- [See also](#see-also)

---

[API](https://microlink.io/docs/api/getting-started/overview)

[GUIDES](https://microlink.io/docs/guides) [MQL](https://microlink.io/docs/mql/getting-started/overview) [SDK](https://microlink.io/docs/sdk/getting-started/overview) [CARDS](https://microlink.io/docs/cards/getting-started/overview)

API GUIDES MQL SDK CARDS

Getting Started

[Overview](https://microlink.io/docs/guides)

[What is Microlink](https://microlink.io/docs/guides/what-is-microlink)

[Screenshot](https://microlink.io/docs/guides/screenshot)

[Customizing output](https://microlink.io/docs/guides/screenshot/customizing-output)

[Browser settings](https://microlink.io/docs/guides/screenshot/browser-settings)

[Page interaction](https://microlink.io/docs/guides/screenshot/page-interaction)

[Delivery and embedding](https://microlink.io/docs/guides/screenshot/embedding)

[Caching and performance](https://microlink.io/docs/guides/screenshot/caching-and-performance)

[Private pages](https://microlink.io/docs/guides/screenshot/private-pages)

[Troubleshooting](https://microlink.io/docs/guides/screenshot/troubleshooting)

[Data extraction](https://microlink.io/docs/guides/data-extraction)

[Defining rules](https://microlink.io/docs/guides/data-extraction/defining-rules)

[Page preparation](https://microlink.io/docs/guides/data-extraction/page-preparation)

[Delivery and response shaping](https://microlink.io/docs/guides/data-extraction/delivery-and-response)

[Caching and performance](https://microlink.io/docs/guides/data-extraction/caching-and-performance)

[Private pages](https://microlink.io/docs/guides/data-extraction/private-pages)

[Troubleshooting](https://microlink.io/docs/guides/data-extraction/troubleshooting)

[Embed](https://microlink.io/docs/guides/embed)

[SDK](https://microlink.io/docs/guides/embed/sdk)

[Iframe parameter](https://microlink.io/docs/guides/embed/iframe)

[Custom HTML/CSS](https://microlink.io/docs/guides/embed/metadata-api)

[Custom previews with AI](https://microlink.io/docs/guides/embed/custom-previews-with-ai)

[Caching and performance](https://microlink.io/docs/guides/embed/caching-and-performance)

[Private pages and proxy](https://microlink.io/docs/guides/embed/private-pages-and-proxy)

[Troubleshooting](https://microlink.io/docs/guides/embed/troubleshooting)

[Markdown](https://microlink.io/docs/guides/markdown)

[Choosing scope](https://microlink.io/docs/guides/markdown/choosing-scope)

[Delivery and response shaping](https://microlink.io/docs/guides/markdown/delivery-and-response)

[Function](https://microlink.io/docs/guides/function)

[Writing functions](https://microlink.io/docs/guides/function/writing-functions)

[Browser interaction](https://microlink.io/docs/guides/function/browser-interaction)

[Profiling and performance](https://microlink.io/docs/guides/function/profiling-and-performance)

[Troubleshooting](https://microlink.io/docs/guides/function/troubleshooting)

[PDF](https://microlink.io/docs/guides/pdf)

[Page size and layout](https://microlink.io/docs/guides/pdf/page-size-and-layout)

[Page preparation](https://microlink.io/docs/guides/pdf/page-preparation)

[Delivery and embedding](https://microlink.io/docs/guides/pdf/embedding)

[Caching and performance](https://microlink.io/docs/guides/pdf/caching-and-performance)

[Private pages](https://microlink.io/docs/guides/pdf/private-pages)

[Troubleshooting](https://microlink.io/docs/guides/pdf/troubleshooting)

[Metadata](https://microlink.io/docs/guides/metadata)

[Choosing fields](https://microlink.io/docs/guides/metadata/choosing-fields)

[Extending results](https://microlink.io/docs/guides/metadata/extending-results)

[Delivery and response shaping](https://microlink.io/docs/guides/metadata/delivery-and-response)

[Page preparation](https://microlink.io/docs/guides/metadata/page-preparation)

[Caching and performance](https://microlink.io/docs/guides/metadata/caching-and-performance)

[Private pages](https://microlink.io/docs/guides/metadata/private-pages)

[Troubleshooting](https://microlink.io/docs/guides/metadata/troubleshooting)

[Insights](https://microlink.io/docs/guides/insights)

[Technology detection](https://microlink.io/docs/guides/insights/technology-detection)

[Lighthouse reports](https://microlink.io/docs/guides/insights/lighthouse-reports)

[Caching and performance](https://microlink.io/docs/guides/insights/caching-and-performance)

[Troubleshooting](https://microlink.io/docs/guides/insights/troubleshooting)

[Search](https://microlink.io/docs/guides/search)

[Web Search](https://microlink.io/docs/guides/search/search)

[News](https://microlink.io/docs/guides/search/news)

[Images](https://microlink.io/docs/guides/search/images)

[Videos](https://microlink.io/docs/guides/search/videos)

[Places](https://microlink.io/docs/guides/search/places)

[Maps](https://microlink.io/docs/guides/search/maps)

[Shopping](https://microlink.io/docs/guides/search/shopping)

[Scholar](https://microlink.io/docs/guides/search/scholar)

[Patents](https://microlink.io/docs/guides/search/patents)

[Autocomplete](https://microlink.io/docs/guides/search/autocomplete)

[Content expansion](https://microlink.io/docs/guides/search/content-expansion)

[Integration patterns](https://microlink.io/docs/guides/search/patterns)

[Common patterns](https://microlink.io/docs/guides/common/caching)

[Caching patterns](https://microlink.io/docs/guides/common/caching)

[Private pages](https://microlink.io/docs/guides/common/private-pages)

[Proxy](https://microlink.io/docs/guides/common/proxy)

[Troubleshooting](https://microlink.io/docs/guides/common/troubleshooting)

[Production patterns](https://microlink.io/docs/guides/common/production-patterns)

API GUIDES MQL SDK CARDS

Getting Started

[Overview](https://microlink.io/docs/guides)

[What is Microlink](https://microlink.io/docs/guides/what-is-microlink)

[Screenshot](https://microlink.io/docs/guides/screenshot)

[Customizing output](https://microlink.io/docs/guides/screenshot/customizing-output)

[Browser settings](https://microlink.io/docs/guides/screenshot/browser-settings)

[Page interaction](https://microlink.io/docs/guides/screenshot/page-interaction)

[Delivery and embedding](https://microlink.io/docs/guides/screenshot/embedding)

[Caching and performance](https://microlink.io/docs/guides/screenshot/caching-and-performance)

[Private pages](https://microlink.io/docs/guides/screenshot/private-pages)

[Troubleshooting](https://microlink.io/docs/guides/screenshot/troubleshooting)

[Data extraction](https://microlink.io/docs/guides/data-extraction)

[Defining rules](https://microlink.io/docs/guides/data-extraction/defining-rules)

[Page preparation](https://microlink.io/docs/guides/data-extraction/page-preparation)

[Delivery and response shaping](https://microlink.io/docs/guides/data-extraction/delivery-and-response)

[Caching and performance](https://microlink.io/docs/guides/data-extraction/caching-and-performance)

[Private pages](https://microlink.io/docs/guides/data-extraction/private-pages)

[Troubleshooting](https://microlink.io/docs/guides/data-extraction/troubleshooting)

[Embed](https://microlink.io/docs/guides/embed)

[SDK](https://microlink.io/docs/guides/embed/sdk)

[Iframe parameter](https://microlink.io/docs/guides/embed/iframe)

[Custom HTML/CSS](https://microlink.io/docs/guides/embed/metadata-api)

[Custom previews with AI](https://microlink.io/docs/guides/embed/custom-previews-with-ai)

[Caching and performance](https://microlink.io/docs/guides/embed/caching-and-performance)

[Private pages and proxy](https://microlink.io/docs/guides/embed/private-pages-and-proxy)

[Troubleshooting](https://microlink.io/docs/guides/embed/troubleshooting)

[Markdown](https://microlink.io/docs/guides/markdown)

[Choosing scope](https://microlink.io/docs/guides/markdown/choosing-scope)

[Delivery and response shaping](https://microlink.io/docs/guides/markdown/delivery-and-response)

[Function](https://microlink.io/docs/guides/function)

[Writing functions](https://microlink.io/docs/guides/function/writing-functions)

[Browser interaction](https://microlink.io/docs/guides/function/browser-interaction)

[Profiling and performance](https://microlink.io/docs/guides/function/profiling-and-performance)

[Troubleshooting](https://microlink.io/docs/guides/function/troubleshooting)

[PDF](https://microlink.io/docs/guides/pdf)

[Page size and layout](https://microlink.io/docs/guides/pdf/page-size-and-layout)

[Page preparation](https://microlink.io/docs/guides/pdf/page-preparation)

[Delivery and embedding](https://microlink.io/docs/guides/pdf/embedding)

[Caching and performance](https://microlink.io/docs/guides/pdf/caching-and-performance)

[Private pages](https://microlink.io/docs/guides/pdf/private-pages)

[Troubleshooting](https://microlink.io/docs/guides/pdf/troubleshooting)

[Metadata](https://microlink.io/docs/guides/metadata)

[Choosing fields](https://microlink.io/docs/guides/metadata/choosing-fields)

[Extending results](https://microlink.io/docs/guides/metadata/extending-results)

[Delivery and response shaping](https://microlink.io/docs/guides/metadata/delivery-and-response)

[Page preparation](https://microlink.io/docs/guides/metadata/page-preparation)

[Caching and performance](https://microlink.io/docs/guides/metadata/caching-and-performance)

[Private pages](https://microlink.io/docs/guides/metadata/private-pages)

[Troubleshooting](https://microlink.io/docs/guides/metadata/troubleshooting)

[Insights](https://microlink.io/docs/guides/insights)

[Technology detection](https://microlink.io/docs/guides/insights/technology-detection)

[Lighthouse reports](https://microlink.io/docs/guides/insights/lighthouse-reports)

[Caching and performance](https://microlink.io/docs/guides/insights/caching-and-performance)

[Troubleshooting](https://microlink.io/docs/guides/insights/troubleshooting)

[Search](https://microlink.io/docs/guides/search)

[Web Search](https://microlink.io/docs/guides/search/search)

[News](https://microlink.io/docs/guides/search/news)

[Images](https://microlink.io/docs/guides/search/images)

[Videos](https://microlink.io/docs/guides/search/videos)

[Places](https://microlink.io/docs/guides/search/places)

[Maps](https://microlink.io/docs/guides/search/maps)

[Shopping](https://microlink.io/docs/guides/search/shopping)

[Scholar](https://microlink.io/docs/guides/search/scholar)

[Patents](https://microlink.io/docs/guides/search/patents)

[Autocomplete](https://microlink.io/docs/guides/search/autocomplete)

[Content expansion](https://microlink.io/docs/guides/search/content-expansion)

[Integration patterns](https://microlink.io/docs/guides/search/patterns)

[Common patterns](https://microlink.io/docs/guides/common/caching)

[Caching patterns](https://microlink.io/docs/guides/common/caching)

[Private pages](https://microlink.io/docs/guides/common/private-pages)

[Proxy](https://microlink.io/docs/guides/common/proxy)

[Troubleshooting](https://microlink.io/docs/guides/common/troubleshooting)

[Production patterns](https://microlink.io/docs/guides/common/production-patterns)

[Copy for LLM](https://microlink.io/docs/guides/search/content-expansion.md "Copy content for LLM")

\|

[View as Markdown](https://microlink.io/docs/guides/search/content-expansion.md "View content as Markdown")

Microlink Search is designed around a two-step retrieval model: lightweight structured results first, full page content second. Every result with a `url` exposes lazy `.html()` and `.markdown()` helpers that fetch the page content only when called.

This page covers how those helpers work, when to use each format, and how to apply the pattern in retrieval workflows.

## Result-level expansion

Any result that contains a `url` field gets two lazy methods attached:

```js
const page = await google('technical seo checklist')

const result = page.results[0]

const html = await result.html()

const markdown = await result.markdown()
```

Both methods call the Microlink API under the hood, so each expansion counts as a separate API request. This is intentional — you should only expand the results that are actually worth reading.

### When to use.html()

Use `.html()` when you need the raw DOM structure, inline styles, or structured content that Markdown would flatten:

- **Custom parsing**: extract specific elements, tables, or structured data with your own selectors
- **Downstream rendering**: inject the HTML into another page, iframe, or document
- **Preserving layout**: tables, forms, and complex layouts that lose structure in Markdown

### When to use.markdown()

Use `.markdown()` when the consumer is a language model or a text-based pipeline:

- **LLM context**: Markdown uses fewer tokens than HTML for the same content
- **RAG indexing**: cleaner text for vector embeddings and chunk splitting
- **Summarization**: models produce better summaries from Markdown than from DOM noise

## Page-level content

The page object itself also exposes `.html()` and `.markdown()` — these fetch the content of the Google SERP page for the query, not an individual result:

```js
const page = await google('technical seo checklist')

const serpHtml = await page.html()

const serpMarkdown = await page.markdown()
```

This is useful when you want the raw SERP layout for analysis, competitive monitoring, or SERP feature detection. In most workflows, result-level expansion is more useful.

## The two-step pattern

The core idea: search first, expand selectively.

```js
const page = await google('site:openai.com function calling guide')

const sources = await Promise.all(

  page.results.slice(0, 3).map(async result => ({

    title: result.title,

    url: result.url,

    markdown: await result.markdown()

  }))

)
```

This keeps your API usage predictable. A search query returns 10 results at the cost of one request. Expanding three of them costs three more. You control the depth.

### Why not expand everything?

Expanding all results by default would be wasteful in most workflows:

- **Cost**: each `.html()` or `.markdown()` call is a separate Microlink API request
- **Latency**: fetching full page content is slower than reading structured results
- **Relevance**: most workflows only need the top 2–5 sources in full

Let your application logic (or the LLM) decide which results deserve deeper inspection.

## Expansion with pagination

Combine pagination with selective expansion to build deep retrieval pipelines:

```js
let page = await google('node.js frameworks')

const allSources = []

while (page && allSources.length < 10) {

  for (const result of page.results) {

    if (allSources.length >= 10) break

    allSources.push({

      title: result.title,

      url: result.url,

      markdown: await result.markdown()

    })

  }

  page = await page.next()

}
```

This pattern is especially useful for research agents that need broad coverage across multiple pages but still want full content for each source.

## Expansion in agent workflows

When `@microlink/google` is exposed as a tool, let the model control expansion depth:

1.  **First tool call**: `google(query)` — the model sees structured results
2.  **Second tool call**: `result.markdown()` — the model picks which results to read in full
3.  **Third tool call**: `page.next()` — the model paginates only if confidence is low

This two-step pattern maps naturally to tool-calling agent loops. The model makes the cost/depth tradeoff on each turn instead of fetching everything upfront.

## See also

- [Search](https://microlink.io/docs/guides/search) — install the client and make your first query.
- [Web Search](https://microlink.io/docs/guides/search/search), [News](https://microlink.io/docs/guides/search/news), [Scholar](https://microlink.io/docs/guides/search/scholar), and more — field reference for each surface.
- [Integration patterns](https://microlink.io/docs/guides/search/patterns) — agent tool calling, RAG pipelines, and multi-step research workflows.
- [Markdown guide](https://microlink.io/docs/guides/markdown) — if you already have a URL and want to convert it to Markdown directly through the Microlink API.

Last updated on May 28, 2026

[Edit on GitHub](https://github.com/microlinkhq/www/blob/master/src/content/docs/guides/search/content-expansion.md)