# googlechrome/rendertron

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/googlechrome-rendertron).**

5,953 stars · 902 forks · TypeScript · Apache-2.0 · archived

## Links

- GitHub: https://github.com/GoogleChrome/rendertron
- Homepage: https://render-tron.appspot.com/
- awesome-repositories: https://awesome-repositories.com/repository/googlechrome-rendertron.md

## Topics

`hacktoberfest` `headless-chrome` `puppeteer` `rendering` `seo` `webcomponents`

## Description

Rendertron is a headless Chrome rendering service that serializes JavaScript-heavy web pages into fully-loaded HTML for search-engine bots and crawlers. It operates as a dynamic rendering proxy, inspecting incoming user-agent headers to route only bot traffic through the rendering pipeline while serving normal browsers the original page directly.

The service caches rendered page results in a configurable in-memory or Redis store, with an HTTP endpoint to invalidate cached renders and force fresh serialization on demand. It enforces a hard rendering timeout to prevent hanging on slow-loading or infinite-loop pages, and supports injecting Shady DOM polyfills so web components with shadow DOM serialize their full content for crawlers that cannot execute JavaScript.

Beyond prerendering for search engines, Rendertron can capture page screenshots at specified viewport sizes and device emulations. The rendering pipeline is configured through a JSON file that controls timeout, viewport dimensions, cache backend, allowed domains, and extra HTTP headers.

## Tags

### Web Development

- [Bot Rendering Services](https://awesome-repositories.com/f/web-development/bot-rendering-services.md) — Renders JavaScript-heavy pages in a headless browser and serializes the fully-loaded HTML for search-engine bots. ([source](https://github.com/GoogleChrome/rendertron))
- [Headless Rendering Engines](https://awesome-repositories.com/f/web-development/headless-browsers/headless-rendering-engines.md) — Renders JavaScript-heavy pages in a headless browser and serializes the fully-loaded HTML for bots and crawlers.
- [Bot Traffic Proxies](https://awesome-repositories.com/f/web-development/bot-traffic-proxies.md) — Inspects user-agent headers to route only bot traffic to the rendering service, leaving normal browsers unaffected.
- [Prerendering Proxies](https://awesome-repositories.com/f/web-development/client-side-search-engines/prerendering-proxies.md) — Renders JavaScript-heavy pages in a headless browser and serves serialized HTML to search-engine crawlers.
- [Headless Serializers](https://awesome-repositories.com/f/web-development/dom-serialization/headless-serializers.md) — Serializes fully-rendered DOM after JavaScript execution by piping Chrome DevTools Protocol output through an HTML serializer.
- [Configuration Pipelines](https://awesome-repositories.com/f/web-development/browser-integration-utilities/browser-infrastructure/headless-rendering-pipelines/configuration-pipelines.md) — Controls rendering timeout, viewport dimensions, and cache backend through a JSON configuration file.

### Content Management & Publishing

- [Dynamic Page Renderings](https://awesome-repositories.com/f/content-management-publishing/static-page-rendering/dynamic-page-renderings.md) — Renders JavaScript-heavy web pages in Headless Chrome and serves the serialized HTML to crawlers that cannot execute client-side scripts. ([source](https://cdn.jsdelivr.net/gh/googlechrome/rendertron@main/README.md))

### Data & Databases

- [Render Stores](https://awesome-repositories.com/f/data-databases/in-memory-caches/render-stores.md) — Caches serialized page output in memory or Redis so repeated bot requests return cached results without re-rendering.

### Networking & Communication

- [Bot Traffic Proxies](https://awesome-repositories.com/f/networking-communication/traffic-proxying/proxy-traffic-management/dynamic-proxy-selection/bot-traffic-proxies.md) — Checks the requesting user agent and proxies only bot traffic to a rendering service while leaving normal browsers unaffected.
- [User-Agent Proxies](https://awesome-repositories.com/f/networking-communication/traffic-proxying/proxy-traffic-management/user-agent-proxies.md) — Checks the requesting user agent and proxies only bot traffic to the rendering service, leaving normal browsers unaffected. ([source](https://github.com/GoogleChrome/rendertron))
- [User Agent Routing](https://awesome-repositories.com/f/networking-communication/user-agent-routing.md) — Inspects the incoming request's user-agent header to decide whether to forward traffic to the rendering service.

### Development Tools & Productivity

- [Headless Browser Configurations](https://awesome-repositories.com/f/development-tools-productivity/dynamic-configuration/dynamic-rendering-options/renderer-property-configurations/headless-browser-configurations.md) — Configures rendering timeout, viewport dimensions, cache backend, allowed domains, and extra HTTP headers through a JSON config file. ([source](https://github.com/GoogleChrome/rendertron))

### Graphics & Multimedia

- [Rendering Timeout Settings](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/rendering/graphics-apis-bindings/graphics-rendering-apis/rendering-quality-settings/rendering-timeout-settings.md) — Sets a hard timeout for page rendering to prevent the service from hanging on slow-loading content. ([source](https://cdn.jsdelivr.net/gh/googlechrome/rendertron@main/README.md))
- [Rendered Page Caches](https://awesome-repositories.com/f/graphics-multimedia/rendering-caches/rendered-page-caches.md) — Caches rendered page results in a configurable store and supports invalidation for fresh serialization.
- [Browser Screenshot Capture](https://awesome-repositories.com/f/graphics-multimedia/web-page-screenshot-tools/browser-screenshot-capture.md) — Captures page screenshots at specified viewport sizes and device emulations via headless Chrome. ([source](https://github.com/GoogleChrome/rendertron))

### Software Engineering & Architecture

- [Rendering Timeout Enforcers](https://awesome-repositories.com/f/software-engineering-architecture/coding-standards-enforcement/performance-standard-enforcers/performance-threshold-enforcement/runtime-performance-budget-enforcers/rendering-timeout-enforcers.md) — Enforces a hard timeout on page rendering to prevent the service from hanging on slow-loading or infinite-loop pages.

### User Interface & Experience

- [Shadow DOM Polyfills](https://awesome-repositories.com/f/user-interface-experience/shadow-dom-utilities/shadow-dom-polyfills.md) — Injects Shady DOM polyfills so web components with shadow DOM serialize correctly for crawlers.
