google-search-console
Compatibility pointer for Search Console performance and indexing analysis; maintained in Open Analytics.
Audit and fix duplicate-page canonicalization across protocol, host, slash, default-document, extension, case, and tracking-parameter URL variants. Use for canonical URLs, duplicate content, preferred URLs, URL consolidation, or conflicting canonical signals. For URL naming and
Claude Code
$ npx -y skills add kostja94/marketing-skills --skill canonical --agent claude-code
Codex
$ npx skills add kostja94/marketing-skills --skill canonical -a codex -y
Cursor
$ npx skills add kostja94/marketing-skills --skill canonical -a cursor -y
Gemini CLI
$ npx skills add kostja94/marketing-skills --skill canonical -a gemini-cli -y
GitHub Copilot
$ npx skills add kostja94/marketing-skills --skill canonical -a github-copilot -y
OpenCode
$ npx skills add kostja94/marketing-skills --skill canonical -a opencode -y
Windsurf
$ npx skills add kostja94/marketing-skills --skill canonical -a windsurf -y
name: canonical-tag description: Audit and fix duplicate-page canonicalization across protocol, host, slash, default-document, extension, case, and tracking-parameter URL variants. Use for canonical URLs, duplicate content, preferred URLs, URL consolidation, or conflicting canonical signals. For URL naming and hierarchy design, use url-structure. metadata: version: 1.1.0
Determine the preferred URL for each page identity, consolidate duplicate variants, and verify that redirects, canonical annotations, internal links, sitemaps, and localization signals agree.
Treat these as one duplicate-page canonicalization problem when they expose the same or substantially similar primary content:
Do not assume that similar-looking URLs are duplicates. Case, parameters, extensions, and slash behavior can identify different resources. Compare response behavior, primary content, and project intent before consolidating.
Read root `{project}.md` when present and only the modules relevant to the task. Otherwise use project configuration, routing code, deployment rules, sitemaps, and user-provided facts. Establish:
1. preferred scheme and host; 2. preferred path conventions; 3. which parameters change content versus only attribution or presentation; 4. framework, origin server, CDN, and redirect ownership; 5. existing indexed URLs, backlinks, migrations, and localization rules when relevant.
Ask only for missing information that would change the preferred URL or make a redirect unsafe.
| Situation | Primary action | |---|---| | Duplicate URL should no longer remain accessible | Permanent server-side redirect to the final preferred URL | | Duplicate or near-duplicate must remain accessible | `rel="canonical"` to the preferred URL | | Canonical HTML page | Self-referencing canonical | | Non-HTML duplicate such as a PDF | Canonical HTTP `Link` header when supported | | Tracking parameter that must reach analytics | Keep the landing request if needed; canonical to the content URL without tracking parameters | | Parameter changes primary content or search intent | Evaluate as a separate page; do not strip or canonicalize mechanically | | Pagination | Give each page a crawlable URL and evaluate it as distinct content; do not canonicalize every page to page 1 | | Language or regional variant | Canonical within the appropriate language identity and coordinate with `hreflang` |
Use redirects to retire duplicate access paths. Use canonical annotations when access must remain. Do not use `robots.txt`, the removal tool, or `noindex` as substitutes for canonicalization.
Generate applicable test cases from the real site rather than testing one example only.
| Dimension | Variants to test | Expected invariant | |---|---|---| | Scheme | `http`, `https` | Non-preferred scheme reaches preferred HTTPS URL | | Host | `www`, apex, known aliases | Non-preferred hosts reach one preferred host | | Scheme + host | all supported combinations | Each duplicate reaches the same final URL without a redirect chain | | Trailing slash | `/page`, `/page/` | One convention for the same page identity | | Repeated slash | `/a//b`, `/a/b` | Duplicate path normalizes without corrupting `://` | | Default document | `/`, `/index.html`; `/docs/`, `/docs/index.html` | Default-document aliases converge when content is equivalent | | Extension | `/guide.html`, `/guide` | Historical alias maps to the corresponding page, not the homepage | | Case | `/Guide`, `/guide` | Equivalent paths converge; genuinely case-distinct resources remain distinct | | Tracking | base URL plus `utm_*`, `gclid`, or project tracking keys | Attribution works as required; content identity remains the clean URL | | Combinations | case + extension + tracking + host/scheme variants | Normalize directly to one destination where safe |
Do not invent routes or send mutation requests during an audit. Use read-only requests unless the user asks to implement fixes.
For every preferred URL, verify:
Canonical targets must be absolute, fetchable, indexable, and appropriate for the same content identity. Avoid canonical chains and conflicting targets across methods.
Record evidence for representative URLs and high-risk templates:
1. requested URL; 2. HTTP status and each redirect hop; 3. final URL; 4. source canonical target; 5. indexability and content-equivalence result; 6. sitemap, internal-link, and `hreflang` consistency; 7. pass, fail, or needs-decision status.
Confirm that retired variants reach their corresponding preferred page in one hop where infrastructure permits. A final `200` alone is insufficient: the final URL and canonical must also be correct. For Google-specific diagnosis, compare the user-declared and Google-selected canonicals in URL Inspection when access is available.
Implement in the layer that owns the behavior: CDN or reverse proxy for host/scheme normalization, server/router for paths, and page metadata for canonical annotations. Preserve query parameters needed for attribution or product behavior; remove only paramete
Marketing Skills is an open-source library of reusable marketing and SEO workflows for AI agents. Install the skills your task needs, provide real product context, and get structured work grounded in explicit methods, checks, and source rules.
Compatibility pointer for Search Console performance and indexing analysis; maintained in Open Analytics.
Compatibility pointer for recurring SEO monitoring; maintained in Open Analytics.
Compatibility pointer for AI assistant referrals and generative search visibility; maintained in Open Analytics.
Compatibility pointer for source, UTM and direct-traffic analysis; maintained in Open Analytics.
Compatibility pointer for GA4 event, key-event and User-ID tracking; maintained in Open Analytics.
When the user wants to promote via forums, communities, or invite users to join a community. Also use when the user mentions…
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use…
Comprehensive SEO analysis for any website or business type. Full site audits, single-page analysis, technical SEO (crawlability,…
Turn the current project website into a short, polished, shareable launch video using Hyperframes. Use when someone says "/brag",…
Full website GEO+SEO audit with parallel subagent delegation. Orchestrates a comprehensive Generative Engine Optimization audit…