Cookie Consent by Free Privacy Policy Generator BingPreview User Agent - Microsoft Bot Details | CL SEO

BingPreview

Microsoft Since 2010
Search Respects robots.txt
#search #bing #preview #snapshot
Quick Actions
Official Docs

What is BingPreview?

BingPreview is Microsoft's specialized crawler that generates page snapshots and previews shown in Bing search results. This bot captures visual representations of web pages, creating the thumbnail images and preview snippets that help users decide which results to click. BingPreview works alongside regular Bingbot but focuses specifically on visual capture rather than content indexing. The crawler uses modern rendering technology to accurately capture how pages appear to users, including JavaScript-rendered content. These previews enhance the search experience by giving users a visual preview before they visit a site.

User Agent String

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534+ (KHTML, like Gecko) BingPreview/1.0b

How to Control BingPreview

Block Completely

To prevent BingPreview from accessing your entire website, add this to your robots.txt file:

# Block BingPreview User-agent: BingPreview Disallow: /

Block Specific Directories

To restrict access to certain parts of your site while allowing others:

User-agent: BingPreview Disallow: /admin/ Disallow: /private/ Disallow: /wp-admin/ Allow: /public/

Set Crawl Delay

To slow down the crawl rate (note: not all bots respect this directive):

User-agent: BingPreview Crawl-delay: 10

How to Verify BingPreview

Verification Method:
Same as Bingbot verification

Learn more in the official documentation.

Detection Patterns

Multiple ways to detect BingPreview in your application:

Basic Pattern

/BingPreview/i

Strict Pattern

/^Mozilla/5\.0 \(Windows NT 6\.1; WOW64\) AppleWebKit/534\+ \(KHTML, like Gecko\) BingPreview/1\.0b$/

Flexible Pattern

/BingPreview[\s\/]?[\d\.]*?/i

Vendor Match

/.*Microsoft.*BingPreview/i

Implementation Examples

// PHP Detection for BingPreview function detect_bingpreview() { $user_agent = $_SERVER['HTTP_USER_AGENT'] ?? ''; $pattern = '/BingPreview/i'; if (preg_match($pattern, $user_agent)) { // Log the detection error_log('BingPreview detected from IP: ' . $_SERVER['REMOTE_ADDR']); // Set cache headers header('Cache-Control: public, max-age=3600'); header('X-Robots-Tag: noarchive'); // Optional: Serve cached version if (file_exists('cache/' . md5($_SERVER['REQUEST_URI']) . '.html')) { readfile('cache/' . md5($_SERVER['REQUEST_URI']) . '.html'); exit; } return true; } return false; }
# Python/Flask Detection for BingPreview import re from flask import request, make_response def detect_bingpreview(): user_agent = request.headers.get('User-Agent', '') pattern = r'BingPreview' if re.search(pattern, user_agent, re.IGNORECASE): # Create response with caching response = make_response() response.headers['Cache-Control'] = 'public, max-age=3600' response.headers['X-Robots-Tag'] = 'noarchive' return True return False # Django Middleware class BingPreviewMiddleware: def __init__(self, get_response): self.get_response = get_response def __call__(self, request): if self.detect_bot(request): # Handle bot traffic pass return self.get_response(request)
// JavaScript/Node.js Detection for BingPreview const express = require('express'); const app = express(); // Middleware to detect BingPreview function detectBingPreview(req, res, next) { const userAgent = req.headers['user-agent'] || ''; const pattern = /BingPreview/i; if (pattern.test(userAgent)) { // Log bot detection console.log('BingPreview detected from IP:', req.ip); // Set cache headers res.set({ 'Cache-Control': 'public, max-age=3600', 'X-Robots-Tag': 'noarchive' }); // Mark request as bot req.isBot = true; req.botName = 'BingPreview'; } next(); } app.use(detectBingPreview);
# Apache .htaccess rules for BingPreview # Block completely RewriteEngine On RewriteCond %{HTTP_USER_AGENT} BingPreview [NC] RewriteRule .* - [F,L] # Or redirect to a static version RewriteCond %{HTTP_USER_AGENT} BingPreview [NC] RewriteCond %{REQUEST_URI} !^/static/ RewriteRule ^(.*)$ /static/$1 [L] # Or set environment variable for PHP SetEnvIfNoCase User-Agent "BingPreview" is_bot=1 # Add cache headers for this bot <If "%{HTTP_USER_AGENT} =~ /BingPreview/i"> Header set Cache-Control "public, max-age=3600" Header set X-Robots-Tag "noarchive" </If>
# Nginx configuration for BingPreview # Map user agent to variable map $http_user_agent $is_bingpreview { default 0; ~*BingPreview 1; } server { # Block the bot completely if ($is_bingpreview) { return 403; } # Or serve cached content location / { if ($is_bingpreview) { root /var/www/cached; try_files $uri $uri.html $uri/index.html @backend; } try_files $uri @backend; } # Add headers for bot requests location @backend { if ($is_bingpreview) { add_header Cache-Control "public, max-age=3600"; add_header X-Robots-Tag "noarchive"; } proxy_pass http://backend; } }

Should You Block This Bot?

Recommendations based on your website type:

Site Type Recommendation Reasoning
E-commerce Allow Essential for product visibility in search results
Blog/News Allow Increases content reach and discoverability
SaaS Application Block No benefit for application interfaces; preserve resources
Documentation Allow Improves documentation discoverability for developers
Corporate Site Allow Allow for public pages, block sensitive areas like intranets

Advanced robots.txt Configurations

E-commerce Site Configuration

User-agent: BingPreview Crawl-delay: 5 Disallow: /cart/ Disallow: /checkout/ Disallow: /my-account/ Disallow: /api/ Disallow: /*?sort= Disallow: /*?filter= Disallow: /*&page= Allow: /products/ Allow: /categories/ Sitemap: https://example.com/sitemap.xml

Publishing/Blog Configuration

User-agent: BingPreview Crawl-delay: 10 Disallow: /wp-admin/ Disallow: /drafts/ Disallow: /preview/ Disallow: /*?replytocom= Allow: /

SaaS/Application Configuration

User-agent: BingPreview Disallow: /app/ Disallow: /api/ Disallow: /dashboard/ Disallow: /settings/ Allow: / Allow: /pricing/ Allow: /features/ Allow: /docs/

Quick Reference

User Agent Match

BingPreview

Robots.txt Name

BingPreview

Category

search

Respects robots.txt

Yes
Copied to clipboard!