You drag an MP4 into WordPress, hit publish, and the page suddenly takes six seconds to appear. So you put the video on YouTube instead, paste the link, and now there is a YouTube logo, a grid of suggested videos and a third-party cookie sitting in the middle of your sales page.
Both routes work. Both cost you something. The question is which thing you can afford to lose on this particular page.
This guide compares self hosted video and YouTube embeds for WordPress in plain language: what each one really costs, what your hosting company thinks about it, and how to set up self hosted video so it does not slow your site to a crawl.
The short answer
- Use YouTube for marketing videos, tutorials and anything you want people to find on YouTube itself. You get free bandwidth and reliable playback anywhere in the world.
- Use self hosted video for landing pages, product demos, course lessons, client work and anything where branding, privacy or a clean page matters more than reach.
- Most sites end up using both, which is fine, as long as one player handles both so your site does not look like two different websites stitched together.
What “self hosted” and “embedded” actually mean
Two terms, and they are simpler than they sound.
- Self hosted video. The video file itself lives on your own server, or on storage you control such as a CDN bucket. Your visitor downloads it from you. If you dragged an MP4 into your WordPress media library, that is self hosted video.
- Embedded video. The file lives on YouTube or Vimeo. Your page only contains a small window that loads their player, and they deliver the video. You are borrowing someone else’s video hosting for free.
There is a third option people often forget: a paid video host such as Vimeo, Bunny Stream or Jetpack VideoPress. Those sit in the middle. Someone else stores and delivers the file, but you keep the branding and the ad-free experience. More on those further down.
Self hosted video vs YouTube embeds, side by side
| Self hosted video | YouTube embed | |
|---|---|---|
| Storage and bandwidth cost | Yours. Counts against your hosting plan | Free, unlimited |
| Branding on the player | Fully yours | YouTube logo and channel watermark |
| Suggested videos at the end | None | Yes, and you cannot fully switch them off |
| Ads | Never | YouTube may show them, even on embeds |
| Cookies and consent | None by default | Third-party tracking unless you use the no-cookie domain and a consent step |
| Page weight | Small if configured properly | Large. The YouTube player loads before anyone presses play |
| Playback on slow connections | Depends on your host | Excellent. Adaptive quality worldwide |
| Search discovery | Your site only | Your site plus YouTube search |
| Control over the file | Total. It cannot be removed or age-restricted | YouTube’s policies apply |
| Setup effort | Compress, upload, configure a player | Paste a link |
Where YouTube embeds genuinely win
Bandwidth you never have to pay for
This is the big one. A ten minute video watched a thousand times can move a serious amount of data. On YouTube that costs you nothing. On your own hosting it can push you into a bigger plan or, on some hosts, get your account flagged.
It plays smoothly for everyone
YouTube automatically creates several quality versions of your video and picks the right one for each visitor’s connection. Someone on a weak mobile signal in another country still gets a video that plays instead of a spinning wheel. Matching that yourself means paying for a proper streaming service.
A second audience for free
A video on YouTube can be found on YouTube. A self hosted file can only be found by people already on your site. If the video is a top-of-funnel marketing asset, that difference matters more than any branding complaint.
Where self hosted video wins
Your page stays your page
No YouTube logo, no channel watermark, no grid of other people’s videos when yours finishes. On a sales page or a paid course lesson, a suggested-video grid is an exit door you built yourself. YouTube’s rel=0 parameter does not remove suggestions any more, it only limits them to your own channel.
No ads, ever
YouTube reserves the right to show ads on videos, including embedded ones, whether or not your channel is monetised. If a competitor’s ad can appear on your own pricing page video, that is a real business problem, not a design preference.
Speed you actually control
People assume embeds are the fast option. Often the opposite is true. A standard YouTube embed pulls in a large amount of player code and makes requests to several Google domains before your visitor has pressed anything. A self hosted MP4 with a poster image and preload turned down can load almost nothing until the visitor clicks play.
Privacy and consent
A normal YouTube embed contacts Google as soon as the page loads. In the EU and UK that usually means the embed has to sit behind a consent banner, which means a grey box where your video should be. Self hosted files involve no third party at all, so there is nothing to ask permission for.
Nothing vanishes overnight
Copyright claims, age restrictions, policy changes and account issues are all outside your control on YouTube. A file on your own server stays exactly where you put it.
The part nobody warns you about: your host
Before committing to self hosted video, check what your hosting company allows. This trips up more people than any technical problem.
- Shared hosting such as Bluehost or SiteGround will store your files happily, but streaming them to many visitors at once puts real strain on a server you are sharing with hundreds of other sites.
- Managed WordPress hosts such as WP Engine and Kinsta discourage storing and streaming large video files on their platform, and point you towards a dedicated video host or a CDN instead. It is worth reading their policy before you upload a course library.
- Object storage plus a CDN, such as Cloudflare R2, Bunny or Amazon S3, is the practical answer. You keep control of the file, your host never touches the traffic, and the cost is measured in cents rather than a plan upgrade.
That last option is what most people actually mean when they look for video hosting for WordPress. The file is yours, delivered fast, without the YouTube branding and without your web host carrying the load.
What your other plugins already assume
If you are running a membership site or a course, the tools around you have already picked a side.
- LearnDash and MemberPress protect the page, not the file. Neither of them hosts your video. Both recommend an external video host, because a protected lesson page containing a plain MP4 link is still a plain MP4 link that can be shared.
- Jetpack VideoPress is the paid middle ground: ad-free, no YouTube branding, delivered from Automattic’s servers rather than yours. It solves the bandwidth problem, though you are back to paying per gigabyte and living inside someone else’s player.
- Elementor’s video widget supports self hosted files, and it is where a lot of “Elementor self hosted video not working” searches come from. It is almost always one of three things: a file that is not MP4 with H.264 video, a file too large for the server to serve in one go, or autoplay being blocked because the video is not muted.
So which should you use?
Run through this quickly and the answer usually picks itself.
- Do you want this video found on YouTube? If yes, put it on YouTube and embed it. Nothing else competes on reach.
- Is it behind a payment or a login? Then do not put it on public YouTube. Self host it, or use a paid video host with domain restrictions.
- Is it on a page where a distraction costs you money? Sales pages, pricing pages, checkout pages. Self host, and keep the exit doors shut.
- Are your visitors mostly in the EU or UK? Self hosting removes the consent banner problem entirely.
- Is it long, popular, or both? Do the bandwidth maths first. A ninety minute webinar watched by thousands belongs on a video host, not on your web server.
How to do self hosted video properly in WordPress
Most bad experiences with self hosted video come from skipping these four steps, not from the idea itself.
1. Compress before you upload
Export as MP4 with H.264 video and AAC audio, at 1080p unless you have a real reason to go higher. A free tool like HandBrake will often cut the file size by half with no visible difference. This single step fixes most “my video will not play” problems.
2. Serve the file from a CDN, not from your web server
Upload the MP4 to object storage, put a CDN in front of it, and copy the direct file URL. Your pages stay on your host, the heavy traffic goes somewhere built for it, and you still own the file.
3. Use a real player, not a bare video tag
WordPress can drop a plain video element on the page, but you get the browser’s default controls, no poster image control, and no say over when the file starts downloading. A dedicated video upload plugin for WordPress gives you a consistent player across every browser.
Lean Player is free on WordPress.org and handles this side of the job. You point it at an uploaded MP4 or a direct CDN URL, set your own preview thumbnail so the page has something to show before playback, and use the Media Preload setting to decide whether the file loads immediately, loads basic information only, or waits for a click. On a page with several videos, that last setting is the difference between a fast page and a slow one.
4. Stop treating it as an either-or choice
Your marketing explainer can stay on YouTube while your course lessons stay self hosted. The trick is making both look like they belong to the same site. Lean Player uses one player for YouTube, Vimeo and your own files, so the controls and styling stay identical no matter where a given video lives, and you can put all of them in a single video playlist if you want.
Common questions
Does self hosted video hurt my page speed?
Only if you let the file start downloading before anyone asks for it. Set a poster image and keep preload minimal, and a self hosted video is usually lighter on page load than a standard YouTube embed.
Is there free video hosting for WordPress?
YouTube is the only genuinely free option at scale, and you pay for it in branding, ads and tracking. Your own hosting is free only until the bandwidth is not. Everything in between is paid.
Can people download my self hosted video?
A determined person can, yes. You can hide the download button and keep the file out of search results, but anyone with the direct URL can save it. If the content is genuinely valuable, use a video host with signed URLs and domain restrictions.
What file format should I use?
MP4 with H.264 video and AAC audio. It plays everywhere. WebM is a fine second file if you want it, but on its own it will fail for some visitors.
Do I need Elementor for any of this?
No. Lean Player works through a shortcode you can paste into the block editor, the classic editor, a widget area or a page builder. The Elementor widget just saves you the copy and paste.
Wrapping up
YouTube gives you free delivery and an extra audience, and charges you in branding, ads and tracking. Self hosting gives you a clean, private, on-brand page, and charges you in bandwidth and setup. Neither is the right answer for every video on your site.
Pick per page, not per site. Then make sure one player handles all of it, so a visitor moving from your homepage to a course lesson never notices they crossed a line.
If that is the part you are missing, install Lean Player free from WordPress.org. It plays self hosted MP4 files, CDN URLs, YouTube and Vimeo through one player, with your thumbnail and your load settings. You can also see the full feature list and pricing on the Lean Player page.
