Cookie Consent by Free Privacy Policy Generator GoogleMessages User Agent - Google Bot Details | CL SEO

GoogleMessages

Google • Web Crawler
May ignore robots.txt
#link preview #messaging #user triggered

What is GoogleMessages?

Google lists GoogleMessages as the fetcher that generates a link preview for a URL sent in a chat message. It is user-triggered, not a crawler building a general search index. Google's documentation says user-triggered fetchers generally ignore robots.txt rules, so a request from this agent should not be interpreted as indexing activity.

User Agent String

GoogleMessages

How to Control GoogleMessages

Block Completely

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

# Block GoogleMessages User-agent: GoogleMessages Disallow: /

Block Specific Directories

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

User-agent: GoogleMessages 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: GoogleMessages Crawl-delay: 10

How to Verify GoogleMessages

Verification Method:
Check source IPs against Google's published user-triggered-fetcher ranges; the user-agent string is not proof by itself.

Learn more in the official documentation.

Detection Patterns

Multiple ways to detect GoogleMessages in your application:

Basic Pattern

/GoogleMessages/i

Strict Pattern

/^GoogleMessages$/

Flexible Pattern

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

Vendor Match

/.*Google.*GoogleMessages/i

Implementation Examples

// PHP Detection for GoogleMessages function detect_googlemessages() { $user_agent = $_SERVER['HTTP_USER_AGENT'] ?? ''; $pattern = '/GoogleMessages/i'; if (preg_match($pattern, $user_agent)) { // Log the detection error_log('GoogleMessages 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 GoogleMessages import re from flask import request, make_response def detect_googlemessages(): user_agent = request.headers.get('User-Agent', '') pattern = r'GoogleMessages' 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 googlemessagesMiddleware: 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 GoogleMessages const express = require('express'); const app = express(); // Middleware to detect GoogleMessages function detect_googlemessages(req, res, next) { const userAgent = req.headers['user-agent'] || ''; const pattern = /GoogleMessages/i; if (pattern.test(userAgent)) { // Log bot detection console.log('GoogleMessages 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 = 'GoogleMessages'; } next(); } app.use(detect_googlemessages);
# Apache .htaccess rules for GoogleMessages # Block completely RewriteEngine On RewriteCond %{HTTP_USER_AGENT} GoogleMessages [NC] RewriteRule .* - [F,L] # Or redirect to a static version RewriteCond %{HTTP_USER_AGENT} GoogleMessages [NC] RewriteCond %{REQUEST_URI} !^/static/ RewriteRule ^(.*)$ /static/$1 [L] # Or set environment variable for PHP SetEnvIfNoCase User-Agent "GoogleMessages" is_bot=1 # Add cache headers for this bot <If "%{HTTP_USER_AGENT} =~ /GoogleMessages/i"> Header set Cache-Control "public, max-age=3600" Header set X-Robots-Tag "noarchive" </If>
# Nginx configuration for GoogleMessages # Map user agent to variable map $http_user_agent $is_googlemessages { default 0; ~*GoogleMessages 1; } server { # Block the bot completely if ($is_googlemessages) { return 403; } # Or serve cached content location / { if ($is_googlemessages) { 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_googlemessages) { 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 Optional Evaluate based on bandwidth usage vs. benefits
Blog/News Allow Increases content reach and discoverability
SaaS Application Block No benefit for application interfaces; preserve resources
Documentation Selective Allow for public docs, block for internal docs
Corporate Site Limit Allow for public pages, block sensitive areas like intranets

Advanced robots.txt Configurations

E-commerce Site Configuration

User-agent: GoogleMessages 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: GoogleMessages Crawl-delay: 10 Disallow: /wp-admin/ Disallow: /drafts/ Disallow: /preview/ Disallow: /*?replytocom= Allow: /

SaaS/Application Configuration

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

Quick Reference

User Agent Match

GoogleMessages

Robots.txt Name

GoogleMessages

Category

social

Respects robots.txt

May not respect

Quick Actions

Official Docs
Copied to clipboard!