User-Agent Examples: Which Bots to Allow and Which to Block

18 min read

Short answer

A user agent is the name a visitor's browser or bot sends to identify itself, like Googlebot or GPTBot. Checking your server logs or robots.txt file shows which user agents are visiting your site. Search engine bots like Googlebot and Bingbot should generally be allowed, AI crawlers depend on whether you want your content used, and unidentified scrapers are usually worth blocking.

A business owner checks their server logs after a hosting bill spikes.

The list is full of names they don't recognize: Googlebot, GPTBot, SemrushBot, AhrefsBot, and a handful of visits with barely a name at all.

Some of these are helping the site get found in search. Some are feeding an AI model somewhere. Some are just costing bandwidth with nothing in return.

The real question isn't whether to block bots in general. It's which ones.

Here are plain user-agent examples for the visitors a small business site actually sees, and a practical way to decide which ones to allow and which to block in robots.txt.

What a User Agent Actually Is

Every time a browser or a bot asks your server for a page, it sends along a short line of text identifying itself. That line is called a user agent, and it's how a server, or a file like robots.txt, tells one visitor from another.

Flow diagram showing a browser or bot sending its user-agent string to a website's server

The user-agent string in an HTTP request

A user agent travels as a header on every request. A person browsing in Chrome sends something like Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36. A crawler sends its own version, usually shorter and with a name meant to be recognizable, like Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html). MDN's documentation on the User-Agent header covers the format in full, including why the string looks the way it does for historical reasons that go back decades.

Why robots.txt relies on the user-agent name

A robots.txt file works by targeting rules at a named user agent. A line that reads User-agent: Googlebot applies only to requests that identify themselves with that name. This is the entire mechanism behind allowing one bot and blocking another: the file doesn't see an IP address or a company, it sees whatever name the visitor chose to send.

Where to Find the User Agents Visiting Your Site

Before deciding what to block, it helps to know what's actually showing up. Guessing from a hosting bill or a vague sense that

Checking your server's access logs

Most hosting control panels keep raw access logs, or a summary of them, under a name like "Raw Access Logs" or "Visitors." Each line lists the date, the page requested, and the user-agent string that made the request. A few minutes scrolling through a week's worth of these logs usually surfaces the same handful of names over and over, which is a more reliable starting point than guessing from a bandwidth graph alone.

Testing a specific bot with a free checker

Reading raw logs tells you who showed up. It doesn't tell you whether your site is actually set up to let a given bot in or keep it out. RepGet's free Robots.txt Checker reads your robots.txt file and gives a verdict for named bots, search and AI crawlers together, so you can see in one place whether a rule is doing what you think it's doing. The AI Crawler Checker does the same for a narrower list, GPTBot, ClaudeBot, PerplexityBot and a few others, which is useful once you get into the AI crawler examples below.

Search Engine User-Agent Examples

Search engine crawlers are the easiest category to recognize once you know what to look for, since the major ones publish their own names and document them openly.

Googlebot and its variants

Google crawls under Googlebot's name using several different strings depending on what it's fetching. The main one, used for most pages, reads Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html). A version built to render pages the way a phone would appears as Googlebot Smartphone, with "Mobile" added into the string. Google's own documentation on its crawlers and fetchers lists each variant along with the exact token to look for, including separate crawlers used for images, video and ads.

Other major search engine bots

Bing crawls under Bingbot, with a string like Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm). Other search engines run their own named crawlers too: DuckDuckBot for DuckDuckGo, Baiduspider for Baidu, YandexBot for Yandex. For a small business site aimed at a US audience, Googlebot and Bingbot account for most of the crawling worth caring about, with the rest showing up in smaller numbers depending on where visitors are coming from.

User agent name

Example user-agent string

What it crawls for

Googlebot

Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

Google Search indexing

Bingbot

Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)

Bing Search indexing

DuckDuckBot

DuckDuckBot/1.1; (+http://duckduckgo.com/duckduckbot.html)

DuckDuckGo Search indexing

YandexBot

Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)

Yandex Search indexing

These strings are illustrative and can change as search engines update their crawlers.

AI Crawler User-Agent Examples

AI assistants and chatbots run their own named crawlers, and it's worth knowing these serve two different purposes that look the same in a log file but matter differently to a business.

Crawlers that power AI answers

Some AI crawlers fetch a page at the moment someone asks an assistant a question, pulling in current information to help build an answer. OAI-SearchBot, used by ChatGPT's search feature, and PerplexityBot, used by Perplexity, both fall into this group. A visit from one of these can be part of the reason a business gets mentioned when someone asks an assistant a relevant question. Our guide to getting mentioned in ChatGPT covers what that actually involves.

Crawlers used to train AI models

Other crawlers collect pages to train a model's underlying knowledge, with no connection to a specific question asked later. GPTBot, documented by OpenAI as the crawler used to improve its models, falls into this group, as does Google-Extended, a token that controls whether a page can be used to train Google's AI models, separate from whether it's indexed for Search. ClaudeBot, used by Anthropic, works the same way. Our guide to how an AI web crawler reads and indexes a site covers the difference between these two categories in more depth.

User agent name

Example user-agent string

What it's used for

GPTBot

Mozilla/5.0 (compatible; GPTBot/1.1; +https://openai.com/gptbot)

Training OpenAI's models

OAI-SearchBot

Mozilla/5.0 (compatible; OAI-SearchBot/1.0; +https://openai.com/searchbot)

Fetching pages for ChatGPT's search feature

ClaudeBot

Mozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)

Training Anthropic's models

PerplexityBot

Mozilla/5.0 (compatible; PerplexityBot/1.0; +https://perplexity.ai/perplexitybot)

Fetching pages to help answer Perplexity queries

Google-Extended

Controlled as a token in robots.txt, not a crawling bot with its own string

Permission signal for Google's AI training use

These strings are illustrative and may change as providers update their crawlers.

Scraper and SEO Tool User-Agent Examples

Not everything in a log file is a search engine or an AI assistant. A fair share of the names you'll see belong to SEO tools or scrapers with no documentation at all.

SEO tool bots crawling your site

SemrushBot and AhrefsBot both crawl the open web the way a search engine does, building the backlink and keyword data their platforms sell access to. If your business or an agency you work with uses one of these tools, its bot visiting your own site is expected and usually harmless. If nobody at your business uses either platform, a competitor or a stranger running a report on your site is often behind the visit, and that's still not something robots.txt fully stops, since a lot of the data these tools build comes from crawling other sites that link to yours, not from crawling yours directly.

Scrapers with no clear purpose

A good share of what shows up in a log carries a generic name like "python-requests," a blank user-agent field, or a string copy-pasted from a real browser to disguise an automated script as a person. These are usually scrapers, scripts pulling content, prices, or contact details, with no public documentation and no way to ask what they're doing with it. Our guide to the website traffic bot problem covers what this kind of traffic actually costs a site, beyond the obvious bandwidth hit.

How to Tell a Real Bot From One Faking Its Name

Every example above assumes the name in the log is accurate. That assumption doesn't always hold, and it's worth knowing why before you build a robots.txt rule around a name alone.

Why a user agent alone isn't proof

Anything that sends an HTTP request can put any text it likes in the user-agent header. A scraper with no connection to Google at all can send Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) word for word, and your server has no built-in way to tell the difference from that line alone. This matters because a block based purely on the name can be spoofed just as easily as a legitimate crawler can be allowed through by it.

Verifying Googlebot with reverse DNS

Google documents a specific method for confirming a request actually came from its crawler, based on the connecting IP address rather than the name it claims. The process, covered in Google's guide to verifying Googlebot, involves a reverse DNS lookup on the IP address to confirm it resolves to a googlebot.com or google.com domain, then a forward lookup to confirm that domain resolves back to the same IP. Most small business owners won't do this by hand for every visit, but it's worth knowing the method exists for the times a visit looks suspicious enough to check, such as an unusually high volume of requests claiming to be Googlebot from a single narrow window of time.

Deciding Which User Agents to Allow and Which to Block

Once you can tell a real search crawler from a disguised scraper, the actual decision comes down to a simple trade. What does letting this bot in get you, and what does it cost you to let it keep visiting.

What allowing a bot gets you

A search engine crawler needs to reach your pages before Google or Bing can show them to anyone, so blocking Googlebot or Bingbot removes your site from search entirely, not just from one ranking position. An AI crawler that powers live answers, like OAI-SearchBot or PerplexityBot, can only pull current information from your site if it's allowed to fetch it. A crawler used only for model training, like GPTBot, offers a different kind of trade: no immediate visibility benefit, just a question of whether you want your content used that way at all.

What blocking a bot protects you from

An unidentified scraper or a disguised script offers nothing back for the bandwidth and server load it uses. A heavy SEO tool bot from a platform nobody at your business uses can add up to real traffic over a month with no benefit to you. Blocking these doesn't cost you anything in search visibility, since they were never going to show your pages to anyone.

Bot category

Typical recommendation

Reason

Search engine bot (Googlebot, Bingbot)

Allow

Blocking removes your site from that search engine entirely

AI crawler powering live answers (OAI-SearchBot, PerplexityBot)

Depends

Allowing it can support a mention in an assistant's answer; blocking it removes that chance

AI crawler used for training (GPTBot, ClaudeBot)

Depends

No immediate visibility trade either way, so it comes down to whether you want your content used for training

SEO tool bot (SemrushBot, AhrefsBot)

Depends

Harmless if your business uses the tool, otherwise just added load with no benefit

Unidentified scraper

Usually block

No documented purpose and no benefit to your site

Decision tree for whether to allow or block a bot based on what type of user agent it is

Writing User-Agent Rules in robots.txt

Once you've decided which names to allow and which to turn away, the syntax for saying so is short.

Targeting one named user agent

A robots.txt file applies rules to whatever name follows User-agent:. To block one specific bot while leaving everything else untouched, a rule might read User-agent: GPTBot followed by Disallow: / on the next line. A separate block with User-agent: * and no disallow line underneath leaves every other bot, including Googlebot, free to crawl as normal. Each named bot needs its own block if you want different rules for different visitors, since a single disallow line doesn't apply across multiple names at once unless you list them separately. Our robots.txt generator guide walks through building a file like this from scratch, including the order rules need to appear in for a crawler to read them correctly.

Why robots.txt is a request, not a lock

It's worth being honest about what robots.txt actually does. Google's own documentation on how robots.txt works describes it as a set of rules well-behaved crawlers choose to follow, not a technical barrier that forces compliance. Googlebot, Bingbot and the major documented AI crawlers follow it. A scraper with no public documentation has no obligation to read the file at all, let alone respect what it says. That doesn't make robots.txt pointless, it's still the correct first step and the one every legitimate crawler checks, but it's not a substitute for server-level blocking if a persistent scraper is ignoring it outright.

A Worked Example: Auditing One Site's Bot Traffic

Imagine a local plumbing company pulls a week of access logs after noticing their hosting plan is close to its bandwidth limit. This example is illustrative.

User agent found in the logs

Visits that week

Decision

Googlebot

340

Allow

Bingbot

95

Allow

GPTBot

60

Allow, business wants content eligible for AI training

AhrefsBot

410

Block, nobody at the business uses Ahrefs

Unnamed script, blank user agent

1,200

Block

These figures are illustrative.

The two biggest sources of traffic in that week weren't search engines at all. AhrefsBot and the unnamed script together accounted for more requests than Googlebot and Bingbot combined, with no benefit to the business behind either one. Blocking those two in robots.txt, and keeping an eye on the unnamed script's IP range in case it ignores the file, addressed the bandwidth spike without touching anything that mattered for search visibility.

A Checklist for Reviewing Your Own User Agents This Month

A review like the one above doesn't need to happen every week. Once a quarter, or any time a hosting bill looks off, is usually enough for a small site.

  • Pull a week of raw access logs from your hosting control panel and list every distinct user-agent name that shows up.

  • Sort that list into search engines, AI crawlers, SEO tool bots, and anything unnamed or unfamiliar.

  • Run your current robots.txt through RepGet's free Robots.txt Checker to see what it currently allows and blocks for the bots you recognize.

  • Decide on each category using the allow-or-block framework above, rather than blocking anything unfamiliar by default.

  • Update robots.txt with any new rules, then check it again a few days later to confirm the change took effect.

A pass like this takes less than an hour for most small sites, and it's the kind of thing that only needs repeating when something changes, not every week on a calendar.

Common Mistakes With User Agents and robots.txt

A handful of errors show up often enough in small business robots.txt files that they're worth checking for directly.

Blocking everything with a careless wildcard is the most common. A line that reads User-agent: * followed by Disallow: / turns away every bot that respects the file, Googlebot and Bingbot included, often added in a hurry during a site rebuild and never removed. This is usually an accident rather than a decision, and it's worth checking your robots.txt after any redesign to confirm a leftover rule like this isn't still sitting at the top of the file.

Trusting a name in a log without verifying it is another. A spike in requests all claiming to be Googlebot is worth a reverse DNS check before you assume it's really Google, especially if the volume looks unusual for your site's size.

Blocking every AI crawler on principle, without weighing what each one actually does, is a third. Lumping GPTBot, OAI-SearchBot and ClaudeBot together and blocking all three removes any chance of a mention in a live AI answer along with any training use, when the two might deserve different answers.

Assuming robots.txt alone stops a persistent scraper is the fourth. As covered earlier, a scraper with no public documentation has no obligation to read the file at all, so a server-level block or rate limit is sometimes the only thing that actually works against one.

  • Blocking every bot by accident with a leftover wildcard rule after a redesign.

  • Trusting a user-agent name in a log without checking it against a reverse DNS lookup.

  • Blocking every AI crawler the same way, without weighing training use against live answer visibility separately.

  • Assuming robots.txt alone stops a scraper that was never going to read the file in the first place.

Where RepGet fits

Working out which user agents are visiting your site, and whether your robots.txt file actually reflects the decisions you've made about them, is exactly the kind of check that's easy to put off because it feels technical. RepGet's free Robots.txt Checker reads your current file and gives a plain verdict for named search and AI bots together, so you can see at a glance whether a rule is doing what you think it's doing, without needing to read the raw syntax yourself. The free AI Crawler Checker does the same for GPTBot, ClaudeBot, PerplexityBot and a few others, which is useful once you've decided which of those you want to allow.

Neither tool reads your server's raw access logs or tells you whether a specific visit was really Googlebot rather than something spoofing its name. That part still comes down to pulling your own logs and, in a doubtful case, checking the IP against Google's documented verification method. RepGet doesn't replace that judgment, and it doesn't guarantee a ranking, a Maps position, or a mention in an AI assistant's answer based on anything a robots.txt file allows or blocks.

If you haven't looked at your site's technical setup in a while, RepGet's free website audit crawls the site and gives it a 0 to 100 SEO score, flagging robots.txt and crawlability issues alongside everything else worth investigating. No account or credit card required.

The bottom line

A user agent is just a name a visitor chooses to send, and that name alone isn't proof of who or what is actually asking for your page. Search engine bots like Googlebot and Bingbot are usually worth allowing without a second thought, since blocking them removes your site from search entirely. AI crawlers split into two different jobs, training a model or fetching a page to help answer a live question, and the right call depends on what you want your content used for, not on the bot's name sounding unfamiliar.

Everything else, the SEO tool bots nobody at your business uses and the scrapers with no stated purpose at all, is usually safe to turn away without losing anything. The work isn't complicated once you know what to look for in a log file and what a robots.txt rule actually does. It just takes sitting down with the real names, not the assumptions, before deciding who gets in.

Find out what your site needs first

Before changing a single rule in robots.txt, see what your site's current setup actually allows and blocks. Run a free website audit with RepGet to check robots.txt and crawlability alongside everything else worth fixing. No account or credit card required.

FAQ

  • What is a user agent in simple terms?

    A user agent is a short line of text a browser or bot sends with every request to identify itself, like Googlebot or a version of Chrome. Servers and robots.txt files read this line to tell visitors apart.

  • How do I find out what user agent is visiting my website?

    Check your hosting control panel for raw access logs, which list each request along with its user-agent string. A week's worth usually surfaces the same handful of names repeating.

  • Can I block GPTBot without blocking Googlebot?

    Yes. Give GPTBot its own block in robots.txt with a disallow rule, and leave a separate block for other user agents without a disallow line. Each named bot follows only the rules under its own name.

  • Is it safe to trust a user agent string?

    Not fully. Any bot can send any name it likes, including "Googlebot," so the string alone isn't proof. Checking the connecting IP against Google's documented verification method confirms a doubtful case.

  • What happens if I block all bots in robots.txt?

    A wildcard disallow rule turns away every bot that respects the file, including Googlebot and Bingbot, which removes your site from those search engines entirely until the rule is fixed.

  • Does blocking AI crawlers hurt my SEO?

    Blocking a training crawler like GPTBot has no documented effect on search rankings. Blocking a crawler that powers live AI answers, like OAI-SearchBot, removes the chance of being pulled into that assistant's response.

  • How do I check if a bot is really Googlebot?

    Google documents a reverse DNS lookup on the connecting IP address, followed by a forward lookup to confirm it resolves back to the same IP, as the way to verify a request actually came from its crawler.

  • What's the difference between a bot and a user agent?

    A bot is the actual program making requests to your site. A user agent is just the name that bot chooses to send identifying itself, which may or may not be accurate.

Your website could be growing faster.

Discover what’s holding your website back with a free SEO audit. No account required.

  • Cancel any time
  • Set up in minutes