Blog

utm_source=chatgpt.com: how to measure traffic from ChatGPT

Markdown

UTM tag and referrer, a segment in Metrika, landing pages, GA4, and the roles of OAI-SearchBot, GPTBot, and ChatGPT-User.

Read full article

ChatGPT itself adds the utm_source=chatgpt.com tag to links to websites in its search results, so the website owner can see these visits in analytics. In Yandex Metrica, it appears in the “Reports → Sources → UTM tags” report, and you can combine the observed signals in a segment using tag OR an exact ChatGPT referrer host. This collects attributable visits visible to analytics, not every visit or a proof of who clicked.

A chatgpt.com row has appeared in Metrica, and no one knows who is behind it: an ad, a bot, or real people. The marker attributes a visit to ChatGPT in analytics, but does not by itself prove a human click or recommendation. The “Landing pages” report shows the entry pages for visits matching that attribution rule.

Let’s look at it in order: where the tag comes from, where it appears in Metrica, where it isn’t visible, and which pages the AI is already recommending.

Key points

ChatGPT itself appends the utm_source=chatgpt.com tag to links from its search: it is an attribution signal for links from answers, not an authenticated identity check. In Metrica, it is in the “UTM tags” report, in the UTM Source row chatgpt.com. Some visits arrive without a tag, with the chatgpt.com referrer, so create a segment using “tag OR referrer” and open “Landing pages” for it. The number will be lower than the actual total: copied URLs show up as direct visits, while mentions without a click are not visible at all. For the tag to appear, the site must be open to the OAI-SearchBot crawler.

OpenAI adds the tag. When ChatGPT searches the internet and gives a link to your site in its answer, it appends utm_source=chatgpt.com to the URL itself. There is no advertising involved, and your settings have nothing to do with it: the parameter comes from ChatGPT along with the visit.

In a person’s address bar, this kind of visit looks like this:

https://example.com/page?utm_source=chatgpt.com

Everything after the “?” was added by ChatGPT; the rest of the URL is yours. Metrica reads this suffix and puts the visit in the tag report.

The chatgpt.com row therefore groups visits carrying that source marker. A copied, manually added, or forged tag can appear in the same row, so use it as attribution evidence rather than proof of a real person or recommendation.

This row is not a bot-identification report. OAI-SearchBot crawls websites so they can appear in ChatGPT search. ChatGPT-User opens a page when a person in a chat asks it to look something up. Both request pages themselves; they do not follow links from answers, and they have no tags.

The Ailoot documentation describes connecting models and working with the API.

Where the tag appears in Metrica and why to check it for each page

Path in Metrica: Reports → Sources → UTM tags. Under the UTM Source grouping, look for the chatgpt.com row.

Metrica distinguishes uppercase and lowercase letters in tag values. chatgpt.com and ChatGPT.com will appear as different rows in the report, so search in lowercase, exactly as ChatGPT sets the tag.

Next to the row, check bounces and time on site. The person came from an AI answer with a specific question. The bounce rate shows whether they found an answer on the page or closed it after a couple of seconds.

The overall figure for the site says little. Track search traffic for each article to understand which articles bring traffic from the internet, from Yandex and Google, and which do not.

The approach is the same with ChatGPT: see which pages it sends people to. One row in “UTM tags” is not enough for that.

How to combine visible ChatGPT attribution signals: tag or referrer

Metrica determines where a visit came from by the tag, if one is present on the first page view. If there is no tag, it checks the referrer, the URL of the page the person came from. So visits from ChatGPT are in two places: those with a tag in the “UTM tags” report, and those without one in the “Sites” report with the chatgpt.com referrer.

One condition will collect only some of the visits. You need both:

  1. Open the Reports → Sources → UTM tags report.
  2. Add a tag condition to the segment: UTM Source equals chatgpt.com.
  3. Add a second condition using “OR” for a referrer that matches the regular expression below.
  4. Save the segment so you can compare periods using the same rules.
  5. Open the “Landing pages” report for it.

Referrer expression:

^https?://chatgpt\.com(:[0-9]+)?([/?#]|$)

This expression is for a full referrer URL: it anchors the scheme and host, allows an optional numeric port, and requires the host to end before a path, query, fragment, or the end of the value. It does not match chatgpt.com.evil.example or a path that merely contains chatgpt.com. If the selected report field contains only a hostname, use ^chatgpt\.com$ instead. Check the actual field values before choosing the expression.

Keep other OpenAI referrals in a separate segment rather than merging all of openai.com into ChatGPT traffic. For a full URL, ^https?://([a-z0-9-]+\.)*openai\.com(:[0-9]+)?([/?#]|$) matches that separate domain family; it does not establish a ChatGPT recommendation.

The backslash before the dot is necessary: without it, the dot in the expression means any character. And don’t shorten the expression to ai. That would match any domain where those 2 letters appear next to each other, and visits from other sources would end up in the segment.

The saved segment works in any Metrica report. If goals are configured on the site, the same segment shows whether people from ChatGPT submit inquiries or just read.

Which entry pages receive attributed visits: the “Landing pages” report

The “Landing pages” report for the segment shows entry pages for visits carrying the selected ChatGPT attribution signals. It does not reveal the wording of the answer, prove a recommendation, or authenticate the visitor as human.

AI traffic usually starts working when the models are updated.

So a few initial visits are normal. Don’t draw conclusions based on the first week; return to the segment after model updates.

Put a list of pages that bring visits from Yandex next to it, and see which pages appear on both lists and which ones ChatGPT chose on its own.

Work on the pages in the list as you would for Yandex: add to them and keep them in good shape. That’s the principle: produce lots of good, high-quality articles. Search tracks whether people read them.

To get free traffic from Yandex and Google, you need a whole promotion department. That’s why I hand traffic analysis over to an agent: it starts up every day at 9 in the morning, analyzes what it did yesterday and the traffic results, and makes its own decisions.

Why visits from ChatGPT are fewer than they seem: direct visits, GA4, and answers without clicks

The segment is an incomplete attribution view, not a guaranteed lower bound: missing signals omit visits, while copied or manually added markers can also include visits that did not come directly from an answer. A visit without a tag and without a Referer header is recorded by Metrica as a “Direct visit.” This happens when someone copies the URL from an answer and pastes it into a browser, or when a link opens without passing the referrer. These visits cannot be recovered later.

In Google Analytics 4, the same tag appears as the chatgpt.com session source. The method is the same there: tag or referrer.

There are also visits that will not appear at all. ChatGPT may name your website or summarize a page, but the person may not go anywhere. No analytics system will see that interaction. You can notice it indirectly through an increase in searches for your company name and through answers to “How did you hear about us?” on an inquiry form, if you add an option for AI.

Where a visit from ChatGPT appears:

SituationMetricaGA4
Link with a tag from ChatGPT search“UTM tags,” UTM Source chatgpt.comSession with the chatgpt.com tag
Visit with a referrer but no tag“Sites,” referrer chatgpt.comReferrer chatgpt.com
URL copied or opened without a referrer“Direct visits”Direct traffic
Mention without a clickNot visibleNot visible

If you add utm_source=chatgpt or utm_source=chatgpt.com yourself to links in posts or newsletters, those visits will be mixed with visits from ChatGPT answers. The report will no longer answer the question of what the AI recommends.

Use a different value for your own tracking, such as utm_source=telegram, and always write it the same way, with the same capitalization. Keep one table of your own tags showing which value is used on which platform. Otherwise, six months later, the report will contain Telegram, telegram, and tg, and you will have to guess whether they are the same source.

A tag in someone else’s link shows that the URL carries that source value. It may have been copied from a ChatGPT answer, but anyone can add the value, so it does not prove the link’s origin or that the surrounding text was written by AI. You can delete the suffix after the “?” and the page will open the same way.

How to appear in ChatGPT answers so the tag appears

If the chatgpt.com row in the report is empty, first open robots.txt. A site blocked to OAI-SearchBot does not appear in ChatGPT search answers; at best, it remains a navigation link. Do not block OAI-SearchBot.

Open your site’s /robots.txt address in a browser and look for 2 things. First, a User-agent: OAI-SearchBot block with the line Disallow: /. Second, a general User-agent: * block with Disallow: /: it blocks the site for all bots that do not have their own separate block.

GPTBot and OAI-SearchBot are configured separately. GPTBot collects texts to train models; OAI-SearchBot is needed for search. You can allow search and block training:

User-agent: OAI-SearchBot
Allow: /

User-agent: GPTBot
Disallow: /

After you edit robots.txt, OpenAI systems need about 24 hours to take the change into account.

ChatGPT-User arrives in response to a person’s action in the chat, and robots.txt rules may not apply to it. Its settings do not affect whether a page appears in search answers.

Next, you just have to wait for model updates and open the segment again. We’ll see.

Which pages on your site is ChatGPT already recommending? Compare what the AI chooses on your site.

Frequently asked questions

A week after editing robots.txt, there are still no visits from ChatGPT: what should I check?

If OAI-SearchBot is allowed, what happens next is up to ChatGPT search itself. Open the segment for a one-month period and check both reports, “UTM tags” and “Sites”: it’s easy to miss a few visits on a one-week chart. And return to the segment after the next model update.

Do I need to tag links for AI myself?

No. ChatGPT itself creates the link in its answer and adds utm_source=chatgpt.com to it. Your task is to keep the site open to OAI-SearchBot and check the segment.

Sources

You can continue working with AI on Ailoot.

More details

Questions about utm_source=chatgpt.com: how to measure traffic from ChatGPT

Why not match every referrer containing chatgpt.com or openai.com?

A substring can match an unrelated hostname or a URL path, and openai.com includes pages beyond ChatGPT. Match the complete ChatGPT hostname in the actual field format and keep other OpenAI referrals in a separate segment.

No. It is an attribution signal, and tags can be copied or manually added. The segment’s landing pages show matching entry visits; they do not authenticate the visitor or reveal the wording and intent of the answer.

All articles