Digital Experience Custom User-Agent Header Guidelines
User-Agent headers are provided by default for your Availability Checks, and Synthetic transactions. The default values are listed below.
Availability Check default User-Agent header:
Mozilla/5.0 (Linux) AppleWebKit/537.36 (KHTML, like Gecko) SolarWindsTransactionBot/1.0 Safari/537.36 Chrome/134.0.0.0
Synthetic transaction default User-Agent header:
solarwinds/1.0 (www.solarwinds.com/solarwinds-observability)
However, you can also apply custom User-Agent headers when you are creating or editing an Availability Check or Synthetic transaction.
Incorrect or overly simplistic User-Agent strings can result in blocked requests, incomplete page loads, or rejected dynamic content. It's important to follow the Custom User-Agent Guidelines when applying your custom User-Agent header.
Custom User-Agent header guidelines
If you want to modify the default User-Agent header for your Availability check or Synthetic transaction, follow these rules.
1. Include a unique and descriptive identifier in your custom User-Agent string.
Why include a unique and descriptive identifier?
A descriptive identifier can include text such as your company name, a monitoring specific token (MyCompanySyntheticMonitor), or a reference to the tool in use. Using a descriptive identifier helps distinguish synthetic traffic from real users in logs, analytics, and security systems. It also helps with debugging and filtering.
2. Don't use the word "bot" in your identifier, unless your server is configured to allow it.
Why shouldn't I use "bot" unless my server is set up for it?
Many web application firewalls (WAFs), CDNs, and anti-bot services automatically block or challenge requests containing the word "bot". Using "bot" without proper configuration can cause your synthetic checks to be blocked or redirected to CAPTCHA or challenge pages, causing false negatives in monitoring.
3. SolarWinds strongly recommends that you extend the User-Agent of a browser the target page explicitly supports
Why should I do this?
Some websites rely on browser-like User-Agent strings to determine how content is served. If your custom string lacks common browser tokens such as Chrome, Safari, or AppleWebKit, you may encounter:
-
Blank or broken pages due to missing JavaScript or CSS
-
AJAX or API requests being rejected or returning different content
-
Server-side logic serving alternate or degraded versions of the site
-
Client-side rendering failures in SPAs (Single Page Applications)
Many websites implement User-Agent-based polyfills or downgrade logic, which can lead to unexpected behavior if the string doesn't match a known browser.
4. Use a valid and well-formed User-Agent string to ensure compatibility with web servers and proxies.
Custom User-Agent headers for Synthetic transactions
You can't set a different User-Agent for individual steps within your Synthetic transaction. The same custom User-Agent header is applied for all steps within the Synthetic transaction.
Test your custom User-Agent header
You can test your custom User-Agent header on the Test Definition phase when you are adding or modifying your Synthetic transaction. Click Run test to test the Synthetic transaction and User-Agent header.
Testing the Synthetic transaction helps to make sure that your application responds correctly and that no content is blocked or altered.
Custom User-Agent headers for Availability checks
Availability checks support custom User-Agent headers. Make sure to keep the User-Agent string lightweight and avoid unnecessary complexity because Availability checks are simple HTTP requests and don't require overly complex strings.