Crawl Foundry
Position Tracking

Trace ranking pages without confusing switches with cannibalization

Pages & Cannibalization connects the loaded tracker subset to the own-domain URLs observed in retained rank snapshots. It separates current page contribution, movement across measured days, URL changes across a window, and several URLs in the same newest SERP before the team decides whether any page relationship needs to 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 Pages as a grouping of the currently observed URLs

The Pages report starts with the bounded Position Tracking overview rows. It keeps rows whose latest rank snapshot contains an own-domain URL, then groups them by that exact current URL. The report therefore describes the ranking pages present in the loaded tracker subset and window. It is not a crawl inventory, a canonical map, or a complete list of pages that could answer the queries.

The grouping uses the current URL as its key. If a keyword ranked with a different URL on the previous measured day, its previous rank still contributes to the movement calculation of the page that owns the keyword now. Movement compares the current page's present keyword set with those keywords' previous positions; it does not reconstruct the page's previous keyword portfolio.

Page fieldCurrent meaning
URLExact latest own-domain ranked URL from the loaded snapshot row.
KeywordsLoaded tracker rows whose latest URL equals this URL.
Average positionMean current rank over those ranking rows.
MovementCurrent mean minus previous measured-day mean for the same current keyword set. Negative is improvement.
VolumeSum of known current Keyword Database volumes; unavailable only when every row lacks volume.
Estimated trafficSum of per-keyword volume times the fixed Top 10 CTR curve.

Keep the page report on the overview basis

Unlike the Rankings table, Pages does not run a schedule-scoped pagination query. It derives every row from the overview dataset already loaded by the surface, currently up to 100 keywords by default and within the current 30-day window. The full page table is not separately paginated. A tracker with more members can therefore have ranking pages that do not appear here.

A truncation notice applies to this basis. If a page owns only keywords outside the loaded subset, it is absent. If a page owns both loaded and omitted keywords, its count, volume, traffic estimate, and average position are partial. Preserve the loaded keyword count and truncation state when reusing any page statistic.

  • An empty report can mean that no loaded row has a current ranking URL, not that the site has no indexable pages.
  • The default table order is keyword count descending, then estimated traffic, then URL.
  • Changing the visible table sort does not change which URLs were sent to the Site Audit lookup.
  • No page metric in this report is a domain-wide total unless the loaded tracker set itself is the declared denominator.

Use the three page cards as pointers, not verdicts

Best page is the page with the smallest current average position, with keyword count as the tie-breaker. Rising page is the most negative available average-position delta. Falling page is the most positive. A page needs both a current and previous average to qualify as a mover, but there is no minimum keyword count or demand threshold.

One low-volume keyword can therefore make a page the strongest mover, while a large page with mixed movement can look quiet. The labels are interface shortcuts to rows worth opening. They do not prove page quality, strategic importance, business impact, or the cause of the change.

Read contribution bars as calculated traffic, not share of site traffic

The contribution chart currently shows up to eight pages, sorted by calculated estimated traffic and then keyword count. Its horizontal value is the same Top 10 CTR estimate used elsewhere. Pages whose volume is wholly unknown can still enter the chart with a calculated zero if the bounded set is small. The chart is not Analytics, Search Console, or a forecast based on conversions.

In the table, the small bar beside traffic is relative to the strongest loaded page. A half-width bar means roughly half that page's estimated traffic, not 50 percent of the tracker total. The numeric value remains the useful field. Unknown total volume renders traffic as unavailable even though the internal calculated sum defaults to zero.

Treat the Site Audit shield as an inventory match

For users with Site Audit view permission, Crawl Foundry checks a bounded set of page URLs against Site Audit inventory. The current default is the first 30 page rows in the report's original keyword-count order, not the currently sorted table order. The lookup accepts exact URL, fragment-free, trailing-slash, and www or non-www host candidates. URLs outside that lookup set are not checked.

A shield means a matching Site Audit URL inventory record exists and the row can open its dossier. It does not say that the page is healthy, that the latest crawl succeeded, that the crawl date matches the rank date, or that the Site Audit finding caused the ranking movement. If there is no match or no permission, clicking the page opens the public URL instead. The external-link icon always opens the public URL.

SignalWhat it proves
Shield visibleA matched inventory ID was returned for this checked URL.
Shield absentNo match was returned in this bounded permission-aware lookup.
URL dossierSeparate crawl evidence for the inventory URL and its own run context.
Ranking movementA change in retained SERP observations, not a technical cause.

Separate a URL switch from concurrent multiple URLs

For each loaded keyword, Crawl Foundry retains up to six distinct ranked URLs across the overview window. A URL switch is counted when the latest snapshot has at most one known concurrent own-domain URL but more than one distinct URL appeared across the window. It means observed ownership changed over time; it does not mean two pages competed in the same result page.

A switch can follow an intentional redirect, consolidation, canonical change, internal-link shift, index replacement, query reinterpretation, or ordinary instability. Compare dates, both URLs, the current SERP, page purpose, canonical and indexability signals, and internal links. Do not choose the newest URL merely because it is newest.

Reserve cannibalization for concurrent evidence

A keyword is marked affected only when the newest snapshot explicitly carries more than one own-domain URL from the same acquired SERP. New snapshots can store a bounded list of concurrent URLs; legacy snapshots may not have this field. This is stricter than the old rule that treated any two URLs seen during a window as cannibalization.

The report denominator, Measured keywords, includes only loaded rows whose latest snapshot has the concurrent-URL field, even when that array is empty. The share is affected divided by measured. A zero-percent share with many Unknown rows is not proof that the tracker has no cannibalization. The table lists only affected keywords and the concurrent latest URLs, sorted by URL count.

Cannibalization metricExact basis
Affected keywordsLatest concurrent own-domain URL array contains more than one URL.
Measured keywordsLatest concurrent-URL field exists, including zero or one URL.
ShareAffected divided by measured, rounded for display.
Affected pagesDistinct URLs seen across the whole window for affected keywords, not only the concurrent URLs listed in the table.
URL switchesAt most one latest concurrent URL and more than one distinct URL across the window.
UnknownLegacy row has no concurrent-URL field but has at least one URL in the window.

Expect legacy Unknown and URL switch counts to overlap

The current implementation can count the same legacy keyword as both Unknown and a URL switch. If the concurrent-URL field is absent but several distinct URLs occur in the window, it satisfies the switch rule and the Unknown rule. These counters are diagnostic categories, not mutually exclusive partitions of the tracker.

Affected pages also uses the window-wide URL set for affected keywords, while the detail table shows only URLs known to be concurrent in the newest snapshot. The affected-page number can therefore exceed the number of distinct URLs visible in the table. Keep the table as the concurrency evidence and the wider count as investigation context.

Two ranking URLs are not automatically a problem

Several own URLs can legitimately appear for a broad or mixed query. A category, guide, tool, local page, and support article can satisfy different tasks. Even true same-SERP overlap does not tell you whether users are confused, whether one URL is preferred, or whether consolidation would improve coverage.

Define the intended page role before changing anything. Compare the SERP result titles and snippets, page purpose, content overlap, internal-link language, canonicals, indexability, conversion path, and first-party performance. Consolidation is appropriate only when the pages duplicate the same job and one owner can preserve the useful material and links.

Check the stored SERP context before using it as concurrency proof

The cannibalization table links to the shared keyword SERP detail. As in Rankings, that detail currently falls back to the Keyword Database default context when the selected tracker context is not passed through. Read the detail's printed device, language, location, and date before comparing its reconstruction with the context-specific concurrent URLs in this report.

Opening the public URLs confirms current page content, not what the search engine stored on the measurement date. Preserve the rank snapshot and its context as the observation record. A paid refresh creates a new observation and should not silently replace the evidence used for an earlier decision.

Resolve page ownership with the narrowest defensible change

1
Record the selected tracker, loaded keyword count, truncation state, device, market, language, depth, window, and latest terminal run.
2
Open the page row and list its current keywords, current and previous average positions, volume coverage, estimated traffic, and any matched Site Audit inventory record.
3
For a switch, order the observed URLs by date. For cannibalization, require concurrent latest-URL evidence and note Unknown rows separately.
4
Compare query task, current SERP, page purpose, title, headings, content overlap, canonical, indexability, internal links, redirects, and relevant first-party outcomes.
5
Choose a preferred owner only when the intended page roles overlap enough to justify one. Record what useful content and links must survive.
6
Apply the narrowest fitting change: clarify page roles, improve internal links, adjust content, correct canonical or indexability, consolidate, or redirect.
7
Verify technical implementation in a later Site Audit run and ranking behavior across several terminal measurements under the same tracker context.
8
Keep observation, cause hypothesis, approved change, crawl verification, ranking verification, and business outcome as separate records.