{"id":118304,"date":"2026-09-03T21:09:33","date_gmt":"2026-09-03T18:09:33","guid":{"rendered":"https:\/\/themeisle.com\/blog\/?p=118304&#038;preview=true&#038;preview_id=118304"},"modified":"2026-09-03T21:09:33","modified_gmt":"2026-09-03T18:09:33","slug":"wordpress-popup-without-plugin","status":"publish","type":"post","link":"https:\/\/themeisle.com\/blog\/wordpress-popup-without-plugin\/","title":{"rendered":"How to Create a WordPress Popup Without a Popup Plugin (Free Method)"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">You want to announce a sale, grow an email list, or give leaving visitors one last reason to stick around. A popup is the obvious tool for the job. Installing an entire popup plugin for one little overlay, though, can feel like hiring a moving company to carry a single suitcase.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If the site already runs on the WordPress block editor (also called Gutenberg), there&rsquo;s a lighter path. The free <a href=\"https:\/\/wordpress.org\/plugins\/otter-blocks\/\" target=\"_blank\" rel=\"noreferrer noopener\">Otter Blocks<\/a> plugin includes a Popup block that lives right inside the editor, so the popup becomes just another block on the page instead of a whole new system to learn, update, and troubleshoot.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Quick disclosure: Otter Blocks is built by Themeisle, the same team behind this blog. The main walkthrough below uses only the free version, and every Pro-only option gets marked as such.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This guide covers installing Otter, building a timed popup step by step, the scroll and exit-intent triggers, frequency caps, mobile behavior, and the UX rules that separate helpful popups from hated ones. It also includes an honest limits section, because sometimes a dedicated popup tool genuinely is the better call.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let&rsquo;s build it. &#128071;<\/p>\n\n\n    \r\n    <style>\r\n        :root {\r\n        --jtoc-progress-bar-color: #4267cf;\n        }\r\n                    .wpj-jtoc.--jtoc-theme-none.--jtoc-has-custom-styles {\r\n        --jtoc-width: 100%;\n--jtoc-toc-padding: 24px;\n--jtoc-toc-border: 1px solid;\n--jtoc-toc-border-color: #dedede;\n--jtoc-background-color: #f6f7f9;\n--jtoc-header-height: 20px;\n--jtoc-header-margin: 0;\n--jtoc-header-padding: 0;\n--jtoc-title-color: #393939;\n--jtoc-title-font-size: 1.2em;\n--jtoc-title-label-font-weight: 400;\n--jtoc-body-margin: 16px 0 0 0;\n--jtoc-body-padding: 0;\n--jtoc-headings-margin: 10px 0 0 0;\n--jtoc-link-font-size: 1em;\n--jtoc-link-font-weight: 400;\n--jtoc-link-color: #848484;\n--jtoc-link-color-hover: #4a66c8;\n--jtoc-link-color-active: #4a66c8;\n        }\r\n        .--jtoc-the-content{\r\ndisplay:none;\r\n}\r\n.--jtoc-is-active>.wpj-jtoc--item-content>a:before{\r\nmargin-left:3px;\r\n}\r\n.wpj-jtoc--nav>.wpj-jtoc--items li a::before{\r\ncontent:'\\203A';\r\ndisplay:block;\r\nfloat:left;\r\nheight:100%;\r\nfont-weight:700;\r\ncolor:#4267CF;\r\nline-height: 20px;\r\nmargin-right: 3px;\r\n}\r\n.sidebar .wpj-jtoc--toc{\r\nborder:0;\r\npadding:0;\r\n}\r\n.sidebar .wpj-jtoc--header,\r\n.sidebar .wpj-jtoc--body{\r\nbackground:transparent;\r\n}\r\n\r\n.sidebar .--jtoc-is-active>.wpj-jtoc--item-content>a{\r\ntext-decoration:none;\r\n}\r\n.sidebar-left .widget-first{\r\nposition:sticky;\r\ntop:70px;\r\nmargin-bottom:1250px;\r\n}\r\n.sidebar-left{\r\ndisplay:none;\r\nmax-width:300px;\r\nposition:absolute;\r\nleft:-330px;\r\ntop:0;\r\nheight:100%;\r\n}\r\n@media only screen and (max-width: 1900px) {\r\n.single-post .sidebar-left{\r\ndisplay:none !important;\r\n}\r\n.--jtoc-the-content{\r\ndisplay:block;\r\n}\r\n@media only screen and (max-width: 400px) {\r\n.wpj-jtoc--item .wpj-jtoc--item-content{\r\nmargin-top:5px;\r\n}\r\n.wpj-jtoc--header-main .wpj-jtoc--title{\r\nfont-size:1.1em;\r\n}\r\n}    <\/style>\r\n\r\n\r\n    <!-- jtoc progress bar widget -->\r\n    <div class=\"wpj-jtoc--widget-progress --progress-top\">\r\n        <div class=\"wpj-jtoc--widget-progress-bar\"><\/div>\r\n    <\/div>\r\n\r\n<div id=\"wpj-jtoc\" class=\"wpj-jtoc wpj-jtoc--main --jtoc-the-content --jtoc-theme-none --jtoc-title-align-left --jtoc-toggle-icon --jtoc-toggle-position-right --jtoc-toggle-1 --jtoc-header-as-toggle --jtoc-headings-full-row-clickable --jtoc-floating-toc-top --jtoc-floating-has-shadow --jtoc-has-custom-styles --jtoc-is-unfolded\" >\r\n            \r\n    <!-- TOC -->\r\n    <div class=\"wpj-jtoc--toc \">\r\n                            <div class=\"wpj-jtoc--header\">\r\n                <div class=\"wpj-jtoc--header-main\">\r\n                                        <div class=\"wpj-jtoc--title\">\r\n                        <!-- <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-columns-3\"><rect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\"\/><path d=\"M9 3v18\"\/><path d=\"M15 3v18\"\/><\/svg> -->\r\n                        <span class=\"wpj-jtoc--title-label\">Table of contents<\/span>\r\n                    <\/div>\r\n                                                        <\/div>\r\n            <\/div>\r\n                                <div class=\"wpj-jtoc--body\">\r\n                        <nav class=\"wpj-jtoc--nav\">\r\n                <ol class=\"wpj-jtoc--items\"><li class=\"wpj-jtoc--item --jtoc-h2\">\r\n        <div class=\"wpj-jtoc--item-content\" data-depth=\"2\">\r\n                        <a href=\"#step-1-install-otter-blocks\" title=\"Step 1: Install the free Otter Blocks plugin\" data-numeration=\"1\" >Step 1: Install the free Otter Blocks plugin<\/a>\r\n                    <\/div> <\/li><li class=\"wpj-jtoc--item --jtoc-h2\">\r\n        <div class=\"wpj-jtoc--item-content\" data-depth=\"2\">\r\n                        <a href=\"#step-2-add-popup-block\" title=\"Step 2: Add the Popup block and pick a layout\" data-numeration=\"2\" >Step 2: Add the Popup block and pick a layout<\/a>\r\n                    <\/div> <\/li><li class=\"wpj-jtoc--item --jtoc-h2\">\r\n        <div class=\"wpj-jtoc--item-content\" data-depth=\"2\">\r\n                        <a href=\"#step-3-design-popup-content\" title=\"Step 3: Design the popup content\" data-numeration=\"3\" >Step 3: Design the popup content<\/a>\r\n                    <\/div> <\/li><li class=\"wpj-jtoc--item --jtoc-h2\">\r\n        <div class=\"wpj-jtoc--item-content\" data-depth=\"2\">\r\n                        <a href=\"#step-4-choose-trigger\" title=\"Step 4: Choose the trigger\" data-numeration=\"4\" >Step 4: Choose the trigger<\/a>\r\n                    <\/div> <\/li><li class=\"wpj-jtoc--item --jtoc-h2\">\r\n        <div class=\"wpj-jtoc--item-content\" data-depth=\"2\">\r\n                        <a href=\"#step-5-frequency-position-close\" title=\"Step 5: Set frequency, position, and close rules\" data-numeration=\"5\" >Step 5: Set frequency, position, and close rules<\/a>\r\n                    <\/div> <\/li><li class=\"wpj-jtoc--item --jtoc-h2\">\r\n        <div class=\"wpj-jtoc--item-content\" data-depth=\"2\">\r\n                        <a href=\"#mobile-behavior\" title=\"Mobile behavior: the polite default is off \ud83d\udcf1\" data-numeration=\"6\" >Mobile behavior: the polite default is off \ud83d\udcf1<\/a>\r\n                    <\/div> <\/li><li class=\"wpj-jtoc--item --jtoc-h2\">\r\n        <div class=\"wpj-jtoc--item-content\" data-depth=\"2\">\r\n                        <a href=\"#popup-ux-rules\" title=\"Polite vs pushy: the UX rules\" data-numeration=\"7\" >Polite vs pushy: the UX rules<\/a>\r\n                    <\/div> <\/li><li class=\"wpj-jtoc--item --jtoc-h2\">\r\n        <div class=\"wpj-jtoc--item-content\" data-depth=\"2\">\r\n                        <a href=\"#honest-limits\" title=\"Honest limits: when a dedicated popup plugin wins\" data-numeration=\"8\" >Honest limits: when a dedicated popup plugin wins<\/a>\r\n                    <\/div> <\/li><li class=\"wpj-jtoc--item --jtoc-h2\">\r\n        <div class=\"wpj-jtoc--item-content\" data-depth=\"2\">\r\n                        <a href=\"#wrapping-up\" title=\"Wrapping up \ud83c\udfc1\" data-numeration=\"9\" >Wrapping up \ud83c\udfc1<\/a>\r\n                    <\/div> <\/li><\/ol>            <\/nav>\r\n                                                        <\/div>\r\n            <\/div>\r\n<\/div>\r\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">&#9878;&#65039; DISCLAIMER: Otter Blocks is a member of the Themeisle family of products. This tutorial uses the free version from WordPress.org, and Pro features are labeled (Pro) wherever they appear.<\/p>\n<\/blockquote>\n\n\n\n<h2 id=\"step-1-install-otter-blocks\" class=\"wp-block-heading joli-heading jtoc-heading\">Step 1: Install the free Otter Blocks plugin<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Otter Blocks adds more than 20 blocks to the editor, and the Popup block is one of the free ones. The plugin runs on over 300,000 sites and holds a 4.7 out of 5 rating on WordPress.org, so this is well-trodden ground.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>In the WordPress dashboard, go to <strong>Plugins &rarr; Add New<\/strong>.<\/li>\n\n\n\n<li>Search for <strong>Otter Blocks<\/strong>.<\/li>\n\n\n\n<li>Click <strong>Install Now<\/strong>, then <strong>Activate<\/strong>.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">That&rsquo;s the whole install. A new Otter section appears in the block inserter, and the Popup block comes with it.<\/p>\n\n\n\n<h2 id=\"step-2-add-popup-block\" class=\"wp-block-heading joli-heading jtoc-heading\">Step 2: Add the Popup block and pick a layout<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Open the post or page where the popup should appear. (On a block theme, the Site Editor can also hold the block, which is handy for popups that should follow a template.) Click the <strong>+<\/strong> inserter, search for <strong>Popup<\/strong>, and add the block.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Otter then asks which layout to start with. There are three options:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Start from scratch:<\/strong> an empty popup canvas for full control.<\/li>\n\n\n\n<li><strong>Text and Image:<\/strong> a prebuilt layout with a placeholder headline, copy, and image. Good for promoting a download or a course.<\/li>\n\n\n\n<li><strong>Popup with Form:<\/strong> a signup layout with a form that automatically matches the theme&rsquo;s colors and fonts. Ideal for newsletter popups. &#128236;<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">For this walkthrough, pick <strong>Popup with Form<\/strong>. Everything that follows works the same way for the other two.<\/p>\n\n\n\n<h2 id=\"step-3-design-popup-content\" class=\"wp-block-heading joli-heading jtoc-heading\">Step 3: Design the popup content<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Click <strong>Edit Popup<\/strong> on the block and the popup opens as its own little canvas. Anything that works in the block editor works inside it: headings, paragraphs, buttons, images, icons, even a countdown block for a flash sale.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For a newsletter popup, edit the headline to state the actual benefit (&ldquo;Get one practical WordPress tip each week&rdquo;), trim the body copy to a sentence or two, and make the button say what happens next. <strong>Subscribe<\/strong> beats <strong>Submit<\/strong> every time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Then select the Popup block itself (not anything inside it) and open the <strong>Style<\/strong> tab in the sidebar. This is where the popup gets its dimensions, with width set separately for desktop, tablet, and mobile, plus height and padding. Colors for the background, overlay, border, and close button live here too, along with overlay opacity, border radius and shadow, and the close button&rsquo;s position inside or outside the popup. &#127912;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">One quirk worth knowing: entrance animations apply to the blocks inside the popup rather than the popup itself, so add motion to the inner content if the design needs some flair.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">&#128161; PRO TIP: One popup, one message, one button. If the popup content needs its own scrollbar, the copy is too long. Cut it in half and conversions usually go up, not down.<\/p>\n<\/blockquote>\n\n\n\n<h2 id=\"step-4-choose-trigger\" class=\"wp-block-heading joli-heading jtoc-heading\">Step 4: Choose the trigger<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is the setting that decides whether visitors find the popup charming or infuriating. Select the Popup block, open the <strong>Settings<\/strong> tab, and find <strong>Open Trigger<\/strong>. There are four options:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Trigger<\/th><th>Tier<\/th><th>How it fires<\/th><th>Best use<\/th><\/tr><\/thead><tbody><tr><td>On Load<\/td><td>Free<\/td><td>When the page loads, with an optional Trigger Delay in seconds<\/td><td>Site announcements, timed offers<\/td><\/tr><tr><td>On Scroll<\/td><td>Pro<\/td><td>After the visitor scrolls a chosen percentage of the page<\/td><td>Catching engaged readers<\/td><\/tr><tr><td>On Exit<\/td><td>Pro<\/td><td>When the visitor moves to leave the page (exit intent)<\/td><td>Last-chance discounts, cart reminders<\/td><\/tr><tr><td>On Anchor Click<\/td><td>Pro<\/td><td>When the visitor clicks a link or button with a matching anchor<\/td><td>Click-to-open content like downloads or size charts<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">For a classic timed popup, choose <strong>On Load<\/strong> and set a <strong>Trigger Delay of 10 to 15 seconds<\/strong>. That gives visitors a moment to actually see the page before anything covers it. Zero-delay on-load popups are the web&rsquo;s equivalent of a store greeter who blocks the door.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The anchor trigger deserves a special mention because it&rsquo;s the most polite option of all: the popup only opens when the visitor asks for it. Set the anchor under <strong>Frequency &amp; Close Settings<\/strong> (for example, <strong>download<\/strong>), then point any button&rsquo;s link at <strong>#download<\/strong>. Clicking the button opens the popup.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The scroll, exit, and anchor triggers come with <a href=\"https:\/\/themeisle.com\/plugins\/otter-blocks\/pricing\/\">Otter Pro<\/a>, which starts at $69 per year for a single site at introductory pricing (renewals run at the full list price). The free On Load trigger with a sensible delay covers most simple needs, so upgrade only when the fancier triggers would actually earn their keep.<\/p>\n\n\n<div class=\"wp-block-image blog-img-std-space\">\n<figure class=\"aligncenter size-full\"><img data-opt-id=1531966259  fetchpriority=\"high\" decoding=\"async\" width=\"1910\" height=\"961\" src=\"https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:auto\/h:auto\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2026\/08\/otter-popup-open-trigger-settings-1.png\" alt=\"The Otter Popup block Open Trigger setting in the Settings tab, with the On Load trigger selected and its delay field (labeled Wait Time in this version)\" class=\"wp-image-118814\" srcset=\"https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:1910\/h:961\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2026\/08\/otter-popup-open-trigger-settings-1.png 1910w, https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:300\/h:151\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2026\/08\/otter-popup-open-trigger-settings-1.png 300w, https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:1024\/h:515\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2026\/08\/otter-popup-open-trigger-settings-1.png 1024w, https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:768\/h:386\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2026\/08\/otter-popup-open-trigger-settings-1.png 768w, https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:1536\/h:773\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2026\/08\/otter-popup-open-trigger-settings-1.png 1536w, https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:50\/h:25\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2026\/08\/otter-popup-open-trigger-settings-1.png 50w, https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:477\/h:240\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2026\/08\/otter-popup-open-trigger-settings-1.png 477w, https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:789\/h:397\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2026\/08\/otter-popup-open-trigger-settings-1.png 789w, https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:1193\/h:600\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2026\/08\/otter-popup-open-trigger-settings-1.png 1193w, https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:294\/h:148\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2026\/08\/otter-popup-open-trigger-settings-1.png 294w, https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:388\/h:195\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2026\/08\/otter-popup-open-trigger-settings-1.png 388w, https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:268\/h:135\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2026\/08\/otter-popup-open-trigger-settings-1.png 268w, https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:1910\/h:961\/q:mauto\/f:best\/dpr:2\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2026\/08\/otter-popup-open-trigger-settings-1.png 2x\" sizes=\"(max-width: 700px) 100vw, 700px\"><\/figure>\n<\/div>\n\n\n<h2 id=\"step-5-frequency-position-close\" class=\"wp-block-heading joli-heading jtoc-heading\">Step 5: Set frequency, position, and close rules<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Still in the <strong>Settings<\/strong> tab, open <strong>Frequency &amp; Close Settings<\/strong>. The essentials:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Enable the close button<\/strong>, so nobody feels trapped.<\/li>\n\n\n\n<li><strong>Close when clicking outside the popup:<\/strong> turn this on. It&rsquo;s the escape hatch visitors expect. <\/li>\n\n\n\n<li><strong>Dismiss for recurring visitors (Pro):<\/strong> after someone closes the popup, hide it from them for a set number of days. Seven days is a reasonable starting point.<\/li>\n\n\n\n<li><strong>Close on anchor click (Pro):<\/strong> closes the popup when a specific anchor is clicked, useful for a custom dismiss link.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Next, the <strong>Popup Position<\/strong> accordion controls where the popup lands on the screen, with separate adjustments per device. Center screen works for offers; a bottom corner is quieter for announcements.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There&rsquo;s also a <strong>Disable Page Scrolling<\/strong> toggle. When it&rsquo;s on, the page behind the popup stops scrolling until the popup closes. Save that for genuinely must-read messages (think maintenance notices), because it raises the annoyance stakes for everything else.<\/p>\n\n\n<div class=\"wp-block-image blog-img-std-space\">\n<figure class=\"aligncenter size-full\"><img data-opt-id=292947446  fetchpriority=\"high\" decoding=\"async\" width=\"1440\" height=\"832\" src=\"https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:auto\/h:auto\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2026\/08\/otter-popup-frequency-close-settings-1.png\" alt=\"The Otter Popup block Frequency and Close Settings panel, with options for the close button, closing on outside click, and dismissing the popup for returning visitors\" class=\"wp-image-118815\" srcset=\"https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:1440\/h:832\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2026\/08\/otter-popup-frequency-close-settings-1.png 1440w, https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:300\/h:173\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2026\/08\/otter-popup-frequency-close-settings-1.png 300w, https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:1024\/h:592\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2026\/08\/otter-popup-frequency-close-settings-1.png 1024w, https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:768\/h:444\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2026\/08\/otter-popup-frequency-close-settings-1.png 768w, https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:50\/h:29\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2026\/08\/otter-popup-frequency-close-settings-1.png 50w, https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:415\/h:240\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2026\/08\/otter-popup-frequency-close-settings-1.png 415w, https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:687\/h:397\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2026\/08\/otter-popup-frequency-close-settings-1.png 687w, https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:1038\/h:600\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2026\/08\/otter-popup-frequency-close-settings-1.png 1038w, https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:256\/h:148\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2026\/08\/otter-popup-frequency-close-settings-1.png 256w, https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:338\/h:195\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2026\/08\/otter-popup-frequency-close-settings-1.png 338w, https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:234\/h:135\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2026\/08\/otter-popup-frequency-close-settings-1.png 234w, https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:1440\/h:832\/q:mauto\/f:best\/dpr:2\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2026\/08\/otter-popup-frequency-close-settings-1.png 2x\" sizes=\"(max-width: 700px) 100vw, 700px\"><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Hit <strong>Update<\/strong>, then open the page in an incognito window and watch the popup fire. Testing in incognito matters once a dismissal rule is active, since the popup remembers returning visitors.<\/p>\n\n\n\n<h2 id=\"mobile-behavior\" class=\"wp-block-heading joli-heading jtoc-heading\">Mobile behavior: the polite default is off &#128241;<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Every Otter popup comes with a simple choice: show it on mobile devices or not. For timed and exit popups, the default instinct should be not.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On a phone, even a modest popup covers most of the screen, and the close button shrinks into a fingertip-unfriendly target. Exit intent has a technical problem there too: it works by tracking cursor movement, and phones have no cursor to track.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There&rsquo;s an SEO angle as well. Google has said for years that intrusive interstitials (its term for popups that cover the main content) can hurt a page&rsquo;s mobile search performance, with small exceptions for things like cookie notices. A full-screen newsletter popup on a phone is exactly what that policy targets.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The practical setup: disable the mobile display for timed popups, and if mobile visitors genuinely need the offer, use an anchor-click popup behind a normal button instead. A button waits politely until someone taps it.<\/p>\n\n\n\n<h2 id=\"popup-ux-rules\" class=\"wp-block-heading joli-heading jtoc-heading\">Polite vs pushy: the UX rules<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Popups have a bad reputation, and to be fair, popups earned it. The difference between a popup that converts and one that gets the tab closed comes down mostly to timing and restraint:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Polite triggers wait for a signal.<\/strong> Exit intent and scroll depth let the visitor act first. Timed on-load popups sit in the middle. Instant on-load popups sit in the penalty box.<\/li>\n\n\n\n<li><strong>One popup per page.<\/strong> Stacking an exit popup on top of a timed popup is not a strategy; it&rsquo;s an ambush.<\/li>\n\n\n\n<li><strong>Cap the frequency.<\/strong> Someone who closed the popup today shouldn&rsquo;t see it again tomorrow.<\/li>\n\n\n\n<li><strong>Keep it relevant.<\/strong> A popup about the topic of the current page reads as helpful. A generic one reads as an ad.<\/li>\n\n\n\n<li><strong>Make closing easy and obvious.<\/strong> Hunting for a tiny X is nobody&rsquo;s hobby.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Follow those five and the popup stops being the thing visitors tolerate and starts being the thing some of them actually use.<\/p>\n\n\n\n<h2 id=\"honest-limits\" class=\"wp-block-heading joli-heading jtoc-heading\">Honest limits: when a dedicated popup plugin wins<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Otter&rsquo;s Popup block handles creation and display well, but it stops there. There&rsquo;s no built-in analytics dashboard counting views and conversions, and no native A\/B testing to compare two versions of a popup against each other.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That&rsquo;s where dedicated popup tools pull ahead. <a href=\"https:\/\/wordpress.org\/plugins\/popup-maker\/\" target=\"_blank\" rel=\"noreferrer noopener\">Popup Maker<\/a>, for example, adds analytics that track views, clicks, and conversions in its paid tiers, plus deeper targeting like referrer source, geolocation, and scheduling. For sites running serious, always-on campaigns, that measurement layer is the whole game.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The mapping is simple. For a sale announcement, a content upgrade, or a straightforward signup popup, Otter is enough, and it&rsquo;s one less plugin to maintain. For ongoing campaigns where every impression and every variant gets measured, a dedicated popup plugin earns its install. &#9878;&#65039;<\/p>\n\n\n\n<h2 id=\"wrapping-up\" class=\"wp-block-heading joli-heading jtoc-heading\">Wrapping up &#127937;<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The whole build, condensed:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Install the free Otter Blocks plugin.<\/li>\n\n\n\n<li>Add the Popup block and pick a layout (Popup with Form covers most newsletter needs).<\/li>\n\n\n\n<li>Write one clear message with one call to action.<\/li>\n\n\n\n<li>Set the trigger: On Load with a 10 to 15 second delay on free, or the scroll, exit, and anchor triggers on Pro.<\/li>\n\n\n\n<li>Configure frequency and close rules, then make a deliberate decision about mobile.<\/li>\n\n\n\n<li>Test in an incognito window before calling it done.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Newer to the block editor? The <a href=\"https:\/\/themeisle.com\/blog\/wordpress-block-editor\/\">Themeisle block editor tutorial<\/a> covers the basics this guide skimmed past, and the <a href=\"https:\/\/themeisle.com\/blog\/popup-notification\/\">popup notification guide<\/a> covers the benefits and best practices of popups for lead capture.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Have a favorite popup trigger, or a popup pet peeve worth venting about? Drop it in the comments below! &#128172;<\/p>\n\n\n<style>.ticss-d144f107 strong{font-weight: 700;\n    letter-spacing: -0.2px;\n    line-height: 1.2;\n    display: inline-block;}<\/style>\n\n\n<div class=\"wp-block-columns speed-guide has-white-color has-text-color has-background has-link-color wp-elements-2f81f6c5526477b5b4d52d1ca4513949 is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\" style=\"background-color:#4267cf\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:40%\">\n<figure class=\"wp-block-image size-medium\"><img data-opt-id=30701221  fetchpriority=\"high\" decoding=\"async\" width=\"300\" height=\"300\" src=\"https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:300\/h:300\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2025\/09\/e2ce20299a807336c68c2e029640adaa1.png\" alt=\"speed guide\" class=\"wp-image-113040\" srcset=\"https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:300\/h:300\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2025\/09\/e2ce20299a807336c68c2e029640adaa1.png 300w, https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:1024\/h:1024\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2025\/09\/e2ce20299a807336c68c2e029640adaa1.png 1024w, https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:150\/h:150\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2025\/09\/e2ce20299a807336c68c2e029640adaa1.png 150w, https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:768\/h:768\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2025\/09\/e2ce20299a807336c68c2e029640adaa1.png 768w, https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:50\/h:50\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2025\/09\/e2ce20299a807336c68c2e029640adaa1.png 50w, https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:240\/h:240\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2025\/09\/e2ce20299a807336c68c2e029640adaa1.png 240w, https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:397\/h:397\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2025\/09\/e2ce20299a807336c68c2e029640adaa1.png 397w, https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:600\/h:600\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2025\/09\/e2ce20299a807336c68c2e029640adaa1.png 600w, https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:148\/h:148\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2025\/09\/e2ce20299a807336c68c2e029640adaa1.png 148w, https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:195\/h:195\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2025\/09\/e2ce20299a807336c68c2e029640adaa1.png 195w, https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:135\/h:135\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2025\/09\/e2ce20299a807336c68c2e029640adaa1.png 135w, https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:1080\/h:1080\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2025\/09\/e2ce20299a807336c68c2e029640adaa1.png 1200w, https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:1080\/h:1080\/q:mauto\/f:best\/dpr:2\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2025\/09\/e2ce20299a807336c68c2e029640adaa1.png 2x\" sizes=\"(max-width: 300px) 100vw, 300px\"><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p class=\"has-text-align-center ticss-58e79f2f wp-block-paragraph\" style=\"font-size:14px\"><strong>FREE GUIDE<\/strong><\/p>\n\n\n\n<p class=\"ticss-d144f107 wp-block-paragraph\" style=\"font-size:25px\"><strong>4 Essential Steps to Speed Up Your&nbsp;WordPress Website<\/strong><\/p>\n\n\n\n<p class=\"ticss-3b627beb wp-block-paragraph\">Follow the simple steps in our 4-part mini series and reduce your loading times by 50-80%.&nbsp;&#128640;<\/p>\n\n\n<p><\/p><div class=\"frm_forms  with_frm_style frm_style_themeisle\" id=\"frm_form_4_container\" data-token=\"e54fc4bdd4ec5c413e0259d7be9d7447\">\n<form enctype=\"multipart\/form-data\" method=\"post\" class=\"frm-show-form  frm_pro_form \" id=\"form_site-speed-guide-below-post\" data-token=\"e54fc4bdd4ec5c413e0259d7be9d7447\">\n<div class=\"frm_form_fields \">\n<fieldset>\n<legend class=\"frm_screen_reader\">Site Speed Guide - Below Post<\/legend>\r\n\r\n<div class=\"frm_fields_container\">\n<input type=\"hidden\" name=\"frm_action\" value=\"create\">\n<input type=\"hidden\" name=\"form_id\" value=\"4\">\n<input type=\"hidden\" name=\"frm_hide_fields_4\" id=\"frm_hide_fields_4\" value=\"\">\n<input type=\"hidden\" name=\"form_key\" value=\"site-speed-guide-below-post\">\n<input type=\"hidden\" name=\"item_meta[0]\" value=\"\">\n<input type=\"hidden\" id=\"frm_submit_entry_4\" name=\"frm_submit_entry_4\" value=\"ddfba02176\"><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/blog\/wp-json\/wp\/v2\/posts\/118304\">\t\t<input type=\"hidden\" name=\"item_meta[18]\" id=\"field_6px6q2\" value=\"\/blog\/wp-json\/wp\/v2\/posts\/118304\" data-frmval=\"\/blog\/wp-json\/wp\/v2\/posts\/118304\">\n\t\t<div id=\"frm_field_15_container\" class=\"frm_form_field form-field  frm_required_field frm_none_container\">\r\n\t<label for=\"field_6px6q\" id=\"field_6px6q_label\" class=\"frm_primary_label\">Your Email\r\n\t\t<span class=\"frm_required\" aria-hidden=\"true\">*<\/span>\r\n\t<\/label>\r\n\t<input type=\"email\" id=\"field_6px6q\" name=\"item_meta[15]\" value=\"\" autocomplete=\"email\" placeholder=\"your@email.com\" data-reqmsg=\"Your Email cannot be blank.\" aria-required=\"true\" data-invmsg=\"Your Email is invalid\" aria-invalid=\"false\">\r\n\t\r\n\t\r\n<\/div>\n<div id=\"frm_field_17_container\" class=\"frm_form_field form-field  frm_none_container vertical_radio\">\r\n\t<div id=\"field_6px6q3_label\" class=\"frm_primary_label\">Subscribe to our newsletter\r\n\t\t<span class=\"frm_required\" aria-hidden=\"true\"><\/span>\r\n\t<\/div>\r\n\t<div class=\"frm_opt_container\" aria-labelledby=\"field_6px6q3_label\" role=\"group\">\t\t<div class=\"frm_checkbox\" id=\"frm_checkbox_17-0\">\t\t\t<label for=\"field_6px6q3-0\">\n\t\t\t<input type=\"checkbox\" name=\"item_meta[17][]\" id=\"field_6px6q3-0\" value=\"true\" data-invmsg=\"Subscribe to our newsletter is invalid\"> Subscribe to our newsletter<\/label><\/div>\n<\/div>\r\n\t\r\n\t\r\n<\/div>\n<div id=\"frm_field_14_container\" class=\"frm_form_field form-field \">\r\n\t<div class=\"frm_submit frm_flex\">\r\n<button class=\"frm_button_submit frm_final_submit\" type=\"submit\" formnovalidate=\"formnovalidate\">FREE ACCESS<\/button>\r\n\r\n\r\n\r\n<\/div>\r\n<\/div>\n\t<input type=\"hidden\" name=\"item_key\" value=\"\">\n\t\t\t<div id=\"frm_field_24_container\">\n\t\t\t<label for=\"field_71u9k\">\n\t\t\t\tIf you are human, leave this field blank.\t\t\t<\/label>\n\t\t\t<input id=\"field_71u9k\" type=\"text\" class=\"frm_form_field form-field frm_verify\" name=\"item_meta[24]\" value=\"\">\n\t\t<\/div>\n\t\t<input name=\"frm_state\" type=\"hidden\" value=\"tGKtIG19U6wyYcew8uBttX0E\/KN++LAlQ8gVGksPATQkdKCs\/l0h48RQnQG\/UFbR\"><\/div>\n<\/fieldset>\n<\/div>\n\n<p style=\"display: none !important;\" class=\"akismet-fields-container\" data-prefix=\"ak_\"><label>&Delta;<textarea name=\"ak_hp_textarea\" cols=\"45\" rows=\"8\" maxlength=\"100\"><\/textarea><\/label><input type=\"hidden\" id=\"ak_js_1\" name=\"ak_js\" value=\"80\"><script>\ndocument.getElementById( \"ak_js_1\" ).setAttribute( \"value\", ( new Date() ).getTime() );\n<\/script>\n<\/p><\/form>\n<\/div>\n\n<\/div>\n<\/div>\n\n","protected":false},"excerpt":{"rendered":"Build a timed popup in the WordPress block editor with the free Otter Blocks plugin, no popup plugin needed. Pro adds scroll and exit-intent triggers.","protected":false},"author":34,"featured_media":118332,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_stopmodifiedupdate":false,"_modified_date":"","_has_post_settings":[],"_themeisle_gutenberg_block_has_review":false,"footnotes":""},"categories":[272],"tags":[],"hashtags":[],"class_list":["post-118304","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wordpress-tutorials"],"wppr_data":{"cwp_meta_box_check":"No"},"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.8 (Yoast SEO v28.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>How to Create a WordPress Popup Without a Popup Plugin (Free Method)<\/title>\n<meta name=\"description\" content=\"Build a timed popup in the WordPress block editor with the free Otter Blocks plugin, no popup plugin needed. Pro adds scroll and exit-intent triggers.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/themeisle.com\/blog\/wordpress-popup-without-plugin\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Create a WordPress Popup Without a Popup Plugin (Free Method)\" \/>\n<meta property=\"og:description\" content=\"Build a timed popup in the WordPress block editor with the free Otter Blocks plugin, no popup plugin needed. Pro adds scroll and exit-intent triggers.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/themeisle.com\/blog\/wordpress-popup-without-plugin\/\" \/>\n<meta property=\"og:site_name\" content=\"Themeisle Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-03T18:09:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:1920\/h:813\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2026\/08\/wordpress-popup-without-plugin-featured-v4.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2180\" \/>\n\t<meta property=\"og:image:height\" content=\"924\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Themeisle Editorial\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ThemeIsle\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Themeisle Editorial\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/themeisle.com\\\/blog\\\/wordpress-popup-without-plugin\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/themeisle.com\\\/blog\\\/wordpress-popup-without-plugin\\\/\"},\"author\":{\"name\":\"Themeisle Editorial\",\"@id\":\"https:\\\/\\\/themeisle.com\\\/blog\\\/#\\\/schema\\\/person\\\/844b0a2dc66556309f9a5ae28ae87ffe\"},\"headline\":\"How to Create a WordPress Popup Without a Popup Plugin (Free Method)\",\"datePublished\":\"2026-09-03T18:09:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/themeisle.com\\\/blog\\\/wordpress-popup-without-plugin\\\/\"},\"wordCount\":1722,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/themeisle.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/themeisle.com\\\/blog\\\/wordpress-popup-without-plugin\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\/\\/themeisle.com\\/blog\\/wp-content\\/uploads\\/2026\\/08\\/wordpress-popup-without-plugin-featured-v4.jpg\",\"articleSection\":[\"WordPress Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/themeisle.com\\\/blog\\\/wordpress-popup-without-plugin\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/themeisle.com\\\/blog\\\/wordpress-popup-without-plugin\\\/\",\"url\":\"https:\\\/\\\/themeisle.com\\\/blog\\\/wordpress-popup-without-plugin\\\/\",\"name\":\"How to Create a WordPress Popup Without a Popup Plugin (Free Method)\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/themeisle.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/themeisle.com\\\/blog\\\/wordpress-popup-without-plugin\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/themeisle.com\\\/blog\\\/wordpress-popup-without-plugin\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\/\\/themeisle.com\\/blog\\/wp-content\\/uploads\\/2026\\/08\\/wordpress-popup-without-plugin-featured-v4.jpg\",\"datePublished\":\"2026-09-03T18:09:33+00:00\",\"description\":\"Build a timed popup in the WordPress block editor with the free Otter Blocks plugin, no popup plugin needed. Pro adds scroll and exit-intent triggers.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/themeisle.com\\\/blog\\\/wordpress-popup-without-plugin\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/themeisle.com\\\/blog\\\/wordpress-popup-without-plugin\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/themeisle.com\\\/blog\\\/wordpress-popup-without-plugin\\\/#primaryimage\",\"url\":\"https:\\/\\/themeisle.com\\/blog\\/wp-content\\/uploads\\/2026\\/08\\/wordpress-popup-without-plugin-featured-v4.jpg\",\"contentUrl\":\"https:\\/\\/themeisle.com\\/blog\\/wp-content\\/uploads\\/2026\\/08\\/wordpress-popup-without-plugin-featured-v4.jpg\",\"width\":2180,\"height\":924,\"caption\":\"How to create a WordPress popup without a popup plugin\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/themeisle.com\\\/blog\\\/wordpress-popup-without-plugin\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Blog\",\"item\":\"https:\\\/\\\/themeisle.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Create a WordPress Popup Without a Popup Plugin (Free Method)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/themeisle.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/themeisle.com\\\/blog\\\/\",\"name\":\"Themeisle Blog\",\"description\":\"WordPress Tutorials and Reviews for Beginners and Advanced\",\"publisher\":{\"@id\":\"https:\\\/\\\/themeisle.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/themeisle.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/themeisle.com\\\/blog\\\/#organization\",\"name\":\"VertiStudio\",\"alternateName\":\"Vertigo Studio SA\",\"url\":\"https:\\\/\\\/themeisle.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/themeisle.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\/\\/themeisle.com\\/blog\\/wp-content\\/uploads\\/2024\\/02\\/VertiStudio_logo1.png\",\"contentUrl\":\"https:\\/\\/themeisle.com\\/blog\\/wp-content\\/uploads\\/2024\\/02\\/VertiStudio_logo1.png\",\"width\":718,\"height\":156,\"caption\":\"VertiStudio\"},\"image\":{\"@id\":\"https:\\\/\\\/themeisle.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/themeisle.com\\\/blog\\\/#\\\/schema\\\/person\\\/844b0a2dc66556309f9a5ae28ae87ffe\",\"name\":\"Themeisle Editorial\",\"description\":\"We\\\\'re the crew behind Themeisle Blog, where we eat, sleep, and breathe WordPress, website building, and all things blogging. Under the leadership of Karol K, our team is composed of WordPress wizards, web design junkies, and blogging enthusiasts. Between us, we\\\\'ve got a boatload of experience (like, 50+ years worth!) in making the digital world more accessible and fun.\",\"sameAs\":[\"https:\\\/\\\/themeisle.com\\\/blog\\\/\",\"https:\\\/\\\/x.com\\\/ThemeIsle\",\"https:\\\/\\\/www.youtube.com\\\/@ThemeIsle\"],\"url\":\"https:\\\/\\\/themeisle.com\\\/blog\\\/author\\\/editorial\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to Create a WordPress Popup Without a Popup Plugin (Free Method)","description":"Build a timed popup in the WordPress block editor with the free Otter Blocks plugin, no popup plugin needed. Pro adds scroll and exit-intent triggers.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/themeisle.com\/blog\/wordpress-popup-without-plugin\/","og_locale":"en_US","og_type":"article","og_title":"How to Create a WordPress Popup Without a Popup Plugin (Free Method)","og_description":"Build a timed popup in the WordPress block editor with the free Otter Blocks plugin, no popup plugin needed. Pro adds scroll and exit-intent triggers.","og_url":"https:\/\/themeisle.com\/blog\/wordpress-popup-without-plugin\/","og_site_name":"Themeisle Blog","article_published_time":"2026-09-03T18:09:33+00:00","og_image":[{"width":2180,"height":924,"url":"https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:1920\/h:813\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2026\/08\/wordpress-popup-without-plugin-featured-v4.jpg","type":"image\/jpeg"}],"author":"Themeisle Editorial","twitter_card":"summary_large_image","twitter_creator":"@ThemeIsle","twitter_misc":{"Written by":"Themeisle Editorial","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/themeisle.com\/blog\/wordpress-popup-without-plugin\/#article","isPartOf":{"@id":"https:\/\/themeisle.com\/blog\/wordpress-popup-without-plugin\/"},"author":{"name":"Themeisle Editorial","@id":"https:\/\/themeisle.com\/blog\/#\/schema\/person\/844b0a2dc66556309f9a5ae28ae87ffe"},"headline":"How to Create a WordPress Popup Without a Popup Plugin (Free Method)","datePublished":"2026-09-03T18:09:33+00:00","mainEntityOfPage":{"@id":"https:\/\/themeisle.com\/blog\/wordpress-popup-without-plugin\/"},"wordCount":1722,"commentCount":0,"publisher":{"@id":"https:\/\/themeisle.com\/blog\/#organization"},"image":{"@id":"https:\/\/themeisle.com\/blog\/wordpress-popup-without-plugin\/#primaryimage"},"thumbnailUrl":"https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:auto\/h:auto\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2026\/08\/wordpress-popup-without-plugin-featured-v4.jpg","articleSection":["WordPress Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/themeisle.com\/blog\/wordpress-popup-without-plugin\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/themeisle.com\/blog\/wordpress-popup-without-plugin\/","url":"https:\/\/themeisle.com\/blog\/wordpress-popup-without-plugin\/","name":"How to Create a WordPress Popup Without a Popup Plugin (Free Method)","isPartOf":{"@id":"https:\/\/themeisle.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/themeisle.com\/blog\/wordpress-popup-without-plugin\/#primaryimage"},"image":{"@id":"https:\/\/themeisle.com\/blog\/wordpress-popup-without-plugin\/#primaryimage"},"thumbnailUrl":"https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:auto\/h:auto\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2026\/08\/wordpress-popup-without-plugin-featured-v4.jpg","datePublished":"2026-09-03T18:09:33+00:00","description":"Build a timed popup in the WordPress block editor with the free Otter Blocks plugin, no popup plugin needed. Pro adds scroll and exit-intent triggers.","breadcrumb":{"@id":"https:\/\/themeisle.com\/blog\/wordpress-popup-without-plugin\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/themeisle.com\/blog\/wordpress-popup-without-plugin\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/themeisle.com\/blog\/wordpress-popup-without-plugin\/#primaryimage","url":"https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:auto\/h:auto\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2026\/08\/wordpress-popup-without-plugin-featured-v4.jpg","contentUrl":"https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:auto\/h:auto\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2026\/08\/wordpress-popup-without-plugin-featured-v4.jpg","width":2180,"height":924,"caption":"How to create a WordPress popup without a popup plugin"},{"@type":"BreadcrumbList","@id":"https:\/\/themeisle.com\/blog\/wordpress-popup-without-plugin\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog","item":"https:\/\/themeisle.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Create a WordPress Popup Without a Popup Plugin (Free Method)"}]},{"@type":"WebSite","@id":"https:\/\/themeisle.com\/blog\/#website","url":"https:\/\/themeisle.com\/blog\/","name":"Themeisle Blog","description":"WordPress Tutorials and Reviews for Beginners and Advanced","publisher":{"@id":"https:\/\/themeisle.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/themeisle.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/themeisle.com\/blog\/#organization","name":"VertiStudio","alternateName":"Vertigo Studio SA","url":"https:\/\/themeisle.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/themeisle.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:auto\/h:auto\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2024\/02\/VertiStudio_logo1.png","contentUrl":"https:\/\/mllj2j8xvfl0.i.optimole.com\/cb:c5QE.37290\/w:auto\/h:auto\/q:mauto\/f:best\/https:\/\/themeisle.com\/blog\/wp-content\/uploads\/2024\/02\/VertiStudio_logo1.png","width":718,"height":156,"caption":"VertiStudio"},"image":{"@id":"https:\/\/themeisle.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/themeisle.com\/blog\/#\/schema\/person\/844b0a2dc66556309f9a5ae28ae87ffe","name":"Themeisle Editorial","description":"We\\'re the crew behind Themeisle Blog, where we eat, sleep, and breathe WordPress, website building, and all things blogging. Under the leadership of Karol K, our team is composed of WordPress wizards, web design junkies, and blogging enthusiasts. Between us, we\\'ve got a boatload of experience (like, 50+ years worth!) in making the digital world more accessible and fun.","sameAs":["https:\/\/themeisle.com\/blog\/","https:\/\/x.com\/ThemeIsle","https:\/\/www.youtube.com\/@ThemeIsle"],"url":"https:\/\/themeisle.com\/blog\/author\/editorial\/"}]}},"_links":{"self":[{"href":"https:\/\/themeisle.com\/blog\/wp-json\/wp\/v2\/posts\/118304","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themeisle.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themeisle.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themeisle.com\/blog\/wp-json\/wp\/v2\/users\/34"}],"replies":[{"embeddable":true,"href":"https:\/\/themeisle.com\/blog\/wp-json\/wp\/v2\/comments?post=118304"}],"version-history":[{"count":2,"href":"https:\/\/themeisle.com\/blog\/wp-json\/wp\/v2\/posts\/118304\/revisions"}],"predecessor-version":[{"id":118816,"href":"https:\/\/themeisle.com\/blog\/wp-json\/wp\/v2\/posts\/118304\/revisions\/118816"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themeisle.com\/blog\/wp-json\/wp\/v2\/media\/118332"}],"wp:attachment":[{"href":"https:\/\/themeisle.com\/blog\/wp-json\/wp\/v2\/media?parent=118304"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themeisle.com\/blog\/wp-json\/wp\/v2\/categories?post=118304"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themeisle.com\/blog\/wp-json\/wp\/v2\/tags?post=118304"},{"taxonomy":"hashtags","embeddable":true,"href":"https:\/\/themeisle.com\/blog\/wp-json\/wp\/v2\/hashtags?post=118304"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}