Canonical Tag
Configure canonical URLs, fix duplicate content, or consolidate URL signals.
Listed ·Updated
Install data from skills.sh
About this skill
Canonical Tag is a Technical SEO skill for AI agents, published in the seoskills.sh catalog. Reach for it when your work involves crawlability, indexing, site architecture, Core Web Vitals, and log-file analysis. Install it with one command and it runs inside your own agent, so the work happens in your workflow, not a separate SEO tool.
SKILL.md
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
Project context: Read root contextus.md when present and load only the modules relevant to this task. Without Contextus, use available project material or user-provided facts and ask for missing information; do not create a parallel context system.
Identify:
- Site URL: Base domain
- Duplicate scenarios: Multi-language, query params, pagination, alternate URLs
- 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). 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; Google Canonical
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
Not using the CLI? Copy the SKILL.md and paste it straight into ChatGPT, Claude, or any agent.
Embed a badge
Install into your agent
More in Technical SEO
SEO
Optimize for search engine visibility and ranking.
Core Web Vitals
Optimize Core Web Vitals (LCP, INP, CLS) for better page experience using field and lab evidence.
SEO Sitemap
Analyze existing XML sitemaps or generate new ones with industry templates.
Hreflang Network Validator
Crawls a set of URLs, builds the full hreflang graph across every language and region variant, and validates bidirectio…
Puppeteer JS Rendering Auditor
Loads each URL as raw HTML and as a fully JavaScript-rendered DOM via headless Chrome, then diffs content, links, and m…
Redirect Chain Mapper
Follows every redirect hop for a list of URLs to map full chains, loops, and mixed 301/302 usage, then flags chains lon…