Updated October 22, 2026. X API prices checked the same day.

WordPress auto post to X in 2026
for news sites whose X plugin stopped working

To auto-post WordPress articles to X in 2026, connect your site's RSS feed (example.com/feed/) to a tool that posts each new article with its headline, featured image and link, so you don't need your own X developer app or pay-per-use API credits.

This page is for publishers whose Autopost for X, XPoster or NextScripts SNAP setup broke when X ended free API access: 429 errors, posts that tweeted five times, missing featured images, and no way to send one category to its own account. For the basic blog setup, see the WordPress integration.

Card required, cancel any time.

The short answer

To auto-post WordPress articles to X in 2026, use your RSS feed, not a plugin with your own X keys. Since April 20, 2026, X charges $0.20 for every API post with a link (X API pricing), and plugins that use your developer app pass that to you. A feed connector that posts through its own X app does not.

Why WordPress plugins stopped posting to X

Most WordPress X plugins post through an X developer app that you create and pay for. That worked while X had a free tier. In early 2026 X moved the API to pay-per-use. The Autopost for X plugin page now says X "effectively removed free API access for all users except public utilities" and that most users "will now require paid API access". The support forum thread title says it plainly: "Is free X API access now dead?"

Today, per X's pricing page (checked October 22, 2026), a plain post costs $0.015 and a post with a URL costs $0.20, about 13 times more. A news site posts links on almost every article, so the link price is the one that matters. The details are in the X API link post fee and X API pricing.

The common errors follow from that. "I was able to link to X, but can't post" often means the developer app has no credits. "Error: 429. Too Many Requests" is X refusing calls past your app's limit. Neither happens when the tool posts through its own app.

WordPress to X options in 2026

The question that decides the cost is who pays X's $0.20 link fee. Prices as published by each vendor in October 2026.

WordPress to X auto-post options compared, October 2026
ToolPosts to X?Needs an X developer account?Who pays the $0.20 link feeFeatured imagePrice
Jetpack SocialNo. X removed May 18, 2023n/an/an/a for XFree; Social plan from $4.95/mo (first year)
Revive Social (Revive Old Posts)YesYes, your own X appYou, billed by XYesFree plugin; Starter from $99/yr, plus X API fees
Blog2SocialOnly with the X add-onNo, you log in to X (per its setup)Bundled in the add-onImage post format availableX add-on $14.99 / $24.99 / $59.99 a month for 70 / 100 / 250 X posts
Autopost for X / XPosterYesYes, your own X developer keysYou, pay-per-useYesFree plugins, plus X API fees
dlvr.itYes, capped per profileNodlvr.it, but links go out as plain, non-tappable textYes, up to 4 imagesFree: 10 X posts/profile/mo; paid: 150/profile/mo, extra $2.50 per 100
OpenTweetYes, from any feedNo (one-click X login)OpenTweet, inside the plan (1 / 10 / 20 link posts a day)Yes, featured image attached to the post$19.99 / $29 / $49 a month

Sources: Jetpack, Revive Social, Blog2Social, Autopost for X, XPoster, dlvr.it, checked October 22, 2026. Comparing feed tools in more depth: dlvr.it alternative.

Set it up in 3 steps

Nothing to install in WordPress. OpenTweet reads the feed WordPress already publishes. It accepts RSS, Atom, RDF and JSON Feed.

  1. 1

    Copy your feed URL

    Every WordPress site publishes a feed at example.com/feed/. For one section, use its category or tag feed instead. You can also paste the site address and OpenTweet finds the feed.

  2. 2

    Create an RSS connector

    Paste the feed, choose the X account, and turn on the featured image and the article link. Pick how the post is written: AI rewrite with your prompt, or a template with {title}, {url} and {description}.

  3. 3

    Set the schedule

    Check the feed every 5 or 15 minutes, hourly, daily or weekly, choose 1, 5 or 10 posts per run, and either hold new posts for review or auto-schedule them, starting 5 minutes out and spaced by a gap of 30 minutes to 12 hours (90 minutes by default).

Connectors  ->  New connector  ->  RSS

  Feed URL:       https://example.com/category/politics/feed/
  X account:      @example_politics
  Writing:        AI rewrite
  Prompt:         One factual sentence on what happened and who it
                  affects. Keep names and numbers from the article.
                  No hashtags, no "BREAKING".
  Featured image: on   (includeImage)
  Article link:   on   (includeLink, added on its own line)
  Check:          Every 15 minutes
  Posts per run:  5
  Publishing:     Auto-schedule, at least 90 minutes apart

  Or, instead of AI, a template:  {title}
                                  {url}

The AI can skip items that do not fit your prompt, such as sponsored posts. That is the only filter, so pick the right feed URL (next section). Check what your feed contains with the free RSS feed preview. More on templates in the RSS to X guide.

How to post only one category or tag to X

A plugin review on wordpress.org complains: "I can only select 'posts/pages' and not specify which Tag or Category gets shared on Twitter." WordPress already solves this. Every category, tag and author has its own feed:

Whole site        https://example.com/feed/
One category      https://example.com/category/politics/feed/
One tag           https://example.com/tag/breaking/feed/
One author        https://example.com/author/jane-doe/feed/
Two categories    https://example.com/feed/?cat=3,7
All but one       https://example.com/feed/?cat=-12
Sub-category      https://example.com/category/sport/football/feed/

Use the slug from the category's URL, not its display name. The numeric IDs for ?cat= are shown when you hover a category under Posts, Categories. A minus sign excludes that category, which is how you keep sponsored or opinion posts off X.

Two things matter. In WordPress, Settings, Reading, "Syndication feeds show the most recent" sets how many items the feed holds (10 by default); raise it if you publish more than that between checks. A caching or security plugin that caches the feed for hours will delay posts by the same amount.

Multiple authors or sections to separate X accounts

Each connector reads one feed and posts to one X account. To send Politics to @example_politics and Sport to @example_sport, create one connector per feed per account. A columnist's author feed can post to their own handle the same way.

Pro connects 1 X account and 5 connectors. Advanced connects 3 accounts and Agency 10, both with unlimited connectors. See how ProPakistani runs breaking news across several X handles.

Watch for overlapping feeds

An article filed in two categories appears in both feeds. X's automation rules do not allow duplicate or substantially similar posts across accounts you run, so either choose feeds that do not overlap or use AI rewrite with a different prompt on each account. More in X automation rules.

Why posts tweet twice (or five times) with plugins

"Scheduled Posts Tweeted Five Times" is a real wordpress.org thread title. Plugins post from WordPress hooks that run when a post is saved or its status changes, so the usual causes are an edit to a published post that fires the hook again, a scheduled post published by WP-Cron while a retry is also running, a request that timed out on your side but succeeded at X, and two plugins (or a plugin and a theme feature) posting the same article.

A feed-based connector works differently. It reads the feed and remembers each item by its guid (WordPress gives every post a stable guid such as example.com/?p=123), then its id, then its link, then a hash of its text. An item it has seen is never posted again, even if you edit the headline, re-save the post or the feed is read a hundred times. Scheduled posts are not a special case either: they appear in the feed when they go live and are picked up on the next check.

If you move from a plugin, switch the plugin off before you turn on the connector, or each new article will post twice.

Featured image not showing on X

There are two ways an article image gets onto X, and they fail for different reasons.

  1. A link card from og:image. If the post has no image of its own, X fetches the article and builds a card from its og:image or twitter:image tag, which Yoast, Rank Math or Jetpack set to the featured image. The card is missing when those tags are missing, the image is too small, or a firewall or bot-protection setting blocks X's crawler. Test a URL with the X card validator or the link preview checker.
  2. The image attached to the post. With the featured image option on (includeImage), OpenTweet takes the image from the feed item (media:content, media:thumbnail, an enclosure or the first image in the content). WordPress's default feed has none of those for the featured image, so it then reads the article's og:image. It copies the image to its own storage and uploads it to X with the post. The image shows whether or not X can crawl your site, and the article link stays in the text.

An item with no usable image posts as text. It does not fail.

Multilingual sites (WPML, Polylang)

WPML and Polylang publish a feed per language. With language folders it is usually example.com/fr/feed/; with the language as a parameter it is example.com/feed/?lang=fr. Open the feed in a browser to confirm it lists only that language, then create one connector per language, each posting to that language's X account. Tell the AI prompt to write in the same language. A full walkthrough is in run a news account in any language.

Link posts by plan, and what X would charge you

Every article post carries a link, so the link allowance is the number to plan around. The last column is what the same volume would cost on your own X developer app at $0.20 a link post, over 30 days.

OpenTweet link posts per day by plan, and the X API cost of the same volume
PlanPriceX accountsPosts a dayConnector posts a dayLink posts a daySame links on your own X app
Pro$19.99/mo120101$6/mo
Advanced$29/mo31005010$60/mo
Agency$49/mo1030015020$120/mo

Past the daily link allowance: you can buy link credits. Without credits the post is not lost: the URL is removed and the post goes out as text. Posts without a link, including posts with only an image, do not count toward the allowance.

X's own cap: since about May 16, 2026, accounts without Premium are limited to 50 original posts a day, as reported by Gigazine citing X's help center. A site that publishes more than that needs Premium on its X account, whichever tool it uses.

Need it on X the second you hit Publish?

Be clear about the speed of a feed: the fastest check is every 5 minutes, on every plan, and an auto-scheduled post goes out 5 minutes after the check, so a new article reaches X in about 10 minutes. That suits most articles. For breaking news, post from WordPress the moment you publish.

For instant posting, call the OpenTweet API from WordPress. The obvious hook is publish_post, but in the block editor it fires before the featured image is saved, so the snippet below uses wp_after_insert_post, which runs after it, including when a scheduled post goes live. It sends the headline, link and featured image with publish_now: true, skips edits to posts that are already live, and marks each post as sent. The API also answers 409 to an exact repeat of a post on the same account within 30 days, which is a second guard against double posting. Create the key in Settings, API Keys, and keep it in wp-config.php.

<?php
// wp-config.php:  define('OPENTWEET_API_KEY', 'ot_...');  (never commit it)
// Put the code below in a small plugin or your theme's functions.php.

// publish_post fires before the block editor saves the featured image, so
// wp_after_insert_post (WordPress 5.6+) is the safer hook. It also runs when
// WP-Cron publishes a scheduled post.
add_action('wp_after_insert_post', function ($post_id, $post, $update, $before) {
    if ($post->post_type !== 'post' || $post->post_status !== 'publish') return;
    if ($before && $before->post_status === 'publish') return;  // an edit, not a new post
    if (get_post_meta($post_id, '_opentweet_sent', true)) return;

    $body = [
        'text'        => html_entity_decode(get_the_title($post_id), ENT_QUOTES, 'UTF-8')
                         . "\n" . get_permalink($post_id),
        'publish_now' => true,
    ];
    $image = get_the_post_thumbnail_url($post_id, 'large');
    if ($image) $body['media_urls'] = [$image];            // featured image, attached

    $res = wp_remote_post('https://opentweet.io/api/v1/posts', [
        'headers' => [
            'Authorization' => 'Bearer ' . OPENTWEET_API_KEY,
            'Content-Type'  => 'application/json',
        ],
        'body'    => wp_json_encode($body),
        'timeout' => 20,
    ]);

    // 201 = posted, 409 = OpenTweet already has this text: either way, done.
    $code = is_wp_error($res) ? 0 : wp_remote_retrieve_response_code($res);
    if (in_array($code, [201, 409], true)) {
        update_post_meta($post_id, '_opentweet_sent', 1);
    }
}, 10, 4);

Add x_account_id to the body to choose the account, for example by category. Every field is in the API reference. If you use the hook, do not also run a feed connector on the same feed: the connector does not know what the API already posted. To combine them, send one category through the hook and point the connector at a feed that excludes it (example.com/feed/?cat=-12).

Frequently asked questions

How do I automatically post WordPress articles to X in 2026?

To auto-post WordPress articles to X in 2026, connect your site's RSS feed (example.com/feed/) to a tool that posts each new article with its headline, featured image and link, so you don't need your own X developer app or pay-per-use API credits. In OpenTweet: add an RSS connector with your feed URL, turn on the featured image and the article link, pick AI rewrite or a template, and set the check to every 15 minutes or hourly.

Is free X API access dead for WordPress plugins?

For posting, yes. In early 2026 X moved the API to pay-per-use, and the Autopost for X plugin page now says X "effectively removed free API access for all users except public utilities". Plugins that use your own X developer app pass the bill to you: $0.015 per plain post and $0.20 per post with a URL, per X's pricing page (checked October 22, 2026).

Can I auto-post WordPress to X without an API key?

Yes, if the tool posts through its own X app. With OpenTweet you connect your X account with a normal login, give it your feed URL, and OpenTweet pays the X API fees inside the plan. You never create an X developer app or paste keys into WordPress.

What is the best Jetpack Social alternative for X?

Jetpack Social has not posted to X since May 18, 2023. It still covers Facebook, Instagram, Threads, Bluesky, LinkedIn, Mastodon, Nextdoor and Tumblr, so many sites keep it for those networks and add a feed-based tool for X only. Turn off any other X plugin so each article is not posted twice.

How do I post only one category from WordPress to X?

Use the category feed instead of the main feed: example.com/category/news/feed/. Tags work the same way (example.com/tag/breaking/feed/), and so do authors (example.com/author/jane/feed/). Each feed becomes its own connector, so a category can go to one X account and the rest of the site to another.

Why is my featured image not showing on X?

WordPress's default feed does not include the featured image. Either X builds a link card from the article's og:image tag (set by Yoast, Rank Math or Jetpack), which fails if the tag is missing, the image is too small, or your firewall blocks X's crawler, or the tool uploads the image to the post itself. OpenTweet's image option looks in the feed item first, then reads the article's og:image, and attaches the picture to the post.

How fast does a new WordPress post reach X?

With the RSS connector, within about 10 minutes: feeds can be checked every 5 minutes, and auto-scheduled posts start 5 minutes after the check. For breaking news, call the OpenTweet API from WordPress when a post is published, with publish_now set to true. The post goes out in seconds.

Is there a free trial?

Yes. Every plan starts with a 7-day free trial. A card is required and nothing is charged until day 7. You get your plan's posting, AI Studio, connectors and API. The trial has a few limits: 5 link posts in total (15 for agent and automation accounts), 2 X searches a day and 1 tracked creator. Evergreen, X Articles, best-time and content-gap analysis, profile snapshots, bookmark and likes sync, and DM sending start with the paid plan. Want full limits from day one? Pay now and skip the trial. Cancel anytime.

Get your WordPress articles back on X

Paste your feed, connect X, and your next article posts with its featured image and link. No X developer app. 7-day trial.

Card required, cancel any time.