TSEPCONTROL FREE BETA
Menu

Where would you like to go?

In the app
Evidence import
You provide
URLs, HTML and canonical signals
Allow for
Depends on evidence needed
Prepare evidence

Understand

Several signals. One preferred URL.

Each canonical page publishes an absolute, stable and consistent URL.

According to Google

Redirects and rel=canonical are strong signals; sitemap inclusion is weaker. Consistency helps Google identify the preferred reference.

Check

Four signals. Do they converge?

In TSEP Control

You import evidence for this control. The engine assesses it within the declared scope; missing items remain visible.

Your contribution

Define the scope and expectations before collection. Gather the items below and supply the requested reviews.

With your own tools

For each sample page, record the final destination, rel=canonical in HTML or headers, internal links and sitemap. Flag conflicting signals and planned exceptions.

Evidence to retain

Signals converge on the same canonical URL without a chain.

What this result covers

rel=canonical is a strong signal, not a guaranteed directive.

Act

One preferred URL. Aligned signals.

Align the declared canonical, internal links and sitemap with the same reference URL.

Recheck

After deployment. Read all four again.

After correction, gather new evidence with the same scope and expectations. Retain both dated observations to compare what changed.

Your reference points

To go further.

Statuses, sources and method.

Understand the statusesC · NC · NT · NA

The same legend in guides, analysis and demo. Each status depends on the control’s evidence and rules.

C · Verified
The criterion is met within the assessed scope. Keep dated evidence for the next comparison.
NC · To correct
Align the declared canonical, internal links and sitemap with the same reference URL.
NT · Not established
Evidence or confirmations are insufficient to conclude. Supply what is missing; this status does not establish an SEO error.
NA · Not applicable
The control does not apply to the scope under its rules, with a retained justification. Missing evidence alone does not make it non-applicable.

Sources and references4 references

Detailed method and rules4 rules

Control method and criteria

Method
Compare the final URL, rel=canonical, sitemap and internal links.

Acceptance criteria
Rules A01–A04 establish a consistent preference under the declared strategy; exceptions and absences are justified, not inferred from collection gaps.

Non-applicability
No relevant document, supported by an inventory and strategy.

Detailed rules

TS10-A01 · Canonical declaration

Protocol assessment mode : assisted, with supplied evidence and declarations. App availability is shown on the control card.

Scope
Each family member and its declared canonicalization strategy.

Evidence
Family inventory in intent; headers and source (or html non-applicability record for non-HTML); extraction with location and method, required DOM attached when needed. Bind each capture to the family, context and date. Declare required methods and DOM states before assessment; bind DOMs to the HTTP trace by fingerprint. A rendering exemption needs a source-bound review and supporting records, not a bare “no JS” claim. Also retain profile observations: document, body, canonical/base, templates, prefix tokens, context, errors, decoding, sources/runtime and separate decisions; replay compares these records. Retain ordered HTTP diagnostics, raw fields/parameters, excluded/unknown contexts, requested/final URLs, timestamp and source-trace fingerprint.

Method
List members, preferred URL and expected method; compare final URLs, HTTP Link, HTML rel=canonical and required rendered states. Retain multiple declarations, even identical ones. The DOM reader is chosen before capture: structured-inventory-v2, or the fixed legacy serialization reader when the field is absent. No fallback after refusal. The complete structured inventory retains namespaces, positions, duplicates, serialization and navigation attribution records; no node is removed based on its presumed origin. Optional prior intent.canonical.source_reader=html-tree-canonical-v1 compares two complete static source hypotheses with byte-attributed source/tree positions. The source-canonical.md contract defines its boundaries. Optional prior intent.canonical.http_reader=http-link-context-v1 applies docs/http-canonical-context.md to final GET 200 Link fields; absent selection retains the historical reader.

Acceptance criteria
Present signals and those required by strategy identify the same absolute HTTP(S) URL without a fragment. HTML in head or HTTP Link are accepted; no universal HTML tag requirement. A relative canonical is fail for this TSEP rule without claiming Google cannot interpret it. Retain repeated identical declarations, which may agree; an attributable conflict remains fail despite another missing capture. Two source pass yield pass, two fail yield fail, otherwise inconclusive. Ordinary body canonical remains a contradiction even for the preferred URL; relative values are never resolved through base. Attributable HTTP Link, redirect and DOM contradictions remain independent of source unknowns. The new reader separates context from literal destination, retaining first rel and repeated declarations; unknowns prevent pass and independent attributable HTTP conflicts remain fail.

When the result remains inconclusive
Incomplete family/intent, ambiguous Link, truncated document or missing required rendered state: inconclusive. For the structured reader: incomplete tree/transport, loading document, known API alteration, missing integrity history, separate source/DOM acquisition without same-navigation attribution or a different agent: inconclusive. A digest alone does not prove navigation. After-head reinsertion, indirect head descendant, foreign context, unknown/modifying attributes, declared shadow, incomplete bounded reading/diagnostics prevent success as defined by the contract; retain any separately qualified contradiction. Unknown HTTP selection, unqualified context/uncertain equivalence, extensions or unsupported syntax are inconclusive without favorable fallback; the HTTP contract fixes bounds and their scope.

Non-applicability
No atomic exemption when the control applies.

Assumptions
Strategy distinguishes preferred canonical and duplicates; comparisons do not silently remove parameters or normalize case or slashes. In structured DOM, a difference between absolute raw href and the resolved property prevents a conclusion on that surface, without substituting either value or asserting an SEO defect. A relative or out-of-head canonical in ordinary DOM remains a TSEP contradiction; open shadow remains inconclusive. Absent field preserves legacy reading. Null/unknown or absent Node 24 never falls back. This profile neither validates HTML nor replaces rendering or supplied human judgment.

Limitations
Relative URLs, placement and convergence are TSEP criteria; engine canonical selection is not observed here. Supplied attribution and APIs are not authenticated; authored synthetic records are explicitly labeled, never actual visits. Frames, template fragments and closed shadow roots are outside scope. Bounds and migration are documented in docs/structured-rendering.md. Source scope only; A04 and DOM readers are not extended. The hypotheses are not coexisting observed rendered states. No Google canonical choice is inferred. No engine execution or destination normalization; an RFC-valid relative can fail TSEP’s absolute criterion. See draft.19 migration; historical reader preserved.

TS10-A02 · Direct canonical destination

Protocol assessment mode : manual. App availability is shown on the control card.

Scope
Every preferred destination in declared families.

Evidence
Destination trace and body tied to the family; declaration graph and reasoned content comparison. The human compatibility review identifies its author, date, each member compared with the preferred representation, reasoned judgment and exact examined captures by fingerprint. A missing/stale reference or unestablished comparison prevents pass. Also retain profile observations: document, body, canonical/base, templates, prefix tokens, context, errors, decoding, sources/runtime and separate decisions; replay compares these records. Retain ordered HTTP diagnostics, raw fields/parameters, excluded/unknown contexts, requested/final URLs, timestamp and source-trace fingerprint.

Method
Test the destination, retain GET and content; verify that any canonical there does not point elsewhere. Compare content with the declared family. The DOM reader is chosen before capture: structured-inventory-v2, or the fixed legacy serialization reader when the field is absent. No fallback after refusal. The complete structured inventory retains namespaces, positions, duplicates, serialization and navigation attribution records; no node is removed based on its presumed origin. Optional prior intent.canonical.source_reader=html-tree-canonical-v1 compares two complete static source hypotheses with byte-attributed source/tree positions. The source-canonical.md contract defines its boundaries. Optional prior intent.canonical.http_reader=http-link-context-v1 applies docs/http-canonical-context.md to final GET 200 Link fields; absent selection retains the historical reader.

Acceptance criteria
The expected destination is directly accessible with 200, without canonical chains or cycles, and compatible content. A duplicate may remain 200 and point to the preferred URL; not every duplicate final URL must equal it. Two source pass yield pass, two fail yield fail, otherwise inconclusive. Ordinary body canonical remains a contradiction even for the preferred URL; relative values are never resolved through base. Attributable HTTP Link, redirect and DOM contradictions remain independent of source unknowns. The new reader separates context from literal destination, retaining first rel and repeated declarations; unknowns prevent pass and independent attributable HTTP conflicts remain fail.

When the result remains inconclusive
Uncollected destination, timeout or incomparable content: inconclusive. An observed 404/5xx, cycle or hop is a contradiction. For the structured reader: incomplete tree/transport, loading document, known API alteration, missing integrity history, separate source/DOM acquisition without same-navigation attribution or a different agent: inconclusive. A digest alone does not prove navigation. After-head reinsertion, indirect head descendant, foreign context, unknown/modifying attributes, declared shadow, incomplete bounded reading/diagnostics prevent success as defined by the contract; retain any separately qualified contradiction. Unknown HTTP selection, unqualified context/uncertain equivalence, extensions or unsupported syntax are inconclusive without favorable fallback; the HTTP contract fixes bounds and their scope.

Non-applicability
No atomic exemption when the control applies.

Assumptions
Content similarity is assessed in business context without a universal similarity threshold. In structured DOM, a difference between absolute raw href and the resolved property prevents a conclusion on that surface, without substituting either value or asserting an SEO defect. A relative or out-of-head canonical in ordinary DOM remains a TSEP contradiction; open shadow remains inconclusive. Absent field preserves legacy reading. Null/unknown or absent Node 24 never falls back. This profile neither validates HTML nor replaces rendering or supplied human judgment.

Limitations
A successful GET does not prove Google will select this URL; no temporal stability is inferred from one instant. A comparator can check the supplied review’s bindings and coverage; it does not turn that judgment into automatic content comparison. Supplied attribution and APIs are not authenticated; authored synthetic records are explicitly labeled, never actual visits. Frames, template fragments and closed shadow roots are outside scope. Bounds and migration are documented in docs/structured-rendering.md. Source scope only; A04 and DOM readers are not extended. The hypotheses are not coexisting observed rendered states. No Google canonical choice is inferred. No engine execution or destination normalization; an RFC-valid relative can fail TSEP’s absolute criterion. See draft.19 migration; historical reader preserved.

TS10-A03 · Sitemap agreement

Protocol assessment mode : assisted, with supplied evidence and declarations. App availability is shown on the control card.

Scope
Families associated with a sitemap under the declared strategy.

Evidence
Raw sitemaps and index coverage, family/entry mapping and justification of omissions. Retain XML bytes and complete annotation values; bounded reason preview with explicit truncation.

Method
Compare entries from all sitemaps/indexes required for the family and preferred URL; retain exclusions justified by strategy. Reconcile captures of each index and all expected children. An observed failure remains fail when another branch is missing; an omission becomes fail only after the declared population has been fully examined. Optional sitemap-locations-v1 must be declared before capture; absence uses the fixed legacy reader, unknown values never fall back. Only direct Sitemaps 0.9 loc under url counts as a page URL; under sitemap it identifies children. Decode XML and trim surrounding XML whitespace only, then compare literally without URL normalization. Record recognized XHTML alternate, image and ordinary fields separately, without comparing them as page URLs.

Acceptance criteria
Observed and required entries agree with declared preference; a duplicate published as a competing canonical without justification is fail.

When the result remains inconclusive
Incomplete index, unavailable expected sitemap or unknown strategy: inconclusive. Unknown reader, missing/wrong namespace, unsupported extension/attribute, duplicate leaf, ambiguous structure, mixed text, DTD/entities, malformed XML or exceeded bound: entire document inconclusive.

Non-applicability
No sitemap used for this family, established by documented strategy and inventory. Retain a sitemap record explaining absence; no whole-TS10 NA.

Assumptions
Sitemap scope is declared; absence is not inferred from a 404 at one guessed path. The new reader requires explicitly covered namespaces and structures; prefixes are arbitrary and annotation values are not validated. Preference remains supplied intent, not observed engine choice.

Limitations
Sitemap = published preference, not engine selection or an exhaustive site inventory. No hreflang, image or value-validity verdict. The bounded reader is not a full XML Schema validator. Profile, structural registry, limits and migration: docs/sitemap-locations.md and docs/migration-draft.14.md.

TS10-A04 · Internal-link agreement

Protocol assessment mode : assisted, with supplied evidence and declarations. App availability is shown on the control card.

Scope
Each family and declared source-page population.

Evidence
Crawl export with source URL, href, destination, pages actually visited, failures and exclusions; reconciliation with the declared population. Retain source HTML and DOMs needed for extraction, bound to their traces, contexts and dates; a rendering exemption is reviewed and supported. Exceptions identify source, destination and reason. The new profile retains inventory, namespaces, templates, tags/bytes, calculated URLs, bases/limits, versions, per-hypothesis decisions/counts in replayable observations.

Method
Extract links from the announced population; compare destinations and documented exceptions with canonical preference. The DOM reader is chosen before capture: structured-inventory-v2, or the fixed legacy serialization reader when the field is absent. No fallback after refusal. The complete structured inventory retains namespaces, positions, duplicates, serialization and navigation attribution records; no node is removed based on its presumed origin. Optional prior intent.canonical.links.source_reader=html-tree-links-v1 qualifies attributed HTML a/area hrefs, base and WHATWG resolution under two static hypotheses. source-link-policy.md defines this method; earlier rendered readers remain unchanged. Draft.18 adds html-tree-links-v2: a first base whose href fails WHATWG parsing adds base uncertainty; v1 remains unchanged. Computation against the final URL is then conditional, without inferring a destination for dependent hrefs. source-link-policy-v2.md defines this delta.

Acceptance criteria
All assessed links follow strategy; no unexplained competing destination. Zero links can satisfy the rule only when the announced population is fully examined. An attributable competing link remains fail even if another source page or required state is missing. Two source passes yield pass, two failures yield fail, otherwise inconclusive. An uncertain base cannot establish failure for dependent hrefs; an independent qualified absolute conflict remains usable. Zero counts and limited convergence scope remain visible through control and gate without adding a link-presence requirement.

When the result remains inconclusive
Missing source pages, unexamined links or absent crawl: inconclusive, never success from zero results. For the structured reader: incomplete tree/transport, loading document, known API alteration, missing integrity history, separate source/DOM acquisition without same-navigation attribution or a different agent: inconclusive. A digest alone does not prove navigation. Null/unknown source selection, missing Node24, incomplete traversal/diagnostic: inconclusive without fallback. SVG/foreign ancestors, declared shadow and duplicate link attributes remain unknown; unmodeled CSP/base prevents conclusive dependent-href resolution.

Non-applicability
No atomic exemption when the control applies.

Assumptions
The crawl checks a declared population; it does not by itself prove that population exhaustive. Structured reader v2 retains raw hrefs; bounded resolution only without a base declaration and with baseURI equal to the final URL. Shadow links or unsupported syntax remain inconclusive. Family URLs must already equal their WHATWG serialization or source is inconclusive, without silent normalization. Outside-family URLs are retained, never guessed duplicates. No-namespace href with no nofollow/download filtering; static destination only. Empty/whitespace base href, data/javascript schemes and CSP remain distinct from that parse failure; never select a second base instead.

Limitations
No extrapolation to external links, pages outside the population or future dates. Supplied attribution and APIs are not authenticated; authored synthetic records are explicitly labeled, never actual visits. Frames, template fragments and closed shadow roots are outside scope. Bounds and migration are documented in docs/structured-rendering.md. Source profile measures neither activation, link presence/sufficiency, forms/events nor Google behavior. Bounds, retained out-of-scope elements and migration: source-link-policy.md and migration-draft.17.md. Version2 correction and preserved historical results: migration-draft.18.md. The diagnostic establishes neither a general browser bug nor a Google state.

Rule version 0.2.0-rc.1 · Public protocol reference · Versioned source

Put it into practice

← Back to controls

30 readings available today

Renews:

Your daily limit: 30 readings

How it works

One reading checks your page and a few public sources. The allowance applies to your visitor workspace; additional protections apply to the shared network and the service as a whole.

Answering questions, viewing saved work and exporting results do not consume readings. These steps remain available when the allowance is used.