Read SERP features and competitors without flattening the evidence
Defined scope
Repeated evidence
Verified decisions
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 field | What the report can establish |
|---|---|
| Present | The current stored SERP for this keyword and exact context carries that feature flag. |
| Absent | A current stored SERP was measured and its flag is false. |
| No stored SERP | Presence is unknown in this context; it is not a measured absence. |
| Owned | Separate 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 state | Decision-safe reading |
|---|---|
| Owned | Attribution evidence names the tracked domain. |
| Not owned | Attribution evidence names another owner or excludes the tracked domain. |
| Unknown | The feature is present, but the stored payload cannot support an owner verdict. |
| Unsupported feature | Presence 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 metric | Current calculation |
|---|---|
| Visibility | Top 10 CTR weight divided by the maximum position-one weight across every loaded keyword. |
| Estimated traffic | Current own-row volume multiplied by the fixed position CTR for ranks 1 through 10. |
| Average position | Mean over keywords where that domain currently has a numeric rank. |
| Ranked keywords | Loaded keywords with a numeric current rank for that domain. |
| Top 3, 10, 20, 100 | Cumulative 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.