Title: DraftSEO.ai
Author: Kliment
Published: <strong>19 de diciembre de 2025</strong>
Last modified: 5 de agosto de 2026

---

Buscar plugins

![](https://ps.w.org/draftseo-ai/assets/banner-772x250.png?rev=3625786)

![](https://ps.w.org/draftseo-ai/assets/icon-256x256.gif?rev=3625792)

# DraftSEO.ai

 Por [Kliment](https://profiles.wordpress.org/klimentp/)

[Descargar](https://downloads.wordpress.org/plugin/draftseo-ai.1.3.10.zip)

 * [Detalles](https://es-mx.wordpress.org/plugins/draftseo-ai/#description)
 * [Opiniones](https://es-mx.wordpress.org/plugins/draftseo-ai/#reviews)
 *  [Instalación](https://es-mx.wordpress.org/plugins/draftseo-ai/#installation)
 * [Desarrollo](https://es-mx.wordpress.org/plugins/draftseo-ai/#developers)

 [Soporte](https://wordpress.org/support/plugin/draftseo-ai/)

## Descripción

Publish complete, AI-generated blog posts from DraftSEO.ai to WordPress in one click—
or fully automatically. Images land in your own Media Library, SEO metadata is written
to your SEO plugin, and categories and tags are applied. No copy-pasting, no manual
uploads.

#### Key Features

 * **One-click or automatic publishing** — Send finished blogs to WordPress as a
   draft, a scheduled post, or a live post. Turn on Auto-publish to have new blogs
   published for you.
 * **Images in your own Media Library** — Every image (with its alt text and caption)
   is downloaded to your Media Library in the background, so posts go live instantly
   and you keep full ownership — no external hotlinking.
 * **Works with your SEO plugin** — The SEO title, meta description, focus keyword,
   and canonical URL are written automatically to Yoast SEO, Rank Math, All in One
   SEO, or SEOPress (focus keyword where the plugin supports one).
 * **Rich-result structured data** — Adds VideoObject schema for embedded YouTube
   videos and FAQ schema, so your posts are eligible for video and FAQ rich results
   in Google.
 * **Categories & tags** — Syncs your WordPress categories and auto-creates tags
   from each blog’s keywords.
 * **Clean, portable HTML** — Proper heading structure, responsive tables, clickable
   in-text citations with a linked references list, and `rel="noopener noreferrer"`
   on external links.
 * **Built-in activity log** — A Logs tab records every publish and image import.
   Filter by type, search, export to CSV, or clear it out.
 * **Self-healing images** — Images import in parallel in the background, and a 
   daily check automatically re-imports anything an interrupted job missed.
 * **Secure by design** — Your connection credentials are encrypted, and disconnecting
   or removing the plugin fully revokes access, so no stale connections are left
   behind.

#### How It Works

 1. Install and activate the plugin.
 2. In another browser tab, log in to your DraftSEO.ai account.
 3. Go to **DraftSEO  Settings** and click **Connect with DraftSEO.ai** — the connection
    completes automatically over OAuth (no API key to copy).
 4. Generate a blog in DraftSEO.ai and click **Publish to WordPress**, or switch on
    Auto-publish.

**Requires an active DraftSEO.ai account.** Visit [draftseo.ai](https://draftseo.ai)
to sign up.

### External Services

This plugin connects to DraftSEO.ai to generate and publish AI-written blog content.
An active DraftSEO.ai account is required.

Data sent to DraftSEO.ai:
 – Your website URL and a connection token (set up automatically
when you connect) – Publishing requests for the blogs you choose to publish – A 
notice when you disconnect or remove the plugin, so your account stays in sync

Data received from DraftSEO.ai:
 – Generated blog content – Images and their metadata

Service provider: DraftSEO.ai — [draftseo.ai](https://draftseo.ai)
 [Terms of Service](https://draftseo.ai/terms)·
[Privacy Policy](https://draftseo.ai/privacy)

## Capturas

[⌊The DraftSEO.ai connection screen in the WordPress admin.⌉⌊The DraftSEO.ai connection
screen in the WordPress admin.⌉[

The DraftSEO.ai connection screen in the WordPress admin.

## Instalación

#### From your WordPress dashboard

 1. Go to **Plugins  Add New** and search for “DraftSEO.ai”.
 2. Click **Install Now**, then **Activate**.

#### Manual upload

 1. Download the plugin ZIP.
 2. Go to **Plugins  Add New  Upload Plugin**, choose the ZIP, and click **Install 
    Now**.
 3. Click **Activate**.

#### Connect

In another browser tab, log in to your DraftSEO.ai account. Then go to **DraftSEO
Settings** and click **Connect with DraftSEO.ai**. The connection completes automatically—
there’s no API key to copy.

## Preguntas frecuentes

### Do I need a DraftSEO.ai account?

Yes — the plugin publishes content from your DraftSEO.ai account, so you’ll need
an active one. Sign up at [draftseo.ai](https://draftseo.ai).

### How do I connect my site?

Log in to your DraftSEO.ai account in one tab, then click “Connect with DraftSEO.
ai” on the plugin’s settings page. The connection is made automatically over OAuth—
there’s no API key to copy or paste.

### Where do my images go?

Every image is downloaded to your own WordPress Media Library and served from your
site, so you keep full ownership with no ongoing dependency on DraftSEO.ai. There’s
no limit on the number of images per post.

### What if an image fails to import?

Publishing never waits on images — the post goes live immediately and images import
in the background. If a download is interrupted, a daily background check re-imports
the missing images automatically, so there’s nothing for you to do.

### Which SEO plugins are supported?

Yoast SEO, Rank Math, All in One SEO, and SEOPress. The SEO title, meta description,
and canonical URL are written to whichever you have active (plus the focus keyword
on plugins that support one).

### Can I publish to more than one site?

Yes. Connect as many WordPress sites as you like to your DraftSEO.ai account — each
just needs the plugin installed and connected.

### Does it work with custom post types?

Not yet — the plugin publishes to standard WordPress posts and pages.

### Where can I get help?

Visit [draftseo.ai/contact](https://draftseo.ai/contact).

## Reseñas

No hay reseñas para este plugin.

## Colaboradores y desarrolladores

Este software es de código abierto. Las siguientes personas han contribuido a este
plugin.

Colaboradores

 *   [ Kliment ](https://profiles.wordpress.org/klimentp/)

[Traduce “DraftSEO.ai” a tu idioma.](https://translate.wordpress.org/projects/wp-plugins/draftseo-ai)

### ¿Interesado en el desarrollo?

[Revisa el código](https://plugins.trac.wordpress.org/browser/draftseo-ai/), echa
un vistazo al [repositorio SVN](https://plugins.svn.wordpress.org/draftseo-ai/) 
o suscríbete al [registro de desarrollo](https://plugins.trac.wordpress.org/log/draftseo-ai/)
por [RSS](https://plugins.trac.wordpress.org/log/draftseo-ai/?limit=100&mode=stop_on_copy&format=rss).

## Registro de cambios

#### 1.3.10

Articles are no longer reported as failed when their images actually imported fine,
and you now get told when only some of the images made it.

 * Fixed: If another plugin on your site raised an error while your article was 
   being saved, DraftSEO reported that every image had failed — even when all of
   them had imported correctly and the article was perfect. Your dashboard then 
   asked you to republish for nothing. DraftSEO now reports what actually happened.
 * Fixed: One misbehaving plugin could stop the remaining images on a post from 
   importing at all. Each image is now handled on its own, so a problem with one
   image no longer costs you the others.
 * Fixed: The same problem could make the automatic daily repair give up on a post
   permanently, leaving its images hosted outside your site forever. Repairs now
   check the post itself before deciding they failed.
 * Added: When only some of an article’s images import, DraftSEO now tells you which
   ones are still outstanding instead of reporting a silent success.
 * Improved: When an error does come from another plugin on your site, DraftSEO 
   now records which file it came from, so support can point you straight at the
   cause.

#### 1.3.9

DraftSEO can now see which plugin version each of your sites is running, so support
answers are faster and you get a reminder when a site falls behind.

 * Improved: Your site now reports its DraftSEO plugin version, WordPress version
   and PHP version every time it publishes an article or finishes importing images.
   Previously that was only sent when you pressed “Test connection”, so when something
   went wrong on one site we could not tell which version produced it without asking
   you.
 * Improved: If one of your sites is running an old plugin version, DraftSEO now
   shows a reminder inside your dashboard with a direct link to update it.

#### 1.3.8

Images now start importing the moment an article is published, even on a site with
no visitors.

 * Fixed: Image importing no longer waits for someone to visit your site. Until 
   now the import was queued and only started when your site next received a visit,
   so on a quiet site a new article could sit for hours with its images still hosted
   by DraftSEO instead of in your own media library. DraftSEO now starts the import
   itself, right after publishing.
 * Improved: If an import ever does stall, DraftSEO retries starting it every hour
   instead of giving up.

#### 1.3.7

DraftSEO can now see your custom pages — services, projects, team members and more—
so its articles link to them properly.

 * Improved: DraftSEO now recognises every public page type on your site, not just
   standard posts, pages and WooCommerce products. If your theme adds sections like
   Services, Projects, Team or Testimonials, those pages are now included when DraftSEO
   looks for places to link to.
 * Improved: Those pages now carry their real titles and SEO descriptions instead
   of a guess made from the web address, so links to them are far more relevant.

#### 1.3.6

Image-import reports back to DraftSEO now say which post they are about.

 * Improved: When images finish importing (or fail to), the plugin now tells DraftSEO
   which post the result belongs to, and its address. Previously it sent only the
   numbers, so a failure showed up in your DraftSEO publishing history with no way
   to tell which article to go and look at.
 * Improved: DraftSEO can now fill in a missing post address for older publishes
   automatically when an image import finishes, instead of leaving the entry incomplete.

#### 1.3.5

Housekeeping release: the plugin now leaves the rest of your site alone, does less
work on every page load, and can no longer get stuck repairing the same post forever.

 * Fixed: The daily image check now looks only at posts DraftSEO published. It previously
   examined every post, page and product on your site and left a small DraftSEO 
   marker on each one. Nothing was damaged, but it was untidy and slower than it
   needed to be — the check is now scoped to our own posts and runs faster as a 
   result.
 * Fixed: A post whose images could not be fully tidied up could be re-checked every
   single day, forever. It now gives up cleanly after a few attempts, exactly as
   intended.
 * Fixed: When a background image job failed, the plugin assumed WordPress would
   automatically try it again. It does not. Failures are now either retried deliberately
   or reported and closed, so a post can no longer be left silently half-finished,
   and DraftSEO no longer shows a publish stuck at “processing”.
 * Fixed: If DraftSEO could not be reached at the moment an image import finished,
   the result was lost. The plugin now reports it through a second, longer-lived
   channel instead.
 * Fixed: A successful image import could occasionally be reported to DraftSEO as
   a failure if the network hiccuped at the wrong moment.
 * Improved: Background image jobs now run with a sensible time limit instead of
   no limit at all. A very large post stops cleanly and finishes on the next daily
   pass rather than risking a stalled job that repeats every few minutes.
 * Improved: Removed a setting that tried to control WordPress’s background-task
   scheduler. It used a name that scheduler does not recognise, so it never did 
   anything — and had it worked it would have changed behaviour for other plugins
   on your site, including WooCommerce. Those settings belong to you, not to us.
 * Improved: Two database lookups have been removed from every page load on your
   site.

#### 1.3.4

Video rich-result data is now complete, fixing the “Missing field ‘name’ / ‘uploadDate’”
errors reported in Google Search Console.

 * Fixed: Posts containing a YouTube video now publish complete video structured
   data, including the video’s title, upload date, description, and length. Previously
   only the thumbnail and player address were included, which Search Console flagged
   as a critical error and which prevented the post from being eligible for video
   rich results.
 * Improved: If video details are ever unavailable, the plugin now leaves the video
   markup out entirely instead of publishing an incomplete version — no markup is
   better than markup Google reports as broken.
 * Improved: Republishing an older post from DraftSEO now upgrades its video data
   in place, so existing posts are corrected as you update them.

#### 1.3.3

Failed image imports now retry automatically over several days and report a clear
reason instead of a generic error.

 * Improved: When images cannot be imported (usually a temporary connection problem
   between your host and our image server), the plugin now retries a few times across
   the next days before giving up, instead of abandoning the post after one attempt.
   Republishing from DraftSEO still resets this immediately.
 * Improved: The plugin now tells DraftSEO exactly why an image import failed (for
   example an SSL, DNS, or firewall problem), so the cause is visible in your DraftSEO
   publishing history without digging through server logs.
 * Fixed: Manually published and republished posts now report image-import completion
   back to DraftSEO reliably, so a successful background repair no longer leaves
   the job showing as failed.

#### 1.3.2

Republishing now respects your featured-image choice, preventing a duplicated image
at the top of updated posts.

 * Fixed: Republishing a post now honours your “Set featured image” preference. 
   Previously an update always set a featured image even when you had turned that
   option off, which could show the same image twice at the top of the post.

#### 1.3.1

Refreshed light-themed admin design, faster re-publishing, more efficient syncing,
and gentler default image importing.

 * Improved: Re-publishing a post when only its SEO details changed is now faster—
   unchanged content and images are no longer reprocessed.
 * Improved: Syncing large sites with DraftSEO.ai transfers less data.
 * Improved: More reliable image handling in post content, and oversized requests
   now return a clear message instead of failing silently.
 * Improved: Image importing uses gentler, safer defaults so it runs smoothly even
   on limited shared hosting, and activity logs are now kept for 60 days.
 * Improved: The settings screen now uses a clean, light theme on every site for
   a consistent look, instead of following the operating system’s dark appearance.
 * Improved: Modernised the settings screen — matched, rounded Connect/Disconnect
   buttons with smooth hover and keyboard-focus states, an underline tab indicator,
   a subtle DraftSEO.ai brand accent on the card, and a tidier single-column layout(
   with reduced-motion support).
 * Improved: The sidebar menu icon now matches the DraftSEO.ai brand mark.
 * Improved: Clearer, less repetitive wording on the connection screen, and consistent“
   DraftSEO.ai” branding throughout.

#### 1.3.0

Security and reliability release: disconnecting now fully revokes access, salt rotations
show a clear “reconnect” message, the connection flow is locked to the official 
DraftSEO address, publishing reports real success or failure, and the admin screens
have a refreshed design.

 * Security: Disconnecting your site (from either DraftSEO or the plugin’s Disconnect
   button) now fully revokes the stored connection key. Previously the key the plugin
   actually used for authentication was left in place, so the site could still be
   published to after it showed as disconnected.
 * Security: The “Connect with DraftSEO.ai” flow now only accepts the official DraftSEO
   address, so a tampered connection link can no longer point your site’s connection
   at another server.
 * Security: Image and callback URLs are now validated to prevent server-side request
   forgery, and the completion callback can only be sent to the DraftSEO platform.
 * Improved: If your site’s WordPress security keys (salts) are rotated — by a security
   plugin, a host migration, or cloning to staging — the plugin now detects that
   its saved key can no longer be read and shows a clear “please reconnect” message
   instead of a generic “invalid key” error. Your settings are kept so you know 
   exactly what happened.
 * Fixed: Publishing now reports a real failure if WordPress refuses to create the
   post, instead of occasionally reporting success for a post that was never created.
 * Fixed: Sync now also recognises articles published as Pages or products, so it
   no longer republishes them as duplicates.
 * Fixed: Background image, repair, and health jobs are now crash-hardened — a single
   bad image URL can no longer silently kill the job and leave “images importing…”
   stuck forever.
 * Improved: Faster sync on large sites (fewer database round-trips), tidier post
   URLs (native WordPress slugs), and accurate author names in the activity log.
 * New: The plugin now shows an “update available” note in its settings when a newer
   version is recommended.
 * New: Refreshed admin design that follows your WordPress admin colour scheme, 
   with a clearer connection status card and a modernised Logs table.

#### 1.2.7

WordPress 7.0 compatibility, plus automatic alt text from your images.

 * Improved: Tested and confirmed compatible with WordPress 7.0 (still works on 
   WordPress 6.2 and newer).
 * Improved: Translations now load on WordPress’s `init` hook, removing the “translation
   loaded too early” debug notice that could appear on WordPress 6.7 and newer.
 * New: When a DraftSEO image has no alt text of its own, the plugin now reads alt
   text embedded in the image file (IPTC/XMP metadata) on WordPress 7.0 and uses
   it automatically — better accessibility and SEO with no extra work.
 * New: On WordPress 7.0, the plugin can record relevant WordPress core warnings
   that happen during its own operations in the Logs tab, even when debug mode is
   turned off — making support issues easier to diagnose.

#### 1.2.6

Reliability fix: publishing no longer fails with HTTP 500 when another plugin on
your WordPress site has a bug in its HTTP calls.

 * Fixed: Publishing from DraftSEO could intermittently fail with HTTP 500 on sites
   where a third-party plugin (caching, SEO, analytics, etc.) made a malformed HTTP
   request during the WordPress `save_post` hook. The DraftSEO plugin now catches
   these exceptions and returns a clear error message instead of crashing the entire
   REST request. This was the leading cause of intermittent publish failures on 
   affected sites.
 * Fixed: On sites using the legacy image import path (no callback URL), the featured
   image import could crash with a PHP fatal error if the image URL resolved to 
   an empty string. The plugin now skips the import safely and logs a warning instead
   of crashing.
 * Fixed: Publishing a blog with no images could hold the WordPress REST connection
   open for up to 30 seconds while waiting for the DraftSEO completion callback.
   The callback is now sent as a non-blocking fire-and-forget request so publish
   completes immediately.

#### 1.2.5

Hotfix: WordPress auto-publish no longer crashes with HTTP 500 on sites that have
integer-keyed cookies in the browser.

 * Fixed: On WordPress 6.2–6.6.x, any browser cookie with a numeric name (e.g. set
   by certain caching plugins or analytics tools) caused Action Scheduler’s loopback
   dispatch to throw an uncaught `WpOrg\Requests\Exception\InvalidArgument`, which
   propagated as a PHP fatal error and returned HTTP 500 to DraftSEO, failing the
   entire publish. The bundled `WP_Async_Request` no longer forwards `$_COOKIE` 
   to the internal loopback ping — authentication for that request uses a nonce,
   not cookies, so the change is safe with no functional impact.

#### 1.2.4

Fixes stuck “images importing…” jobs, adds a Logs admin tab with CSV export and 
DB-backed structured logging, and improves error visibility across all image import
paths.

 * Fixed: Blog posts published before April 5 2025 could show “images importing…”
   in the DraftSEO UI indefinitely if the original callback failed (e.g. the 24-
   hour HMAC window expired before Action Scheduler ran). Running Sync now automatically
   detects and resolves these stuck jobs when WordPress confirms the post exists.
 * Fixed: The repair scan no longer silently discards its completion status. When
   it finishes importing all images for a post it now notifies DraftSEO via a new
   long-lived API-key endpoint, closing the loop on any syndication job whose HMAC
   callback URL had already expired.
 * New: Posts now store the DraftSEO syndication job ID (draftseo_syndication_job_id)
   in post meta at publish time. This enables the repair scan to notify DraftSEO
   without the original (expiring) callback URL.
 * New: Logs tab in the plugin settings page. Browse, filter by level/type, search,
   export to CSV, copy to clipboard, or clear all entries. Logs are kept for 30 
   days and cleaned up automatically by Action Scheduler.
 * New: Structured DB logger (wp_draftseo_logs table with level, type, message, 
   post_id columns). All image import paths — direct, async, background, repair 
   scan, health check, and callback delivery — now write structured log entries 
   visible in the Logs tab in addition to WordPress debug.log.
 * Improved: `process_images_background` (hybrid strategy, 6+ images) now logs per-
   URL download failures and a completion summary — previously completely silent.
 * Improved: `import_images_direct`, `process_images_with_callback`, `import_from_temp`,`
   sequential_download_images`, `import_images_async`, and `fire_callback` now each
   emit structured log entries with post ID, URL, and error detail on failure.

#### 1.2.3

Critical fix: background image health check and repair scan were silently never 
scheduled due to Action Scheduler initialisation timing.

 * Fixed: The daily image health check was never registered and the self-healing
   repair scan never ran after plugin install. Both background jobs silently failed
   to schedule because they were called before Action Scheduler’s data store was
   ready. Both are now hooked to the correct ‘action_scheduler_init’ event, which
   fires only when the data store is fully initialised and it is safe to call Action
   Scheduler APIs.

#### 1.2.2

Bug fixes, new SEO plugin support, and automatic sync reconciliation.

 * Fixed: Publishing the same blog twice — for example after a network timeout or
   a retry — no longer creates a duplicate WordPress post. The second request returns
   the existing post immediately.
 * Fixed: The SEO title (the per-post SERP title override, separate from the post
   title) was never written to the active SEO plugin. When DraftSEO sends a `seoTitle`,
   it is now written to Yoast (`_yoast_wpseo_title`), Rank Math (`rank_math_title`),
   All in One SEO (`_aioseo_title`), and SEOPress (`_seopress_titles_title`).
 * Fixed: Images imported with a `caption` field from DraftSEO now have their caption
   visible in the WordPress Media Library (Edit Media  Caption), in the block editor
   image block, and in default `[caption]` / `<figcaption>` output. Previously the
   caption was silently dropped.
 * Fixed: The self-healing image repair scan was silently skipped when a user updated
   the plugin by deactivating and reactivating it — the most common manual update
   flow. The fix ensures the repair scan fires correctly after every update, not
   just when using WordPress’s automatic update mechanism.
 * Fixed: A logic error in the duplicate-job guard could allow the repair scan to
   be queued more than once simultaneously. The guard now correctly detects any 
   pending repair job regardless of its internal batch number.
 * New: SEOPress is now a fully supported SEO plugin. The meta description (`_seopress_titles_desc`),
   SEO title (`_seopress_titles_title`), and canonical URL (`_seopress_robots_canonical`)
   are written at publish time.
 * New: Posts containing YouTube videos now have VideoObject structured data (JSON-
   LD) added to their page head automatically. This makes the videos eligible for
   video-rich results in Google Search.
 * New: When you click Sync for a WordPress connection, DraftSEO now automatically
   restores the WordPress post link for any blog whose mapping was lost (for example
   after a database restore). Affected blogs immediately show the correct “Published
   to WordPress” card in their detail view.
 * New: When you click Sync, DraftSEO also automatically recovers any published 
   posts that exist on WordPress but are missing from your DraftSEO account — for
   example after a data restore or account transfer. All affected blogs immediately
   show as Published on the Posts page.

#### 1.2.1

Internal code reorganisation. No behaviour changes.

 * Improved: Plugin PHP files split into smaller, single-responsibility classes 
   for easier maintenance and future development.

#### 1.2.0

Image reliability fixes, automatic self-repair for all previously affected posts,
and continuous background health monitoring.

 * Fixed: Images were sometimes missing from the WordPress Media Library after publishing
   from DraftSEO. This happened silently on certain hosting environments due to 
   differences in how the server handles external downloads. The plugin now tries
   an additional download method before giving up, significantly increasing import
   success rates across all hosting environments.
 * New: After updating, the plugin automatically scans your entire site in the background
   for any posts where images were never properly imported from DraftSEO. Affected
   posts are silently repaired without any action needed from you. You can monitor
   progress under Tools > Scheduled Actions in your WordPress admin.
 * New: A lightweight check now runs automatically every 24 hours. If any post is
   found with images that didn’t fully import — for example because a server timeout
   interrupted the process overnight — the plugin queues a repair automatically.
   No monitoring required: healthy sites see no activity and affected posts are 
   fixed without manual intervention.
 * Improved: The daily check permanently skips posts that have already been fully
   verified, so it stays fast regardless of how many posts are on your site. On 
   a fully audited site the check completes in a fraction of a second. Republishing
   a post automatically resets it so new images are always verified.
 * Improved: Image imports now run in controlled parallel batches, keeping resource
   usage predictable on any hosting environment. Designed and tested for sites publishing
   large numbers of blogs, each with many images.

#### 1.1.6

Faster republishing — only new or changed images are re-downloaded.

 * Improved: When republishing a post, images that were already imported in a previous
   publish are no longer downloaded again. Only new or replaced images are fetched.
   For a typical blog, republishing with no image changes now skips all image downloads
   entirely.

#### 1.1.5

Reliable image import confirmation for all publish paths.

 * Fixed: Republishing a post was blocked with “not in completed status” when a 
   previous publish had images still importing in the background. Republishing now
   self-heals stuck jobs and always proceeds.
 * Fixed: Manual publish and Republish now use the same async callback path as Auto-
   publish — DraftSEO is notified when all images finish importing instead of assuming
   completion immediately.
 * Improved: The background image callback is now confirmed (blocking HTTP request)
   so Action Scheduler can automatically retry delivery if DraftSEO’s server is 
   temporarily unreachable.
 * Improved: Republish is no longer blocked while images are still uploading — updating
   the post content always proceeds immediately, and image import completion is 
   tracked in the background.

#### 1.1.4

Cosmetic and connectivity improvements.

 * Improved: Settings page now displays “DraftSEO.ai” with the installed plugin 
   version shown next to the heading.
 * Improved: Connection status now shows a clear “Connection Issue” state (instead
   of “Connected”) when authentication with DraftSEO.ai fails — includes step-by-
   step instructions to reconnect.
 * Improved: “Go to DraftSEO.ai” button on the connected settings page is cleaner—
   icon removed, label updated.

#### 1.1.3

Reliability improvements, faster image loading, and cleaner background processing.

 * Fixed: Images on published posts were sometimes not appearing on low-traffic 
   websites — they were queued to download in the background but the background 
   job wasn’t starting until the next page visit. They now start immediately regardless
   of site traffic.
 * Fixed: Switching the plugin off while a publish was in progress could leave background
   tasks running after deactivation. The plugin now cleanly stops all background
   jobs when it is deactivated.
 * Fixed: Removing the plugin (uninstall) now properly disconnects your site from
   DraftSEO.ai — the connection is closed on the DraftSEO side before all plugin
   data is removed.
 * Fixed: Plugin text was not translating correctly on WordPress sites running in
   a language other than English. Translation files now load properly.
 * Improved: Background image jobs now use Action Scheduler instead of WP Cron. 
   Action Scheduler runs as a true background process without requiring a page visit,
   retries failed jobs automatically, and shows pending and completed jobs in the
   WordPress admin at Tools > Scheduled Actions.
 * Improved: Images in background jobs are now downloaded in parallel before being
   imported. For a blog with 20 images this reduces total download time from roughly
   60–100 seconds (sequential) to 5–15 seconds (parallel).
 * Fixed: Republishing a post was creating duplicate images in the Media Library
   for any image that had not changed. Only new or replaced images are now downloaded
   and imported — unchanged images are reused from the existing Media Library entry.

#### 1.1.2

Security update: fixes API token authentication on WordPress sites where the Application
Passwords feature or a security plugin was blocking server-to-server requests from
DraftSEO.ai before they could be validated.

#### 1.1.0

Automatic cleanup when republishing with a new image.

 * When you republish a post with a new AI-generated image, the new image is swapped
   in automatically and the previous image is removed from your WordPress Media 
   Library — keeps your media folder clean and saves storage space.

#### 1.0.5

YouTube video embeds now work on WordPress.

 * Fixed YouTube videos not appearing on published WordPress posts — videos are 
   now properly converted to native WordPress embed blocks before publishing, so
   they show up as responsive YouTube players on your site

#### 1.0.4

Content formatting and image fixes.

 * Fixed headings appearing as raw text after images instead of being properly formatted
 * Removed unwanted image captions — image descriptions were showing as visible 
   text below every image. They are now used for accessibility only and no longer
   display on the page

#### 1.0.3

Content formatting fixes.

 * Fixed headings sometimes appearing as plain text instead of proper headings
 * Fixed citation links being malformed in published posts

#### 1.0.2

Citation links, external link handling, and FAQ structured data for rich results.

 * In-text citations — `[1]`, `[2]` markers now render as clickable superscript 
   links that jump to the matching reference in the References section
 * References section — Converted to a numbered list with anchor IDs (`#ref-1`, `#
   ref-2`) for smooth in-page navigation
 * External links — All external links now open in a new tab with `rel="noopener
   noreferrer"`
 * FAQ structured data — FAQ question-answer pairs from blog content are injected
   as JSON-LD into the post `<head>` for Google FAQ rich results
 * Theme-consistent styling — CSS is injected for citations, references, and tables
   so they display correctly across all WordPress themes
 * Active sites filter — The WordPress site dropdown now shows only connected, active
   sites

#### 1.0.1

Hotfix for content rendering in published posts.

 * Fixed: YouTube embeds were being stripped during publishing — they now render
   as embedded players on your site
 * Fixed: Data tables were displaying as raw Markdown text instead of formatted 
   HTML tables

#### 1.0.0

Major release — security hardening, reliability improvements, and full tag management.

**Security**

 * Webhook signatures — Disconnect and deactivation notifications are signed with
   HMAC-SHA256 (`X-DraftSEO-Signature`, `X-DraftSEO-Timestamp` headers); the API
   key is the signing secret and is never transmitted in plain text
 * Replay protection — Signed requests include a Unix timestamp; requests older 
   than 5 minutes are rejected
 * API keys encrypted at rest — AES-256-CBC with a unique IV per key, derived from
   the WordPress site’s auth salt

**Publishing & REST API**

 * Tags endpoint — `GET /wp-json/draftseo/v1/tags` added for tag sync, matching 
   the existing `/users` and `/categories` endpoints
 * Server-side input validation — `/publish` and `/update` routes validate and sanitise
   all params before the handler runs
 * Structured error responses — All errors return specific codes (`rest_forbidden`,`
   rest_missing_param`, `rest_publish_error`, etc.) for better debugging
 * Bidirectional disconnect — Disconnecting from DraftSEO.ai calls `/remote-disconnect`
   to clear connection settings on the plugin side automatically

**Reliability**

 * Handles security plugin blocks and maintenance pages gracefully — no silent failures
   when a WAF or caching layer intercepts requests
 * Sync requests now have a timeout so connections never hang indefinitely
 * Multi-site view: individual site connection errors are isolated so one broken
   connection does not affect others

**Performance**

 * Users, categories, and tags are now fetched in parallel instead of sequentially
 * Retries only fire on server errors (5xx) — client errors (4xx) fail immediately
   without wasting retry attempts

**Tag Management**

 * Auto-create WordPress tags from AI-generated keywords at publish time (configurable,
   1–10 tags)
 * Select from existing WordPress tags, or create new ones on the fly during publishing

**Image Handling**

 * All images downloaded directly to your WordPress Media Library
 * Alt text from DraftSEO.ai preserved as WordPress image alt text
 * Featured image set automatically; all image URLs in post content updated from
   DraftSEO.ai CDN to your local Media Library URLs

**Usability**

 * “Settings” quick-link added to the Plugins page for faster access to plugin configuration

#### 0.2.0

Initial beta release.

 * One-click blog publishing from DraftSEO.ai
 * Automatic image import from DraftSEO.ai
 * SEO metadata transfer
 * WordPress category sync
 * Auto-create tags from keywords
 * Multiple post status options (draft, publish, schedule)
 * Content cleanup and formatting
 * Secure API key encryption
 * Background image processing for large blogs
 * Remote disconnect synchronization
 * OAuth-based connection flow

## Meta

 *  Versión **1.3.10**
 *  Última actualización **hace 11 horas**
 *  Instalaciones activas **60+**
 *  Versión de WordPress ** 6.2 o superior **
 *  Probado hasta **7.0.2**
 *  Versión de PHP ** 7.4 o superior **
 *  Idioma
 * [English (US)](https://wordpress.org/plugins/draftseo-ai/)
 * Etiquetas:
 * [AI](https://es-mx.wordpress.org/plugins/tags/ai/)[blog](https://es-mx.wordpress.org/plugins/tags/blog/)
   [content](https://es-mx.wordpress.org/plugins/tags/content/)[publishing](https://es-mx.wordpress.org/plugins/tags/publishing/)
   [seo](https://es-mx.wordpress.org/plugins/tags/seo/)
 *  [Vista avanzada](https://es-mx.wordpress.org/plugins/draftseo-ai/advanced/)

## Valoraciones

Aún no se han enviado valoraciones.

[Your review](https://wordpress.org/support/plugin/draftseo-ai/reviews/#new-post)

[Ver todas las valoraciones](https://wordpress.org/support/plugin/draftseo-ai/reviews/)

## Colaboradores

 *   [ Kliment ](https://profiles.wordpress.org/klimentp/)

## Soporte

¿Tienes algo que decir? ¿Necesitas ayuda?

 [Ver el foro de soporte](https://wordpress.org/support/plugin/draftseo-ai/)