Method · Updated 2026-11-07

Data sources and method

seops shows numbers it reads from other services or measures itself. For each module: the source, how often it is read, how late it is, how it is calculated, and the limits you should keep in mind before acting on it. Times are Istanbul time (UTC+3).

Google Search Console

Source
Search Console Search Analytics API, read with the read-only seops service account you add to your property.
How often
When you open a report; cached for 1 hour (15 minutes for the hourly view of today and yesterday).
Delay
Google publishes daily totals 2–3 days late. seops also asks for fresh data, so the last days are incomplete and still change.

How it is calculated

  • Clicks, impressions and average position are Google's figures; seops does not recompute them. CTR is clicks divided by impressions.
  • Average position is Google's: the site's topmost position in each search, averaged over impressions.
  • Opportunity queries are filtered from the same data: position 4–20, many impressions, low CTR, with the page that gets them.
  • A Search Console day is a Pacific Time day; the hourly view of today and yesterday is shown in your time zone.

Keep in mind

  • Google leaves out very rare queries for privacy, so query rows add up to less than the site total.
  • seops calls fewer than 50 clicks or 500 impressions in 28 days a small sample: a few clicks can look like a big percentage change.
  • Search Console includes AI Overview appearances in Web search totals and does not report them separately.

Search rankings

Source
Search Console: the impression-weighted average position of each tracked keyword (exact query match), per day and device.
How often
Every day at 06:00 (03:00 UTC); the last 10 days are rewritten each time.
Delay
The same as Search Console: the newest 2–3 days are incomplete.

How it is calculated

  • Up to 200 keywords per site. Desktop and mobile are kept apart; tablet counts as mobile.
  • Positions are written down to 100. A day on which the keyword had no impressions has no position.
  • Search Console and Bing positions cost no credits.

Keep in mind

  • This is an average over every search that showed your page, not one check from one place. Two people searching the same words can see different results.
  • A daily real-Google position check from our own infrastructure is coming soon and will run on pack credits. Until it opens, positions in seops come from Search Console and Bing only.

Bing and Yandex

Source
Bing Webmaster Tools API (your API key) and Yandex Webmaster API (your OAuth token).
How often
Read in the background and cached for 12 to 24 hours.
Delay
Each engine publishes with its own delay; seops cannot shorten it.

How it is calculated

  • Bing position is Bing's average impression position, weighted by impressions when rows are combined.
  • Yandex: clicks, impressions, queries, index and site issues as Yandex reports them.

Keep in mind

  • Bing and Yandex numbers are not directly comparable with Google's: each engine counts impressions and positions its own way.

Google Analytics 4

Source
Google Analytics Data API, read with the same service account (Viewer role).
How often
When you open a report; cached for 1 hour (5 minutes for today). Live visitors refresh every 30 seconds.
Delay
Google says GA4 processing can take 24–48 hours; today's and yesterday's numbers can still rise.

How it is calculated

  • Aggregated reports only: users, sessions, engagement, key events, channels, landing pages, devices and cities. No user-level data.
  • AI-assistant traffic is the sessions whose source matches ChatGPT, Perplexity, Gemini, Claude, Copilot, DeepSeek, Grok, Meta AI and a few others.

Keep in mind

  • An assistant visit is recognised only when the browser passes a referrer or a utm_source; without one it shows up as Direct.
  • GA4's own data thresholds and sampling apply to what seops reads.

seops Analytics

Source
The seops script on your site (2.1 KB, 1.2 KB compressed), sent to i.seops.app and stored in Cloudflare Analytics Engine.
How often
Live; a daily summary of the previous day is written at 03:30.
Delay
Seconds for raw hits.

How it is calculated

  • One request per page view, then time on page and scroll depth when the page is left, plus the events you send.
  • No cookies, no browser storage, no persistent identifier. Visitors within one day are told apart by a hash of a daily salt, IP address, user agent and site key; each day's salt is deleted two days after that day ends, and the raw IP is never stored.
  • Known bots and crawlers are recorded as bots and left out of reports. Nothing is sent from localhost or automated browsers.
  • The query string is not sent, except UTM tags, the presence (not the value) of an ad click ID and a site-search parameter you allow.

Keep in mind

  • The same person on two days counts as two visitors: returning visitors across days are not available, by design.
  • Some ad blockers block the script. The numbers are measurements, not an audit.
  • The last 90 days come from raw hits; longer ranges from daily summaries (top 200 per list). The storage layer may sample under very high volume and compensates in totals.

AI visibility

Source
ChatGPT, Claude, Gemini and Perplexity, asked directly through Cloudflare AI Gateway with live web search on.
How often
Weekly: every Monday from 07:00 each active prompt is queued for each selected engine, and answers are processed in batches every 30 minutes. You can also run one prompt now.
Delay
None beyond the run: an answer is stored the moment the engine returns it.

How it is calculated

  • Up to 20 prompts per site. Each prompt × engine is one answer, stored in full with its sources and the searches the model ran.
  • ChatGPT runs on the OpenAI Responses API with web search, Claude on the Anthropic Messages API with web search (up to 3 searches), Gemini with Google Search grounding, Perplexity on Sonar. The project's country is sent as the approximate location where the API accepts one; the model name is stored with each answer.
  • Mention: one of your brand terms or your domain appears in the answer text as a whole word, ignoring case and accents. The first part of the domain also counts if it has 5 or more letters.
  • Citation: your domain or one of its subdomains is in the answer's source list. Citation position is its place in that list, in the order the engine returned it; first is 1. Gemini's Google redirect links are resolved to the real address first.
  • Mention rate and citation rate are the share of answers in the period with a mention or a citation.
  • Each answer runs on pack credits. Without enough credits it waits and is retried the next day; after a week it gives way to the new week's run. A failing answer is tried up to 3 times.

Keep in mind

  • Answers are samples, not a measure of everyone's experience: one answer per prompt and engine per week. The same question can get a different answer a minute later.
  • Answers come from the providers' APIs with web search, not from the apps a signed-in person uses; memory, personalisation and app features differ.
  • Mention matching is literal: a misspelt brand or a brand described without its name is not counted, and a common word used as a brand term can over-count.
  • With 20 prompts and four engines, one answer moves a rate by more than one percentage point. Read trends over several weeks.

Cloudflare

Source
Cloudflare GraphQL Analytics API and REST API, with the read-only API token you create for the zone.
How often
When you open a report; cached for 30 minutes to 1 hour.
Delay
Cloudflare's data is close to real time; seops adds at most the cache time.

How it is calculated

  • Security events: visitor requests grouped by security action and source (WAF, rate limiting, bot rules), with countries and paths.
  • AI crawlers: requests grouped by user agent and by the action Cloudflare took.
  • Edge errors: 4xx and 5xx responses to visitors in the last 7 days; cache status by path.
  • Real-user Core Web Vitals: if Cloudflare Web Analytics is on for the site, p75 LCP, INP and CLS of the last 28 days by page and device.
  • Workers, D1 and R2 usage of the account.

Keep in mind

  • Cloudflare's adaptive datasets are sampled at high volume: counts are estimates Cloudflare scales up, so small numbers can jump.
  • Only traffic that passes through Cloudflare is seen. A crawler is counted under the user agent it sends; Cloudflare's verified-bot flag is shown where available.
  • Web Analytics data exists only for visitors whose browser ran its beacon.

Page speed

Source
Google PageSpeed Insights API: a Lighthouse lab run plus Chrome UX Report (CrUX) field data when Google has it.
How often
The home page and the most important pages (10 by default; 20 or 50 selectable), on mobile and desktop, each re-measured every 7 days in batches every 10 minutes.
Delay
Lab: the moment of the run. Field (CrUX): the 75th percentile of real Chrome users over the last 28 days.

How it is calculated

  • Importance ranks pages by Google clicks, with impressions and Analytics sessions as support. Without Search Console, the start of the sitemap is used.
  • Rating: the page's own field data (LCP, INP, CLS) when it exists, otherwise the lab values, with TBT in place of INP.
  • When the page has no field data of its own, CrUX may report the whole origin; the panel marks it as origin data.
  • Each measurement (page × device) uses 2 site credits.

Keep in mind

  • Lab scores vary from run to run with network and server load. Compare trends, not single runs.
  • Pages with little Chrome traffic have no field data.
  • Two failed measurements in a row raise an alert; a 403 often means a WAF rule is blocking PageSpeed.

Site audit

Source
seops's own crawler (user agent seopsBot/1.0) fetching the URLs in your sitemap.
How often
Each page is re-checked every 7 days, in batches every 10 minutes, keeping the load well below one request per second per site.
Delay
None: what the server returned at check time.

How it is calculated

  • Sitemaps come from the Sitemap lines in robots.txt, otherwise /sitemap.xml; sitemap index files are followed.
  • Checks: status code, redirect, noindex (meta tag and X-Robots-Tag), title (missing, under 20 or over 65 characters, duplicate), meta description (missing, under 70 or over 165, duplicate), H1 (missing or several), canonical (missing or pointing elsewhere), JSON-LD present, thin content (under 250 words), slow response (over 2 seconds).
  • 403, 429 and 503 are reported as blocked, usually a WAF or rate-limit rule.
  • One site credit per page checked. Excluded paths are not crawled.

Keep in mind

  • The crawler reads the HTML the server sends and does not run JavaScript. Content that appears only after scripts run is not seen.
  • Only sitemap URLs are checked; pages missing from the sitemap are not found by following links.
  • Length limits are guidelines, not Google rules.

Indexing

Source
Search Console URL Inspection API for Google; IndexNow for Bing, Yandex and the other engines that take part.
How often
URL inspection: batches every 10 minutes within Google's quota of 2,000 inspections per site per day; each page at least every 14 days, most important first. IndexNow: changed sitemap pages once a day after 09:00, if automatic submission is on.
Delay
URL inspection shows Google's last known state, which can lag behind a recent crawl.

How it is calculated

  • Importance score: Google clicks weigh most, impressions and Analytics sessions support; the top 20% of pages are high.
  • Pages you requested indexing for in Search Console are inspected again 1 hour later and then over the following 14 days.
  • IndexNow goes to Yandex first (the protocol shares a submission with the other engines) and directly to Bing if Yandex does not accept it; at most 500 URLs per submission.
  • Google offers no API to request indexing of ordinary pages; seops submits the sitemap and checks the status.

Keep in mind

  • URL inspection results are per URL and can differ from the totals in Search Console's page indexing report.
  • An accepted IndexNow submission means the URLs were received, not that they will be indexed.

Schedule

Background jobs that write the numbers above. Istanbul time (UTC+3).

WhenWhat runs
Every day 00:00Daily site and pack credits renew; they do not carry over.
Every day 03:30seops Analytics daily summary of the previous day.
Every day 06:00Search Console positions of tracked keywords (last 10 days rewritten).
Every day after 09:00IndexNow: changed sitemap pages, if automatic submission is on.
Every 10 minutesBatches of URL inspection, site audit, page speed and access checks.
Every 30 minutesPending AI-visibility answers, alerts and other queued jobs.
Monday 07:00AI-visibility prompts queued for the week; weekly summary written.
Wednesday 08:00Last week's summary rewritten with complete Search Console data.

Credits

Reading Search Console, GA4, Bing, Yandex and Cloudflare costs no credits. Site audit, page speed and URL inspection use the free daily site credits; AI-visibility answers use pack credits only. The cost of each operation is on the pricing page. Pricing →

Start with one site, free

The first site is free forever and asks for no card. Every extra site is $2.50 a month.