BuddyX

13 min read · 2,506 words

How to Remove (or Fix) the Read More Button in WordPress

Read More Button From WordPress

“Just add this one line of CSS” is the most common answer to this question online, and it’s incomplete advice more often than not, it hides the symptom without addressing whether the underlying excerpt behavior is actually serving your readers. Before removing the “Read More” button from a WordPress archive or blog page, it’s worth asking what it’s actually protecting you from, because in most cases the honest answer is: a much longer, much messier homepage. The button exists to keep list pages scannable, a stack of full-length articles on one page is slow to load, hard to scan, and pushes your actual navigation and other content far down the page. That said, there are legitimate reasons to remove it (a portfolio-style blog where short teaser text works fine without a click-through, a minimalist personal site where full-post archives fit the aesthetic), and the right way to do it depends entirely on why you’re doing it and what “Read More” actually means on your specific site.

Figure out which “Read More” you actually have

There are two entirely different things people mean by this, and the fix is different for each:

  • The theme’s archive/blog listing “Read More” link, a button or link automatically appended after an excerpt on category pages, tag pages, search results, and the homepage blog feed, generated by the theme’s template files (usually via the_excerpt() or a custom excerpt function) and controlled by theme settings or a filter.
  • The manual “Read More” tag inside a specific post, the <!--more--> block (called the “More” block in the block editor) that an author inserts inside post content to manually define where the excerpt cuts off on archive pages. This is per-post, not site-wide.

If you want every listing page site-wide to stop showing a “Read More” button and just show full or longer excerpts instead, you’re dealing with the first case, and the fix lives in your theme. If you inserted a More block in one specific post and want to remove just that break, you’re dealing with the second case, and the fix is inside that one post’s content in the editor.

Method 1: Theme Customizer or theme settings (check this first)

Many themes, including most modern block themes and well-built classic themes, expose a toggle for this without touching any code, usually under Appearance → Customize in a section labeled Blog, Archive, or Post Layout, or within the theme’s own dedicated settings panel if it has one. Check there before writing any CSS or PHP; a built-in setting is more reliable long-term than a workaround, since it won’t get silently undone by a future theme update the way custom CSS injected elsewhere sometimes does.

Method 2: CSS to visually hide it

If there’s no built-in toggle, the fastest fix is CSS. Inspect the “Read More” element in your browser’s developer tools (right-click it, choose Inspect) to find its actual class name, it varies by theme, commonly something like .read-more, .more-link, or a theme-specific class. Then add this to Appearance → Customize → Additional CSS:

.read-more {
  display: none;
}

This is the fastest method and requires no file editing, but it’s worth understanding what it actually does: the link still exists in the page’s HTML, it’s just visually hidden. That means it’s still technically clickable if a user tabs to it with a keyboard (a real accessibility problem, a focusable, invisible link is confusing for keyboard and screen reader users) and it doesn’t reduce the actual page weight, since the excerpt text and link markup still get sent to the browser either way. For a quick cosmetic fix this is fine; for a more correct, permanent solution, the theme-level or filter-based methods below are better.

Method 3: A code snippet to genuinely remove it, not just hide it

If your theme generates the “Read More” link through WordPress’s standard excerpt_more filter (most classic themes do), you can override it properly rather than hiding it visually. Add this to your child theme’s functions.php, never the parent theme’s file directly, for the same reason described in any WordPress customization guide: theme updates overwrite direct parent theme edits:

function buddyx_remove_excerpt_more( $more ) {
    return '';
}
add_filter( 'excerpt_more', 'buddyx_remove_excerpt_more' );

This removes the link and its trailing text entirely from the generated HTML rather than just hiding it with CSS, which is the cleaner fix for both accessibility and page weight. If your theme instead builds the “Read More” link inside its own custom template function rather than through this standard filter, you’ll need to find and edit that specific function in a child theme, or ask the theme’s support channel where it’s generated if it’s not obvious from inspecting the code.

Method 4: Block themes, editing the Query Loop block’s Read More setting

On a block theme using the Query Loop block for its archive or blog listing (common in Twenty Twenty-Four and similar modern themes), the “Read More” link is often a distinct block inside the Post Template, a “Read More” block you can select and delete directly in the Site Editor, no code required. Go to Appearance → Editor, open the relevant template (Index, Blog Home, or Archive), find the Query Loop block, and check whether a Read More block exists inside the post template pattern. If it does, select it and remove it through the block toolbar’s options menu, the same way you’d delete any other block.

Removing a manual More break inside one post

If you’re in the block editor and see a horizontal divider with “Read more” or a similar label inside a specific post’s content, that’s the More block. Click it to select it, then press Delete or Backspace, or use the block’s own toolbar options menu to remove it. In the classic editor, the same break shows as <!--more--> directly in the content, delete that exact tag from the post’s text, then update the post.

Worth noting: removing the More break from a post doesn’t remove the excerpt or the archive-page “Read More” link entirely, it just means WordPress falls back to auto-generating the excerpt from the first 55 words (or whatever your custom length is) instead of using your manually chosen break point. If the goal was to stop a specific post from truncating at an awkward spot in a sentence, this is usually the actual fix needed rather than anything at the theme or filter level.

How WordPress actually generates excerpts under the hood

Understanding the underlying mechanism makes every method above easier to reason about instead of feeling like guesswork. When a post has no manual More break and no custom excerpt written in the Excerpt field, WordPress auto-generates an excerpt by stripping HTML tags from the post content, cutting it off after the number of words set by the excerpt_length filter (55 by default), and appending whatever the excerpt_more filter returns, by default, an ellipsis and, depending on the theme, a “Read More” link wrapped around it. That’s three separate, independently filterable pieces: the length, the trailing text, and whether a link gets appended at all. Most tutorials conflate all three into one instruction (“hide the read more button”), but knowing they’re separate filters means you can adjust just the piece that’s actually bothering you, a slightly-too-short excerpt doesn’t necessarily mean you need to remove the link entirely, and an unwanted link doesn’t mean you need to touch the excerpt length.

If a post does have a manual More break, that overrides the auto-generated excerpt entirely, WordPress uses everything before the break as the “excerpt” on archive pages regardless of what the excerpt_length filter says, and it’s this per-post break that most themes wrap in a “Read More” link. This is why a theme-wide CSS or filter fix sometimes appears to only work on some posts and not others: posts with a manual break behave differently from posts relying on the auto-generated excerpt, and it’s worth checking which situation you’re actually looking at, post by post, if a fix seems inconsistent.

A concrete before-and-after scenario

Say your blog’s homepage currently shows 55-word excerpts, each followed by a bare “Read More” link. A visitor scanning ten posts sees ten nearly-identical fragments and ten identical link labels, with no real sense of what’s actually different between the pieces. Two different fixes produce two different outcomes: removing the link entirely (Method 3) while leaving the 55-word excerpt makes each fragment slightly cleaner-looking but does nothing to help a visitor decide what to click, since there’s no longer even a visible affordance signaling “there’s more here.” Lengthening the excerpt to 120-150 words instead gives a visitor enough actual content to judge whether the full post is worth their time, and keeping the link (with more descriptive text like “Continue reading” rather than a bare “Read More,” and ideally including the post title for screen reader clarity) gives a clear, meaningful next action. For most content-driven blogs, the second approach produces a genuinely better browsing experience than simply removing the button.

Whether removing it is actually the right call

Before committing to removing “Read More” links site-wide, weigh what you’re trading away. Excerpts with a clear call-to-action link give visitors an easy way to scan many posts quickly and click into the ones that interest them, genuinely useful on a content-heavy blog, news site, or any archive with more than a handful of posts. Sites that remove this entirely often see archive and category pages balloon in length and load time without any corresponding improvement in how long visitors actually stay or how many pages they view per session, since a wall of full-length posts is arguably harder to scan than a well-written excerpt with a clear next step. Removing it in favor of full-length posts on listing pages makes sense mainly for sites with very few, very short posts (a portfolio update log, a changelog, a minimalist personal blog) where the archive page essentially functions as the entire site’s content in one scroll. If your blog has dozens or hundreds of posts, full-length archive pages create real page-weight and load-time problems, every image and every paragraph from every post loads on a single page, which works against both user experience and Core Web Vitals scores that affect search ranking.

Even when you keep the link rather than removing it, the default wording is worth fixing. A screen reader user navigating a page by pulling up a list of all links (a common navigation pattern for that assistive technology) hears “Read More, Read More, Read More” repeated identically for every post on an archive page, with zero context about which post each one actually leads to. This is a documented WCAG issue (Success Criterion 2.4.4, Link Purpose in Context) and it’s worth fixing regardless of whether you’re also changing the excerpt length or removing the button entirely for other reasons. Two practical fixes: include the post title in the link, visually hidden if you don’t want it cluttering the visible design (<a href="...">Read More<span class="screen-reader-text"> about Your Post Title</span></a>, using a standard visually-hidden CSS class), or simply write more specific link text per post rather than a repeated generic label. Most modern accessibility-conscious themes already build the hidden-title pattern into their excerpt markup, check your theme’s actual output in the browser’s dev tools before assuming you need to add this yourself.

If the actual complaint is “excerpts feel too short, the Read More link shows up too soon,” the better fix is often lengthening the excerpt rather than removing the link entirely. WordPress’s default excerpt length is 55 words, controlled by the excerpt_length filter:

function buddyx_custom_excerpt_length( $length ) {
    return 40;
}
add_filter( 'excerpt_length', 'buddyx_custom_excerpt_length' );

Change the number to whatever feels right for your content, 100 to 150 words gives readers a genuinely useful preview while still keeping the archive page scannable and the “Read More” link meaningful, rather than showing up after just one truncated sentence.

Common questions

Not directly, search engines don’t penalize a site either way for this choice. The indirect effect matters more: full-length archive pages increase page weight and load time, which can affect Core Web Vitals scores, a minor ranking factor. If SEO is a real concern, keep well-sized excerpts with a clear link rather than either extreme (a one-line excerpt or a full-post archive).

Why does the CSS method sometimes not work?

Usually because the class name guessed or copied from a generic tutorial doesn’t match your specific theme’s actual markup. Always inspect the element directly in your browser’s dev tools to confirm the real class or ID before writing CSS targeting it, don’t assume .read-more is universal, since theme authors name things differently.

Can I remove it on some pages but keep it on others?

Yes, with conditional logic. The excerpt_more filter approach can be wrapped in a conditional check like is_category( 'news' ) or is_home() to apply only on specific archive types, giving you fine-grained control beyond a blanket site-wide removal.

Is there a plugin that does this without any code?

Several SEO and content plugins offer excerpt-length and “read more” text controls as part of their broader feature set (Yoast SEO and Rank Math both include some display options), but a single-purpose plugin just for this is usually unnecessary overhead for what’s a small CSS or filter change. Reserve plugin installs for functionality that genuinely needs ongoing logic, not one-time cosmetic adjustments.

Yes, the same excerpt_more filter used to remove the link entirely can instead return custom text and a link. Replace the return value with something like return ' <a href="' . get_permalink() . '">Continue reading &raquo;</a>'; inside the filter function to swap in more specific, more accessible link text than a generic “Read More,” which also helps screen reader users understand where each link actually goes without relying on surrounding context.

Does this affect RSS feed subscribers too?

Feed excerpts are controlled separately, through WordPress’s Reading settings (Settings → Reading, the “For each post in a feed, include” option, choosing full text or summary). Changes to the excerpt_more filter or archive template generally don’t affect what’s sent to RSS readers, check the Reading settings page specifically if your goal includes changing what feed subscribers see.

My theme uses a page builder for the archive layout, do these methods still work?

Not reliably. If Elementor, Divi, or a similar page builder is generating your archive or blog listing template through its own Theme Builder module, the “Read More” element is likely a setting within that builder’s own post-loop widget rather than something controlled by WordPress’s native excerpt_more filter. Check the specific loop or archive widget’s settings inside the page builder itself for a toggle, since code-level filters may simply be bypassed by how the builder renders its own template.

Reading
13 min · 2,506 words
Published
Apr 18, 2023
Shashank Dubey
BuddyX contributor

Writing about WordPress communities, BuddyPress, BuddyBoss, LMS plugins, and the business of paid communities.

Keep reading

More from the BuddyX blog

Browse all posts on community, WordPress, BuddyPress and the studio of plugins behind BuddyX.