{"id":296735,"date":"2026-06-04T20:37:48","date_gmt":"2026-06-04T20:37:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/html-to-elementor\/"},"modified":"2026-10-23T11:29:47","modified_gmt":"2026-10-23T11:29:47","slug":"aitoel-html-importer","status":"publish","type":"plugin","link":"https:\/\/nn.wordpress.org\/plugins\/aitoel-html-importer\/","author":15343680,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.3.51","stable_tag":"1.3.51","tested":"7.1.3","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"AI to Elementor \u2014 HTML Importer for Elementor","header_author":"AI to Elementor","header_description":"Convert any HTML page into a fully editable Elementor template with one click. Works with AI page generators (Lovable, v0, Stitch, Cursor, bolt.new) and hand-written HTML.","assets_banners_color":"5c527c","last_updated":"2026-10-23 11:29:47","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/aitoelementor.com","rating":5,"author_block_rating":0,"active_installs":1000,"downloads":12191,"num_ratings":3,"support_threads":1,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.3.18":{"tag":"1.3.18","author":"georget777","date":"2026-06-04 20:37:23","revision":3561530},"1.3.19":{"tag":"1.3.19","author":"georget777","date":"2026-06-04 20:54:25","revision":3561552},"1.3.20":{"tag":"1.3.20","author":"georget777","date":"2026-06-05 11:11:54","revision":3562262},"1.3.21":{"tag":"1.3.21","author":"georget777","date":"2026-06-10 20:38:44","revision":3568052},"1.3.24":{"tag":"1.3.24","author":"georget777","date":"2026-07-10 17:31:51","revision":3603247},"1.3.25":{"tag":"1.3.25","author":"georget777","date":"2026-07-14 12:18:34","revision":3607440},"1.3.26":{"tag":"1.3.26","author":"georget777","date":"2026-07-23 15:52:33","revision":3620236},"1.3.28":{"tag":"1.3.28","author":"georget777","date":"2026-07-29 19:09:32","revision":3627615},"1.3.29":{"tag":"1.3.29","author":"georget777","date":"2026-08-14 08:16:32","revision":3646922},"1.3.30":{"tag":"1.3.30","author":"georget777","date":"2026-08-18 22:05:10","revision":3653579},"1.3.37":{"tag":"1.3.37","author":"georget777","date":"2026-08-30 16:15:22","revision":3672824},"1.3.38":{"tag":"1.3.38","author":"georget777","date":"2026-08-30 20:35:28","revision":3673105},"1.3.44":{"tag":"1.3.44","author":"georget777","date":"2026-09-10 16:33:53","revision":3690203},"1.3.45":{"tag":"1.3.45","author":"georget777","date":"2026-09-10 16:34:08","revision":3690205},"1.3.46":{"tag":"1.3.46","author":"georget777","date":"2026-09-19 11:29:11","revision":3703243},"1.3.47":{"tag":"1.3.47","author":"georget777","date":"2026-09-20 00:04:43","revision":3703741},"1.3.48":{"tag":"1.3.48","author":"georget777","date":"2026-09-23 11:12:53","revision":3709161},"1.3.49":{"tag":"1.3.49","author":"georget777","date":"2026-09-24 22:17:42","revision":3712112},"1.3.50":{"tag":"1.3.50","author":"georget777","date":"2026-10-13 09:29:58","revision":3743381},"1.3.51":{"tag":"1.3.51","author":"georget777","date":"2026-10-23 11:29:47","revision":3761522}},"upgrade_notice":{"1.3.51":"<p>Converting a page now needs a user who may save unfiltered HTML: an administrator or an editor on a standard site. Other users are told so, and no conversion is used.<\/p>","1.3.50":"<p>An AI tool connected to your site, for example Claude through Elementor&#039;s MCP, can now run the conversion as a WordPress ability (WordPress 6.9 or later). The Convert button works as before.<\/p>","1.3.49":"<p>Backslashes in CSS and titles are now kept when a page is converted, including in your own Site Settings when the page&#039;s colours and fonts are added to them.<\/p>","1.3.48":"<p>Images whose web address has no file extension, such as Unsplash&#039;s, are now copied into your Media Library when they arrive as Image widgets or backgrounds.<\/p>","1.3.47":"<p>Less CSS in converted headings&#039; Title fields: where the page looks exactly the same, their styling moves into the page&#039;s stylesheet.<\/p>","1.3.46":"<p>Adds a &quot;Go Premium&quot; link to the plugin&#039;s own menu for sites without an active licence (clicking it opens aitoelementor.com in a new tab). No other changes.<\/p>","1.3.22":"<p>Detects when Elementor&#039;s Flexbox Container feature is off (the usual cause of a blank converted page) and offers a one-click fix.<\/p>","1.3.21":"<p>Confirmed compatible with WordPress 7.0.<\/p>","1.3.20":"<p>Adds a link to the HTML guidelines in the converter and FAQ to help you get the most accurate conversions.<\/p>","1.3.19":"<p>Adds clear &quot;one page at a time&quot; guidance in the converter UI and FAQ. Convert each page of a site separately \u2014 this is a page converter, not a whole-site importer.<\/p>","1.3.18":"<p>Engine upgrade (server-side, automatic for everyone) + internationalization fixes. Conversion fidelity now noticeably improved across all customer page types \u2014 particularly for AI-generated HTML, sites with custom font weights \/ italic variants, gallery layouts using CSS Grid + aspect-ratio, hero sections with brightness-filtered background images, and pages from the Anthropic Stitch \/ Lovable offline-export format. 18+ user-facing error messages are now translatable. No re-connection required.<\/p>","1.3.17":"<p>WordPress.org compliance pass \u2014 all in-plugin &quot;upgrade&quot; call-to-action UI removed. No functional changes for either public-tier or subscribed users; the external conversion service continues to enforce its own quotas. Settings page now surfaces service plan \/ usage info neutrally without a CTA button.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":3},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3561529,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3561529,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3561529,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3561529,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.3.18","1.3.19","1.3.20","1.3.21","1.3.24","1.3.25","1.3.26","1.3.28","1.3.29","1.3.30","1.3.37","1.3.38","1.3.44","1.3.45","1.3.46","1.3.47","1.3.48","1.3.49","1.3.50","1.3.51"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3561529,"resolution":"1","location":"assets","locale":"","width":1200,"height":795},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3561529,"resolution":"2","location":"assets","locale":"","width":1200,"height":795},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3561529,"resolution":"3","location":"assets","locale":"","width":1200,"height":795},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3561529,"resolution":"4","location":"assets","locale":"","width":1200,"height":795}},"screenshots":{"1":"Main conversion screen \u2014 paste HTML or upload a file","2":"Successful conversion with template link","3":"Converted template in the Elementor editor","4":"Settings page \u2014 service connection and data preferences"}},"plugin_section":[],"plugin_tags":[2353,76538,264750,87,1084],"plugin_category":[59],"plugin_contributors":[177332],"plugin_business_model":[],"class_list":["post-296735","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-elementor","plugin_tags-html-import","plugin_tags-import","plugin_tags-page-builder","plugin_category-utilities-and-tools","plugin_contributors-georget777","plugin_committers-georget777"],"banners":{"banner":"https:\/\/ps.w.org\/aitoel-html-importer\/assets\/banner-772x250.png?rev=3561529","banner_2x":"https:\/\/ps.w.org\/aitoel-html-importer\/assets\/banner-1544x500.png?rev=3561529","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/aitoel-html-importer\/assets\/icon-128x128.png?rev=3561529","icon_2x":"https:\/\/ps.w.org\/aitoel-html-importer\/assets\/icon-256x256.png?rev=3561529","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/aitoel-html-importer\/assets\/screenshot-1.png?rev=3561529","caption":"Main conversion screen \u2014 paste HTML or upload a file"},{"src":"https:\/\/ps.w.org\/aitoel-html-importer\/assets\/screenshot-2.png?rev=3561529","caption":"Successful conversion with template link"},{"src":"https:\/\/ps.w.org\/aitoel-html-importer\/assets\/screenshot-3.png?rev=3561529","caption":"Converted template in the Elementor editor"},{"src":"https:\/\/ps.w.org\/aitoel-html-importer\/assets\/screenshot-4.png?rev=3561529","caption":"Settings page \u2014 service connection and data preferences"}],"raw_content":"<!--section=description-->\n<p><strong>AI to Elementor \u2014 HTML Importer for Elementor<\/strong> converts HTML code into native Elementor templates \u2014 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.<\/p>\n\n<p><em>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 <strong>for<\/strong> Elementor.<\/em><\/p>\n\n<p><strong>Perfect for:<\/strong><\/p>\n\n<ul>\n<li>AI-generated pages from ChatGPT, Lovable, bolt.new, v0, or any code generator<\/li>\n<li>Static HTML websites you want to migrate to WordPress + Elementor<\/li>\n<li>Landing pages built in code that need to become editable templates<\/li>\n<li>Agencies converting client HTML mockups into Elementor sites<\/li>\n<\/ul>\n\n<p><strong>How it works:<\/strong><\/p>\n\n<ol>\n<li>Paste the HTML for <strong>one page<\/strong>, or upload that page as an .html\/.zip file<\/li>\n<li>Click \"Convert to Elementor\"<\/li>\n<li>Open your new template in the Elementor editor<\/li>\n<li>Repeat for each additional page<\/li>\n<\/ol>\n\n<p><strong>Important \u2014 convert one page at a time:<\/strong> This is a page converter, not a\nwhole-site importer. Each conversion turns a single HTML page into one editable\nElementor template. To migrate a multi-page site, convert each page separately\n(e.g. index.html, about.html, contact.html \u2014 one at a time). A .zip may contain\none page's HTML plus its images and CSS, but it should not contain an entire\nwebsite.<\/p>\n\n<p><strong>For the best results,<\/strong> follow our HTML guidelines \u2014 cleaner, well-structured\nHTML converts far more accurately (especially for AI-generated pages):\n<a href=\"https:\/\/aitoelementor.com\/ai-guidelines\/\">https:\/\/aitoelementor.com\/ai-guidelines\/<\/a><\/p>\n\n<p><strong>Features:<\/strong><\/p>\n\n<ul>\n<li>Converts HTML to native Elementor widgets (not HTML widgets)<\/li>\n<li>Preserves fonts, colors, spacing, and layout<\/li>\n<li>Supports containers, sections, headings, text, images, buttons, videos, icons, and more<\/li>\n<li>ZIP upload with automatic image import to Media Library<\/li>\n<li>Google Fonts detection and registration<\/li>\n<li><strong>Works with Elementor 4<\/strong> \u2014 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)<\/li>\n<\/ul>\n\n<p><strong>What it costs (straight answer):<\/strong><\/p>\n\n<p>The plugin is free and every feature is unlocked \u2014 nothing is disabled in the\ncode. The conversion itself runs on an external service (see below), and that\nservice is metered:<\/p>\n\n<ul>\n<li><strong>Free tier: one (1) free conversion per website<\/strong>, no sign-up and no key\nrequired. Use it to try the plugin on a real page and see the quality before\nyou decide anything.<\/li>\n<li><strong>Paid tiers (optional):<\/strong> if you need to convert more pages, the service\noperator offers subscription plans with higher monthly conversion quotas at\n<a href=\"https:\/\/aitoelementor.com\">aitoelementor.com<\/a>. You enter the key in Settings.<\/li>\n<\/ul>\n\n<p>This is a service quota, not a crippled plugin \u2014 the plugin code is identical on\nthe free and paid tiers. When you reach the free limit the plugin keeps working\nand simply tells you the quota is reached; nothing breaks or disappears.<\/p>\n\n<h3>External Service: AI to Elementor Conversion API<\/h3>\n\n<p>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 \u2014 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).<\/p>\n\n<p><strong>What the plugin sends to the service:<\/strong><\/p>\n\n<ul>\n<li>Your HTML content (the page you want to convert)<\/li>\n<li>The template title you choose<\/li>\n<li>Your site's domain (used by the service to associate usage with your account)<\/li>\n<li>Your subscription key, if you have entered one in Settings (optional \u2014 without a key the service allows one free conversion per site)<\/li>\n<\/ul>\n\n<p><strong>What the service keeps:<\/strong><\/p>\n\n<ul>\n<li>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 \u2014 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 &gt; Data &amp; Privacy or request deletion at privacy@aitoelementor.com. Full terms: Section 9.4 of the Terms of Service linked below.<\/li>\n<\/ul>\n\n<p><strong>What the service returns:<\/strong><\/p>\n\n<ul>\n<li>Elementor-compatible JSON template data, which the plugin saves as an Elementor template on your site<\/li>\n<li>A list of Google Fonts detected in your HTML, which the plugin registers via Elementor<\/li>\n<\/ul>\n\n<p><strong>Service operator and policies:<\/strong><\/p>\n\n<ul>\n<li>Service URL: <a href=\"https:\/\/api.aitoelementor.com\">https:\/\/api.aitoelementor.com<\/a><\/li>\n<li>Operator website: <a href=\"https:\/\/aitoelementor.com\">https:\/\/aitoelementor.com<\/a><\/li>\n<li>Terms of Service: <a href=\"https:\/\/aitoelementor.com\/terms-and-conditions\/\">https:\/\/aitoelementor.com\/terms-and-conditions\/<\/a><\/li>\n<li>Privacy Policy: <a href=\"https:\/\/aitoelementor.com\/privacy-policy\">https:\/\/aitoelementor.com\/privacy-policy<\/a><\/li>\n<\/ul>\n\n<p>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.<\/p>\n\n<p>The service URL can be changed in <strong>Settings \u2192 AI to Elementor<\/strong> if you operate your own compatible conversion endpoint.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code> (or install directly from the WordPress Plugins screen \u2192 Add New)<\/li>\n<li>Activate the plugin through the \"Plugins\" menu in WordPress<\/li>\n<li>Ensure Elementor is installed and activated<\/li>\n<li>Go to \"AI to Elementor\" &gt; \"Convert\" in the admin menu<\/li>\n<li>Paste HTML or upload a file and click \"Convert to Elementor\"<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20elementor%20pro%3F\"><h3>Do I need Elementor Pro?<\/h3><\/dt>\n<dd><p>No. The plugin works with the free version of Elementor.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20elementor%204%20%28the%20atomic%20editor%29%3F\"><h3>Does it work with Elementor 4 (the Atomic editor)?<\/h3><\/dt>\n<dd><p>Yes. Converted pages import as classic elements, which Elementor 4 officially supports\nalongside Atomic \u2014 you edit them exactly as before, and classic elements have no\ndeprecation date. Verified on Elementor 4.2. If your site ships a widget your template\nuses as \"legacy\" (off by default), the plugin tells you exactly which one and how to\nenable it after the import.<\/p><\/dd>\n<dt id=\"what%20html%20can%20i%20convert%3F\"><h3>What HTML can I convert?<\/h3><\/dt>\n<dd><p>Any valid HTML page \u2014 from AI code generators, static websites, landing page builders, or hand-coded HTML. The converter handles modern CSS layouts including flexbox and grid.<\/p><\/dd>\n<dt id=\"how%20do%20i%20get%20the%20best%20conversion%20quality%3F\"><h3>How do I get the best conversion quality?<\/h3><\/dt>\n<dd><p>Cleaner, well-structured HTML converts more accurately \u2014 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\/ \u2014 worth a look before converting AI-generated pages.<\/p><\/dd>\n<dt id=\"can%20i%20import%20a%20whole%20website%20at%20once%3F\"><h3>Can I import a whole website at once?<\/h3><\/dt>\n<dd><p>No \u2014 and this is important. The plugin converts <strong>one page per conversion<\/strong>, 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 \u2014 not a full-site export. Trying to convert a whole site in one go will not work as expected.<\/p><\/dd>\n<dt id=\"my%20converted%20page%20is%20blank%20%2F%20empty%20on%20the%20front%20end%20%E2%80%94%20why%3F\"><h3>My converted page is blank \/ empty on the front end \u2014 why?<\/h3><\/dt>\n<dd><p>The most common cause is that Elementor's <strong>Flexbox Container<\/strong> 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 <strong>Enable Flexbox Containers<\/strong> button (for administrators). You can also enable it manually at <strong>Elementor \u2192 Settings \u2192 Features \u2192 Flexbox Container<\/strong> (set it to Active and save). After enabling, reload the page \u2014 it will render.<\/p><\/dd>\n<dt id=\"my%20icons%20came%20in%20as%20markup%20instead%20of%20editable%20images%20%E2%80%94%20why%3F\"><h3>My icons came in as markup instead of editable images \u2014 why?<\/h3><\/dt>\n<dd><p>Icons drawn as inline SVG can be imported two ways. By default they are kept as markup: they render\nexactly as designed, but they are not editable through Elementor image controls, and the import\nnotice tells you how many were kept that way.<\/p>\n\n<p>The alternative is to save each icon into your Media Library as a real file, which makes it an\nordinary Elementor Image widget. That is off by default on purpose \u2014 writing SVG into a Media\nLibrary is a security decision that belongs to the site owner, not to a plugin. Every icon is\nre-sanitised through a geometry allowlist and Elementor's own SVG sanitizer before anything is\nwritten, and the permission is scoped to the import itself rather than switching on SVG uploads\nsite-wide.<\/p>\n\n<p>To enable it, add this to a small plugin or your theme functions.php:<\/p>\n\n<pre><code>add_filter( 'htel_import_svg_icons', '__return_true' );\n<\/code><\/pre>\n\n<p>Convert the page again afterwards \u2014 the setting applies at import time, so pages already imported\nkeep the markup they arrived with.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20images%20in%20my%20html%3F\"><h3>What happens to images in my HTML?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"how%20many%20conversions%20do%20i%20get%20for%20free%3F\"><h3>How many conversions do I get for free?<\/h3><\/dt>\n<dd><p>The conversion service includes one (1) free conversion per website \u2014 no sign-up or key required \u2014 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 \u2014 the quota is on the external conversion service, and the plugin works the same on both tiers.<\/p><\/dd>\n<dt id=\"where%20does%20my%20html%20go%3F\"><h3>Where does my HTML go?<\/h3><\/dt>\n<dd><p>To the conversion service at <code>api.aitoelementor.com<\/code>. See the \"External Service\" section above for full details, including the operator's Terms of Service and Privacy Policy links.<\/p><\/dd>\n<dt id=\"where%20are%20my%20converted%20templates%3F\"><h3>Where are my converted templates?<\/h3><\/dt>\n<dd><p>Templates are saved to the Elementor Template Library. Go to \"Templates\" &gt; \"Saved Templates\" in your WordPress admin, or use the direct link provided after conversion.<\/p><\/dd>\n<dt id=\"which%20ai%20page%20generators%20does%20it%20work%20with%3F\"><h3>Which AI page generators does it work with?<\/h3><\/dt>\n<dd><p>It works with the HTML output of any code generator \u2014 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.<\/p><\/dd>\n<dt id=\"what%20happens%20after%20i%20use%20my%201%20free%20conversion%3F\"><h3>What happens after I use my 1 free conversion?<\/h3><\/dt>\n<dd><p>The plugin keeps working \u2014 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.<\/p><\/dd>\n<dt id=\"is%20my%20html%20kept%20or%20shared%3F\"><h3>Is my HTML kept or shared?<\/h3><\/dt>\n<dd><p>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 \u2014 never with your subscription key or email \u2014 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.<\/p>\n\n<p>You can switch it off: untick sampling in the plugin's Settings &gt; Data &amp; 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.<\/p>\n\n<p>The plugin does not send anything in the background \u2014 it only contacts the service when you click Convert, enter a key, or save Settings.<\/p><\/dd>\n<dt id=\"the%20conversion%20failed%20or%20my%20page%20looks%20off%20%E2%80%94%20what%20do%20i%20do%3F\"><h3>The conversion failed or my page looks off \u2014 what do I do?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3.51<\/h4>\n\n<ul>\n<li>Changed: converting a page now needs a user who may save unfiltered HTML, the right WordPress asks\nfor before it stores scripts and styles: an administrator or an editor on a standard site, the\nnetwork administrator on a multisite network. A converted template carries its page's stylesheet\nand scripts, so the Convert button now asks for the same right the AI tool added in 1.3.50 asks for.<\/li>\n<li>A user without that right is told so before anything is read or sent, and no conversion is used.<\/li>\n<li>If your authors or contributors convert pages, an administrator or an editor now needs to do it.<\/li>\n<li>On a site that sets <code>DISALLOW_UNFILTERED_HTML<\/code>, WordPress gives that right to nobody, so pages\ncannot be converted there.<\/li>\n<\/ul>\n\n<h4>1.3.50<\/h4>\n\n<ul>\n<li>New: an AI tool connected to your site can run the conversion. On WordPress 6.9 or later the\nplugin registers a WordPress ability, <code>aitoel\/convert-html<\/code>. An AI client connected to the site,\nfor example Claude through Elementor's MCP server (Elementor 4.3 or later, with its MCP switched\non), passes it a page's HTML and gets back a saved Elementor template: the template the Convert\nbutton creates.<\/li>\n<li>It uses the same conversion service and the same plan and allowance as the Convert button.<\/li>\n<li>It converts for a user who can edit posts and may save unfiltered HTML: an administrator or an\neditor on a standard site. Any other user is told so, and no conversion is used.<\/li>\n<li>To switch it off, add <code>add_filter( 'aitoel_abilities_enabled', '__return_false' );<\/code> to your site.<\/li>\n<li>The Convert button works as before.<\/li>\n<\/ul>\n\n<h4>1.3.49<\/h4>\n\n<ul>\n<li>Fixed: backslashes were removed from what the plugin saved. A backslash in CSS - an escaped\nclass name like <code>.md\\:flex<\/code>, or a quote mark written <code>content:\"\\201C\"<\/code> - was lost from a\nconverted page's settings, which broke that CSS. With \"Add the page's colours and fonts to my\nElementor Site Settings\" turned on, a conversion also removed the backslashes from your own Site\nSettings, their Custom CSS for example. A template title lost its backslash too. These values\nare now saved exactly as they are.<\/li>\n<li>Applies to pages you convert from now on. A backslash already removed from your Site Settings\nis not put back: if your Site Settings Custom CSS uses backslashes, check it.<\/li>\n<\/ul>\n\n<h4>1.3.48<\/h4>\n\n<ul>\n<li>Fixed: an image whose web address has no file extension (Unsplash's, for example) stayed linked\nto the site it came from after import. When such an image arrives as an Image widget or a\nbackground, it is now copied into your Media Library like any other image, and your page's own\nstyles are pointed at the copy too. A file that turns out not to be an image is left where it was.<\/li>\n<li>Applies to pages you convert from now on. Templates you have already imported are not changed.<\/li>\n<\/ul>\n\n<h4>1.3.47<\/h4>\n\n<ul>\n<li>Improved: less CSS in a converted heading's Title field. When a word inside a heading was styled\n(a coloured accent word, say), opening the Heading showed that styling as code, like\n  . The plugin now moves it into the page's own stylesheet and\nleaves a class name in its place - but only where it can tell the page looks exactly the same:\nit asks your WordPress's own filter about each piece of styling, and whatever it cannot move\nsafely stays in the Title as before. A page that carries its own scripts is imported exactly as\nbefore. The page itself looks exactly as it did.<\/li>\n<li>Applies to pages you convert from now on, by a user WordPress lets save unfiltered HTML\n(administrators and editors on a standard site; network administrators on a multisite).\nTemplates you have already imported are not changed.<\/li>\n<li>Worth knowing: a heading copied to another page keeps its class but not this page's\nstylesheet, so its moved styling stays behind - as many of the page's other converted elements\nalready do.<\/li>\n<\/ul>\n\n<h4>1.3.46<\/h4>\n\n<ul>\n<li>New: a \"Go Premium\" link in the AI to Elementor menu, under Settings, for sites without an\nactive licence. Clicking it opens the plans on aitoelementor.com in a new tab. Nothing else\nchanges: conversions work exactly as before, and the link is not shown once a licence is active.<\/li>\n<\/ul>\n\n<h4>1.3.45<\/h4>\n\n<ul>\n<li>Fixed: after clicking Convert, the page now takes you to the result. It was always being\nshown - the template link, the conversion limit notice, the \"your CSS file is missing\"\nwarning - but 1.3.43 added a panel between the button and the result area, which left every\noutcome around 600 pixels below the button with nothing scrolling you there. Clicking Convert\nlooked like it did nothing, whether the conversion had succeeded or been refused.<\/li>\n<li>The progress bar is scrolled into view as soon as the conversion starts, so you watch it run\ninstead of watching a button you cannot tell apart from a dead one.<\/li>\n<\/ul>\n\n<h4>1.3.44<\/h4>\n\n<ul>\n<li>Improved: when icons on your page are kept as markup instead of becoming editable images, the\nimport now says so and how many. This already happened \u2014 some pages arrived with a dozen icons\nas raw HTML \u2014 but nothing explained why, so the only available conclusion was that the\nconversion had gone badly. It had not: keeping them as markup is deliberate, because saving SVG\nfiles into a Media Library is a security decision that belongs to you rather than to a plugin.<\/li>\n<li>The notice tells the two cases apart: the setting being switched off, which you can change, and\na write that failed even though it is switched on. The FAQ explains how to enable native icon\nimport if you want it; icons are re-sanitised before anything is saved either way.<\/li>\n<\/ul>\n\n<h4>1.3.43<\/h4>\n\n<ul>\n<li>The import screen now points to the free design skill: one text file you hand to Claude, which\nwrites the page for a real business before you convert it. Nothing installs on your site, and\nthere is no account or email to give.<\/li>\n<li>Privacy, stated plainly: the conversion service keeps a copy of the HTML you submit for up to\n90 days to find and fix conversion bugs, stored with your site domain and a timestamp only,\nnever with your subscription key or email, then deleted automatically. It is not shared with\nthird parties and is not used to train any model offered to others. You can switch it off in\nSettings &gt; Data &amp; Privacy, or ask for anything already collected to be deleted by emailing\nprivacy@aitoelementor.com. This applies on the free tier as well as paid plans, and the paid\nbuild of 1.3.42 did not carry this disclosure.<\/li>\n<\/ul>\n\n<h4>1.3.42<\/h4>\n\n<ul>\n<li>ZIP uploads: an image referenced by a stylesheet from its own folder \u2014 for example a\nstylesheet in css\/ using ..\/images\/photo.jpg, which is how most site builders lay a site out \u2014\nis now found in your archive and imported. Previously that reference was left pointing at a\nfile that was never uploaded, so the image did not appear and nothing said why. Backgrounds\nin the same stylesheet were the usual casualty.<\/li>\n<li>The same fix covers a stylesheet referring to a file sitting beside it, such as url(bg.png).<\/li>\n<\/ul>\n\n<h4>1.3.41<\/h4>\n\n<ul>\n<li>ZIP uploads: a stylesheet, image or background referenced with a cache-busting query string\n(for example style.css?v=2) is now found inside your archive and imported. Previously the\nreference was left pointing at a file that was never uploaded, and the page arrived unstyled\nwith nothing reported.<\/li>\n<li>ZIP uploads: a reference that selects part of a file \u2014 for example an icon out of an SVG\nsprite, sprite.svg#gear \u2014 keeps that selection when the file is imported. Only the cache-busting\npart of the reference is dropped.<\/li>\n<\/ul>\n\n<h4>1.3.40<\/h4>\n\n<ul>\n<li>Global Typography: with \u201cAdd the page's colours and fonts to my Elementor Site Settings\u201d\nenabled, headings and body text now arrive as full Global Font presets (size, weight, line\nheight, responsive values) that your widgets reference \u2014 edit \u201cHeading 2\u201d once in Site\nSettings and every matching heading follows. Pages whose headings vary keep their individual\nstyling untouched. If your Site Settings already hold a different style for a heading level,\nnew pages keep their own styling for that level instead of adopting it, and the import notice\nsays so.<\/li>\n<\/ul>\n\n<h4>Earlier versions<\/h4>\n\n<ul>\n<li>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.<\/li>\n<\/ul>","raw_excerpt":"Convert any HTML page into a fully editable Elementor template with one click. Built for AI-generated pages and hand-written HTML alike.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/nn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/296735","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/nn.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/nn.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=296735"}],"author":[{"embeddable":true,"href":"https:\/\/nn.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/georget777"}],"wp:attachment":[{"href":"https:\/\/nn.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=296735"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/nn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=296735"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/nn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=296735"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/nn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=296735"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/nn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=296735"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/nn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=296735"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}