ZYVOPDOCS
DEVELOPER PUBLISHING
Platform Features

Canonical Links & SEO

Use canonical tags to signal the preferred URL when an article appears on multiple sites.

Publishing technical posts across multiple developer communities can grow your audience, but it also gives search engines several URLs for substantially the same article.

ZyVOP passes your canonical preference to destinations that support it. Canonical declarations help search engines consolidate duplicate URLs and ranking signals, but they are not guarantees.


What is a Canonical Tag?

A canonical link tag is an HTML link element placed in the <head> of a web page:

<link rel="canonical" href="https://yourblog.dev/posts/distributed-systems" />

It tells web crawlers that https://yourblog.dev is your preferred version of the article. Search engines can still select another canonical when their other signals disagree.


How Search Engines Treat Canonical Tags

Important SEO Nuance

Per Google Search Central's canonicalization guidance, search engines treat rel="canonical" as a strong hint, not an absolute decree. If the preferred page is unavailable or its signals conflict, a search engine may choose another canonical.

To make your canonical preference easier for search engines to interpret:

  1. Keep the preferred page crawlable and indexable: Do not block it with robots.txt or a noindex directive.
  2. Use a self-referential canonical on the preferred page: Point its canonical element to its own URL.
  3. Keep signals consistent: Use the same preferred URL in internal links, sitemaps, redirects, and canonical elements.

How ZyVOP Applies Canonical Tags

When you provide a canonical_url:

post.md
---
title: "Zero-Downtime PostgreSQL Migrations"
canonical_url: "https://engineering.mycompany.com/postgres-migrations"
---

ZyVOP sends this canonical URL to destinations whose publishing APIs support a canonical field:

  • DEV.to: Passed into the canonical_url API parameter. DEV.to embeds <link rel="canonical"> into the rendered page head.
  • Hashnode: Passed into the GraphQL originalArticleURL field. Hashnode renders the corresponding canonical link tag on the syndicated post.
  • Medium: Passed into Medium's canonicalUrl field.
  • WordPress: The current adapter publishes the article and a visible ZyVOP attribution link. It does not modify WordPress core, Yoast, Rank Math, or other SEO-plugin canonical metadata.

Automatic Publication Canonical Resolution

If you publish through a ZyVOP publication with a custom domain and leave canonical_url blank, ZyVOP resolves your canonical link to your primary publication domain (https://blog.yourdomain.com/your-slug) and sends it to destinations with supported canonical fields.

RSS Behavior

Published, discoverable articles remain eligible for RSS even when they declare an external canonical URL. For those entries, ZyVOP uses the canonical URL as the RSS item link and includes it as dc:source. This keeps the feed useful without presenting the ZyVOP copy as the preferred source.


Verifying Canonical Tags

After cross-posting, you can verify your canonical tag using curl or browser developer tools:

curl -sL https://dev.to/username/your-article-slug | grep 'rel="canonical"'

Expected output:

<link rel="canonical" href="https://engineering.mycompany.com/postgres-migrations" />

On this page