Convika

Української версії ще немає — показано англійську.

How to upload an HTML file to WordPress

Quick answer

On a self-hosted WordPress.org site, an Administrator can upload the .html file to the Media Library or the server, or paste its code into a Custom HTML block, which keeps <script> and <iframe> only for users with the unfiltered_html capability. WordPress.com's Media Library doesn't list .html, and its Custom HTML block keeps script, style, and iframe tags only on a paid plan with hosting features activated. On either, a page hosted elsewhere can sit behind a button.

Get a link for my HTML file

Free plan: no credit card, 1 published page, 1 custom subdomain.

On this page

ChatGPT or Claude made you a landing page, a calculator, or a price list as one .html file, and your site runs on WordPress. Where that file can go depends on which WordPress you have: WordPress.com, where Automattic hosts the site and your plan decides what code you may add, or WordPress.org software on a host you pay, where your user role decides. This guide gives each route from WordPress's own documentation, and says where the docs are silent.

The WordPress.org and WordPress.com pages quoted here were read on November 14, 2026. We didn't test them on a live site, so a label on yours may differ.

To check the page first, drop it into the upload box at the top of this page: it gives a preview link without an account. That preview runs no scripts. Click Keep this page — free, no card and sign up, and the page moves into your account, where its scripts run and you can publish it at a link your WordPress site points to.

WordPress.com vs WordPress.org: what each allows

What you want to doWordPress.com, Free planWordPress.com, paid plan with hosting features activeSelf-hosted WordPress.org
Upload the .html file to the Media LibraryNo: .html isn't on WordPress.com's accepted file typesWordPress.com doesn't say for .html; it says a plugin can add file types it doesn't listYes, for a user with the unfiltered_html capability
Paste code with <script>, <style>, or <iframe> into a Custom HTML blockNo: those tags “require a paid plan with hosting features activated”YesYes, for a user with unfiltered_html; for others, WordPress strips <script> and <iframe> on save
Put the file on the server by SFTP or a file managerNoSFTP, on plugin-enabled Personal, Premium, Business, and Commerce sitesYes, with your host's file manager or an SFTP, FTPS, or FTP client
Link a button to a page hosted elsewhereYesYesYes

Who has unfiltered_html: on a single WordPress site, Administrators and Editors; on Multisite, “only Super Admins”, per WordPress's roles page. Authors and Contributors don't. On WordPress.com, hosting features are active once the site has a plugin: its Custom HTML guide says to “Install at least one plugin on your site to activate your plan to accept custom code”, and plugins are on the Personal, Premium, Business, and Commerce plans.

Paste the code into a Custom HTML block

This puts the page's code inside one of your WordPress pages or posts, under your theme's header and menu.

On WordPress.org:

  1. Open the page or post in the editor and click the Block Inserter (+), or type /html in a new paragraph and press Enter.
  2. Click Edit HTML to open the editor, and paste the code. The preview shows on the right.
  3. Click Update, then publish or update the page.

WordPress.org says that from WordPress 7.0 the block has “separate editing panels for HTML, CSS, and JavaScript”, and “The CSS and JavaScript panels are only available to users with the unfiltered_html capability.” For anyone else, “disallowed markup is removed when the post is saved or updated.”

On WordPress.com, the steps are the same: click the + Block Inserter, search for “HTML”, click Custom HTML, click Edit HTML, paste the code on the left, and click Update. On the Free plan, iframe, script, style, form, input, embed, and object are removed. WordPress.com's guide: “If your code disappears or is partially removed after you save”, check your plan, then activate hosting features, then paste the code again.

WordPress's docs don't say what the block does with a whole page's <html>, <head>, and <body> tags. If the page looks wrong inside your theme, use one of the routes below.

Upload the file to the server

To the Media Library (self-hosted, with unfiltered_html). WordPress allows .htm and .html uploads only for users with that capability: its get_allowed_mime_types function removes them for everyone else. Upload the file under Media, then open it in the Media Library: the details show the File URL, with Copy URL to clipboard. WordPress.org doesn't say how a browser opens an .html file at that address; that's up to your host's server.

By SFTP or your host's file manager (self-hosted). WordPress.org names “two common ways to upload and manage files on your site”: “the file manager provided by your host's control panel” and “an FTP, FTPS, or SFTP client”. It recommends SFTP or FTPS over plain FTP, which “sends data in clear text”, and says to “confirm the correct site directory with your host”. On an Apache server, WordPress's standard .htaccess hands a request to WordPress only when no file of that name exists (RewriteCond %{REQUEST_FILENAME} !-f), so an offer.html placed in the site's folder answers at yourdomain.com/offer.html. We didn't test this on a host, and a server that doesn't use .htaccess follows its own setup.

By SFTP on WordPress.com. WordPress.com says SFTP is “available on plugin-enabled sites with our WordPress.com Personal, Premium, Business, and Commerce plans” (its file types guide still names only Business and Commerce). You create the credentials under Settings, SFTP/SSH in the Hosting Dashboard. WordPress.com's SFTP guide doesn't say which folder serves an .html file as a page.

The simplest route works on every plan: publish the page on a host, then link to it.

  • A button. WordPress's Buttons block takes a link, and “It's also possible to set it to open the link in a new tab.”
  • An iframe. In a Custom HTML block, an <iframe> shows another site's page inside yours, with the same rules as above: unfiltered_html on WordPress.org, a paid plan with hosting features on WordPress.com. The other host has to allow it. A Convika page doesn't: Convika refuses to be shown in a frame on another site, so link to it with a button instead.
  • A subdomain of your own domain. Keep WordPress on yourdomain.com and put the page on go.yourdomain.com. Convika's Free plan connects 1 custom subdomain; the custom domain guide has the DNS records.

When the page has scripts or its own styles

  • Scripts. A quiz's Check button, a calculator, or a game needs <script>. In a Custom HTML block that means unfiltered_html on WordPress.org or a paid plan with hosting features on WordPress.com. Otherwise WordPress removes the script when you save.
  • Styles. Code in a Custom HTML block sits inside your theme's page, so the theme's CSS applies to it, and the page's own CSS can restyle the theme around it. If the page looks broken there, upload the file to the server or link to it on its own address instead.
  • Separate files. A page that loads style.css, app.js, or photo.png from its own folder needs those files uploaded beside it. Or drop the folder, or a zip of it, into Convika's upload box, which puts the files the HTML names inside the page. Why an HTML file opens without its images and styling explains the cause.
  • Server code. A page made for Node or Python needs a host that runs that code. Pasting it into a block or the Media Library doesn't run it, and neither does Convika, which runs no server code.

Convika serves one .html or .htm file up to 2 MB, or pasted code, at a lasting link, with its HTML, CSS, and JavaScript as they are. It runs no server code (no Node, PHP, or Python, and no database of your own).

Drop the file into the upload box at the top of this page, or paste the code, and click Get my preview link. You get a link in seconds, without an account. It works for 3 minutes, with scripts and forms off, so it's for checking the layout.

2. Keep the page

Click Keep this page — free, no card and sign up. The page moves into your account, and its scripts run in the dashboard preview.

3. Publish it

Click Publish page. Under Who can open this page?, choose Public and click Next. The first time, click Publish free: the page goes live with a small Convika bar at the bottom. Under it, Publish without the Convika bar opens an order for Pro monthly ($12 a month). On Free, the page is Public: anyone with the link can open it, and it may show up in search results and in Convika's gallery.

Copy the page's address, such as yourpage.convika.page. In the WordPress editor, add a Buttons block, paste the address as the button's link, and update the page. To show it at an address on your own domain instead, connect a subdomain such as go.yourdomain.com to the page in Convika.

Free includes 1 published page and 10,000 page views a month, and the dashboard shows how many people opened the page. For other hosts, How to share an HTML file as a link compares 8 of them.

Frequently asked questions

Can I upload an HTML file to WordPress?

On self-hosted WordPress.org, yes, if your user has the unfiltered_html capability: Administrators and Editors on a single site, Super Admins on Multisite. Upload it to the Media Library or to the server by SFTP or your host's file manager. On WordPress.com, .html isn't on the accepted file types; SFTP is on plugin-enabled paid plans. You can also paste the code into a Custom HTML block, or link to the page on another host.

How do I add an HTML page to WordPress without a plugin?

Paste the code into a Custom HTML block: click the Block Inserter, add Custom HTML, click Edit HTML, paste, and click Update. On WordPress.org, users without unfiltered_html lose <script> and <iframe> on save. On WordPress.com, those tags need a paid plan with hosting features activated, and activating them means installing a plugin. A button linking to the page on another host needs no plugin anywhere.

Why does WordPress remove my script or iframe?

WordPress filters HTML for security. On WordPress.org, a user without the unfiltered_html capability, such as a Contributor, gets their block's content sanitized with wp_kses(), “stripping disallowed tags such as