ScreenshotNeo

BlogHow-to

How to Send a WordPress Preview Link

Send a WordPress draft preview safely to clients, with or without a login, using expiry, revocation, and screenshot options.

By the ScreenshotNeo team1 October 20267 min read

How to Send a WordPress Preview Link

To send a WordPress preview link, save the post as a draft and click Preview. That normal preview works for you and for recipients who are logged in with permission to edit or preview the post. For a client without a WordPress account, use the Public Post Preview plugin to create an expiring anonymous link.

Choose the right preview method

Situation Best option Access required Expiry and revocation
You are reviewing your own draft WordPress core Preview Your WordPress session and edit permission Controlled by WordPress permissions
Client has a WordPress account Core Preview link Logged-in account with permission to preview the draft Controlled by account access
Client has no account Public Post Preview Anyone with the generated link 48 hours by default
You need configurable expiry or immediate revocation Secure Draft Preview Links Anyone with the generated link Configurable expiry, disable and regenerate controls
You need several links or view counts Tidy Draft Share Anyone with a generated link Multiple links, counts and one-click revocation
You can distribute a password securely WordPress Password protected visibility Anyone who knows the password Password workflow; not a draft-link system
  1. Open the post in the WordPress editor.
  2. Save it as a draft.
  3. Click Preview. In the Block Editor, use the copy-preview-link control if it is shown.
  4. Copy the URL from the preview tab.
  5. Send it through a private channel.

WordPress core adds preview=true to the preview URL for viewable post types. Preview handling checks whether the current user can edit the post, so a normal draft preview URL is not automatically anonymous.

Why the recipient is asked to log in

The recipient does not have a WordPress session with permission to preview that draft. Ask them to sign in with an account that can edit or preview the post, or use an anonymous preview plugin instead.

Option 2: Send an anonymous link with Public Post Preview

  1. In WordPress, open Plugins → Add New.
  2. Search for Public Post Preview, then install and activate it.
  3. Open the saved draft.
  4. In the Block Editor, open Document settings and enable the public-preview checkbox. In the Classic Editor, use the checkbox in the Publish meta box.
  5. Copy the generated URL and send it to the reviewer.
  6. Tell the reviewer that the link expires after 48 hours by default.

After the link expires, enable public preview again or copy a newly generated link. Test the URL in a private or incognito window before sending it so you know it works without your administrator session.

Option 3: Use stronger expiry and revocation controls

Secure Draft Preview Links documents cryptographically random 64-character hexadecimal tokens, hash_equals() validation, configurable expiry, immediate disable or revocation, and automatic removal when a post is published, made private, or trashed. It supports both the Block Editor and Classic Editor.

Tidy Draft Share

Tidy Draft Share provides secure time-limited links, multiple links per post, view counts, one-click revocation, and support for drafts, pending review, scheduled, and private posts. Its shared previews include noindex,nofollow, which is useful when you do not want preview pages appearing in search results.

Option 4: Protect the content with a password

WordPress’s Password protected visibility displays a password form instead of the post body. Send the password separately from the URL. This is useful when an anonymous preview plugin is unavailable, but it changes the post’s visibility workflow and is not the same as a temporary draft-preview token.

Private visibility is different: only logged-in users with Administrator or Editor roles can view the post. It will not provide a public client preview.

  • Core Preview: access depends on the viewer’s logged-in permissions and the post’s status.
  • Public Post Preview: 48 hours by default.
  • Secure Draft Preview Links: expiry is configurable and links can be revoked immediately.
  • Tidy Draft Share: links are time-limited and can be revoked; configure the duration in the plugin workflow.

Regenerate or revoke a link after the review is complete, especially if the draft contains confidential pricing, launch details, personal data, or unpublished research.

  • Use a private channel such as a direct message or restricted project workspace.
  • Assume that anyone who receives an anonymous URL can forward it.
  • Set an expiry that matches the review window.
  • Revoke or regenerate the link after approval or when the draft changes substantially.
  • Open the URL in a private browser window to verify anonymous access.
  • Check that unpublished images, embeds, comments, and downloadable files do not expose information outside the intended review.
  • If search visibility matters, use a preview workflow that documents noindex,nofollow.

Common errors and fixes

Error Likely cause Fix
“You must be logged in” or a login screen You sent a core draft preview to an anonymous recipient, or the recipient lacks edit permission. Give the reviewer an appropriate account or create a Public Post Preview link.
The preview shows an old version The draft was not saved, or a page cache is serving an earlier response. Save the draft, copy a fresh preview URL, and clear or bypass page and CDN caches for the preview path.
Public preview checkbox is missing The plugin is inactive, the post is not saved, or the editor panel is collapsed. Activate the plugin, save the draft, then check Document settings or the Publish meta box.
Link expired The default 48-hour Public Post Preview window elapsed. Enable public preview again and send the new URL, or use a plugin with configurable expiry.
Link works for you but not the client Your browser has an administrator cookie. Test in an incognito window and verify the generated anonymous URL rather than the editor URL.
Private post is inaccessible Private visibility requires a logged-in Administrator or Editor. Use an anonymous preview plugin or switch to password protection for the review period.
Preview exposes content in search The sharing method does not add noindex directives. Choose a workflow that documents noindex,nofollow and keep the link private.
Images or embeds fail in preview The asset itself requires authentication, blocks hotlinking, or depends on a script unavailable to the preview request. Check asset permissions, use absolute URLs where required, and test the preview in a clean browser session.

Or skip the browser setup

If the goal is to send a visual review image of a WordPress preview URL, ScreenshotNeo captures the page through one API request. Read the ScreenshotNeo API documentation for all options.

ScreenshotNeo removes common overlays before capturing a clean preview image.
ScreenshotNeo removes common overlays before capturing a clean preview image.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com/your-wordpress-preview-url -o shot.webp
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://example.com/your-wordpress-preview-url"}, timeout=90)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://example.com/your-wordpress-preview-url' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
  • Cookie banners, newsletter popups, and chat widgets are removed before the shot.
  • Bot checks, blank pages, failed loads, timeouts, and cache hits are not billed; response headers report the page verdict and billing result.
  • An MCP server provides take_screenshot, get_page_info, and capture_pdf tools for Claude, Cursor, and other MCP clients.
  • The Free plan includes 1,000 screenshots each month with no card required. Paid plans start at $5 for 3,000 screenshots.

Create a free ScreenshotNeo account to capture preview links without setting up a browser automation stack.

Performance, reliability, and cost considerations

  • Preview links: browser rendering, plugins, caching, authentication, and third-party assets determine how quickly a client sees the page.
  • Anonymous links: shorter expiry reduces the period in which an unintentionally forwarded URL remains usable.
  • Screenshot capture: wait for the page’s important content and lazy-loaded images before capturing; block unnecessary ads and trackers when they are not part of the review.
  • Caching: cache only when the preview URL and content are stable. Disable or shorten cache TTLs when editors frequently update the draft.
  • Cost control: ScreenshotNeo bills only clean shots; bot checks, blank pages, failed loads, timeouts, and cache hits are not billed. Use caching for repeated review requests and bulk capture when reviewing many URLs.
  • Reliability: preserve the original preview URL, record its expiry, and regenerate after publishing or changing visibility. For automated workflows, use async jobs with signed webhooks where available.

FAQ

Can someone view a WordPress draft without logging in?

Yes. Use Public Post Preview or another plugin that creates an anonymous, expiring link. A normal WordPress core preview generally requires a logged-in user with permission to edit or preview the draft.

Save the draft first. The preview URL is generated for a saved, viewable post state.

Can I revoke a Public Post Preview link immediately?

The standard Public Post Preview workflow uses a 48-hour default expiry. For immediate disable and revocation, use a preview-link tool that documents those controls, such as Secure Draft Preview Links or Tidy Draft Share.

Does publishing invalidate the preview?

Publishing changes the post state and the normal core preview workflow. Plugins differ; Secure Draft Preview Links documents automatic removal when a post is published, made private, or trashed.

Should I send the editor URL or the preview URL?

Send the generated preview URL, never the editor URL. Confirm it in a private window before sharing.