Title: PreviewShare
Author: Mehul Gohil
Published: <strong>12 Meán an tSamhraidh, 2026</strong>
Last modified: 15 Deireadh Fómhair, 2026

---

Search plugins

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

![](https://ps.w.org/previewshare/assets/icon-256x256.png?rev=3570100)

# PreviewShare

 By [Mehul Gohil](https://profiles.wordpress.org/mehul0810/)

[Download](https://downloads.wordpress.org/plugin/previewshare.1.1.0.zip)

[Live Preview](https://ga.wordpress.org/plugins/previewshare/?preview=1)

 * [Details](https://ga.wordpress.org/plugins/previewshare/#description)
 * [Reviews](https://ga.wordpress.org/plugins/previewshare/#reviews)
 *  [Installation](https://ga.wordpress.org/plugins/previewshare/#installation)
 * [Development](https://ga.wordpress.org/plugins/previewshare/#developers)

 [Support](https://wordpress.org/support/plugin/previewshare/)

## Description

PreviewShare is a secure public preview plugin for WordPress. It helps editors share
draft posts, pending pages, scheduled content, private posts, and other enabled 
public post types through controlled public preview links for anonymous reviewers
without publishing early or creating temporary reviewer accounts.

Use PreviewShare when a client, legal reviewer, teammate, editor, or stakeholder
needs to review WordPress content before it goes live. Each preview URL uses a random
token, can expire automatically, can be revoked, and is designed for private review
workflows such as client approval, content approval, editorial review, and scheduled
campaign checks.

PreviewShare stores token hashes instead of plain-text tokens, adds noindex/nofollow
robots directives to shared previews, and shows a clear preview banner on private
preview pages.

#### Common use cases

 * Share a WordPress draft post with a client before publishing.
 * Send a private preview link for a pending page, scheduled campaign, or unpublished
   landing page.
 * Let stakeholders review content without giving them a WordPress login.
 * Create separate labeled preview links for legal review, client review, editorial
   review, or team approval.
 * Revoke access after feedback is complete or when a preview link should no longer
   work.
 * Keep search engines from indexing private preview URLs with robots directives.

#### Key features

 * Generate secure public preview links from the block editor, Classic Editor, post
   list table, or Preview dropdown.
 * Share pretty URLs such as `https://example.com/preview/exampletoken`.
 * Set a default expiration time for preview links from the PreviewShare settings
   screen.
 * Override the expiration time per post or page.
 * Create multiple labeled preview links for different reviewers.
 * Optionally collect approvals, change requests, and comments on individual preview
   links, with optional or required reviewer name and email.
 * See review history in the editor and the current review state in the preview-
   link inventory. Approvals are flagged for re-review after the draft changes.
 * Revoke preview access when a link should stop working.
 * View and manage preview link status, expiry, labels, and view counts from the
   settings screen.
 * Choose which public post types support public preview sharing.
 * Keep token lookup fast with optional object cache support.

#### How PreviewShare protects preview links

PreviewShare is built for private review, not public publishing. It uses random 
preview tokens, stores token hashes in WordPress post meta, supports automatic expiration,
supports manual revocation, and sends `noindex`, `nofollow`, `noarchive`, `nosnippet`,
and `noimageindex` directives for preview requests.

Anyone with a valid preview URL can open that preview, so links should still be 
shared only with intended reviewers.

### Development

The public source repository is available at https://github.com/mehul0810/previewshare.

Production ZIP files are built from the source repository with:

    ```
    npm install
    npm run plugin-zip
    ```

The release artifact includes compiled assets, Composer autoload files, `composer.
json`, plugin PHP, languages, readme, and license files. Development files such 
as `node_modules`, source assets, CI configuration, tests, and build tooling are
excluded from production ZIP files.

## Screenshots

[⌊PreviewShare settings with preview link inventory, status, expiry, and view counts.⌉⌊
PreviewShare settings with preview link inventory, status, expiry, and view counts
.⌉[

PreviewShare settings with preview link inventory, status, expiry, and view counts.

[⌊General defaults for the site-wide preview link expiry setting.⌉⌊General defaults
for the site-wide preview link expiry setting.⌉[

General defaults for the site-wide preview link expiry setting.

[⌊PreviewShare editor panel for enabling public preview and generating secure review
links.⌉⌊PreviewShare editor panel for enabling public preview and generating secure
review links.⌉[

PreviewShare editor panel for enabling public preview and generating secure review
links.

## Installation

 1. Upload the `previewshare` folder to the `/wp-content/plugins/` directory, or install
    the plugin ZIP from the WordPress admin.
 2. Activate the plugin through the Plugins screen in WordPress.
 3. Open Settings > PreviewShare to review the default expiration and caching options.
 4. Open a supported post type in the block editor or Classic Editor.
 5. Enable public preview from the PreviewShare panel and copy the generated preview
    URL.

## FAQ

### What does PreviewShare do?

PreviewShare creates public preview links for WordPress drafts and other enabled
content statuses. Reviewers can open the preview URL without a WordPress account,
while editors keep control over expiration, labels, view counts, and revocation.

### Is PreviewShare a public preview plugin for WordPress?

Yes. PreviewShare is designed for public preview links, private draft previews, 
client review links, and editorial approval workflows in WordPress.

### How do I share a draft WordPress post with a client?

Open the draft in the block editor or Classic Editor, enable public preview in the
PreviewShare panel, and generate a preview link. You can copy the generated URL 
and send it to the client for review.

### Who can generate preview links?

Users must be able to edit the content item before they can generate or revoke a
preview link for it.

### Does PreviewShare work with the block editor and Classic Editor?

Yes. PreviewShare supports the block editor, Classic Editor, post list table actions,
and the Preview dropdown.

### Can I change how long preview links remain active?

Yes. You can set a global default expiration in Settings > PreviewShare and override
it for individual content items in the editor panel. A value of `0` means no automatic
expiration.

### Can a preview link be revoked before it expires?

Yes. Disable public preview from the editor panel, revoke links from the Classic
Editor panel, or revoke individual links from the PreviewShare settings screen.

### Can I create different preview links for different reviewers?

Yes. PreviewShare supports multiple labeled preview links, so you can create separate
links for client review, legal approval, editorial review, or team feedback.

### Will preview links be indexed by search engines?

PreviewShare adds robots directives to preview requests, including `noindex` and`
nofollow`, and displays a preview banner on shared preview pages. Treat preview 
URLs as private links and share them only with intended reviewers.

### Where are preview tokens stored?

PreviewShare stores token hashes and token metadata in `wp_postmeta`. Raw tokens
are used in preview URLs but are not stored as plain text.

### What happens when a token expires?

Expired tokens stop resolving to content. The editor panel will show the expired
state and re-enabling preview sharing generates a fresh token.

### Can reviewers respond without a WordPress account?

Yes, if an editor enables reviewer responses for a specific preview link. Anyone
with that link can approve, request changes, or leave a comment. Editors can require
a name and email address, review the history, and resolve change requests. Revoking
or expiring the link stops new responses.

### When does an approval need review again?

PreviewShare marks an approval stale when saved post text, metadata, taxonomy terms,
or featured-image details change. Content pulled from external services or other
posts can change independently; editors should request a new response when that 
happens.

### How long is reviewer feedback kept?

Responses, comments, and any name or email supplied by the reviewer are stored as
private WordPress records. While PreviewShare is active, WordPress scheduled tasks
remove records after 90 days. Deactivating or uninstalling PreviewShare stops that
cleanup but preserves existing records in the site’s database; reactivating it resumes
cleanup. The records are available through WordPress personal-data export and erasure
tools when an email address was supplied and PreviewShare is active. Site owners
should describe this behavior in their privacy notice and ensure WordPress scheduled
tasks run reliably.

### Does PreviewShare expose private content publicly?

PreviewShare only exposes a specific content item to visitors who have a valid preview
URL. Treat preview URLs like private sharing links and send them only to intended
reviewers.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“PreviewShare” is open source software. The following people have contributed to
this plugin.

Contributors

 *   [ Mehul Gohil ](https://profiles.wordpress.org/mehul0810/)

[Translate “PreviewShare” into your language.](https://translate.wordpress.org/projects/wp-plugins/previewshare)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/previewshare/), check
out the [SVN repository](https://plugins.svn.wordpress.org/previewshare/), or subscribe
to the [development log](https://plugins.trac.wordpress.org/log/previewshare/) by
[RSS](https://plugins.trac.wordpress.org/log/previewshare/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.1.0

 * Redesigned the PreviewShare settings workspace across Overview, Preview Links,
   Content Types, Changelog, and More plugins.
 * Polished the admin header, plugin links, Changelog, content-type controls, and
   preview inventory while preserving the Overview redesign.
 * Respected WordPress date/time formats, site timezone, and locale in admin and
   editor histories and automatic link labels.
 * Improved preview-link inventory filters, descriptions, dates, and content IDs.
 * Added row actions to revoke access or revoke and delete a preview-link entry,
   with confirmation before deletion.
 * Added retries for concurrent revocation updates and clearer errors when preview
   links could not all be revoked.
 * Simplified content type selection with autosaving checkboxes and kept the selected
   settings tab after refresh.
 * Made release notes easier to scan with version summaries, latest and installed-
   version labels, and expandable older entries.
 * Added an Expiring soon view and a fixed 24-hour extension action for eligible
   preview links.
 * Added a verified plugin catalog with product-specific descriptions and destinations.
 * Added browser lifecycle coverage for secure preview access, expiration, revocation,
   and published-content behavior.
 * Added permission-checked WordPress Abilities for generating, listing, and revoking
   preview links on WordPress 6.9 and newer.
 * Added optional reviewer approvals, change requests, and comments per preview 
   link, with retries that preserve edits, multilingual feedback limits, editor 
   history, stale-approval status, and 90-day feedback retention.
 * Continued bounded 90-day cleanup across large reviewer-response backlogs and 
   reported privacy-erasure failures without retry loops.
 * Improved preview-link security by keeping concurrently generated links visible
   and revocable and avoiding temporary storage of generated Classic Editor and 
   post-list URLs.
 * Kept preview sharing controls available when Classic Editor is selected for an
   individual post.

#### 1.0.2

 * Validated preview-link editor and admin workflows with WordPress 7.1.
 * Prepared editor controls for the WordPress 7.1 component API.

#### 1.0.1

 * Added safer diagnostics and recovery guidance for invalid preview links.
 * Reduced npm development-tooling audit findings and documented remaining dev-only
   findings.
 * Expanded CI coverage for release branches and updated GitHub Actions runtime 
   pins.
 * Limited WordPress.org readme tags to five focused tags and added validation for
   the tag cap.
 * Improved WordPress.org readme tags and opening copy for public preview workflows.

#### 1.0.0

 * Initial release.
 * Added secure preview links for enabled public post types.
 * Added support for configurable public post types, multiple labeled links, view
   counts, noindex/nofollow previews, Classic Editor entry points, post-list actions,
   and Preview dropdown generation.
 * Added global settings for default expiration, logging, and object cache lookup.
 * Added post meta based token storage with hashed token lookup.

## Meta

 *  Version **1.1.0**
 *  Last updated **Coicís ago**
 *  Active installations **80+**
 *  WordPress version ** 5.8 or higher **
 *  Tested up to **7.1.3**
 *  PHP version ** 8.0 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/previewshare/)
 * Tags
 * [draft preview](https://ga.wordpress.org/plugins/tags/draft-preview/)[preview](https://ga.wordpress.org/plugins/tags/preview/)
   [preview link](https://ga.wordpress.org/plugins/tags/preview-link/)[public preview](https://ga.wordpress.org/plugins/tags/public-preview/)
   [share draft](https://ga.wordpress.org/plugins/tags/share-draft/)
 *  [Advanced View](https://ga.wordpress.org/plugins/previewshare/advanced/)

## Ratings

No reviews have been submitted yet.

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

[See all reviews](https://wordpress.org/support/plugin/previewshare/reviews/)

## Contributors

 *   [ Mehul Gohil ](https://profiles.wordpress.org/mehul0810/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/previewshare/)