How to Create a Custom Elementor Header Without Any Plugin (Free Method)

custom elementor header without plugin

If you’ve searched for this, you’ve probably hit the same two answers everywhere: “use Elementor Theme Builder” (Pro only) or “install a header/footer plugin” (which isn’t really a no-plugin method, is it?).

There’s a third way — and it’s the one most WordPress developers actually use when a client won’t pay for Pro and doesn’t want another plugin bloating the site: build the header as an Elementor Section template, grab its shortcode, and hook it into your theme’s header.php through a child theme. No Pro, no header/footer plugin.

What You’ll Need

  • Elementor (free version is enough)
  • A child theme (if you don’t have one, create one first — never edit a parent theme directly)
  • FTP or File Manager access to your site

Step 1: Design Your Header as a Saved Section

  1. In WP Admin, go to Templates → Saved Templates → Add New
  2. Choose Section (not Page)
  3. Name it something like custom-header
  4. Design your header inside the Elementor editor — logo, nav menu widget, buttons, whatever you need
  5. Click Publish

This section now lives independently of any page and can be inserted anywhere via shortcode.

Step 2: Grab the Shortcode

  1. Go back to Templates → Saved Templates
  2. Find your custom-header template
  3. Click the shortcode icon next to it — it’ll look like
  4. Copy that shortcode

Step 3: Insert It Into Your Child Theme’s Header

Open your child theme’s header.php. Find where the site header currently outputs (usually right after <body> or inside a <header> tag), and add:

<?php
if ( shortcode_exists( 'elementor-template' ) ) {
    echo do_shortcode( '[elementor-template id="1234"]' );
}
?>

Replace 1234 with your actual template ID.

If you’d rather not touch header.php directly, hook it in via functions.php instead — cleaner and update-safe:

function shsanzid_custom_elementor_header() {
    if ( shortcode_exists( 'elementor-template' ) ) {
        echo do_shortcode( '[elementor-template id="1234"]' );
    }
}
add_action( 'wp_body_open', 'shsanzid_custom_elementor_header' );

wp_body_open fires right after the opening <body> tag on any modern theme (2019+ core support). If your theme doesn’t call wp_body_open(), use a theme-specific hook instead (check your theme’s header.php for available action hooks).

Step 4: Hide the Theme’s Default Header

Now you have two headers stacked. Remove the theme’s original one. In functions.php:

function shsanzid_remove_default_header() {
    remove_action( 'theme_hook_name', 'theme_header_function' );
}
add_action( 'after_setup_theme', 'shsanzid_remove_default_header' );

Since hook names differ by theme, the safest universal method is CSS — hide it without breaking template structure:

.site-header,
header.site-header,
#masthead {
    display: none !important;
}

Inspect your theme’s actual header wrapper class/ID and swap it in.

Step 5: Make It Sticky and Responsive

Elementor Section templates don’t have built-in sticky controls like Pro headers do. Add this CSS in Appearance → Customize → Additional CSS or your child theme’s style.css:

.custom-header-wrapper {
    position: sticky;
    top: 0;
    z-index: 999;
    background: #ffffff;
}

Wrap the shortcode output in a div with that class:

echo '<div class="custom-header-wrapper">' . do_shortcode( '[elementor-template id="1234"]' ) . '</div>';

For mobile, use Elementor’s built-in responsive controls (desktop/tablet/mobile icons) when designing the section — no extra code needed there.

Troubleshooting

Header shows twice: You haven’t fully hidden the theme’s default header — check for display: none conflicts or leftover PHP output.

Shortcode not rendering: Confirm Elementor is active and the template ID is correct (find it in the URL when editing the template: post=1234).

Menu not showing inside the section: Use Elementor’s native Nav Menu widget (free version includes it) and assign your WordPress menu from Appearance → Menus.

Sticky header overlaps content: Add padding-top to your body or main content wrapper equal to the header’s height.

FAQ

Do I need Elementor Pro to build a custom header? No. Elementor Pro’s Theme Builder makes it a point-and-click global setting, but the Section-template + shortcode method achieves the same visual result using only the free version.

Will this survive a theme update? Yes, as long as the code lives in a child theme, not the parent theme.

Can I use this for a footer too? Same process — just design a Section template for the footer and hook it near wp_footer() instead.

Does this hurt page speed? No more than a Pro-built header would. Elementor’s core CSS/JS loads either way; you’re not adding a new plugin’s overhead.

Wrapping Up

This method gets you a fully custom, Elementor-built header with zero added plugins and zero Pro license cost — the trade-off is a bit of manual child-theme code instead of a settings panel. For a single header on one site, that’s a fair trade. If you’re doing this across multiple client sites regularly, Elementor Pro’s Theme Builder will save you more time in the long run.

Share the Post:

Related Posts

SH Sanzid is a skilled web designer with over five years of experience in creating easy-to-use, beautiful websites. He is passionate about designing websites that are not only visually appealing but also work smoothly for users.

Throughout his career, SH has worked with a variety of businesses, from small startups to larger companies, helping them create websites that meet their goals. He specializes in WordPress and Elementor, tools that allow him to build websites that are fast, mobile-friendly, and easy to manage.

SH Sanzid’s approach is simple: he listens to his clients, understands their needs, and creates websites that match their vision. He focuses on providing solutions that make it easier for businesses to connect with their customers and grow online.

Whether you need a brand-new website, a redesign, or an eCommerce store, SH Sanzid ensures that the final product not only looks great but also works perfectly. His dedication to delivering quality work and excellent customer service has earned him a loyal client base and a strong reputation in the industry.