I publish the same core ideas on my blog, Substack, and Medium. I've been doing this for years. My organic search traffic has grown consistently throughout. That's not despite the cross-posting — it's because I do it correctly.
Most writers either avoid cross-posting entirely (leaving traffic on the table) or do it carelessly (tanking their search rankings). Neither approach is right. There's a system that lets you publish across multiple platforms without hurting your SEO. I'm going to walk you through exactly how it works, based on real experience, real mistakes, and real search console data.
Why cross-posting can hurt your SEO
When Google finds the same (or very similar) content at multiple URLs, it has to decide which version to show in search results. This is the duplicate content problem. Google doesn't penalize duplicate content in the punitive sense — it won't remove your site from the index. But it will choose one version as the canonical and suppress the others.
The problem: Google doesn't always choose the version you want. If you publish an article on your blog and copy it to Medium without proper canonical handling, Google might decide Medium's version is the canonical one. Now Medium ranks for your keyword, and your blog — the property you own — gets filtered out.
I've seen this happen to writers who didn't understand cross posting SEO. They published great content on their blog, copied it to Medium, and watched Medium outrank them for their own article. Medium has massive domain authority. Without canonical signals telling Google otherwise, Medium's version often wins.
That's the risk. Here's how to eliminate it.
Canonical URLs — the foundation of safe cross-posting
A canonical URL is a piece of HTML that tells Google: "This is the original version of this content. If you find similar content elsewhere, treat this URL as the source." It looks like this in the page header: <link rel="canonical" href="https://yourblog.com/your-article">
When you cross-post correctly, every republished version points its canonical URL back to your original. Google sees the canonical tag, understands which version is the source, and concentrates all ranking signals on your original URL. The republished versions can still be read and shared, but they won't compete with your original in search results.
This is the single most important concept in cross posting SEO. Get canonicals right and you can publish the same content in five places without any SEO harm. Get them wrong and you're diluting your own rankings.
Platform-specific canonical handling
Each platform handles canonicals differently. Here's what you need to know:
Medium. Medium has an import tool (under your profile: "Stories" → "Import a story"). When you paste your original URL and import, Medium automatically sets the canonical URL to your original. This is the right way to republish on Medium. Don't copy-paste your content into a new Medium story — use the import tool. Copy-pasting creates a new story with Medium's URL as the canonical, which is exactly what you don't want.
I covered Medium-specific SEO in detail in my Medium SEO guide. The import tool is the critical piece for cross-posting.
Substack. Substack doesn't have a native canonical URL setting for newsletter posts. This means you need to approach Substack differently. Don't republish your blog post verbatim on Substack. Instead, rewrite the opening, add personal context, change the call-to-action, and make it a genuinely different piece. If the content is sufficiently different, Google treats it as a related but distinct article, not duplicate content.
I go deep on this in my Substack SEO guide. The short version: Substack should get the adapted version, not the identical version.
WordPress (self-hosted blog). If your blog runs on WordPress, you control the canonical URL directly. Plugins like Yoast SEO or RankMath let you set the canonical URL for each post. Your blog posts should always point their canonical to themselves — they're the originals.
Ghost. Ghost handles canonicals automatically. Each post's canonical URL points to itself by default, which is correct. If you want to change it (for example, if you're republishing someone else's content), you can set a custom canonical in the post settings.
The timing system that protects rankings
When you publish matters for cross posting SEO. Google's crawler typically discovers new content within hours to days. You want Google to find your original version first, index it, and establish it as the canonical before it encounters the republished versions.
My timing system:
- Day 1: Publish on your blog (the canonical source). Submit the URL to Google Search Console for immediate indexing.
- Day 2–3: Publish on Substack (the adapted version with different opening and personal context).
- Day 4–7: Import to Medium using the import tool (canonical automatically set to your blog URL).
This stagger gives Google time to discover and index your original before encountering the republished versions. It's not strictly necessary if your canonicals are set correctly — Google should follow the canonical tags regardless of timing. But in practice, getting indexed first adds a belt to the suspenders. I always recommend both.
What to change between platforms (and what to keep)
Effective cross-posting isn't just copy-pasting with a canonical tag. Each platform has a different audience, different formatting expectations, and different discovery mechanisms. Adapting your content for each platform improves both reader experience and SEO.
Headlines. Your blog headline should be optimized for search — include your target keyword naturally. Your Medium headline can be more attention-grabbing and curiosity-driven. Your Substack subject line should feel personal and conversational. Same core idea, three different framings.
Opening paragraphs. Blog openings need to establish relevance quickly for search visitors who have no relationship with you. Substack openings can skip the credentials because your subscribers already know you. Medium openings should hook readers scrolling through their feed.
Internal links. On your blog, link to other blog posts. On Medium, link to other Medium stories. On Substack, link to other Substack editions. Each version should link within its own ecosystem. This improves the reader experience and strengthens your content network on each platform independently.
Calls to action. Blog posts should drive newsletter signups. Medium stories should drive newsletter signups or blog visits. Substack editions should drive replies, shares, or product purchases. Match the CTA to the platform's audience and your goal for that channel.
I detailed my full cross-platform publishing system in my content repurposing guide. The key insight: same ideas, adapted packaging.
The mistakes that actually hurt rankings
In years of cross-posting, I've made most of the mistakes. Here are the ones that actually moved the needle on rankings — in the wrong direction:
Copy-pasting into Medium without using the import tool. I did this early on. Three of my articles ended up with Medium outranking my blog for the target keyword. I had to go back, delete the Medium versions, reimport them with the correct canonical, and wait weeks for Google to recrawl. Don't make this mistake.
Publishing on all platforms simultaneously. I used to publish everywhere on the same day. The cross posting SEO problem: Google sometimes indexed the Medium version first (because Medium's domain authority triggers faster crawling) and treated it as the canonical. The timing stagger fixed this.
Identical content on Substack. Because Substack doesn't support custom canonicals, publishing identical content there creates a true duplicate without a canonical signal pointing to the original. Google has to guess which version matters. Sometimes it guesses wrong. The solution: always adapt the content for Substack enough that it's genuinely different.
Forgetting about syndication feeds. Some platforms automatically syndicate your content via RSS. If another site picks up your RSS feed and republishes your content, that's another duplicate in the wild without a canonical. Check your RSS settings and make sure full-text feeds aren't being scraped by aggregator sites.
Checking if your canonicals are working
After setting up cross-posting, verify that Google is recognizing the right canonical:
- Go to Google Search Console
- Use the URL Inspection tool
- Enter the URL of your republished version (the Medium or Substack URL)
- Check "Google-selected canonical" — it should show your blog URL, not the platform URL
If Google selected a different canonical than the one you specified, something is wrong. Common causes: the canonical tag is missing, the canonical URL has a redirect, or the content on the "canonical" page is substantially different from the republished version (which makes Google doubt the canonical claim).
I check this quarterly for my most important articles. It takes about thirty minutes and catches problems before they affect rankings.
The long-term view on cross posting SEO
I've been cross-posting systematically for over three years. In that time, my blog's organic traffic has grown from roughly 3,000 monthly visits to over 28,000. The cross-posted versions on Medium and Substack collectively reach another 15,000-20,000 people per month. That's audience I wouldn't reach if I published exclusively on my blog.
The key metric I track: my blog's average position in Google Search Console. If cross-posting were hurting my SEO, I'd see my average position declining as duplicate versions appeared elsewhere. Instead, it has improved steadily — from an average position of 34 to an average position of 18 over three years. The canonical strategy works.
Some writers worry that cross-posting "dilutes" their brand by spreading content across platforms. I see it the opposite way. Each platform has a different audience. The person who discovers me through Medium's recommendation algorithm is often different from the person who subscribes to my Substack via a referral. Cross-posting isn't dilution — it's distribution. And distribution is what turns good writing into a growing audience.
The cross-posting system that works
Cross posting SEO isn't complicated once you understand the principles. Publish the original on your blog. Stagger the republication. Use canonical URLs everywhere possible. Adapt the content where canonicals aren't available. Check your work periodically.
The payoff is significant: you get the search ranking benefits concentrated on your owned property while simultaneously reaching Medium's built-in audience, Substack's subscriber base, and anywhere else you choose to publish. More reach, no ranking dilution.
For the full strategy on running Medium and Substack alongside your own blog — including the publishing logic, the cross-linking approach, and the email capture strategy — I put everything into my Medium + Substack Dual Strategy guide.
The writers who earn the most from their work aren't the ones who write the most. They're the ones who get the most distribution from what they write. Cross posting SEO, done correctly, is how you multiply your reach without multiplying your workload. One article, three platforms, zero ranking damage. That's the leverage most writers leave on the table.
Write once, publish strategically, rank where it counts. That's the system.
A writer is nothing without a reader. If you found this helpful, consider becoming my dear email friend. Nothing would make me happier.
* This article may contain affiliate or SparkLoop partner links. I may earn a small commission at no extra cost to you.