Generic Link Text in WordPress: Why "Click Here" Breaks A11y and SEO

"Read more" and "click here" mean nothing to a screen reader or to Google. Here is how to replace them with descriptive text without breaking design.

A link whose anchor text is "click here", "read more" or "here" out of context is a silent link. A blind user requesting the page's link list (NVDA: Insert+F7, VoiceOver: Rotor > Links) gets a list of 30 entries that all say "read more" - useless.

Why this matters

This is a international accessibility guidelines Level A requirement, 2.4.4 Link Purpose (In Context). The rationale: each link should make sense on its own, without surrounding text. "Read more" alone is meaningless; "Read the WordPress beginner's guide" is clear.

SEO follows the same logic. Anchor text is a key ranking signal - Google uses it to understand what the linked page is about. "Click here" wastes that signal entirely. A site with 100 internal links all reading "read more" tells Google there are no keywords to attribute - hurting the rankings of the destination pages. Descriptive anchors also raise CTR - a visitor seeing "Complete guide to website performance optimisation" is more likely to click than on "click here".

How to detect

The RankPlus scan walks every post and flags anchors whose text matches: "click here", "read more", "more", "here", "learn more", and the Hebrew equivalents. Each occurrence is counted. Manually: in NVDA open the page link list with Insert+F7 - duplicate generic anchors are the smell.

How to fix

  1. In Gutenberg, select the link's text and rewrite it descriptively. Replace "read more" with the destination's topic: "Read our guide to WordPress site structure".
  2. For automatic "Read More" links in archive templates: edit archive.php or content.php in the theme. Append the post title:
    <a href="<?php the_permalink(); ?>">
        Read more about <?php the_title(); ?>
    </a>
    Or, to keep the visual design compact, use aria-label:
    <a href="<?php the_permalink(); ?>" 
       aria-label="Read more about <?php the_title(); ?>">
        Read more
    </a>
    Screen readers announce the aria-label; sighted users still see "Read more".
  3. In page builders (Elementor, Divi): edit each button or link widget's Label/Text to a descriptive value.
  4. As a stopgap, add aria-labelledby pointing to the id of an adjacent heading.
  5. Inline links ("this article", "our report") deserve descriptive text too.
  6. Run NVDA, open the link list - no duplicate generic anchors. The list should read like a table of contents for the page.

Common mistakes

  • Relying on visual context: "New article: 10 ways to boost sales. Click here." - sighted users connect the dots; screen reader users hear only "click here".
  • title attribute as a substitute: title="Read more about..." is not exposed by every screen reader and does nothing for SEO. Use aria-label if you must.
  • CSS-only fixes: hiding text with CSS and adding alternative text via pseudo-elements is not reliably accessible.
  • The same text for different links: two "Learn more" anchors leading to different pages confuse users. Make them unique.
  • Fixing archives but not single posts: "click here" inside post bodies is still flagged.

Verifying the fix

Run NVDA or VoiceOver, open a page, request the link list. No two links should share text if they go to different destinations. Run axe DevTools - the Link Purpose category should pass. RankPlus turns green.

Tip: When writing new content, every time you would write "click here" think about where the link goes. "Click here to download the guide" can be "Download the beginner's guide (PDF)" - more descriptive and more professional.