How to Preview WordPress Posts Without Publishing Them
WordPress has a built-in preview feature, but it only works for people who are logged in to your site. If you need to show a draft post to a client, a colleague, or anyone else who doesn't have a WordPress account, you're stuck. The preview URL requires authentication, and there's no way around that without publishing the content.
This limitation creates real problems for content teams, agencies, and anyone who needs external feedback before publishing. In this guide, we'll explain why WordPress previews are restricted, walk through the options available, and show you how to generate secure, shareable preview links that work for anyone.
How WordPress Previews Actually Work
When you click "Preview" in the WordPress block editor, the system creates a temporary preview by rendering the post with the latest unsaved changes. The URL looks something like yoursite.com/?p=123&preview=true. This URL is protected by WordPress's authentication system — it checks whether the current user has permission to edit the post before displaying the preview.
This means the preview URL is useless for sharing. If you copy it and send it to someone without a WordPress account, they'll see a login page. If you send it to someone with a Subscriber or Contributor account, they'll get a permissions error because they don't have edit access to the post. The preview is strictly a tool for the post author and editors.
Even the "Preview in new tab" feature works the same way. It opens the preview in a new browser tab, but the authentication requirement remains. There is no WordPress core feature that generates a public or semi-public preview link.
Why Publishing Early Is Not the Answer
Some people work around the preview limitation by publishing the post and then immediately setting it back to draft. This is a terrible idea for several reasons.
First, the moment a post is published, WordPress sends it through the normal publishing pipeline. RSS feeds pick it up. Email subscribers may receive notifications. Search engine crawlers may index the URL. Even if you unpublish it within seconds, the content may have already been distributed.
Second, published URLs create permanent entries in search engine indexes. If Google crawls the URL while the post is published and then finds a 404 when you revert it to draft, you've created a negative signal. When you eventually publish for real, you may face indexing delays or duplicate content issues.
Third, WordPress generates a permalink the first time a post is published. Subsequent changes to the title won't automatically update the slug, which can lead to mismatched URLs. The "publish and revert" approach creates technical debt that compounds over time.
Password-Protected Posts: A Half-Solution
WordPress allows you to publish a post with password protection. Visitors must enter a password to view the content. This does create a shareable URL, but it requires publishing the post — with all the indexing and distribution concerns mentioned above.
Password-protected posts also have a poor user experience. The viewer sees a blank page with a password field and no indication of what they're about to read. The password is transmitted in plain text and stored as a cookie, which means anyone using the same browser can access the content afterward. There's no expiration mechanism, no per-link revocation, and no audit trail.
For a quick preview share, password protection creates more problems than it solves.
The Right Approach: Secure Share Links
Tidy Draft Share takes a different approach. Instead of working around WordPress's publishing system, it creates a separate access mechanism specifically for preview sharing. The post stays in Draft status. No publishing, no indexing, no RSS distribution.
How Share Links Work
When you generate a share link, the plugin creates a unique token associated with that specific post. The resulting URL looks something like yoursite.com/?p=123&share_token=abc123def456. When someone visits this URL, the plugin validates the token, checks that it hasn't expired, and then renders the post using your theme — exactly as it would appear if published.
The viewer sees the full page: header, content area, sidebar (if your theme has one), footer, and all styling. Gutenberg blocks render correctly. Embedded media plays. Custom CSS applies. It's a faithful representation of the published result, not a stripped-down preview.
Expiration and Revocation
Every share link has a configurable expiration period. The default is typically a few days, but you can set it to hours, weeks, or any duration that fits your review cycle. After expiration, the URL simply returns a 404 — no special error message that reveals the post exists.
You can also revoke any share link manually at any time. This is useful if you realize you sent a link to the wrong person or if a reviewer no longer needs access. Revocation is immediate — the next visit to the URL will fail.
What Reviewers See
Reviewers see the post content and nothing else. There's no admin bar, no editing interface, and no indication that they're viewing a draft rather than a published post. They can't navigate to other drafts, access your admin area, or discover other share links. Each link is isolated to its specific post.
The post renders in the same way it would for any visitor after publishing. This means reviewers can check responsive behavior on their phone, verify that images display correctly, and see how the content flows within your theme's layout.
Practical Tips for Using Preview Links
Include Context When Sharing
Don't just send a bare URL. Include a brief message explaining what the reviewer should look for. Is this a final review before publishing? Are you looking for factual accuracy? Do you want feedback on the structure? Clear expectations lead to better feedback.
Set Appropriate Expiration Windows
Match the expiration to your review cycle. If you expect feedback within 48 hours, set the link to expire in 72 hours. This provides a buffer without leaving links active indefinitely. For time-sensitive content, shorter expirations (24 hours or less) create urgency.
Use Separate Links for Different Reviewers
If multiple people need to review the same draft, consider generating separate links for each reviewer. This allows you to revoke access for one person without affecting others. It also lets you track who accessed the preview if that's important for your workflow.
Test the Link Yourself First
Before sending a share link, open it in an incognito browser window. This confirms that the link works without authentication and that the post renders correctly for unauthenticated viewers. It takes five seconds and prevents embarrassing situations where you've sent a broken or expired link.
Learn more about Tidy Draft Share →
Frequently Asked Questions
Will preview links affect my SEO or site indexing?
No. Tidy Draft Share generates links for posts that remain in Draft status. WordPress does not include draft posts in sitemaps, RSS feeds, or any public-facing page listings. The share link URLs include a noindex meta tag to prevent accidental indexing by search engines. Even if a crawler somehow discovers the URL, it won't be indexed, and the token will eventually expire.
Can I share previews of scheduled posts?
Yes. Tidy Draft Share works with any non-published post status, including Scheduled, Draft, and Pending Review. This is particularly useful when you've already scheduled content for a future date and need a last-minute review before it goes live. The reviewer sees the post exactly as it will appear at the scheduled publication time.
Is there a limit to how many share links I can create?
No. You can generate as many share links as you need, for as many posts as you want. Each link is independent with its own token and expiration. The plugin stores link data in your WordPress database with minimal overhead — even sites with hundreds of active share links won't see any performance impact.