Crawl Foundry
Position Tracking

Read SERP features and competitors without flattening the evidence

SERP Features & Competitors joins current stored result layouts to retained domain-rank evidence over a bounded tracker set. Keep presence, ownership, discovery, active selection, estimated visibility, and business relevance separate before turning an overlap into a competitor decision or a content change.

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.

Read a feature as part of one stored SERP

The SERP Features report reads the current stored result page for each keyword in the loaded Position Tracking set and exact device, location, and language context. It records 13 presence flags: AI Overview, Featured Snippet, People Also Ask, Local Pack, Image Pack, Video Carousel, Shopping, Knowledge Panel, Sitelinks, Top Stories, Twitter Pack, Jobs, and FAQ markup. These flags describe what the stored result page contained. They do not estimate clicks, prove that every user saw the same layout, or explain why a feature appeared.

A stored SERP can come from a tracking acquisition or an on-demand SERP enrichment that used the same context. The feature record is therefore current workspace evidence, not necessarily a field captured atomically with the rank snapshot displayed beside it. Keep its market and device visible, then open the result detail and acquisition dates before comparing it with another feature count.

Feature fieldWhat the report can establish
PresentThe current stored SERP for this keyword and exact context carries that feature flag.
AbsentA current stored SERP was measured and its flag is false.
No stored SERPPresence is unknown in this context; it is not a measured absence.
OwnedSeparate attribution evidence identifies the tracked domain for a supported ownable feature.

Keep the measured denominator beside every feature count

Feature percentages use only loaded rows with a current stored SERP in the selected context. A row with no stored SERP is excluded from the measured denominator rather than counted as feature-free. The report itself still inherits the bounded Position Tracking overview, currently up to 100 keywords by default in the active window. A tracker with more members can therefore have feature-bearing SERPs outside this report.

The landscape sorts the 13 feature types by how many measured SERPs contain them and hides zero-presence rows. Selecting a feature filters the keyword table to current stored SERPs where that exact flag is true. The all-features view is slightly broader: it also admits a row whose latest rank snapshot says the domain owned a Featured Snippet or AI Overview, even if the separately stored current SERP has no matching feature flag. That difference exposes two evidence clocks rather than a contradiction to smooth over.

  • Feature share equals present measured SERPs divided by all measured SERPs in the loaded set.
  • Keywords with any feature uses the same measured denominator and counts rows with at least one current presence flag.
  • A truncation notice means counts and shares describe a subset, not the complete tracker membership.
  • Changing the selected feature changes the table rows, not the stored evidence or the overview cohort.

Separate changing result layouts from ranking movement

A ranking can stay unchanged while the result page gains a Local Pack, video carousel, shopping block, or AI Overview. It can also move while the feature layout stays stable. The report lets the team see both observations, but it does not calculate the click effect of a feature or attribute a rank change to it. The position badge and delta still follow the retained own-domain rank snapshots and their previous measured-day rule.

Treat feature changes as a reason to inspect the exact query, result composition, intent, and dates. A feature may compete for attention, offer another route to visibility, or serve an intent that the tracked page should not imitate. Search volume, position, and a feature flag are useful together only after their different sources and dates have been acknowledged.

Ask about ownership only where attribution is supported

The current ownership distribution is limited to Featured Snippet and AI Overview. For each of those features, the chart first requires current feature presence, then classifies the rank snapshot's attribution value as owned, not owned, or unknown. Unknown means the feature was present but the retained provider evidence could not safely name an owner. It should never be collapsed into not owned.

The summary counters use the latest loaded rank-snapshot ownership flags across all rows, while the feature landscape uses current stored SERP presence. Their timestamps can differ. An owned counter can therefore describe a snapshot that is older or newer than the current SERP record used for the presence bar. Open the keyword before claiming that the tracked domain owns the feature now.

Ownership stateDecision-safe reading
OwnedAttribution evidence names the tracked domain.
Not ownedAttribution evidence names another owner or excludes the tracked domain.
UnknownThe feature is present, but the stored payload cannot support an owner verdict.
Unsupported featurePresence is available, but Crawl Foundry does not expose ownership for this feature type.

Reconfirm context when you open a keyword

Clicking a keyword hands the investigation to the shared SERP detail. The Position Tracking row is scoped to the tracker or selected overview context, but the shared detail currently opens under the Keyword Database default context rather than receiving the tracker context explicitly. Its domain rank history is domain-scoped, yet it can also combine retained rows from more than one context and keep the newest row per day.

Before using that detail as confirmation, compare device, location, language, acquisition date, domain, and result depth with the Position Tracking fact line. If they differ, return to the matching context or acquire comparable evidence deliberately. Opening the detail is read-only; requesting a refresh is a separate paid operation.

Use discovered domains as candidates, not declared competitors

The landscape scans the current stored Top 10 for every measured keyword in the loaded set and exact SERP context. It excludes the own domain and every active competitor, then groups the remaining domains by distinct shared keywords. The table shows shared-keyword count, best observed rank, and mean rank across all Top 10 appearances. It sorts by shared-keyword count, then average rank and domain, and currently returns at most 50 candidates by default.

A discovered domain is simply present beside the tracked site. It may be a direct business rival, publisher, directory, marketplace, video platform, government site, or a different intent entirely. Repeated overlap is useful discovery evidence, but it does not establish the commercial market or make the domain suitable for a standing comparison.

Keep discovery, automatic selection, and the active set separate

Active competitors are workspace records that the comparison queries are allowed to read. The current product limit is up to 20, subject to workspace policy. A domain can be added manually from the discovery table or selected automatically from already materialized competitor candidates when auto-fill is enabled. The auto-fill catalogue is not identical to the visible Top 10 discovery table, and enabling it can fill free slots immediately from existing database evidence.

Adding a domain normalizes it, marks it as a manually pinned competitor, and records reusable competitor evidence. It does not reserve balance or call a provider. It also does not manufacture historical ranks. Until matching competitor snapshots exist in the chosen window and context, the comparison treats missing keyword ranks as unranked. An automatically selected domain can be pinned to make it manual; removing a domain takes it out of the active comparison without rewriting past observations.

  • Manual and automatic describe selection ownership, not data quality.
  • Auto-fill only uses free active slots and never buys a SERP request by itself.
  • A visible discovered candidate can be absent from the auto-fill catalogue, and the reverse can also occur.
  • Keyword edit permission is required for add, remove, pin, and auto-fill changes.

Compare every active domain over the same loaded keyword set

The comparison begins with the same bounded Position Tracking rows used by the overview, currently up to 100 keywords by default. Crawl Foundry places the own domain beside the active competitors and maps each domain's latest rank for every loaded keyword in the selected window and exact context. A missing competitor snapshot contributes as not ranking. Search volume is taken from the own keyword rows so every domain uses one demand basis.

The main overview carries the first five active competitor rows. When Overview or Competitors is open, three bounded continuation reads can load domains 6 through 20 in pages of five. Every requested domain is checked against the active workspace list. The interface is therefore not an arbitrary domain lookup, and a partial or still-loading continuation can temporarily produce a smaller comparison set.

Comparison metricCurrent calculation
VisibilityTop 10 CTR weight divided by the maximum position-one weight across every loaded keyword.
Estimated trafficCurrent own-row volume multiplied by the fixed position CTR for ranks 1 through 10.
Average positionMean over keywords where that domain currently has a numeric rank.
Ranked keywordsLoaded keywords with a numeric current rank for that domain.
Top 3, 10, 20, 100Cumulative counts over that same loaded set, not exclusive bands.

Read the map as three calculated dimensions

Each map bubble is an active compared domain with at least one ranking keyword. Horizontal position is its ranked-keyword count. Vertical position is average rank and the axis is reversed, so a bubble higher on the chart has a better numeric average. Bubble size follows visibility, with a small display floor for zero or near-zero values. The legend repeats the calculated visibility percentage.

The map is useful for spotting different shapes of overlap: broad but weak coverage, narrow high ranks, or broad strong visibility. It does not know brand demand, conversions, revenue, catalogue size, or business model. A publisher that ranks for many informational queries can dominate the map without being the competitor the product or sales team cares about.

Use Share of Voice as a closed-set traffic estimate

Share of Voice is each compared domain's estimated traffic divided by the estimated-traffic total of the own domain plus the active competitors currently loaded. The own-domain headline is its slice of that same closed set. Adding, removing, or not yet loading a competitor changes the denominator even when no rank changes. The number is neither market share nor a measurement of real visits, revenue, brand demand, or all domains on the SERP.

Estimated traffic uses current Keyword Database volume and the fixed Top 10 CTR curve. Unknown volume and ranks outside the Top 10 contribute zero. Traffic and Share of Voice controls are hidden only when no loaded keyword has known volume; with partial volume coverage, the metrics remain visible and omit unknown demand. Treat them as comparable model estimates, not guaranteed lower bounds on real traffic, then use first-party analytics and commercial data for outcome claims.

Qualify the comparison before you act on it

1
Confirm the loaded tracker or list, truncation state, 30-day window, device, location, language, and result depth.
2
Review the measured-SERP denominator and separate feature presence from snapshot ownership and unknown attribution.
3
Use discovery to identify repeated overlap, then label the domain's actual role: direct business, publisher, platform, directory, marketplace, or another intent.
4
Add only domains that make the standing comparison more useful. Record whether the choice is manual, pinned, or automatic.
5
Wait for comparable competitor snapshots when a newly active domain has no evidence in the current window. Do not read missing ranks as verified absence.
6
Interpret visibility, traffic, average position, placement buckets, map, and Share of Voice with their loaded-set denominators and volume coverage.
7
Open the exact winning queries and pages, reconfirm the SERP-detail context, and investigate content, authority, format, and technical evidence separately.
8
Let a person decide whether any change fits user intent and business priorities, then verify it with a later comparable acquisition and first-party outcomes.