/canonical
When the user wants to configure canonical URLs, fix duplicate content, or consolidate URL signals. Also use when the user mentions "canonical," "canonical URL," "duplicate content," "duplicate content fix," "preferred URL," or "URL consolidation." For GSC duplicates, use
$ npx -y skills add kostja94/marketing-skills --skill canonical --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/canonical
Context preview
The summary Claude sees to decide when to auto-load this skill.
When the user wants to configure canonical URLs, fix duplicate content, or consolidate URL signals. Also use when the user mentions "canonical," "canonical URL," "duplicate content," "duplicate content fix," "preferred URL," or "URL consolidation." For GSC duplicates, use
SKILL.md
canonical.SKILL.mdname: canonical-tag
description: When the user wants to configure canonical URLs, fix duplicate content, or consolidate URL signals. Also use when the user mentions "canonical," "canonical URL," "duplicate content," "duplicate content fix," "preferred URL," or "URL consolidation." For GSC duplicates, use google-search-console.
metadata:
version: 1.0.1
SEO Technical: Canonical
Guides canonical tag configuration to consolidate duplicate content and declare preferred URLs.
**When invoking**: On **first use**, if helpful, open with 1–2 sentences on what this skill covers and why it matters, then provide the main output. On **subsequent use** or when the user asks to skip, go directly to the main output.
Scope (Technical SEO)
- **Duplicate site versions**: HTTPS vs HTTP; www vs non-www; trailing slash (/page vs /page/) — choose one, 301 redirect others
- **Duplicate content**: Canonical tags; consolidate and 301 to preferred URL
- **HTTPS**: SSL/TLS; secure connection; ranking signal since 2014
Initial Assessment
**Check for project context first:** If `.claude/project-context.md` or `.cursor/project-context.md` exists, read it for site URL and language structure.
Identify: 1. **Site URL**: Base domain 2. **Duplicate scenarios**: Multi-language, query params, pagination, alternate URLs 3. **Framework**: Next.js, React, static, etc.
Canonicalization Methods (Choose by Scenario)
| Method | When | Strength | |--------|------|----------| | **301 redirect** | Preferred; server can redirect | Strongest — permanent redirect | | **Canonical tag** | Cannot redirect (e.g. params, pagination) | Strong — HTML signal | | **robots.txt** | Block non-canonical paths | Weak — advisory only |
Use 301 for HTTP→HTTPS, www variants, trailing slash. Use canonical for params, pagination, UTM.
HTTPS & Security
HTTPS is a ranking signal ([Google, 2014](https://developers.google.com/search/blog/2014/08/https-as-ranking-signal)). Users and crawlers should access only the HTTPS version.
| Requirement | Action | |-------------|--------| | **SSL/TLS certificate** | Install valid certificate; use Let's Encrypt for free | | **301 redirect** | HTTP → HTTPS; all HTTP requests redirect to HTTPS | | **Mixed content** | No HTTP resources on HTTPS pages; fix mixed content warnings | | **HSTS** | Optional; `Strict-Transport-Security` header for repeat visitors |
**WWW vs non-WWW**: Choose one preferred version; 301 redirect the other. See canonical rules above.
When to Use Canonical
- **Multi-language**: Each language version has its own canonical; use **hreflang** with canonical
- **Same content, multiple URLs**: Params, pagination, tracking params, www vs non-www, trailing slash (/page vs /page/)
- **Self-referencing**: Canonical should point to self or the preferred version
- **Avoid chain canonical**: A→B→C is invalid
Rules
| Rule | Note | |------|------| | **Absolute URL** | Include `https://` | | **Consistency** | Must match current page URL or the chosen preferred version | | **No chains** | A→B→C is invalid |
Implementation Patterns
Next.js (metadata)
export const metadata = {
alternates: {
canonical: "https://example.com/page-slug",
languages: {
zh: "https://example.com/zh/page-slug",
en: "https://example.com/page-slug",
"x-default": "https://example.com/page-slug",
},
},
};HTML (generic)
<link rel="canonical" href="https://example.com/page-slug" />
Server Redirects (301)
**Apache (.htaccess)**:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]**Nginx**:
return 301 https://$host$request_uri;
Relationship to Other Technical SEO
- **Sitemap**: URLs in sitemap should match canonical
- **IndexNow**: Submit canonical URLs
Output Format
- **Canonical URL** for each page type
- **Implementation** (metadata or HTML)
- **Multi-language** setup if applicable
- **References**: [Alignify URL optimization](https://alignify.co/zh/seo/url-optimization); [Google Canonical](https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls)
Related Skills
- **url-structure**: URL hierarchy and format; canonical handles duplicate variants (HTTPS, www, trailing slash)
- **localization-strategy**: hreflang + canonical for multi-language
- **xml-sitemap**: Sitemap URLs should match canonical
- **indexnow**: Submit canonical URLs
- **google-search-console**: Find duplicate content in Coverage report
- **indexing**: Resolve indexing issues
- **site-crawlability**: Crawl budget; redirect chains; canonical reduces duplicate crawl waste
Read more
name: canonical-tag description: When the user wants to configure canonical URLs, fix duplicate content, or consolidate URL signals. Also use when the user mentions "canonical," "canonical URL," "duplicate content," "duplicate content fix," "preferred URL," or "URL consolidation." For GSC duplicates, use google-search-console. metadata: version: 1.0.1
SEO Technical: Canonical
Guides canonical tag configuration to consolidate duplicate content and declare preferred URLs.
**When invoking**: On **first use**, if helpful, open with 1–2 sentences on what this skill covers and why it matters, then provide the main output. On **subsequent use** or when the user asks to skip, go directly to the main output.
Scope (Technical SEO)
- **Duplicate site versions**: HTTPS vs HTTP; www vs non-www; trailing slash (/page vs /page/) — choose one, 301 redirect others
- **Duplicate content**: Canonical tags; consolidate and 301 to preferred URL
- **HTTPS**: SSL/TLS; secure connection; ranking signal since 2014
Initial Assessment
**Check for project context first:** If `.claude/project-context.md` or `.cursor/project-context.md` exists, read it for site URL and language structure.
Identify: 1. **Site URL**: Base domain 2. **Duplicate scenarios**: Multi-language, query params, pagination, alternate URLs 3. **Framework**: Next.js, React, static, etc.
Canonicalization Methods (Choose by Scenario)
| Method | When | Strength | |--------|------|----------| | **301 redirect** | Preferred; server can redirect | Strongest — permanent redirect | | **Canonical tag** | Cannot redirect (e.g. params, pagination) | Strong — HTML signal | | **robots.txt** | Block non-canonical paths | Weak — advisory only |
Use 301 for HTTP→HTTPS, www variants, trailing slash. Use canonical for params, pagination, UTM.
HTTPS & Security
HTTPS is a ranking signal ([Google, 2014](https://developers.google.com/search/blog/2014/08/https-as-ranking-signal)). Users and crawlers should access only the HTTPS version.
| Requirement | Action | |-------------|--------| | **SSL/TLS certificate** | Install valid certificate; use Let's Encrypt for free | | **301 redirect** | HTTP → HTTPS; all HTTP requests redirect to HTTPS | | **Mixed content** | No HTTP resources on HTTPS pages; fix mixed content warnings | | **HSTS** | Optional; `Strict-Transport-Security` header for repeat visitors |
**WWW vs non-WWW**: Choose one preferred version; 301 redirect the other. See canonical rules above.
When to Use Canonical
- **Multi-language**: Each language version has its own canonical; use **hreflang** with canonical
- **Same content, multiple URLs**: Params, pagination, tracking params, www vs non-www, trailing slash (/page vs /page/)
- **Self-referencing**: Canonical should point to self or the preferred version
- **Avoid chain canonical**: A→B→C is invalid
Rules
| Rule | Note | |------|------| | **Absolute URL** | Include `https://` | | **Consistency** | Must match current page URL or the chosen preferred version | | **No chains** | A→B→C is invalid |
Implementation Patterns
Next.js (metadata)
export const metadata = {
alternates: {
canonical: "https://example.com/page-slug",
languages: {
zh: "https://example.com/zh/page-slug",
en: "https://example.com/page-slug",
"x-default": "https://example.com/page-slug",
},
},
};HTML (generic)
<link rel="canonical" href="https://example.com/page-slug" />
Server Redirects (301)
**Apache (.htaccess)**:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]**Nginx**:
return 301 https://$host$request_uri;
Relationship to Other Technical SEO
- **Sitemap**: URLs in sitemap should match canonical
- **IndexNow**: Submit canonical URLs
Output Format
- **Canonical URL** for each page type
- **Implementation** (metadata or HTML)
- **Multi-language** setup if applicable
- **References**: [Alignify URL optimization](https://alignify.co/zh/seo/url-optimization); [Google Canonical](https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls)
Related Skills
- **url-structure**: URL hierarchy and format; canonical handles duplicate variants (HTTPS, www, trailing slash)
- **localization-strategy**: hreflang + canonical for multi-language
- **xml-sitemap**: Sitemap URLs should match canonical
- **indexnow**: Submit canonical URLs
- **google-search-console**: Find duplicate content in Coverage report
- **indexing**: Resolve indexing issues
- **site-crawlability**: Crawl budget; redirect chains; canonical reduces duplicate crawl waste
Markdown skill library for AI agents - SEO, content, pages, paid ads, channels, strategies. Add project context + skills; your agent delivers tailored, production-ready output. Works with Cursor, Claude Code, OpenClaw, Lovable, and any AI that reads markdown.
Repo: kostja94/marketing-skills
Other skills on kostja94-marketing-skills.
- /google-search-console
When the user wants to analyze Google Search Console data, use the GSC API, or interpret search performance. Also use when the user mentions "GSC," "Search Console," "indexing report," "Core Web Vitals," "Enhancements," "Insights report," "search performance," "search queries,"
Open skill - /seo-monitoring
When the user wants to build an SEO data analysis system, monitor indexing/traffic/keywords/backlinks, or set up benchmarks. Also use when the user mentions "SEO data analysis," "SEO monitoring," "article database," "traffic benchmark," "penalty recovery," "SEO work document,"
Open skill - /ai-traffic
When the user wants to track AI search traffic in GA4 or GSC. Also use when the user mentions "AI traffic," "ChatGPT referral," "Perplexity traffic," "AI Overviews," "GA4 AI sources," "AI search analytics," "track AI referrals," "AI search traffic," "Claude traffic," or "how to
Open skill - /traffic
When the user wants to analyze website traffic sources, attribution, or dark traffic. Also use when the user mentions "traffic sources," "dark traffic," "direct traffic," "UTM parameters," "traffic attribution," "channel attribution," "attribution optimization," "channel
Open skill - /tracking
When the user wants to set up, audit, or optimize analytics tracking (GA4, events, conversions). Also use when the user mentions "Google Analytics," "GA4," "event tracking," "conversions," "attribution model," "gtag," "data layer," "GA4 setup," "conversion tracking," "event
Open skill - /community-forum
When the user wants to promote via forums, communities, or invite users to join a community. Also use when the user mentions "forum promotion," "Indie Hacker," "Hacker News," "community growth," "Discord promotion," "vertical community," "brand encyclopedia," "Wikipedia,"
Open skill

