# Headless browser

Category: [Rendering & JavaScript](https://seo-geo-glossary.com/en/glossary/category/rendering-javascript/) › [How search engines render](https://seo-geo-glossary.com/en/glossary/category/rendering-javascript/how-search-engines-render/) · Also known as: headless Chrome, headless mode

A **headless browser** is a web browser that runs without a visible user interface and is controlled through code or the command line. It loads pages, runs JavaScript and builds the DOM like a normal browser, but shows no window. The term is unrelated to a headless CMS.

## How does a headless browser work?

Chrome describes its Headless mode as running the browser in an unattended environment, without any visible UI. Libraries drive it. Puppeteer, for instance, is a JavaScript library for controlling Chrome or Firefox, and the project states that it runs headless by default. Playwright and Selenium work in a similar way.

Chrome changed how headless mode works over time. Since Chrome 112 the unified Headless mode creates, but does not display, platform windows and shares its code with the regular browser. The older, separate implementation became its own binary named `chrome-headless-shell` from Chrome 132.0.6793.0.

## What does it mean for SEO?

Google's documentation states that it renders JavaScript pages with a headless Chromium. Anyone who wants to see what a page looks like after rendering can use a headless browser themselves, and SEO crawlers that handle JavaScript sites often do this too (assessment). The difference shows when raw HTML and rendered HTML are compared.

Headless browsers are also used for automated testing and scraping. Chrome starts in this mode with the `--headless` flag.

## Example

A Puppeteer script that renders a page and prints the final HTML:

```js
import puppeteer from "puppeteer";

const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto("https://www.example.com/", { waitUntil: "networkidle0" });
console.log(await page.content());
await browser.close();
```

`page.content()` returns the HTML after scripts have run.

## Common mistakes

- **Treating your own test run as Google's rendering**: According to Google, its Web Rendering Service keeps no state across page loads, and Local Storage, Session Storage and cookies are cleared. A run with a stored login or cookies does not show what Google sees.
- **Relying on permissions and real-time connections**: Features that need user permission do not make sense for Googlebot, and Googlebot does not support WebSockets or WebRTC.
- **Mixing up the old and the new headless mode**: Since Chrome 112 the mode shares code with regular Chrome. The earlier separate implementation has been available only as `chrome-headless-shell` since Chrome 132.0.6793.0.

## FAQ

**What is a headless mode browser?** A browser that works without displaying a window.

**Is Chrome a headless browser?** Chrome can run in headless mode, using the `--headless` flag.

**Is a headless browser the same as Googlebot?** No. Googlebot is the crawler. Google uses a headless Chromium for the rendering step.

## Related terms

- [Headless CMS](https://seo-geo-glossary.com/en/glossary/headless-cms/index.md)
- [Browser agent](https://seo-geo-glossary.com/en/glossary/browser-agent/index.md)
- [Rendering](https://seo-geo-glossary.com/en/glossary/rendering/index.md)
- [Web Rendering Service](https://seo-geo-glossary.com/en/glossary/web-rendering-service/index.md)
- [JavaScript SEO](https://seo-geo-glossary.com/en/glossary/javascript-seo/index.md)
- [User agent](https://seo-geo-glossary.com/en/glossary/user-agent/index.md)

## Sources

- [Chrome Headless mode – Chrome for Developers](https://developer.chrome.com/docs/chromium/headless)
- [JavaScript SEO basics – Google Search Central](https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics)
- [Puppeteer – project site](https://pptr.dev/)
- [Fix Search-related JavaScript problems – Google Search Central](https://developers.google.com/search/docs/crawling-indexing/javascript/fix-search-javascript)

---

Last updated: October 8, 2026
URL: https://seo-geo-glossary.com/en/glossary/headless-browser/
