Tutorial Aug 15, 2026 ยท 12 min read

How to Cross-Post to Hashnode from WordPress in 2026

You write great technical content on WordPress. But are you reaching the 5M+ developers who read on Hashnode? This guide shows you exactly how to cross-post your WordPress articles to Hashnode โ€” automatically, with proper canonical URLs so your SEO stays intact.

Why Cross-Post to Hashnode?

Hashnode has grown into one of the largest developer blogging communities, with over 5 million monthly visitors. Unlike Medium or Dev.to, Hashnode lets you use your own custom domain โ€” meaning you build your personal brand while tapping into their built-in audience.

For WordPress bloggers in the tech space, Hashnode represents a high-value distribution channel because:

  • โ€ข The audience is actively looking for technical content โ€” your tutorials and guides get organic engagement
  • โ€ข Hashnode's community features (comments, discussions, newsletters) extend the life of your content
  • โ€ข Articles rank quickly on Google due to Hashnode's domain authority
  • โ€ข The platform supports code blocks, embeds, and Markdown โ€” perfect for technical writing
  • โ€ข You can drive traffic back to your WordPress site through author bio links and CTAs

The question isn't whether you should cross-post โ€” it's how to do it without hurting your WordPress site's SEO. Let's cover that first.

The SEO Concern (And How Canonical URLs Fix It)

The biggest concern with cross-posting is duplicate content. If the same article exists on your WordPress site and Hashnode, Google might not know which version to rank โ€” or worse, it might rank the Hashnode version over yours.

The fix is simple: canonical URLs.

A canonical URL is an HTML tag that tells search engines "this is a copy โ€” the original lives at [URL]." When you cross-post to Hashnode with a canonical URL pointing to your WordPress post, Google attributes all SEO value to your original article.

<!-- Add this to your Hashnode article -->
<link rel="canonical" href="https://yourblog.com/your-original-article" />

Hashnode natively supports canonical URLs. When you publish via their API or settings panel, you can specify the original URL. This ensures your WordPress site gets the full SEO credit while you still reach Hashnode's developer audience.

Method 1: Using PubliFlow (No-Code)

The fastest way to cross-post from WordPress to Hashnode is using PubliFlow, a cross-platform publishing tool that handles the entire process automatically โ€” including HTML-to-Markdown conversion, canonical URLs, and tag mapping.

1

Connect Your WordPress Site

In PubliFlow, add your WordPress site as a source. PubliFlow connects via your WordPress RSS feed or REST API to pull your latest articles automatically.

2

Link Your Hashnode Account

Add your Hashnode account using your Personal Access Token (PAT). You can generate one from Hashnode โ†’ Settings โ†’ Developers โ†’ Personal Access Token.

3

Configure Cross-Post Settings

Set your preferences: auto-set canonical URLs (recommended), map WordPress categories to Hashnode tags, choose whether to include a CTA at the bottom of each article, and select which WordPress tags should trigger a cross-post.

4

Publish with One Click

Hit "Publish" and PubliFlow converts your WordPress HTML to Hashnode-compatible Markdown, sets the canonical URL, applies tags, and publishes the article. You can also enable auto-publish so new WordPress posts cross-post to Hashnode automatically.

PubliFlow also handles publishing to Dev.to, Medium, and social platforms simultaneously โ€” so you get a complete cross-posting pipeline from a single WordPress publish action.

Method 2: Using the Hashnode GraphQL API

If you prefer a DIY approach, Hashnode's GraphQL API gives you full control over the cross-posting process. Here's a step-by-step implementation using Node.js.

1

Get Your Hashnode PAT

Go to Hashnode โ†’ Settings โ†’ Developers โ†’ Generate Personal Access Token. Store it securely โ€” you'll use it for API authentication.

2

Fetch Your WordPress Article

Use the WordPress REST API to fetch the article content you want to cross-post:

const response = await fetch(
  'https://yourblog.com/wp-json/wp/v2/posts/123'
);
const post = await response.json();
const htmlContent = post.content.rendered;
const title = post.title.rendered;
const slug = post.slug;
3

Convert HTML to Markdown

Hashnode uses Markdown, so convert your HTML content. The turndown npm package handles this well:

import TurndownService from 'turndown';

const turndown = new TurndownService();
const markdown = turndown.turndown(htmlContent);
4

Publish via Hashnode API

Use the Hashnode GraphQL mutation to publish the article with canonical URL:

const MUTATION = `
mutation PublishArticle($input: PublishArticleInput!) {
  publishArticle(input: $input) {
    article {
      id
      url
    }
  }
}`
;

const result = await fetch('https://gql.hashnode.com/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': `Bearer ${PAT}`
  },
  body: JSON.stringify({
    query: MUTATION,
    variables: {
      input: {
        title,
        contentMarkdown: markdown,
        // Set canonical URL to original WordPress post
        originalArticleURL: `https://yourblog.com/${slug}`,
        tags: [{ slug: 'javascript' }, { slug: 'webdev' }],
        publicationId: 'YOUR_PUBLICATION_ID'
      }
    }
  })
});

The key field is originalArticleURL โ€” this sets the canonical URL automatically so Google knows your WordPress post is the original.

Method 3: WordPress Webhooks + Automation

For a fully automated pipeline, use WordPress webhooks to trigger cross-posting whenever you publish a new article. Here's the architecture:

1. You publish a post in WordPress

2. WordPress fires a webhook (via plugin like WP Webhooks)

3. Webhook hits your middleware (Node.js serverless function)

4. Middleware converts HTML โ†’ Markdown

5. Middleware calls Hashnode API with canonical URL

6. Article appears on Hashnode automatically โœ…

You can implement this using:

  • โ€ข WP Webhooks plugin โ€” fires on post publish/update
  • โ€ข A webhook endpoint on Vercel/Cloudflare Workers/Railway
  • โ€ข Turndown.js for HTML-to-Markdown conversion
  • โ€ข Hashnode GraphQL API for publishing

This approach requires some development work but gives you a zero-touch cross-posting pipeline. Every time you hit "Publish" in WordPress, the article automatically appears on Hashnode within seconds.

Alternatively, tools like PubliFlow can replace this entire pipeline with a few clicks โ€” no serverless functions required.

Formatting Tips for Developer Content

WordPress and Hashnode handle content differently. Here's how to ensure your technical content looks great on both platforms:

Code Blocks

WordPress uses <pre><code> blocks. Hashnode uses fenced code blocks with language identifiers. When converting, ensure your code blocks include the language tag (e.g., ```javascript) for proper syntax highlighting.

Images

Hashnode can reference external images via URLs. Ensure your WordPress images are accessible via public URLs. Alternatively, Hashnode's API can upload images to their CDN during publishing for faster loading.

Embeds

Hashnode supports embeds for YouTube, Twitter, GitHub Gists, CodePen, and more. If your WordPress post uses oEmbed, convert these to Hashnode's embed syntax during the cross-post process.

Internal Links

Links to other posts on your WordPress site will still work from Hashnode (they're just external links from Hashnode's perspective). However, consider adding a brief author bio with a CTA to drive Hashnode readers back to your main site.

Best Practices for Cross-Posting

โœ“

Always set canonical URLs

This is non-negotiable. Always point the canonical URL to your original WordPress post to protect your SEO.

โœ“

Publish to WordPress first, then cross-post

Let Google index your original post before the Hashnode version goes live. A delay of even a few hours helps establish your WordPress URL as the canonical source.

โœ“

Add a CTA at the bottom

Include a brief author bio with a link back to your site. Something like "Originally published at [yourblog.com]. Subscribe to our newsletter for more technical content."

โœ“

Use relevant Hashnode tags

Hashnode's tag system drives discovery. Map your WordPress categories to popular Hashnode tags like #javascript, #webdev, #programming, #tutorial, or #beginners.

โœ“

Cross-post to multiple platforms

Don't stop at Hashnode. Cross-post to Dev.to and Medium as well, each with canonical URLs pointing to your WordPress original. This maximizes your content's reach without SEO penalty.

Frequently Asked Questions

Is cross-posting to Hashnode bad for SEO?

No, cross-posting is not bad for SEO if you set canonical URLs correctly. The canonical URL tells Google which version is the original, ensuring your WordPress site gets the SEO credit. Hashnode explicitly supports canonical URLs for this purpose.

Does Hashnode have an API for publishing?

Yes. Hashnode provides a GraphQL API at https://gql.hashnode.com that supports creating and publishing articles programmatically. You need a Personal Access Token (PAT) for authentication.

Can I automatically cross-post from WordPress to Hashnode?

Yes. You can automate WordPress-to-Hashnode cross-posting using tools like PubliFlow (which handles the conversion and canonical URLs automatically), or by building a custom integration using WordPress webhooks and the Hashnode GraphQL API.

Should I cross-post to Hashnode or Dev.to?

Both platforms serve the developer community but have different strengths. Hashnode offers custom domain support and a more blog-like experience, making it better for SEO and personal branding. Dev.to has a larger built-in audience. The best strategy is to cross-post to both, with canonical URLs pointing to your original WordPress post.

What content format does Hashnode use?

Hashnode uses Markdown for article content, with support for standard Markdown syntax plus extensions for embeds, code blocks with syntax highlighting, and images. When cross-posting from WordPress, your HTML content needs to be converted to Markdown for proper rendering.

Related Articles

Ready to Publish Everywhere?

PubliFlow publishes to Dev.to, Hashnode, Medium, Twitter, LinkedIn, and more โ€” all with one click and automatic canonical URL management.

Get Started Free โ†’