Skip to content

Track social bots: link previews in chats and social apps ​

Log Analyzer > Social Bots shows the requests chat and social apps make to draw the preview card under a shared link, and which of those links broke or answered slowly. EdgeComet counts 15 apps, from iMessage and WhatsApp to Facebook, LinkedIn and Pinterest. Also called link preview bots, link unfurlers or social media crawlers.

When someone pastes a link, the app requests the page to build the card: a title, an image and a short description. A link that answers with an error, or answers too slowly, can post as a bare link without a card. Meta, for one, asks that its crawler can fetch the content "within a few seconds".

EdgeComet records each of these requests as it serves it. The page lists the links people actually share and what each app got, with no log files and no test tool.

The Requests by App chart for edgecomet.com over 30 days, with lines for Facebook, LinkedIn, Slack, Telegram and a dashed Other line. LinkedIn peaks at 36 requests on Nov 4. Under the chart: Facebook 182, 40.2% of requests; LinkedIn 176, 38.9%; Slack 32, 7.1%; Telegram 25, 5.5%; Other 38, 8.4%

What the report shows ​

The Social Bots page counts the period's social bot requests, lists the problems they ran into, and shows which apps and pages they came for. It has a period filter and no segment filter.

  • Stat cards: requests, iMessage and WhatsApp shares, pages with errors and slow requests.
  • Needs Attention: the checks that found a problem, most severe first.
  • Requests by App: requests per day for the busiest apps.
  • Shared Pages: the pages social bots requested most.
  • Apps: every app with its requests, errors and IP check.

The report starts on the day EdgeComet began telling the apps apart. When the period starts earlier, a notice names that day and adds "Earlier days are not counted." With no social bot requests in the period, the page reads "No social bot requests in this period."

Which apps count as social bots? ​

A social bot is the fetcher a chat or social app sends to build a link preview. EdgeComet counts 15 apps in its Social Bots category: iMessage, WhatsApp, Facebook, LinkedIn, Pinterest, Telegram, X, Slack, Snapchat, Discord, Teams, LINE, KakaoTalk, Google Messages and Xing.

Facebook's fetcher, facebookexternalhit, builds previews for more than one app. Meta names it for apps "such as Facebook, Instagram, or Messenger", and the report shows all three as Facebook.

Other bots from the same companies are not social bots. Amazonbot and Bytespider (TikTok) are AI training bots. Meta Ads, Taboolabot and Slackbot, Slack's plain robot, are Other Bots: only Slackbot-LinkExpanding builds Slack's previews. See Bot categories.

How many social bot requests reach your site? ​

Four cards sum up the period. Each compares with the previous period once that period lies inside the report's data, and View opens the matching requests in Data Explorer.

The Social Bots page over 30 days. Four stat cards: Total Requests 8.1K, Facebook 89% and 7 more apps; iMessage & WhatsApp 342, iMessage 91%, WhatsApp 9.1%; Pages With Errors 27, Pinterest 11 pages and 3 more apps; Requests Over 5 s 0, None over 5 s. Below, Needs Attention lists five checks: P0 Campaign link returns 404 on 3 pages with 9 requests; P1 Shared page returns 404 on 6 pages with 38 requests; P1 Pinned page returns 404 on 11 pages with 31 requests; P1 Shared page refuses the app on 9 pages with 23 requests; P3 Cart or account page shared on 2 pages. A note reads "5 checks found nothing in this period."

CardWhat it shows
Total RequestsEvery request from a social bot, re-visits included. The footer names the busiest app and its share, such as "Facebook 40% and 7 more apps"
iMessage & WhatsAppChat shares: links pasted into iMessage or WhatsApp. The footer splits them, such as "iMessage 74%, WhatsApp 26%"
Pages With ErrorsPages that answered a social bot with a 4xx, a 5xx or no response. The footer names the app with the most, such as "Pinterest 14 pages and 2 more apps", or reads "Every request got a page"
Requests Over 5 sSocial bot requests answered in over 5 seconds. The footer names the app with the most, or reads "None over 5 s"

None of the cards counts hidden requests. A page is counted once across its query-string variants, such as /shoes?color=red and /shoes.

What counts as an iMessage & WhatsApp share? ​

A chat share is one request from iMessage or WhatsApp. EdgeComet counts it as one paste of the link, because both apps request the page from the phone that sends it. WhatsApp says it fetches the URL "on behalf of the sender".

Every other app fetches from its own servers and comes back on its own schedule. Pinterest, for one, revisits the pages behind pins to "detect and remove broken website links behind Pins". Their requests measure how often an app reads the page, not how often people share it.

The cards and columns label chat shares iMessage & WhatsApp. The issue dialog calls the same count chat shares.

Which requests are hidden? ​

A hidden request is a social bot request that EdgeComet leaves out of every number on the page, because it says nothing about a link someone shared. Needs Attention counts them in a note, by kind:

  • Spoofed social bots: requests that claim an app but come from outside its IP ranges, or that probe for files like /.env from an app EdgeComet cannot verify. Fake ones count in the High Risk tier of Bad Bots, and probes on the Security page.
  • Half-typed links: WhatsApp and Telegram request the link while the sender is still typing it, and the partial address gets a 404.
  • Platform checks: Meta and Apple ask for files under /.well-known/, such as apple-app-site-association.

Which shared links need attention? ​

Needs Attention lists every check that found a problem in the period, by severity and then by requests. Click a check to open its pages.

  • Sev: P0 active loss, P1 broken with demand, P2 strategic, P3 hygiene.
  • Pages: the pages the check found, with their share of the period's shared pages: every page a social bot requested.
  • Requests: the social bot requests that ran into the problem.
  • iMessage & WhatsApp: the chat shares of those pages in the period.
SevCheckWhat it finds
P0Shared page returns a server errorA social bot got a 5xx or no response from the page on two or more requests
P0Campaign link returns 404A link carrying utm_ or fbclid parameters returns 404. Paid and organic social posts point there
P1Shared page refuses the appThe site answered 401, 403, 429 or another refusal, usually from a firewall or bot rule
P1Pinned page returns 404Pinterest got a 404 when it rechecked a pin
P1Shared page returns 404A social bot got a 404 or 410 for a page people still send
P1Social bots wait over 5 s for a live renderThe page was not in cache, and EdgeComet rendered it while the social bot waited over 5 seconds
P2Link pasted with a line break returns an errorThe pasted link ends in %0A, %20 or an invisible character, and the server answers with an error
P2Origin takes over 5 s to answer a social botYour server took over 5 seconds to answer
P2App requests a malformed addressThe address holds >, data:image, a backslash or a second https:/, usually from a broken link in the page markup that the app followed
P3Cart or account page sharedA cart, checkout or account page was shared. It is tied to the sender's session, and the recipient most likely opens their own, empty page

A note row closes the list. "4 checks found nothing in this period." names the clean checks, and "703 requests hidden from every number on this page." splits the hidden requests by kind.

The Needs Attention card on stillrendering.work. P0 Shared page returns a server error: 5 pages, under 0.1%, 15 requests, 185 iMessage & WhatsApp. P1 Shared page returns 404: 214 pages, 4%, 224 requests. P1 Shared page refuses the app: 193 pages, 3%, 197 requests. P1 Social bots wait over 5 s for a live render: 5 pages. P2 Origin takes over 5 s to answer a social bot: 170 pages, 3%, 175 requests. Below, three notes: 4 checks found nothing in this period; 703 requests hidden from every number on this page, open to show 512 spoofed social bots, 164 half-typed links and 27 platform checks; and Campaign links can't be told apart

When no request in the period carried a tracking parameter, the note "Campaign links can't be told apart." appears, and campaign 404s count under the other 404 checks. The note adds that sites that strip tracking parameters never log them. See Tracking parameters.

With no problem found, the card reads "Every shared link answered with a page in time."

What does each check list? ​

Click a check to open its issue dialog. It shows the check's pages with the apps that hit them, where they sit in your site, and when.

The issue dialog for P1 Shared page refuses the app: 9 pages, 5% of 165 shared pages, 11 failed requests and 17 chat shares. "What this check finds" is open: "The site answered a social bot with 401, 403, 429 or another refusal." and "Usually a firewall or bot rule blocking the app; the app posts the bare link." On the left, Where they sit lists All 9 and six folders with 1 page each, plus other paths with 4. The table, URLs blurred, lists each page with its app (iMessage, Pinterest or Facebook), Response 403, Failed Requests, iMessage & WhatsApp, Days and Last Seen from Oct 31 to Nov 5

  • Figures: the pages and their share of shared pages, the requests that hit the check, and the chat shares of those pages.
  • What this check finds: the check's definition, as in the table of checks.
  • Where they sit: the folders that hold the pages. Click a folder to list only its pages, or All to list them all.
  • The table: one row per page with the Apps that hit it and the columns of the check's kind. A page whose latest answer was an error shows its URL without a title.
  • View rows: opens the matching requests in Data Explorer.
Kind of checkColumns
ErrorsResponse (the latest failing status, or No response), Failed Requests, iMessage & WhatsApp, Days, Last Seen
Slow answersMedian Wait, Longest, Slow Requests, iMessage & WhatsApp, Days
Cart or account pageRequests, iMessage & WhatsApp, Days

Click a column header to sort. The table shows up to 300 pages, and a line under it reads "Showing 300 of N pages. View rows opens all of them."

Which apps request the most? ​

Requests by App draws the social bot requests per day for the four busiest apps by name, and the rest as a dashed Other line. Under the chart, each line shows its requests and share of the total.

The time buckets are in UTC, and their width follows the period. Click a point or a total to open those requests in Data Explorer.

Which pages do people share? ​

Shared Pages lists the 12 pages social bots requested most in the period, with the apps that requested them.

The Shared Pages table for edgecomet.com. The home page leads with 7 iMessage & WhatsApp, 95 LinkedIn, 141 Facebook, 14 Slack and 1 Other request. Next come a blog post on request headers with 18 iMessage & WhatsApp shares, For SEO agencies with 32 LinkedIn requests, the iGaming page, an OpenSeoTest results post and the Log Analyzer landing page. Every row has 1 URL variant and a green 200

  • Page: the page title and URL, with links to Page Analysis and to the page.
  • iMessage & WhatsApp: the page's chat shares.
  • One column per app: the requests of up to three busiest other apps on these pages, such as LinkedIn, Facebook and Slack. Other adds up every remaining app, and appears only when a row has any.
  • URL Variants: how many addresses of the page bots requested, such as the page with ad or tracking parameters.
  • Latest Response: the status of the page's latest answer, green for 2xx, grey for 3xx and red for an error or No response. A cart or account page shows an amber Cart instead.

The numbers open the matching requests in Data Explorer.

Which apps can EdgeComet verify? ​

Apps lists every app that requested your site in the period, with its Requests, Pages, Errors and requests Over 5 s. IP Check says whether EdgeComet can verify the app's requests by IP address.

The Apps table for edgecomet.com over 30 days. Facebook: 182 requests, 12 pages, 0 errors, 0 over 5 s, Published ranges. LinkedIn: 176 requests, No published list. Slack: 32, No published list. Telegram: 25 requests on 24 pages, 2 errors, Published ranges. iMessage: 23, Sent from phones. WhatsApp: 8, Sent from phones. X: 6, Published ranges. Discord: 1, No published list

  • Published ranges: EdgeComet checks the app's requests against its IP ranges, and at least one request in the period came from them. This applies to Facebook, Telegram and X. See IP validation.
  • Sent from phones: iMessage, WhatsApp and Google Messages fetch from the sender's phone, so no address list can verify them.
  • No published list: the app publishes no list of its addresses, such as LinkedIn, Pinterest and Slack, or no request in the period came from a verified address.

The Requests and Errors numbers open the matching requests in Data Explorer.

How to read it ​

Read the Social Bots page by what people lose first, then by where the traffic comes from:

  • A P0 check appears. A link people share fails right now: a campaign link returns 404, or a page fails with server errors. Fix it first.
  • Shared page refuses the app. A firewall, CDN bot rule or rate limit blocks the app, and links to your site post without a card. Check the Apps column of the issue dialog to see which app.
  • Pinned page returns 404. Pinterest found the page behind a pin missing, and it removes broken links behind pins.
  • Requests Over 5 s rises. Look at the two slow checks: live render means the page was not cached, origin means your server was slow.
  • The hidden count jumps. Spoofed requests went up. Open Bad Bots to see which bot names are faked.
  • No social bot requests in this period. EdgeComet saw none. It records the requests your CDN routes to it, so check that your routing rule sends link preview bots.

How to fix a broken shared link ​

Fix each problem where it starts, then let the apps fetch again:

  • 404s, campaign 404s and pinned 404s: fix the link where it was posted if you can. Otherwise redirect the old address to the right page on your server, so people who click it land there too. An Edge SEO redirect changes what bots get, and reaches people only with the snippet. See What bots and visitors get.
  • Refusals: allow the app's user agent in your firewall, CDN bot protection and rate limits. Check that no URL rule or Block dimension in EdgeComet answers it with 403 or 429.
  • Slow live renders: pre-cache the pages people share, so EdgeComet answers from cache. See Pre-cache a list of URLs and Pre-cache pages before bots request them.
  • Slow origin answers: speed up the page on your server, or serve it from cache.
  • Line breaks and malformed addresses: an Edge SEO redirect with a capture pattern can send the broken address to the page. See Send each URL to its own address. For malformed addresses, also fix the link in your page markup.
  • Server errors: open the URL in Page Analysis to see each answer, and fix the error on your server.

Apps keep their own copy of a preview. Meta lets you "force a crawl" of a fixed page with its Sharing Debugger. A check's row leaves Needs Attention once the period no longer holds a failing request.

What to do next ​

Inspect the requests, ask about them, and check the bots that fake app names:

  • See every request. Data Explorer > Bot log has the Bot Type value Social Bots and the Social bot check filter, which the report's links set for you. Two differences are expected: Data Explorer keeps half-typed 404s, and lists a page's query-string variants as separate rows. See Data Explorer Bot log.
  • Ask about it. Ask in the header starts with "Which shared links are broken?", "Which pages get pasted in chats?" and "Which apps fetch this site?". See Ask about any report.
  • Use it from an AI assistant. The MCP tool get_report returns the report's numbers through the social_bots providers. See get_report.
  • Check fake app names. Requests that fake a social app count as fake in Bad Bots, and file probes in Security.

How this compares with sharing debuggers and server logs ​

The Social Bots page shows what each app got when people actually shared your links, from live traffic:

  • Sharing debuggers: Meta's Sharing Debugger and similar tools test one URL you pick, when you ask. The Social Bots page lists every link people shared across 15 apps, with what each app got and when.
  • Server log analysis: iMessage's user agent also names facebookexternalhit, which a log filter counts as Facebook. EdgeComet tells the two apart, checks Facebook, Telegram and X by IP, and hides spoofed requests, half-typed links and platform checks.
  • Uptime monitors: a monitor checks your pages with its own user agent. A firewall rule that blocks only an app's fetcher stays invisible to it, and shows here as Shared page refuses the app.

See How EdgeComet collects data: no log files, no crawler.

Where to find it ​

In the dashboard: Log Analyzer > Social Bots.