← Back to Blog

Blog Syndication Playbook: How to Cross-Post to X, Medium, and LinkedIn Without Losing SEO

Blog Syndication Playbook: How to Cross-Post to X, Medium, and LinkedIn Without Losing SEO

You wrote the blog post. It lives on your own site. Now you want it on X, Medium, and LinkedIn too. Most people either skip this step entirely — leaving the reach on the table — or copy-paste in a way that triggers duplicate-content problems with Google.

This is the playbook. Fifteen minutes per post, zero SEO risk, and most of it automated after the first setup. Share it, steal it, fork it for your own brand. It's the exact system I run across six book sites and one author hub.

Why Syndication Matters (and Why Most People Do It Wrong)

A blog post on your own domain can only be found by people who already know your domain exists. Syndication — the practice of re-publishing the same content on platforms where different audiences already live — is how you stop relying on search traffic alone.

The mistake most people make is one of two extremes. Either they ignore syndication entirely because they're afraid of "duplicate content," or they copy-paste their post into a Medium or LinkedIn article and publish it without setting a canonical URL. The first wastes reach. The second tells Google that the Medium copy and the LinkedIn copy are competing signals, which can depress rankings for the version you actually want to rank.

The playbook below fixes both. It drives reach. It protects SEO. And it takes less than 15 minutes per post once you've set up the automation layer.

The One-Line Strategy

Write once on your own domain. Syndicate everywhere a canonical URL can be preserved. Repurpose everywhere else.

That distinction is the whole game. Medium supports canonical URLs — you can import a post and keep the search signal pointed at your site. X does not — so X gets repurposed (threads), not syndicated. LinkedIn articles support a "originally published on" attribution but not a true canonical tag — so LinkedIn gets a shortened excerpt that links back, not the full post.

Step 1: Set Up Your Source of Truth

Your own domain is the source of truth. Everything else is downstream. Before you syndicate a single post, confirm your own site has:

  • An RSS feed at /feed.xml or /rss.xml. This is what automation tools watch.
  • A JSON feed at /feed.json is a nice-to-have for newer tools like Mastodon bridges.
  • Canonical URLs on every post (<link rel="canonical" href="https://yoursite.com/blog/your-post/"> in the <head>). Almost every static site generator does this by default — just verify.
  • OG tags (og:title, og:description, og:image) so when you post the link to X or LinkedIn, it renders as a rich card.

If your site has these, you're ready. If it doesn't, the infrastructure chapter in The $97 Launch walks you through building this on a free Netlify account, top to bottom.

Step 2: The 15-Minute Per-Post Workflow

After you publish on your own site, you run exactly this sequence. I've timed it — it's a hair under 15 minutes.

Medium (3 minutes)

  1. Go to medium.com/p/import.
  2. Paste the full URL of your blog post.
  3. Medium fetches the content, creates a draft, and automatically adds rel="canonical" pointing back to your URL.
  4. Open the draft. Add a one-sentence "Originally published on [your domain]" line at the top. This is belt and suspenders — the canonical tag already does the SEO work, but the visible attribution tells human readers where to find more.
  5. Publish. Attach 1–3 Medium tags relevant to your niche.

What you just protected: the canonical URL. Medium tells Google that your version is the original. The Medium copy still ranks within Medium's internal discovery, but Google's ranking signal flows back to your site.

X (Twitter) — 8 minutes

X does not support canonical URLs. Treating X like Medium is the wrong mental model. Instead, turn every blog post into a thread.

  1. Pull the most provocative single sentence from your post. Make it the opening tweet.
  2. In tweets 2 through 7, list the most scannable insights — one per tweet, 200 characters or less.
  3. In the final tweet, link back to the full post on your own domain with a UTM tag: ?utm_source=x&utm_medium=social&utm_campaign=post-slug.
  4. Pin the thread to your profile for a week if it's cornerstone content.

Why this structure: X's algorithm rewards dwell time. A thread keeps people scrolling within X. The final link tweet captures the subset who want the full argument. You get both in-platform reach and qualified click-through.

The $20 Dollar Agency has 15 copy-paste prompt templates for turning a blog post into a thread in under 2 minutes using a $20/month AI plan. If you're writing these threads by hand, you're paying the wrong price.

LinkedIn — 4 minutes

LinkedIn has three post formats: the short post (like a tweet), the long post (up to 3,000 characters), and the article (no character limit). For blog syndication, use the long post format.

  1. Write a 3-sentence opening hook that states the problem your blog post solves.
  2. Paste the 3–5 key bullets from your post.
  3. End with: "Full analysis + the 5 tables here: [link with UTM]".
  4. UTM pattern: ?utm_source=linkedin&utm_medium=social&utm_campaign=post-slug.
  5. Add 3–5 hashtags. Keep them niche (#contentsyndication beats #marketing).

Do not use the LinkedIn Article format for syndicated content. Article format eats the whole piece onto LinkedIn and gives you no way to set a canonical URL. It's a reach play with an SEO cost.

Step 3: The $24/Month Automation Stack

Manual is fine for post one. By post ten, you will stop. Automate it.

The stack:

  • Make.com (Core plan, $9/month). Watches your /feed.xml. When a new post appears, it fires a scenario.
  • Buffer (Essentials plan, $15/month). Receives the webhook from Make.com, drafts a post to X and a post to LinkedIn based on pre-built templates, and queues them for posting at your designated time.
  • Medium stays manual. The Import a Story flow takes 30 seconds — cheaper than paying Zapier $20/month to automate a button click.

5-Step Setup (30 minutes total)

  1. Sign up for Buffer. Connect your X account (Buffer has an approved X integration — you do not need to buy your own X API access) and your LinkedIn account (same deal).
  2. In Buffer, create two post templates. One for X ("Hook — [title] — link with UTM"). One for LinkedIn (3-sentence hook, 3 bullets, link with UTM).
  3. Sign up for Make.com. Create a new scenario with two modules: RSS > Watch RSS feed items (pointing at yourdomain.com/feed.xml) and Buffer > Create a draft. Map the RSS title and description into Buffer's template variables.
  4. Run the scenario once manually to confirm it fires a Buffer draft.
  5. Schedule the scenario to run every 15 minutes. That's it.

Your total cost: $24/month. Your total setup time: 30 minutes. Your per-post effort after that: 3 minutes for Medium, done.

Step 4: UTM Parameters That Actually Tell You Something

If you don't tag your syndicated links, your analytics will say "social" drove traffic and you won't know which channel is working. Use this scheme:

Channel utm_source utm_medium utm_campaign
X thread x social [post-slug]
Medium import medium syndication [post-slug]
LinkedIn long post linkedin social [post-slug]
LinkedIn comment reply linkedin social comment-[post-slug]
Email newsletter newsletter email [post-slug]

After 30 days, open your analytics, filter by utm_source, and sort by conversions. That tells you where your audience actually is. Most solo brands discover they have one channel doing 70% of the work and two channels doing nothing — kill the losers, feed the winner.

Step 5: Monthly KPI Review (the 90-Day Kill Rule)

At the end of every month, for each channel, you track:

  • Clicks back to your site (from UTM-tagged links).
  • Engagement rate on the syndicated post (likes + comments / impressions).
  • Time spent on your site from that traffic source (Google Analytics 4, engagement time).

The rule: after 90 days on a channel, if it's not producing at least one of (a) 50+ clicks/month back to your site, or (b) visible engagement from people in your niche, you kill that channel and redirect the time elsewhere.

Most people keep unproductive channels alive out of sunk-cost bias. A solo creator cannot afford that. The channel that works for your niche is the channel where your audience already spends time — trying to drag them to a platform they don't use is a losing battle.

Failure Modes and How to Catch Them

Duplicate-content dilution. You forgot to set the Medium canonical URL. Caught by: searching for your post title in Google one week later. If the Medium version ranks above your own domain, fix the canonical immediately.

Broken UTM parameters. Someone shared your X link, stripped the UTM, and now analytics can't attribute. Caught by: a sudden "direct" traffic spike in GA4 on the day you posted. Accept some leakage; don't obsess.

Buffer posting at 3am. You configured your default time for UTC, not your timezone. Caught by: check the "queue" tab in Buffer and pin your active hours (typically 9am and 1pm local for LinkedIn, noon for X).

Make.com scenario silently failing. Your RSS feed changed format and Make.com stopped matching. Caught by: set up the built-in Make.com error notification email.

Scaling This Across Multiple Sites

Single-author, single-site: the above is the whole system. If you're running multiple sites — which is what The $100 Network covers in 50 chapters — you need a shared orchestration layer that watches N feeds and posts to N different X handles, Medium publications, and LinkedIn accounts based on content type routing.

The monoclone architecture in The $100 Network treats syndication as a first-class feature. One scenario in Make.com. One Buffer workspace with multiple connected profiles. One spreadsheet that maps source feed → target accounts. Changes propagate across the whole network from a single config file.

For most people, starting with one blog, one Make.com scenario, and one Buffer account is enough for at least the first year.

A Shareable, Printable Version of This Playbook

  1. Write on your own domain. Canonical URL, RSS feed, OG tags, JSON feed.
  2. Medium: use Import a Story — canonical URL is automatic.
  3. X: turn the post into a 5–7 tweet thread with a UTM-tagged final link.
  4. LinkedIn: use the long-post format, not Article. UTM-tagged link at the bottom.
  5. Automate: Make.com ($9/mo) + Buffer ($15/mo). 30 minutes to set up.
  6. Tag everything: UTM parameters for every link.
  7. Review monthly: kill channels that haven't produced in 90 days.

That's the whole playbook. Save this page. Send it to a friend who's writing into the void. Run the setup yourself this weekend. By Monday, your next blog post goes out to four channels with a 3-minute manual step for Medium and zero manual steps for X and LinkedIn.

Then go write the next post.


Want the full marketing stack? The $20 Dollar Agency covers 47 chapters of promotion, including syndication at scale. Want to build the site this playbook assumes? The $97 Launch has you covered, under $97 in startup cost. Running 16 sites at once? The $100 Network is the advanced playbook.

← Back to Blog

Accessibility Options

Text Size
High Contrast
Reduce Motion
Reading Guide
Link Highlighting
Accessibility Statement

J.A. Watte is committed to ensuring digital accessibility for people with disabilities. This site conforms to WCAG 2.1 and 2.2 Level AA guidelines.

Measures Taken

  • Semantic HTML with proper heading hierarchy
  • ARIA labels and roles for interactive components
  • Color contrast ratios meeting WCAG AA (4.5:1)
  • Full keyboard navigation support
  • Skip navigation link
  • Visible focus indicators (3:1 contrast)
  • 44px minimum touch/click targets
  • Dark/light theme with system preference detection
  • Responsive design for all devices
  • Reduced motion support (CSS + toggle)
  • Text size customization (14px–20px)
  • Print stylesheet

Feedback

Contact: jwatte.com/contact

Full Accessibility StatementPrivacy Policy

Last updated: April 2026