Choose video hosting for WordPress by the job: YouTube for free public distribution, VideoPress for a familiar WordPress publishing workflow, Bunny Stream for low usage-based costs, Wistia for marketing analytics, and SmartVideo for branded playback and replacing eligible Vimeo embeds. Vimeo suits portfolios and collaboration; Cloudflare Stream suits developers building custom video workflows.
📋 TL;DR
• Public marketing videos: Decide how much control you need over ads, branding, recommendations, and the next action. • Paid lessons: Check stream authorization separately from WordPress membership-page protection. • Budget: Compare storage, delivered GB or minutes, and billable views—not just the advertised monthly price. • Publishing: VideoPress, Bunny, and SmartVideo offer WordPress plugin workflows; an external host does not necessarily mean editing embed code. • Migration: Keep original files, captions, and a map of existing embeds before switching services.
Disclosure: Swarmify makes SmartVideo. This comparison uses provider documentation and pricing checked on October 22, 2026, plus a local WordPress upload and embed test described below. It is not a controlled playback benchmark of all seven services. Recommendations reflect workflow and documented capabilities, not identical-condition testing of every host.
ℹ️ What is WordPress video hosting? Your WordPress host runs the website. A video host stores and processes videos; a video CDN distributes them. The player displays the video, and a plugin connects that workflow to WordPress. Buying a player plugin alone does not necessarily include storage, encoding, or delivery.
How do seven WordPress video hosts compare?
WordPress video hosts differ in publishing workflow and billing unit. The seven services below include video delivery; direct self-hosting appears separately as a control case. Prices are in USD, before applicable taxes and extras. Annual equivalents require annual billing, and promotional prices have separate renewal terms.
| Service | WordPress publishing route | Price and billing unit | Main fit and constraint |
|---|---|---|---|
| YouTube | Paste a URL into the YouTube block | Free hosting | Public reach; ads, branding, and recommendations remain platform-controlled |
| Vimeo | Vimeo block or embed | Check the current offer and storage rules for your account | Portfolios and review; account cohorts have different storage rules |
| Wistia | Provider embed in a Custom HTML block | Free; Business $79/month annually; Business + Signals $329/month annually | Marketing measurement; automation integrations require Signals or Enterprise |
| Jetpack VideoPress | Upload/manage through a WordPress plugin | $4.95/month equivalent first year, billed yearly; $9.95 renewal equivalent | WordPress editing; standalone paid product includes 1 TB storage |
| Bunny Stream | Official Stream block, editor uploads, shortcodes | $1 monthly minimum; storage from $0.01/GB and delivery from $0.005/GB | Cost control; region, replication, and usage determine the bill |
| Cloudflare Stream | Player embed or custom API integration | $5/month per 1,000 stored-minute capacity; $1 per 1,000 delivered minutes | Developer workflows; budget delivered minutes and integration work |
| SmartVideo | Plugin library, blocks/shortcodes, builder integrations, eligible Vimeo replacement | Startup $19/month annually: 10,000 monthly views, 1 TB; unlimited bandwidth | Branded site playback; views and storage have limits |
Table sources: (Vimeo plans, 2026), (Wistia pricing, 2026), (VideoPress, 2026), (Bunny pricing, 2026), (Cloudflare pricing, 2026), and (SmartVideo pricing, 2026). Vimeo’s transition is explained below.
| Separate approach | Publishing route | Cost | Responsibility |
|---|---|---|---|
| Direct self-hosting | Upload a file to the Media Library and use the Video block | Your server’s storage, transfer, and operations | You manage compression, capacity, backups, and any streaming infrastructure |
Before choosing, ask who uploads each week, whether viewers must log in, and what the video should accomplish. A public tutorial, sales-page demo, and paid lesson can justify different hosts on the same website.
How do WordPress.com and self-hosted WordPress differ?
WordPress.com plan eligibility differs from a self-hosted WordPress.org installation. WordPress.com Premium includes the basic Video block; Business and Commerce include VideoPress with 250 GB of dedicated video storage. Do not assume that Premium includes VideoPress. External video embeds are another route. (WordPress.com video guide, 2026).
On self-hosted WordPress, your host and server configuration determine local upload capacity. A dedicated video service has its own limits, which may differ from the number shown in your Media Library.
VideoPress illustrates why the product distinction matters: WordPress.com’s documentation lists a 6 GB maximum upload, while the standalone Jetpack VideoPress product page lists 5 GB per video. Use the limit documented for your purchase route and confirm with support before committing to oversized files. Those pages do not establish one universal VideoPress limit. (WordPress.com VideoPress guide, 2026; Jetpack VideoPress, 2026).
Which video hosting service fits your WordPress site?
Each service below has a useful role. Compare the publishing workflow, viewing environment, reporting, and limits against the actual page you need to build.
1. YouTube: best for free public distribution
YouTube is a sensible default for public tutorials and videos you also want people to discover on YouTube. In WordPress, add the YouTube block and paste the video URL. Playback happens inside the page; pressing play does not inherently redirect the visitor.

The compromise is control. YouTube branding, potential ads, and links to YouTube accompany its player. Setting rel=0 restricts end-of-video recommendations to the same channel; it cannot remove recommendations. The old modestbranding parameter is deprecated. (YouTube player documentation, 2026).
For pages with several videos, consider a facade: a preview image that loads the real player only after interaction. That defers the player’s initial resource cost, while playback still uses YouTube once activated. (Google facade guidance, 2026).
Verdict: Choose YouTube when public distribution and a zero hosting fee matter most. For a sales page, decide whether its branding and click-out paths support the page’s purpose. An unlisted link is also a poor substitute for course authorization.
2. Vimeo: best for portfolios and collaborative video work
Vimeo provides ad-free playback, review tools, and privacy options, but its plan names and storage model are changing. Check your account’s checkout offer rather than carrying an older plan’s price or quota into a new comparison. The public plan listing could not establish consistent storage and per-seat pricing during this review. (Vimeo plans, 2026).
Check your account cohort before buying. Vimeo’s help center describes a 2026 transition to Creator, Core, and Professional plans with managed storage. Embeddable or non-public videos count toward that allowance; public videos with embedding disabled do not. Use your account’s offer and storage meter when evaluating the transition. (Vimeo managed storage, 2026).
Storage capacity is not an irreversible tally of everything ever uploaded. Vimeo documents deleting unneeded videos or previous versions to free total storage. (Vimeo quota guidance, 2026).
Verdict: Choose Vimeo for creative review and a polished portfolio workflow. Check the checkout offer, account storage meter, privacy features, and downgrade behavior for your specific plan before moving a large library.
3. Wistia: best when marketing measurement changes decisions
Wistia suits teams that use video engagement to improve campaigns. Upload in Wistia, configure the player, and place its embed in WordPress. The free plan includes 25 GB storage and Wistia branding. Business is $79/month annually, starting with 250 GB storage and 1 TB bandwidth, plus heatmaps, engagement graphs, CTAs, and forms.
The tier matters: marketing automation integrations, contact-level engagement, and revenue attribution sit in Business + Signals at $329/month annually or Enterprise. Do not budget for Business while assuming it includes that automation stack. (Wistia pricing, 2026).
Wistia’s 2026 research reported that almost 20% of viewers shown an in-video lead-generation form completed it. That denominator is form-exposed viewers, not all website visitors, and the result is not a conversion promise. It does explain why a team might evaluate forms alongside playback. (Wistia research recap, 2026).
Verdict: Choose Wistia when someone will act on engagement and lead data. For a few videos needing straightforward playback, its marketing features may not justify the paid tier.
4. Jetpack VideoPress: best for editors who want to stay in WordPress
VideoPress lets editors upload and manage videos through WordPress while the service handles hosting and CDN delivery. Its player is ad-free, and the standalone paid plan includes 1 TB total storage. The advertised introductory annual offer is $4.95/month equivalent for the first year, renewing at the $9.95/month equivalent full price. (Jetpack VideoPress, 2026).
You can install the standalone VideoPress plugin or use the main Jetpack plugin. The full Jetpack plugin is recommended by Jetpack, but it is not mandatory. (VideoPress support, 2026).
Verdict: Choose VideoPress when editorial simplicity is the priority and its storage allowance fits. Keep the standalone subscription separate from WordPress.com’s bundled entitlement, and check the product-specific upload limit above.
5. Bunny Stream: best for low usage-based costs
Bunny Stream includes a player and an official WordPress workflow. Editors can upload through its Stream block, select library videos, or use shortcodes. A separate paid player is not mandatory. (Bunny WordPress announcement, 2025).
Check compatibility first: the official plugin lists WordPress 6.7+ and PHP 8.1+. (WordPress plugin listing, 2026).
The $1 monthly minimum is a floor, not unlimited hosting for a dollar. Storage starts at $0.01/GB and delivery at $0.005/GB; replication, delivery tier, geography, and optional services affect your total. (Bunny Stream pricing, 2026).
Bunny also has built-in views, watch-time, geographic, and delivery reporting. Calling it “no analytics” would miss its current capabilities. (Bunny dashboard documentation, 2026).
Verdict: Choose Bunny when you want to optimize infrastructure costs and can manage library settings and usage. Its WordPress integration makes ordinary publishing accessible without building an API workflow; you still need to understand the bill.
6. Cloudflare Stream: best for custom APIs and live-to-VOD workflows
Cloudflare Stream fits teams that want to connect uploads, playback, authorization, and other systems. You can embed its player in WordPress or build an integration around its API. Merely using Cloudflare for DNS does not create that editorial workflow.
Storage is purchased in $5/month increments for 1,000 minutes of capacity. Delivery costs $1 per 1,000 minutes; encoding is included. Preloaded and buffered segments count as delivery, so billable minutes need not equal minutes a person consciously watched. (Cloudflare Stream pricing, 2026).
For protected content, Stream supports requiring signed playback tokens. Connecting token issuance to WordPress membership permissions is an integration task. (Cloudflare playback security, 2026).
Verdict: Choose Cloudflare for an API-led product or custom publishing pipeline. For an editor who simply wants to upload and insert a video, compare the implementation effort with a plugin-based service first.
7. SmartVideo: best for branded WordPress playback and eligible Vimeo replacement
SmartVideo combines video hosting and delivery with a WordPress plugin library, blocks/shortcodes, and builder integrations including Elementor, Divi, and Beaver Builder. Setup connects the plugin to your account using the Swarm CDN Key.

For eligible Vimeo embeds, automatic replacement preserves the original embed URLs. For YouTube, use the library upload and SmartVideo embed workflow rather than assuming every YouTube URL will convert automatically. Check Vimeo source permissions before a bulk migration. (SmartVideo WordPress workflow, 2026).
Annual equivalents are Startup $19/month, Growth $59, and Pro $99. Included monthly views are 10,000/50,000/150,000, storage 1/3/5 TB, and view overages $2/$1/$0.75 per 1,000 respectively. Bandwidth is unlimited, but views and storage are not. Billing records a view when a player loads the start of its video, even without a play-button click. (SmartVideo pricing, 2026).
Verdict: Choose SmartVideo for a branded, ad-free viewing experience on your WordPress pages, especially when replacing an eligible Vimeo library. For CRM attribution, evaluate Wistia; for native live streaming, evaluate a service designed for it. For paid lessons, verify stream authorization in your host and membership integration rather than relying on a branded player.
If that existing-embed and builder workflow fits your site, see how SmartVideo works on WordPress and size the plan against player loads as well as library storage.
What will WordPress video hosting actually cost?
Video costs depend on the provider’s meter. A view-based plan, delivered-minute service, and GB-based service cannot be compared from page traffic alone. The following calculations illustrate billing; they are not playback benchmarks.

Cloudflare example: one ten-minute video
Assume one ten-minute video, retained all month and delivered fully 1,000 times, without extra preloading or repeat delivery. That produces 10,000 delivered minutes, or $10 delivery. Storage still requires the minimum $5 capacity purchase, making the total $15 for that month. WordPress hosting and development costs are separate. (Cloudflare pricing, 2026).
Bunny example: a small stored library
Assume 20 GB of billable stored video, one replication location, and 200 GB delivered monthly. At the advertised starting rates, storage is $0.20 and delivery $1, totaling $1.20, above the $1 minimum. This assumes all traffic qualifies for the starting delivery rate, with no premium encoding, DRM, or other paid extras. Your selected regions and configuration can change it. (Bunny pricing, 2026).
Use billable stored size, not just original-file size: providers can account for sources and encoded renditions differently. Our video storage guide explains what to check. Also include any player-plugin subscription, developer maintenance, additional seats, and renewal increases in your comparison.
When does direct WordPress video hosting make sense?
Direct hosting can be reasonable for a small, compressed clip with low demand and adequate server capacity. WordPress’s Video block accepts uploads, Media Library items, and video URLs. The block itself does not turn your server into an adaptive-streaming service. (WordPress Video block, 2026). Review the self-hosted video player responsibilities before taking on delivery infrastructure.

The capacity arithmetic is straightforward: a 100 MB file delivered completely 1,000 times transfers about 100 GB, using decimal units and excluding overhead. That is an illustrative calculation, not a claim about typical hosting-plan caps. Backups also need to account for any originals you retain in the Media Library.
Check your host’s actual media policy and transfer allowance. There is no need to assume every provider prohibits video. For a growing library, review the operational trade-offs in why direct WordPress video uploads can become costly.
What happened when we tested WordPress uploads and embeds?
In our testing (October 2026), a local WordPress Playground installation accepted a 100 MB MP4 without raising its upload limit. WordPress 7.1.3 with PHP 8.3.33 reported upload_max_filesize and post_max_size of 2000M; wp_max_upload_size() returned 2,097,152,000 bytes, or 2,000 MiB. Those are this Playground environment’s defaults, not a universal WordPress allowance. A host with a smaller configured limit can behave differently.
The upload test used a three-second, 640 × 360 H.264 MP4 padded to exactly 100,000,000 bytes with an MP4 free box. It tested file-size handling, not the encoding or streaming demands of a typical 100 MB production video. The uploaded file’s SHA-256 matched the original, and its upload directory contained only that MP4: no alternate resolution or format was generated.
Both the core Video block and the Media Library [video] shortcode played the uploaded file in Chromium. The block rendered a native <video> element; the shortcode rendered a <video> with an MP4 <source> and loaded MediaElement resources. Neither result showed an adaptive rendition ladder. Uploading successfully is not the same as obtaining transcoding or adaptive streaming.
What loaded before anyone pressed play?
The visible YouTube block rendered a youtube.com/embed/… iframe with loading="lazy". That attribute did not prevent a visible iframe from initializing: it requested player resources before interaction. The native video routes also fetched media before play; both reported preload="metadata" in Chromium.
| Local test page | HTTP requests before play | Accounted transfer before play |
|---|---|---|
| Core Video block | 6 | Approximately 0.91 MB |
[video] shortcode | 13 | Approximately 1.07 MB |
| YouTube oEmbed block | 19, including 17 external requests | Approximately 1.27 MB |
These are single cold-context observations over ten seconds at a 1280 × 900 viewport, with the browser cache disabled. Transfer uses Chromium’s encoded-byte counters, including reported partial bytes for canceled requests; unfinished requests can make the totals incomplete. Pages used the same WordPress head/footer, but the synthetic local clip and the public YouTube video were different content. Two DoubleClick hosts refused connections during a pilot and were blocked locally for the measured run. Treat these figures as a loading-behavior demonstration, not a speed ranking or a privacy audit.
Vimeo’s oEmbed endpoint returned HTTP 404 for the test URL. WordPress left URL text instead of an iframe; no player or valid Vimeo page-weight comparison resulted. Check your own intended Vimeo URL rather than interpreting that failure as normal Vimeo behavior.
The practical distinction is ownership of the work: direct uploads played, but did not become a managed streaming library. An oEmbed kept the video elsewhere, yet a visible third-party player still made requests before a click. Inspect both markup and network traffic on your actual page.
How should you plan migration and course protection?
WordPress video migration and access requirements can rule out an otherwise attractive service. Decide these before replacing embeds across a large site.
Keep an exit path
Save original files, captions, posters, titles, and a list of pages using each video. Keep the provider account under your organization’s control, with an identified billing owner.
Test one representative page before a bulk change: a builder page, a lesson, and a standard post may store video references differently. Confirm playback and captions, then document how to restore the old embed. Ask the new provider which existing blocks it converts automatically; a migration tool for one embed type does not establish support for every shortcode or gallery plugin.
Check cancellation terms and exports before downgrading. Vimeo’s managed-storage guidance, for example, says a downgrade can lock videos that exceed the new allowance and stop their embeds playing. (Vimeo managed storage, 2026).
For implementation after choosing a service, follow our WordPress video embedding guide.
Protect the stream as well as the lesson page
A membership plugin protects access to a WordPress page. An unlisted video merely hides the URL from ordinary discovery. Domain restrictions limit embedding locations; signed authorization can limit playback to approved users or sessions. DRM adds another protection layer, but no player can guarantee prevention of screen recording.
Write down the requirement: “Only currently enrolled students may obtain a playable stream.” Then verify the host and LMS integration can enforce it. Cloudflare documents signed-token playback; deploying it still requires a server-side entitlement check. (Cloudflare security documentation, 2026). See video hosting for membership sites for the architecture.
Treat live-to-VOD publishing as a separate workflow
Cloudflare supports replaying live recordings when ready. Its live webhooks report connection, disconnection, and error events—not a recording-ready event. WordPress’s REST API can update post content. A possible architecture is live-disconnect event → authenticated server integration → check recording readiness → save the video identifier → update the WordPress embed. This is an implementation proposal, not a tested turnkey integration. (Cloudflare live documentation, 2026; live webhooks, 2026; WordPress Posts API, 2026).
Keep API credentials server-side. Distinguish a broadcast ending from its recording being ready for playback, and check processing status before exposing the replay.
How should you test performance, accessibility, and reporting?
WordPress video performance depends on the page, not just the host’s feature list. Use the same source video, page position, cache state, device, and network for a controlled comparison. Repeat runs and separate initial page requests/bytes from playback startup and buffering.

Use these checks before rolling out a new player:
- Below the fold: Defer offscreen embeds or use a facade when click-to-load fits the page. (Google lazy-loading guidance, 2026).
- Above the fold: Prioritize a useful poster and stable player dimensions. Do not blindly lazy-load the main visible image. Review preload behavior and mobile autoplay restrictions. (Google video performance guidance, 2026).
- Accessible playback: Check captions, keyboard controls, visible focus, and a transcript or description where needed. Test the controls yourself. (W3C media accessibility guidance, 2026).
- Useful measurement: Separate marketing engagement—plays, completion, form submissions—from playback quality such as startup delay and buffering. Ask whether the service reports the metric you need.
Wistia reported a 24% homepage-video play rate in its 2026 analysis. That platform-specific figure is not a target for every site; it illustrates why page impressions and deliberate plays need separate definitions. (Wistia research recap, 2026).
For a deeper site audit, use our WordPress mobile speed guide. If search visibility matters, pair the player with useful page content and follow the WordPress video SEO guide.
Frequently asked questions
Which free video host works with WordPress?
YouTube is the practical starting point for free public distribution and simple WordPress embedding. Accept its player environment and recommendations, and consider a facade for initial page performance. A free public embed does not establish access control for paid lessons.
Should I use YouTube or Vimeo on WordPress?
Choose YouTube when public reach and free hosting are priorities. Choose Vimeo when ad-free embeds and creative collaboration matter more. Check the actual Vimeo plan offered to your account, because its 2026 storage transition makes older comparison charts incomplete.
What is the maximum video upload size in WordPress?
There is no universal maximum for self-hosted WordPress: check the upload limit displayed by your installation and your host’s configuration. External video hosts enforce their own file limits. WordPress.com documents 6 GB for VideoPress, while Jetpack’s standalone product page states 5 GB per video. (WordPress.com, 2026; Jetpack, 2026).
Do I need a video plugin if I already have a host?
Only if it adds a workflow or feature you need. Basic embeds can work without another player plugin. A plugin may simplify uploads, builder placement, or embed replacement; check whether its price includes hosting or only the player.
Can I migrate videos without editing every WordPress post?
Sometimes, for supported embed types. Automatic replacement tools can preserve existing embed URLs, but support for one source does not establish universal conversion for every provider, block, shortcode, or gallery. Inventory your actual embeds and test a representative page before a bulk change. (WordPress migration workflow, 2026).
How much does WordPress video hosting cost?
Compare the billing meter, not just the subscription: providers charge for stored GB, delivered GB or minutes, player loads, or a combination. In the Cloudflare example above, one ten-minute video delivered fully 1,000 times costs $10 in delivery plus the $5 minimum storage-capacity purchase, or $15 for the month before website hosting and development. (Cloudflare pricing, 2026).
Can a membership plugin alone protect course videos?
Protecting a lesson page does not establish authorization for the stream URL embedded in it. Check whether your integration issues playback credentials only to entitled students; signed-token playback is one documented approach, but the server still needs to check membership before issuing a token. (Playback security documentation, 2026).
Will changing video hosts automatically speed up WordPress?
No. Initial page speed also depends on the player resources, poster, placement, and loading behavior. Compare the same real page before and after the change, and consider deferred offscreen embeds or a click-to-load facade rather than assuming a different host fixes every bottleneck. (Google performance guidance, 2026).
Which WordPress video workflow can your team maintain?
Choose a WordPress video workflow by page purpose, then price expected usage and test one real page. Include the person who publishes videos, the person who pays the bill, and anyone responsible for membership access. Their requirements matter as much as player appearance.
For a branded WordPress viewing experience, compare SmartVideo’s included views and storage with your forecast. Keep public discovery, website conversion, and paid-content authorization explicit so the host solves the job you actually have.