URSY.DEVPART OF THE URSY NETWORKSign inBuild with URSY

Every contract sourcedEvery check datedGaps shown, never filledBuild with URSY

Capabilities

Canonical Tag Checker

Inspect canonical markup and resolve relative canonical URLs against a page URL.

How this capability is exposed

Stable ID
ursy.io:canonical-tag-checker
Owning service
URSY.io
Runtime
See the source declaration
Execution modes
browser_interactive
Remote execution
Not enabled for this tool
Open the owning interface ↗

Capability declarations describe what the service exposes. They are not a guarantee of availability or permission to execute an operation.

Accepted contract

REGISTRY JSON
{
    "schema": "ursy.io/capability/v1",
    "id": "ursy.io:canonical-tag-checker",
    "slug": "canonical-tag-checker",
    "name": "Canonical Tag Checker",
    "version": "0.0.0",
    "summary": "Inspect canonical markup and resolve relative canonical URLs against a page URL.",
    "intents": [
        "canonical tag checker"
    ],
    "aliases": [],
    "keywords": [],
    "category": "seo-tools",
    "deterministic": true,
    "side_effects": null,
    "network_required": false,
    "execution": {
        "preferred": "local",
        "supported": [
            "browser_interactive"
        ],
        "local_executable": false,
        "remote_safe": false,
        "remote_enabled": false,
        "remote_endpoint": null
    },
    "privacy": {
        "input_leaves_device_by_default": false,
        "payload_logged": false
    },
    "input_schema": null,
    "output_schema": null,
    "examples": [],
    "limits": null,
    "canonical_url": "https://ursy.io/seo-tools/canonical-tag-checker/",
    "descriptor_url": "https://ursy.io/wp-json/ursy-tools/v2/capabilities/canonical-tag-checker",
    "runtime": null,
    "health": {
        "status": "not_migrated",
        "test_suite": null
    },
    "audit": {
        "classification": "A",
        "engine": "text-analyze",
        "mode": "canonical-tag",
        "headless_possible": true,
        "notes": "A portable parser and parity fixtures are required before Node extraction; no current headless execution claim."
    },
    "assumptions": [],
    "formulae": [],
    "service_id": "ursy-io",
    "parent_id": "",
    "source_url": "https://ursy.io/wp-json/ursy-tools/v2/catalog",
    "source_type": "capability_manifest",
    "verified_at": "2026-10-15 09:31:33",
    "revision": "856a92070ee3dcdf0da3a83426e6194f177238737c48b0211e68ef6f7b546256",
    "type": "capabilities",
    "source": {
        "url": "https://ursy.io/wp-json/ursy-tools/v2/catalog",
        "type": "capability_manifest"
    },
    "last_verified_at": "2026-10-15 09:31:33",
    "stale": false
}