New: ShopBar Theme — faster, lighter, refreshed

See what's new
Website

How to Hide a Page Title in WordPress (4 Methods That Work)

Editor Team

Spiracle Themes

12 min read

There is no “hide title” checkbox in WordPress, which is why this question keeps getting asked. The page title is printed by your theme’s template, not stored as a setting on the page — so removing it means one of four things: editing the template in a block theme, adding CSS, using a plugin that toggles it per page, or editing a child theme’s template file.

All four work. They differ in how much they affect every page on the site, and in what happens to your <h1> — which is the part most guides skip entirely. Here is each method with the trade-off stated plainly.

Key takeaways

  • Block theme: delete the Title block from the template in the Site Editor. Applies to every page using that template.
  • Any theme: .entry-title, .page-title { display: none; } with a body class to limit it to one page.
  • Plugin: Hide Page and Post Title (40,000 installs, updated September 2026) gives you a per-page toggle. Title Remover, which most older guides recommend, has not been updated since 2021.
  • SEO: removing the H1 without replacing it costs you a heading signal. Replace it with a styled heading inside the content, or hide it visually while keeping it for screen readers.

Why the title has no on/off switch

WordPress stores a page’s title as data — the post_title column. Displaying it is a theme decision. In a classic theme, a template file such as page.php calls the_title() inside an <h1>. In a block theme, the template contains a Title block, and the Site Editor decides where it sits.

Nothing in the page editor can override that, because the page does not know how the theme renders it. That is the whole reason this requires four different approaches: you are not toggling a setting, you are changing the thing that prints the title.

One consequence worth knowing before you start: the title is used in more places than the top of the page. It feeds the browser tab, breadcrumbs, schema markup, navigation labels and social cards. Hiding it visually does not remove it from any of those — which is usually what you want, but confirms that “hide the title” means hide it on the page, not delete it.

Method 1: Block themes and the Site Editor

If you run a block theme — Twenty Twenty-Four, Twenty Twenty-Five, or most themes released since 2023 — the title is a block, and you can delete it.

  1. Go to Appearance ? Editor (the Site Editor).
  2. Open Templates and select the template used by the page — usually Page or Single.
  3. Click the Title block in the canvas, then use the block’s options menu to remove it.
  4. Save. Every page using that template now renders without a title.

This is the cleanest method: no CSS, no plugin, and it survives theme updates because you are editing the site’s own templates.

Limiting it to one page

Deleting the block affects the whole template. To hide the title on a single page, do not edit the template — instead create a copy of it (Site Editor ? Templates ? duplicate the Page template), remove the title from the copy, and assign that template to the one page under Page ? Settings ? Template. Block themes support per-page template assignment, so this is a supported route rather than a hack.

What to do about the empty space

Removing the title block often leaves the template’s header spacing behind. Blocks that wrapped the title may now render with their own top margin, producing a gap that looks like a bug. Select the parent Group block and set its padding to zero, or use the block spacing control on the container that held the title.

Method 2: CSS (works on every theme)

The fastest approach, and the one that needs the most care.

/* Hide the page title everywhere */
.entry-title,
.page-title,
h1.wp-block-post-title {
  display: none;
}

The three selectors cover classic themes, older themes with a page-title class, and block themes. Start with all three; remove the ones that do not apply once it works.

Limiting it to a single page

WordPress adds a body class to every page. On a page with ID 42, the body carries .page-id-42, so:

.page-id-42 .entry-title {
  display: none;
}

Find the ID in the page editor URL: post=42. This is more reliable than targeting the slug, which changes if you edit the permalink.

Hiding visually without removing it from screen readers

If you want the title out of the visual design but still available to assistive technology, use a screen-reader-only pattern instead of display: none:

.entry-title {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

display: none removes the heading from the accessibility tree entirely — screen reader users lose the page’s main heading, which is a genuine accessibility regression. The clip pattern keeps it announced without showing it. Same for search engines: both are crawlable, but only one keeps your document outline intact for assistive tech.

Method 3: A plugin with a per-page toggle

If you want a checkbox on each page rather than CSS, use a plugin. There are two candidates, and their condition is wildly different.

Plugin Active installs Rating Last updated Verdict
Hide Page and Post Title 40,000 72% (54) 25 Sep 2026 Current, tested against WordPress 7.1
Title Remover 70,000 78% (68) 3 Jun 2021 Last tested on WordPress 5.7 — avoid on a 7.x site

Hide Page and Post Title adds a toggle in the page editor’s sidebar that hides the title on that specific page only. It is the lowest-effort option if you have a handful of landing pages and no interest in CSS.

Title Remover still appears in older tutorials and has more installs, but it has not been updated in five years and its compatibility statement stops at WordPress 5.7. Twenty-one major versions behind is not a theoretical risk: the block editor changed substantially since then, and a plugin that hooks into the editor’s meta boxes is exactly the kind that breaks quietly.

Method 4: A page template in a child theme

For classic themes, the surgical option is a custom page template that simply does not print the title. In a child theme, create page-no-title.php:

<?php
/*
Template Name: No Title
*/
get_header(); ?>

<main id="primary" class="site-main">
  <?php while ( have_posts() ) : the_post(); ?>
    <div class="entry-content">
      <?php the_content(); ?>
    </div>
  <?php endwhile; ?>
</main>

<?php get_footer();

Save it in the child theme folder, then pick No Title from the page’s Template dropdown — the same place you would pick a template after installing a WordPress theme. This keeps everything in version control instead of the database, which matters if you deploy with Git or manage several sites from one codebase.

This is also the only method that works identically on every classic theme without guessing CSS class names. The trade-off is that it duplicates the theme’s page markup, so a theme update that changes page.php will not be reflected in your copy. Keep it minimal, as above. If you have not set up a child theme yet, customising a WordPress theme covers the setup.

Elementor and other page builders

If the page is built in Elementor, do not use CSS — there is a setting. Open the page in Elementor, click the settings icon in the bottom-left panel (or the gear in the top bar), and under Page Settings switch Hide Title on. Elementor then suppresses the theme’s title output for that page only.

The same pattern exists in most builders: Bricks has a “Disable title” toggle in its page settings, Divi has a “Show Title” option under Page Settings, and Beaver Builder exposes a page template without the title. In every case, prefer the builder’s setting over a CSS rule — it removes the markup rather than hiding it, so you do not end up with an invisible heading sitting in the DOM.

What hiding the title does to SEO

Hiding a page’s title is not cloaking and it is not a penalty risk — you are changing your own design, and Google evaluates the rendered page. Three things do change, and they matter:

  • Your H1 disappears. Many themes render the page title as the only <h1>. Remove it and the page has no top-level heading, which weakens the document outline. Google does not require an H1, but the page becomes harder to interpret, and accessibility tools flag it.
  • Anchor links and in-page navigation can break. Some themes use the title as an anchor target. Check any table of contents or “back to top” links afterwards.
  • Schema and breadcrumbs are unaffected. The title is still the page’s name for structured data and navigation, because those read the post title from the database, not from the template.

The practical fix is to replace the hidden H1 with a real one inside the content — a hero heading you were going to write anyway. Then the design has no visible page title, and the document still has exactly one H1. If you are doing that, write the heading before you hide the title so the page is never published without one.

Troubleshooting

The CSS does nothing

Either the selector is wrong or a cache is serving the old stylesheet. Inspect the heading and copy its actual class — themes vary between .entry-title, .page-title, .post-title and .wp-block-post-title. Then purge the page cache, any CDN cache, and the browser cache. If styles are not the problem, the fault may be a theme layout issue rather than a title issue — mobile display problems follow the same debugging order.

It hid the title on every page

You applied the rule globally. Add the body-class prefix (.page-id-42) or the block-theme equivalent, and remember that Additional CSS is site-wide by definition. If you edited a template in the Site Editor, restore the previous revision — the Site Editor keeps a revision history.

The title is gone but the space remains

The wrapper element still has padding. Hiding a child does not collapse the parent. Find the block or div that wrapped the title and zero its top padding, or set the parent to padding-top: 0 on the pages where it applies.

The title still shows in search results and social previews

Expected — those read the post title metadata, not the rendered page. If you want a different string in search results, change the SEO title in your SEO plugin; if you want a different social headline, change the Open Graph title. Hiding the on-page heading does not change either.

It works in the customiser but not on the live site

Classic customiser CSS is often inlined into the page, while your rule may be in a stylesheet cached elsewhere. Check the order of stylesheets too: if your rule is loaded before the theme’s, specificity ties resolve in the theme’s favour. Adding a more specific selector is usually faster than fighting load order.

Frequently asked questions

How do I hide the page title in WordPress without a plugin?

Use CSS in Appearance ? Customize ? Additional CSS: .entry-title { display: none; }, scoped with a body class such as .page-id-42 if you only want it on one page. On a block theme, the cleaner no-plugin route is deleting the Title block from the template in the Site Editor.

Is it bad for SEO to hide the page title?

Not inherently — you are changing your own layout, not showing different content to Google. The risk is losing your <h1>. If the theme rendered the title as the only H1, add a heading inside the content, or hide the title visually with a screen-reader-only CSS pattern so the heading structure stays intact.

Why can’t I find a hide-title option in the page editor?

Because WordPress has no such setting in core. The title is printed by the theme template, not controlled per page. You need CSS, a block-theme template edit, a plugin such as Hide Page and Post Title, or a page builder’s own “Hide Title” option.

Does hiding the title remove it from the browser tab?

No. The browser tab uses the document <title>, which comes from the post title and your SEO plugin. Hiding the on-page heading changes only the visible heading. If you want a different tab title, change the SEO title setting.

Will a theme update undo my changes?

CSS in Additional CSS survives updates because it lives in the database. Template edits in the Site Editor survive because they are stored as site data. Editing a parent theme’s page.php directly does not survive — that change is wiped on update, which is why the page template belongs in a child theme.

Can I hide the title on just one page with a plugin?

Yes — Hide Page and Post Title adds a per-page toggle in the editor sidebar, which is its main advantage over CSS. The trade-off is an extra plugin for something a single CSS rule can do. If you only have one or two pages, use CSS with the page ID body class.

The short version

Block theme: delete the Title block, or duplicate the template for a single page. Classic theme: one CSS rule scoped by page ID. Builder: use its Hide Title setting. Plugin: fine, but pick the one updated this year, not the one from 2021. In every case, put an H1 back into the content if the theme title was the page’s only one — that is the difference between a cleaner design and a page that lost its heading.

Written by

Editor Team

Content Specialist at Spiracle Themes

We are a team of WordPress enthusiasts passionate about creating beautiful themes and helping users build better websites.

Leave a Reply

Your email address will not be published. Required fields are marked *