Crawl Foundry
Position Tracking

Measure a controlled search cohort without losing its context

Position Tracking turns retained organic rank and SERP observations into a controlled timeline. It is useful when tracker membership, context, coverage, run state, and calculation boundaries stay visible, and when the team treats movement as evidence to investigate rather than an automatic diagnosis.

Defined scope

Keep domain, keywords, market, device, depth, and cadence explicit.

Repeated evidence

Read current rank together with history, coverage, and landing-page context.

Verified decisions

Investigate the cause and confirm outcomes with another comparable measurement.

Start with the tracker address, not the headline number

A Position Tracking value only has meaning inside a defined evidence address: workspace, own domain, keyword cohort, location, language, device, acquired depth, and measurement time. The tracker selector chooses the schedule whose membership and SERP context feed the reports. Crawl Foundry follows the newest visible schedule by default, so check the selector before comparing a screenshot, export, or earlier review.

The Workspace option is different. It is a fallback view across eligible measurements already stored in the workspace, not a campaign with one stable membership contract. Use a selected tracker for repeatable monitoring. Use the workspace view to find existing evidence, then narrow the investigation before calling a change comparable.

Scope fieldWhat it controls
Own domainThe workspace property whose organic appearances are measured.
Keyword cohortA fixed direct selection or the current membership of a linked list.
Location and languageThe requested search market and language context.
DeviceA desktop or mobile SERP observation; one schedule can request one or both devices.
DepthTop 10 or Top 100 acquisition. Missing below the acquired range is not a universal absence.
Window and runWhich retained measurements contribute to current values, movement, and history.

Choose whether membership should stay fixed or follow a list

The creation flow accepts manually entered keywords or an existing Keyword Database list. Manual input is trimmed, lowercased, and deduplicated. It creates a fixed direct cohort. A hand-picked subset of a list is fixed as well. Choosing the full list creates a dynamic cohort whose membership is resolved again when a run starts, so later list edits can change the requested keyword count and estimated cost.

Saving manually entered terms as a reusable list is a separate best-effort step. The tracker can still be created when that convenience action fails. Record whether a review used direct membership or a live list because two schedules with the same label can otherwise represent different sets over time.

  • Use a fixed selection for experiments, releases, migrations, and other comparisons that require a stable denominator.
  • Use full-list membership when the maintained list itself defines the campaign and membership changes are intentional.
  • Document additions and removals from a dynamic list beside the next comparison.
  • Do not interpret a cohort-level delta until you have ruled out membership change.

Create the tracker as four explicit decisions

Direct keyword selections are SERP schedules. A list-backed schedule can also be configured for supported keyword-data packages, but the Position Tracking reports described here depend on stored rank and SERP evidence. Keep the selected data family visible when two schedules use the same list.

1
Confirm or add the workspace's own domain. Changing it changes the subject of every report, not merely a label.
2
Choose manual keywords, a full list, or a fixed subset. Review normalization, selection size, and the applicable workspace limits.
3
Add optional competitor domains only when they are useful comparison subjects. Ranking domains and business competitors are not automatically the same thing.
4
Set the SERP data family, cadence, Top 10 or Top 100 depth, location, language, one or two devices, and an optional monthly budget ceiling. Read the live estimate and balance before creating the schedule.

Move through the reports by question

The Overview is an orientation layer. A movement becomes useful only after the relevant keyword, URL, SERP context, measurement date, and run status have been opened in the appropriate detail report.

ReportQuestion it can answer
OverviewWhere did visibility, estimated traffic, average position, placement buckets, or the strongest rows change?
RankingsWhich measured keyword, position, URL, volume, tag, movement, and history support the signal?
PagesWhich currently ranking URLs carry the cohort, and what separate Site Audit evidence exists for them?
SERP featuresWhich supported result modules were present, and where is ownership known, absent, or unresolved?
CompetitorsHow do approved and discovered domains appear across the same bounded keyword set?
CannibalizationDid several own-domain URLs appear together, did the ranking URL merely switch, or is legacy evidence insufficient?
SchedulesWhat was configured, when should it run, what happened in each run, and what did it cost?

Read every overview metric with its denominator

Visibility is a CTR-weighted index over the loaded cohort. Position 1 receives the reference weight of 31.5 percent, positions 2 through 10 receive the product's declining curve, and positions below 10 or not ranking contribute zero. One hundred percent would mean that every loaded keyword ranks first. This is not Search Console visibility, impression share, or the visibility of the whole domain.

Estimated traffic sums known monthly search volume multiplied by the same position curve and rounds each keyword estimate. Unknown volume is not converted into a measured zero. When some rows lack volume, the displayed total is a lower bound for the loaded set; when no volume is known, the metric is unavailable.

Average position uses ranking keywords only and counts non-ranking rows separately. A smaller value is better, but the average can improve while coverage shrinks. Share of voice divides the own domain's estimated traffic by the estimated traffic of all currently compared domains over the same loaded keywords. It requires both volume and competitor evidence and is not a market-share figure.

Overview elementRead it as
Top 3, 10, 20, 100Cumulative membership of each boundary, not four exclusive buckets.
Entered and leftBoundary changes against each keyword's previous measured day.
Top keywordsA sortable preview of the loaded rows, currently eight by default.
Top pagesA sortable preview grouped by the URL that currently ranks.
UpdatedThe newest captured time among the loaded keyword rows, not proof that every row is equally fresh.

Understand how the daily trend is constructed

The surface currently requests a 30-day window by default, subject to the effective workspace policy. Each keyword contributes a bounded series, currently up to 30 points. The chart creates a UTC day axis between the first and last retained observation in the loaded set. If a keyword has no new measurement on a day, its last known rank is carried forward. Days before its first observation count as not ranking.

This last-observation-carried-forward model makes schedules with different collection days readable on one axis, but it does not create a measurement for an unobserved day. The line is therefore a daily presentation of retained evidence, not a promise that the provider was called every day. Current and previous positions use the latest and preceding measured day for each keyword, which may differ from a simple yesterday comparison.

  • Top-placement trends show cumulative Top 3, Top 10, Top 20, and Top 100 counts.
  • Visibility keeps the entire loaded cohort in its daily denominator.
  • Average position excludes non-ranking rows from the mean on that day.
  • Estimated traffic inherits missing-volume limits and the fixed CTR model.
  • A one-day series is an observation, not a trend.

Keep device, market, depth, and competitors attached

The fact line beside the tracker names the own domain, device, language, location code, loaded keyword count, active competitor count, acquired depth, and newest loaded update when available. Treat it as part of the metric. If several stored SERP contexts are visible, the context selector can switch the report without making those contexts directly comparable.

Approved competitor domains are workspace records. Crawl Foundry compares their latest retained ranks with the own domain across the same loaded keywords and reuses the own cohort's volume values for traffic estimates. The main overview carries a bounded inline set and can load additional active competitors in bounded pages. Domains discovered in stored Top 10 results are candidates, not automatically approved commercial competitors.

Distinguish missing setup, missing data, zero, and bounded coverage

No own domain means the workspace subject is missing. A configured tracker with no captured rows means no measurement is available yet; it does not mean every keyword ranks outside the Top 100. A running banner reports dispatch or execution progress and can show fetched versus requested counts. It is not a terminal result.

The overview read model is deliberately bounded. Current defaults allow up to 100 keywords, 1,200 workspace snapshot rows, 500 scanned list members, six URLs and 30 history points per keyword, 20 active competitor records with five inline at a time, 25 visible SERP contexts, and 50 discovered domains. Effective plan or safety policy can lower these values. A truncation notice means the report describes the loaded subset, so totals and comparisons must not be promoted to workspace-wide facts.

StateSafe interpretation
Dash or unavailableThe required input or evidence is missing.
Measured zeroThe necessary evidence exists and the calculation returns zero.
Run in progressSome or all requested work is still non-terminal.
Partial or failed runUse requested, fetched, no-data, failure, and cost fields before reusing the result.
TruncatedThe visible set is bounded and cannot prove an all-workspace total.
DemoRead-only sample data for orientation, never workspace evidence.

A created schedule and a completed first run are separate facts

Creating a new schedule stores the recurring configuration and then asks the run-now endpoint to start the first acquisition. The schedule can be created successfully even when that immediate request fails. Confirm the run ledger instead of treating the success toast or closed wizard as proof that positions were fetched.

SERP acquisition is paid external work. The setup card estimates per-run cost, expected runs per month, keyword count, per-keyword cost, monthly cost, current organization balance, and the balance after one estimated run. These are admission estimates, not final invoices or guarantees. A monthly schedule cap can stop later work, and insufficient balance can skip or pause a run. Activity and the schedule run log remain the evidence for reservation, execution, partial data, settlement, release, and failure.

Use a repeatable review routine

1
Name the selected tracker and copy its domain, cohort type, market, language, device, depth, and review window into the decision record.
2
Check the latest run status, requested and fetched counts, no-data or failure state, cost, and newest captured time.
3
Use the Overview to locate the metric and boundary that moved, not to assign a cause.
4
Open the affected keyword, current and previous rank, ranking URL, stored SERP, feature context, and daily points.
5
Check whether cohort membership, context, depth, volume coverage, competitor set, or truncation changed.
6
Write the hypothesis and approved action separately from the observation.
7
Verify the outcome with another terminal run under a comparable scope and with the relevant Site Audit, analytics, or editorial evidence where needed.

Call a comparison defensible only when the contract stayed comparable

A rank change says that two retained observations differ. It does not explain whether the cause was a page edit, an algorithmic shift, a changed result layout, a competitor, a location or device difference, a membership change, incomplete acquisition, or ordinary volatility. Preserve those alternatives until the evidence removes them.

Use the same tracker when possible. If you must recreate one, match normalized domain, exact direct cohort or recorded list membership, location, language, device, depth, and acquisition mode. Require terminal runs with understood coverage on both sides. Then inspect the affected URLs and SERPs, record the human decision, and measure again after implementation. Crawl Foundry supplies the measurement record; diagnosis, prioritization, approval, and outcome ownership remain with the team.