---
title: How do I integrate Prerender.io with IIS?
description: Learn how to integrate Prerender.io with IIS using URL rewrite rules so AI crawlers and search engines can fully read your JavaScript site. No middleware required.
---

[Skip to content](https://docs.prerender.io/docs/18-integrate-with-iis#main-content)

![prerender-logo](https://docs.prerender.io/hs-fs/hubfs/logo.png?width=100&height=75&name=logo.png)

Open main navigation

Close main navigation

- [Contact us](mailto:support@prerender.io)

[Contact us](mailto:support@prerender.io)

 How can we help you?

- There are no suggestions because the search field is empty.

1. [Knowledge Base - Prerender.io](https://docs.prerender.io/docs?hsLang=en)
2. [Integrations](https://docs.prerender.io/docs/integrations?hsLang=en)
3. [Prerender.io officially maintained integration](https://docs.prerender.io/docs/integrations?hsLang=en#prerender-io-officially-maintained-integration)

May 25, 2026

# How do I integrate Prerender.io with IIS?

## Connect Prerender.io to your IIS server using URL rewrite rules so AI crawlers and search engines receive fully rendered HTML, with no middleware installation required.

#### TL;DR

To integrate Prerender.io with IIS, you configure URL rewrite rules that detect crawler requests by User-Agent and forward them to Prerender.io's rendering service. No middleware is needed. The setup requires the Microsoft URL Rewrite module and Application Request Routing (ARR) on your IIS server.

---

⚠️ **Azure App Services users:** The Azure App Services URL rewrite rules do not support custom domain forwarding. Follow the dedicated [Azure IIS integration guide](https://www.formition.com/blog/prerender-with-azure) instead of this guide.

**ℹ️ Prefer a video walkthrough?** A video guide below for this integration is available. 

<iframe title="vimeo-player" src="https://player.vimeo.com/video/911607636?h=f7b852dfe1" width="640" height="360" frameborder="0" referrerpolicy="strict-origin-when-cross-origin" allow="autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share" allowfullscreen style="position: absolute; top: 0px; left: 0px; width: 100%; height: 100%; border-width: medium; border-style: none; border-color: currentcolor; border-image: initial;"></iframe>

 

---

### Step 1: create a Prerender.io account and copy your token.

If you do not have a Prerender.io account yet, [sign up at prerender.io](https://prerender.io).

Once logged in, go to **Security & Access** in your Prerender.io dashboard and copy your Prerender.io token. You will need it in Step 4.

---

### Step 2: install the required IIS modules.

Your IIS server needs two Microsoft modules installed before you can configure the rewrite rules:

- [Microsoft URL Rewrite module](https://www.iis.net/downloads/microsoft/url-rewrite) — enables URL pattern matching and rewriting inside IIS.
- [Application Request Routing (ARR)](https://www.iis.net/downloads/microsoft/application-request-routing) — enables IIS to proxy requests to an external service like Prerender.io.

Download and install both from the [IIS official downloads page](https://www.iis.net/downloads). If they are already installed on your server, skip to Step 3.

---

### Step 3: enable the ARR proxy in IIS Manager.

ARR is installed but disabled by default. Enable the proxy before creating your rewrite rules.

1. Open **IIS Manager**.
2. Select your server from the **Connections** panel.
3. Double-click **Application Request Routing Cache**.
4. Click **Server Proxy Settings** in the right-side **Actions** menu.
5. Check **Enable proxy**, then click **Apply**.

---

### Step 4: add your Prerender.io token as a server variable.

IIS passes the token to Prerender.io via an HTTP request header. You define this as a server variable in the URL Rewrite module.

1. In IIS Manager, go to **Sites \> Your Site \> URL Rewrite**.
2. Under the **Server Variables** section, add a new variable: 
     - **Name:** `HTTP_X_PRERENDER_TOKEN`
     - **Value:** `YOUR_TOKEN` (replace with the token you copied in Step 1)
     - Check **Replace the existing value**.

---

### Step 5: create the URL rewrite rule.

This rule tells IIS which requests to forward to Prerender.io. Requests from known AI crawlers and search engine bots are forwarded. Requests for static files and requests from website visitors are not.

1. In **URL Rewrite**, click **Add Rules…**, then choose **Blank Rule**.
2. Name the rule (e.g., `Prerender.io Rewrite Rule`).
3. In the **Match URL** section, set: 
     - **Requested URL:** Does Not Match the Pattern
     - **Using:** Regular Expressions
     - **Pattern:** paste the following:

> ```
> (\.js|\.json|\.css|\.xml|\.less|\.png|\.jpg|\.jpeg|\.gif|\.pdf|\.doc|\.txt|\.ico|\.rss|\.zip|\.mp3|\.rar|\.exe|\.wmv|\.doc|\.avi|\.ppt|\.mpg|\.mpeg|\.tif|\.wav|\.mov|\.psd|\.ai|\.xls|\.mp4|\.m4a|\.swf|\.dat|\.dmg|\.iso|\.flv|\.m4v|\.torrent|\.ttf|\.woff|\.svg)
> ```

 

- Check **Ignore case** if your site URLs are case-insensitive.

4\. Add two **Conditions** and set **Logical Grouping** to **Match Any**: **Condition 1: match crawler User-Agents**

- Condition Input: `{HTTP_USER_AGENT}`
- Pattern: paste the following:

> ```
> googlebot|adsbot-google|apis-google|mediapartners-google|google-safety|feedfetcher-google|googleproducer|google-site-verification|bingbot|yandexbot|yabrowser|yahoo|baiduspider|naver|seznambot|sznprohlizec|qwantbot|ecosia|duckduckbot|duckassistbot|applebot|facebookexternalhit|facebookcatalog|facebookbot|meta-externalagent|instagram|twitterbot|linkedinbot|whatsapp|slackbot|pinterest|pinterestbot|tiktok|tiktokspider|bytespider|discordbot|semrushbot|ahrefsbot|chrome-lighthouse|screaming-frog|oncrawlbot|botifybot|deepcrawl|lumar|rogerbot|dotbot|gptbot|chatgpt|oai-searchbot|chatgpt-user|claudebot|google-extended|perplexitybot|perplexity-user|youbot|amazonbot|anthropic-ai|claude-web|ccbot|mistralai-user|embedly|quora\ link\ preview|showyoubot|outbrain|pinterest/0\.|vkShare|W3C_Validator|redditbot|flipboard|tumblr|bitlybot|skypeuripreview|nuzzel|google\ page\ speed|qwantify|bitrix\ link\ preview|xing-contenttabreceiver|google-inspectiontool|telegrambot
> ```

- Check **Ignore case**.

**Condition 2: match escaped fragment URLs**

- Condition Input: `{QUERY_STRING}`
- Pattern: `_escaped_fragment_`

 

---

### Step 6: set the action to forward crawler requests.

With the rule conditions in place, tell IIS where to forward matching requests.

1. Set **Action Type** to **Rewrite**.
2. Set the **Rewrite URL** to:

```
https://service.prerender.io/https://{HTTP_HOST}/{REQUEST_URI}
```

      3.  Uncheck **Append query string**.

      4.  Optionally enable **Log rewritten URL** and **Stop processing of subsequent rules** for easier debugging.

ℹ️ **Special characters in URLs:** If your application uses special characters in URLs, use `{UNENCODED_URL}` instead of `{REQUEST_URI}` in the Rewrite URL above. You also need to set `useOriginalURLEncoding` to `false` in your IIS Configuration Editor.

ℹ️ **Local or dev environments:** This guide assumes your IIS server is publicly accessible from the internet. For local testing, replace `https://service.prerender.io` with your local Prerender.io open-source instance (e.g., `http://localhost:3000`). See the [Prerender open-source project on GitHub](https://github.com/prerender/prerender).

---

### Step 7: verify your integration is working.

Before going further, confirm that Prerender.io is correctly intercepting crawler requests and serving rendered HTML.

➡️ See [How to verify your Prerender.io integration is working](https://docs.prerender.io/docs/how-to-test-your-site-after-you-have-successfully-validated-your-prerender-integration?hsLang=en) for step-by-step instructions.

✅ Your integration is working when cached pages appear in your Prerender.io dashboard within 2 to 5 minutes of your first crawler request, and a simulated Googlebot request to your site returns a fully rendered HTML response served by Prerender.io.

ℹ️ If verification fails, check that:

- The ARR proxy is enabled (Step 3).
- Your token is correctly set as a server variable (Step 4).
- The User-Agent pattern in Condition 1 includes the bot you are testing with.

---

### Related articles

- [How to verify your Prerender.io integration is working](https://docs.prerender.io/docs/how-to-test-your-site-after-you-have-successfully-validated-your-prerender-integration?hsLang=en)
- [How Prerender.io works](https://docs.prerender.io/docs/how-prerender-io-works?hsLang=en)
- [Integrations overview](https://docs.prerender.io/docs/what-integrations-are-already-out-there?hsLang=en)<https://www.formition.com/blog/prerender-with-azure>
- [Best practices for crawler-ready pages](https://docs.prerender.io/docs/best-practices-for-crawler-ready-pages?hsLang=en)<https://github.com/prerender/prerender>

---

 

💬 **Still need help?** If you have questions about your IIS integration or are seeing unexpected behavior with your rewrite rules, our support team can help. → Contact us at [support@prerender.io](mailto:support@prerender.io)

- [How Prerender.io works](https://docs.prerender.io/docs/how-prerender-io-works?hsLang=en)
- [Getting started](https://docs.prerender.io/docs/getting-started?hsLang=en)
- [Integrations](https://docs.prerender.io/docs/integrations?hsLang=en#main-content)

    - [Prerender.io officially maintained integration](https://docs.prerender.io/docs/integrations?hsLang=en#prerender-io-officially-maintained-integration)
    - [Bubble](https://docs.prerender.io/docs/integrations?hsLang=en#bubble)
    - [FAQ](https://docs.prerender.io/docs/integrations?hsLang=en#faq)
- [Get Found on AI & Search](https://docs.prerender.io/docs/get-found-on-ai-search?hsLang=en#main-content)

    - [Google Search Performance](https://docs.prerender.io/docs/get-found-on-ai-search?hsLang=en#google-search-performance)
- [Troubleshooting](https://docs.prerender.io/docs/troubleshooting?hsLang=en)
- [Billing & Account](https://docs.prerender.io/docs/billing-account?hsLang=en#main-content)

    - [Plans & Subscriptions](https://docs.prerender.io/docs/billing-account?hsLang=en#plans-subscriptions)
    - [Renders, Usage & Limits](https://docs.prerender.io/docs/billing-account?hsLang=en#renders-usage-limits)
    - [Payments & Invoices](https://docs.prerender.io/docs/billing-account?hsLang=en#payments-invoices)
    - [Account Access & Security](https://docs.prerender.io/docs/billing-account?hsLang=en#account-access-security)

[![Chill listening crop-3](https://docs.prerender.io/hs-fs/hubfs/logo-1.png?width=24&height=24&name=logo-1.png "Chill listening crop-3")](http://prerender.io)

304 S. Jones Blvd #1205, Las Vegas, NV 89107

<https://www.twitter.com/> [mailto:support@prerender.io](mailto:support@prerender.io) <https://www.linkedin.com/company/prerender/> <https://github.com/prerender>

Copyright © 2025, Prerender.io