AI to Elementor — HTML Importer for Elementor

Skildring

AI to Elementor — HTML Importer for Elementor converts HTML code into native Elementor templates — no copy-pasting into HTML widgets, no broken layouts. Your HTML becomes real Elementor containers, headings, text editors, images, buttons, and videos that you can edit visually.

This plugin is an independent project and is not affiliated with, endorsed by, or sponsored by Elementor Ltd. «Elementor» is a trademark of Elementor Ltd. This plugin is a conversion bridge for Elementor.

Perfect for:

  • AI-generated pages from ChatGPT, Lovable, bolt.new, v0, or any code generator
  • Static HTML websites you want to migrate to WordPress + Elementor
  • Landing pages built in code that need to become editable templates
  • Agencies converting client HTML mockups into Elementor sites

How it works:

  1. Paste the HTML for one page, or upload that page as an .html/.zip file
  2. Click «Convert to Elementor»
  3. Open your new template in the Elementor editor
  4. Repeat for each additional page

Important — convert one page at a time: This is a page converter, not a
whole-site importer. Each conversion turns a single HTML page into one editable
Elementor template. To migrate a multi-page site, convert each page separately
(e.g. index.html, about.html, contact.html — one at a time). A .zip may contain
one page’s HTML plus its images and CSS, but it should not contain an entire
website.

For the best results, follow our HTML guidelines — cleaner, well-structured
HTML converts far more accurately (especially for AI-generated pages):
https://aitoelementor.com/ai-guidelines/

Features:

  • Converts HTML to native Elementor widgets (not HTML widgets)
  • Preserves fonts, colors, spacing, and layout
  • Supports containers, sections, headings, text, images, buttons, videos, icons, and more
  • ZIP upload with automatic image import to Media Library
  • Google Fonts detection and registration
  • Works with Elementor 4 — converted pages import as classic elements, which Elementor 4 officially supports and lets you edit alongside its new Atomic elements (verified on Elementor 4.2)

What it costs (straight answer):

The plugin is free and every feature is unlocked — nothing is disabled in the
code. The conversion itself runs on an external service (see below), and that
service is metered:

  • Free tier: one (1) free conversion per website, no sign-up and no key
    required. Use it to try the plugin on a real page and see the quality before
    you decide anything.
  • Paid tiers (optional): if you need to convert more pages, the service
    operator offers subscription plans with higher monthly conversion quotas at
    aitoelementor.com. You enter the key in Settings.

This is a service quota, not a crippled plugin — the plugin code is identical on
the free and paid tiers. When you reach the free limit the plugin keeps working
and simply tells you the quota is reached; nothing breaks or disappears.

External Service: AI to Elementor Conversion API

This plugin sends HTML content to the AI to Elementor conversion service for processing. The conversion is performed by a Node.js-based engine that runs on the service’s external servers — it is not feasible to ship the engine inside a PHP plugin (the engine is ~17 MB of bundled JavaScript that uses headless-browser APIs, a CSS-tree parser, and other Node-only dependencies that cannot run in PHP).

What the plugin sends to the service:

  • Your HTML content (the page you want to convert)
  • The template title you choose
  • Your site’s domain (used by the service to associate usage with your account)
  • Your subscription key, if you have entered one in Settings (optional — without a key the service allows one free conversion per site)

What the service keeps:

  • A copy of the HTML you submitted, retained for up to 90 days to identify and fix conversion bugs, then deleted automatically. Stored with your site’s domain and a timestamp only — never with your subscription key or email. Not shared with third parties and not used to train any model offered to others. This applies on the free tier as well as paid plans, and you can opt out in Settings > Data & Privacy or request deletion at privacy@aitoelementor.com. Full terms: Section 9.4 of the Terms of Service linked below.

What the service returns:

  • Elementor-compatible JSON template data, which the plugin saves as an Elementor template on your site
  • A list of Google Fonts detected in your HTML, which the plugin registers via Elementor

Service operator and policies:

The service has a free tier that allows one (1) conversion per website with no key, and optional paid subscription tiers with higher monthly conversion quotas. Both tiers use the same plugin code; the subscription is purely a service-side relationship with the operator and is not a condition of using the plugin. The plugin works fully on the free tier without any subscription. Quotas (if reached) are enforced by the external service and reported back to the plugin as plain error messages.

The service URL can be changed in Settings AI to Elementor if you operate your own compatible conversion endpoint.

Skjermbilete

Installasjon

  1. Upload the plugin folder to /wp-content/plugins/ (or install directly from the WordPress Plugins screen Add New)
  2. Activate the plugin through the «Plugins» menu in WordPress
  3. Ensure Elementor is installed and activated
  4. Go to «AI to Elementor» > «Convert» in the admin menu
  5. Paste HTML or upload a file and click «Convert to Elementor»

Vanlege spm.

Do I need Elementor Pro?

No. The plugin works with the free version of Elementor.

Does it work with Elementor 4 (the Atomic editor)?

Yes. Converted pages import as classic elements, which Elementor 4 officially supports
alongside Atomic — you edit them exactly as before, and classic elements have no
deprecation date. Verified on Elementor 4.2. If your site ships a widget your template
uses as «legacy» (off by default), the plugin tells you exactly which one and how to
enable it after the import.

What HTML can I convert?

Any valid HTML page — from AI code generators, static websites, landing page builders, or hand-coded HTML. The converter handles modern CSS layouts including flexbox and grid.

How do I get the best conversion quality?

Cleaner, well-structured HTML converts more accurately — semantic tags, sensible class names, and standard CSS layouts all help, while heavily-nested or obfuscated markup (common in some AI exports) is harder to map. We publish a short set of HTML guidelines with concrete do’s and don’ts here: https://aitoelementor.com/ai-guidelines/ — worth a look before converting AI-generated pages.

Can I import a whole website at once?

No — and this is important. The plugin converts one page per conversion, not an entire site in a single step. Each conversion produces one Elementor template from one HTML page. If you have a multi-page website, convert each page on its own: paste or upload index.html and convert it, then about.html, then contact.html, and so on. If you upload a .zip, it should contain a single page’s HTML plus that page’s images and CSS — not a full-site export. Trying to convert a whole site in one go will not work as expected.

My converted page is blank / empty on the front end — why?

The most common cause is that Elementor’s Flexbox Container feature is turned off on your site. Converted templates are built from containers, so with that feature disabled the page renders blank (even though the template imported correctly). The plugin now detects this and shows a warning with a one-click Enable Flexbox Containers button (for administrators). You can also enable it manually at Elementor Settings Features Flexbox Container (set it to Active and save). After enabling, reload the page — it will render.

My icons came in as markup instead of editable images — why?

Icons drawn as inline SVG can be imported two ways. By default they are kept as markup: they render
exactly as designed, but they are not editable through Elementor image controls, and the import
notice tells you how many were kept that way.

The alternative is to save each icon into your Media Library as a real file, which makes it an
ordinary Elementor Image widget. That is off by default on purpose — writing SVG into a Media
Library is a security decision that belongs to the site owner, not to a plugin. Every icon is
re-sanitised through a geometry allowlist and Elementor’s own SVG sanitizer before anything is
written, and the permission is scoped to the import itself rather than switching on SVG uploads
site-wide.

To enable it, add this to a small plugin or your theme functions.php:

add_filter( 'htel_import_svg_icons', '__return_true' );

Convert the page again afterwards — the setting applies at import time, so pages already imported
keep the markup they arrived with.

What happens to images in my HTML?

If you upload a ZIP file containing your HTML and images folder, all images are automatically imported to your WordPress Media Library and the paths are updated in the template.

How many conversions do I get for free?

The conversion service includes one (1) free conversion per website — no sign-up or key required — so you can try it on a real page first. If you need to convert more, the service operator offers optional paid subscription plans with higher monthly quotas; you enter the key in Settings. The plugin itself requires no subscription and locks no features — the quota is on the external conversion service, and the plugin works the same on both tiers.

Where does my HTML go?

To the conversion service at api.aitoelementor.com. See the «External Service» section above for full details, including the operator’s Terms of Service and Privacy Policy links.

Where are my converted templates?

Templates are saved to the Elementor Template Library. Go to «Templates» > «Saved Templates» in your WordPress admin, or use the direct link provided after conversion.

Which AI page generators does it work with?

It works with the HTML output of any code generator — ChatGPT, Claude, Lovable, bolt.new, v0, Cursor, and Anthropic Stitch are all supported, including the offline/bundled export formats some of them produce. It also works with plain hand-written HTML and static site exports. If it’s valid HTML, the converter can process it.

What happens after I use my 1 free conversion?

The plugin keeps working — you simply see a plain message from the service saying you’ve used your free conversion for this site. Nothing in the plugin is disabled or locked. If you need to convert more pages you can optionally subscribe to a paid plan on the service operator’s website and paste the key into Settings.

Is my HTML kept or shared?

Your HTML is sent to the conversion service to perform the conversion, and the service also keeps a copy for up to 90 days to find and fix conversion bugs. It is stored with your site’s domain and a timestamp only — never with your subscription key or email — and is deleted automatically. It is not shared with third parties and is not used to train any model offered to others. This applies on the free tier as well as paid plans.

You can switch it off: untick sampling in the plugin’s Settings > Data & Privacy, and nothing further is kept. You can also ask for anything already collected from your site to be deleted by emailing privacy@aitoelementor.com with your domain. Full terms are in Section 9.4 of the operator’s Terms of Service, linked in the «External Service» section above.

The plugin does not send anything in the background — it only contacts the service when you click Convert, enter a key, or save Settings.

The conversion failed or my page looks off — what do I do?

The result screen auto-diagnoses common causes (security/optimization plugins like Wordfence or SG Security blocking the request, outbound HTTPS blocked, or request-body size). Follow the on-screen guidance for your specific setup. For best fidelity, upload a ZIP that includes your HTML plus its images and CSS files so the converter has the full page.

Omtalar

21. september 2026 1 reply
Game changer thank you for this plugin, this is one of the greatest plugins ive ever seen the simplicity is outstanding. Great work.
16. juli 2026
I've tested several HTML to Elementor solutions, and this plugin is by far one of the best. It converts HTML into Elementor sections quickly and accurately, saving a tremendous amount of time when recreating layouts. The generated structure is clean, easy to edit, and works seamlessly with Elementor. Even complex HTML is imported surprisingly well, reducing the need for manual adjustments. As someone who manages multiple WordPress websites, this plugin has become an essential part of my workflow. It helps transform AI-generated HTML into fully editable Elementor content in just a few clicks. The developer has done an excellent job. The plugin is lightweight, easy to use, and simply delivers what it promises. Highly recommended for anyone working with Elementor and AI-generated HTML. I've already used it on several production websites, and it has consistently saved me hours of work.
19. juni 2026
AI to Elementor — HTML Importer for Elementor is a very useful plugin for importing custom HTML and AI-generated layouts into Elementor. The interface is simple and easy to use, and it saves a lot of time when building pages. While support for more complex layouts could be improved, overall it's a promising and helpful plugin.
Les alle 3 omtalar

Bidragsytarar og utviklarar

“AI to Elementor — HTML Importer for Elementor” is open source software. The following people have contributed to this plugin.

Contributors

Endringslogg

1.3.51

  • Changed: converting a page now needs a user who may save unfiltered HTML, the right WordPress asks
    for before it stores scripts and styles: an administrator or an editor on a standard site, the
    network administrator on a multisite network. A converted template carries its page’s stylesheet
    and scripts, so the Convert button now asks for the same right the AI tool added in 1.3.50 asks for.
  • A user without that right is told so before anything is read or sent, and no conversion is used.
  • If your authors or contributors convert pages, an administrator or an editor now needs to do it.
  • On a site that sets DISALLOW_UNFILTERED_HTML, WordPress gives that right to nobody, so pages
    cannot be converted there.

1.3.50

  • New: an AI tool connected to your site can run the conversion. On WordPress 6.9 or later the
    plugin registers a WordPress ability, aitoel/convert-html. An AI client connected to the site,
    for example Claude through Elementor’s MCP server (Elementor 4.3 or later, with its MCP switched
    on), passes it a page’s HTML and gets back a saved Elementor template: the template the Convert
    button creates.
  • It uses the same conversion service and the same plan and allowance as the Convert button.
  • It converts for a user who can edit posts and may save unfiltered HTML: an administrator or an
    editor on a standard site. Any other user is told so, and no conversion is used.
  • To switch it off, add add_filter( 'aitoel_abilities_enabled', '__return_false' ); to your site.
  • The Convert button works as before.

1.3.49

  • Fixed: backslashes were removed from what the plugin saved. A backslash in CSS – an escaped
    class name like .md\:flex, or a quote mark written content:"\201C" – was lost from a
    converted page’s settings, which broke that CSS. With «Add the page’s colours and fonts to my
    Elementor Site Settings» turned on, a conversion also removed the backslashes from your own Site
    Settings, their Custom CSS for example. A template title lost its backslash too. These values
    are now saved exactly as they are.
  • Applies to pages you convert from now on. A backslash already removed from your Site Settings
    is not put back: if your Site Settings Custom CSS uses backslashes, check it.

1.3.48

  • Fixed: an image whose web address has no file extension (Unsplash’s, for example) stayed linked
    to the site it came from after import. When such an image arrives as an Image widget or a
    background, it is now copied into your Media Library like any other image, and your page’s own
    styles are pointed at the copy too. A file that turns out not to be an image is left where it was.
  • Applies to pages you convert from now on. Templates you have already imported are not changed.

1.3.47

  • Improved: less CSS in a converted heading’s Title field. When a word inside a heading was styled
    (a coloured accent word, say), opening the Heading showed that styling as code, like
    . The plugin now moves it into the page’s own stylesheet and
    leaves a class name in its place – but only where it can tell the page looks exactly the same:
    it asks your WordPress’s own filter about each piece of styling, and whatever it cannot move
    safely stays in the Title as before. A page that carries its own scripts is imported exactly as
    before. The page itself looks exactly as it did.
  • Applies to pages you convert from now on, by a user WordPress lets save unfiltered HTML
    (administrators and editors on a standard site; network administrators on a multisite).
    Templates you have already imported are not changed.
  • Worth knowing: a heading copied to another page keeps its class but not this page’s
    stylesheet, so its moved styling stays behind – as many of the page’s other converted elements
    already do.

1.3.46

  • New: a «Go Premium» link in the AI to Elementor menu, under Settings, for sites without an
    active licence. Clicking it opens the plans on aitoelementor.com in a new tab. Nothing else
    changes: conversions work exactly as before, and the link is not shown once a licence is active.

1.3.45

  • Fixed: after clicking Convert, the page now takes you to the result. It was always being
    shown – the template link, the conversion limit notice, the «your CSS file is missing»
    warning – but 1.3.43 added a panel between the button and the result area, which left every
    outcome around 600 pixels below the button with nothing scrolling you there. Clicking Convert
    looked like it did nothing, whether the conversion had succeeded or been refused.
  • The progress bar is scrolled into view as soon as the conversion starts, so you watch it run
    instead of watching a button you cannot tell apart from a dead one.

1.3.44

  • Improved: when icons on your page are kept as markup instead of becoming editable images, the
    import now says so and how many. This already happened — some pages arrived with a dozen icons
    as raw HTML — but nothing explained why, so the only available conclusion was that the
    conversion had gone badly. It had not: keeping them as markup is deliberate, because saving SVG
    files into a Media Library is a security decision that belongs to you rather than to a plugin.
  • The notice tells the two cases apart: the setting being switched off, which you can change, and
    a write that failed even though it is switched on. The FAQ explains how to enable native icon
    import if you want it; icons are re-sanitised before anything is saved either way.

1.3.43

  • The import screen now points to the free design skill: one text file you hand to Claude, which
    writes the page for a real business before you convert it. Nothing installs on your site, and
    there is no account or email to give.
  • Privacy, stated plainly: the conversion service keeps a copy of the HTML you submit for up to
    90 days to find and fix conversion bugs, stored with your site domain and a timestamp only,
    never with your subscription key or email, then deleted automatically. It is not shared with
    third parties and is not used to train any model offered to others. You can switch it off in
    Settings > Data & Privacy, or ask for anything already collected to be deleted by emailing
    privacy@aitoelementor.com. This applies on the free tier as well as paid plans, and the paid
    build of 1.3.42 did not carry this disclosure.

1.3.42

  • ZIP uploads: an image referenced by a stylesheet from its own folder — for example a
    stylesheet in css/ using ../images/photo.jpg, which is how most site builders lay a site out —
    is now found in your archive and imported. Previously that reference was left pointing at a
    file that was never uploaded, so the image did not appear and nothing said why. Backgrounds
    in the same stylesheet were the usual casualty.
  • The same fix covers a stylesheet referring to a file sitting beside it, such as url(bg.png).

1.3.41

  • ZIP uploads: a stylesheet, image or background referenced with a cache-busting query string
    (for example style.css?v=2) is now found inside your archive and imported. Previously the
    reference was left pointing at a file that was never uploaded, and the page arrived unstyled
    with nothing reported.
  • ZIP uploads: a reference that selects part of a file — for example an icon out of an SVG
    sprite, sprite.svg#gear — keeps that selection when the file is imported. Only the cache-busting
    part of the reference is dropped.

1.3.40

  • Global Typography: with “Add the page’s colours and fonts to my Elementor Site Settings”
    enabled, headings and body text now arrive as full Global Font presets (size, weight, line
    height, responsive values) that your widgets reference — edit “Heading 2” once in Site
    Settings and every matching heading follows. Pages whose headings vary keep their individual
    styling untouched. If your Site Settings already hold a different style for a heading level,
    new pages keep their own styling for that level instead of adopting it, and the import notice
    says so.

Earlier versions

  • The entries for 1.0.0 to 1.3.39 are left out here: WordPress.org shows 5,000 words of a changelog. The full list ships in the plugin as changelog.txt from 1.3.52.