How to Write Descriptive Link Text: Complete Guide (2026)

Saar Twito9 min read
Saar Twito
Saar TwitoFounder & SEO Engineer

Hi, I'm Saar - a software engineer, SEO specialist, and lecturer who loves building tools and teaching tech.

View author profile →

What Is Descriptive Link Text?

Descriptive link text is the visible text inside an <a> element that clearly describes where the link goes — readable on its own, out of context. The link-nameaudit fails any link with no accessible name, and accessibility heuristics also flag generic phrases like "click here", "read more", and "learn more" because they tell screen-reader users nothing when extracted into a list of links.

Key Facts (TL;DR)

  • What the audit checks: the link-name rule fails when an <a> with an href has no accessible name — empty link, image-only link with no alt, or aria-hidden applied to its only text.
  • WCAG 2.4.4 Link Purpose (In Context) — Level A: link text plus its immediate context (sentence, list item, table cell) must convey the link's purpose.
  • WCAG 2.4.9 Link Purpose (Link Only) — Level AAA: link text alone, without surrounding context, must convey purpose.
  • WCAG 4.1.2 Name, Role, Value — Level A: every link must expose an accessible name to assistive technology.
  • Screen-reader behavior: NVDA, JAWS, and VoiceOver all expose a "list of links" view that strips surrounding context. "Click here" appearing 12 times in that list is unusable.
  • SEO impact: anchor text is a documented Google ranking signal. Descriptive anchors carry topical signal; generic anchors carry none.
  • AI search impact: AI engines (Google AI Overviews, ChatGPT, Perplexity, Claude) parse link text to map a page's information architecture, so descriptive anchors directly affect how your page is summarized and cited.

Think of link text the way you think of an envelope's recipient line. "To: them, somewhere" gets nothing delivered. "To: the 2026 SEO checklist" gets it where it belongs — for screen-reader users, AI extractors, and Google's ranking system at the same time.

Why Descriptive Link Text Matters

Link text is one of the rare elements that affects accessibility, SEO, and AI visibility with the same edit. Get it right once, three audiences benefit.

  • Screen-reader users navigate by link.NVDA, JAWS, and VoiceOver all let users pull up a context-stripped list of every link on the page and Tab through it. "Click here" repeated a dozen times forces the user to either restore context manually or guess.
  • AI search engines parse link text as topical signal. When Google AI Overviews, ChatGPT, or Perplexity summarize a page, they use the anchor text of internal and outbound links to infer the relationships between concepts. Generic anchors flatten that signal.
  • SEO ranking signal.Anchor text has been a documented Google ranking factor since the original PageRank papers. "Read more" passes no topical signal; "2026 Core Web Vitals checklist" does.
  • Cognitive load drops for everyone. Sighted users scan pages by jumping between links and headings. Descriptive anchors let them decide which link to follow without reading the surrounding paragraph.
  • Mobile and voice-first contexts.Screen real estate and voice interfaces don't always surface surrounding context. The anchor text is often the only string the user hears or sees.

What the link-name Audit Catches

The link-name rule fails the strict accessibility cases — links with no accessible name at all. Heuristic checks then flag a wider set of low-quality patterns.

  • Empty link: <a href="/page"></a> — no text, no aria-label, no title. The user hears nothing.
  • Image-only link with no alt: <a href="/cart"><img src="cart.png"></a> — the image has no alt, so the link has no accessible name.
  • Icon-font link with no label: <a><i class="fa-search"></i></a> — the glyph isn't real text and the link has no aria-label.
  • Generic link text: "click here", "here", "read more", "learn more", "more". The audit may pass technically, but heuristics flag it as a warning because it fails WCAG 2.4.9.
  • URL as link text: <a href="https://...">https://www.example.com/very/long/url</a> — screen readers read the entire URL character by character.
  • Duplicate text, different destinations: two "Read more" links pointing to different pages, indistinguishable in the link list.
<!-- Bad: empty link -->
<a href="/page"></a>

<!-- Bad: generic text, no topical signal -->
<a href="/blog/2026-seo-checklist">click here</a>

<!-- Bad: URL as link text -->
<a href="https://www.example.com/blog/2026-seo-checklist">
  https://www.example.com/blog/2026-seo-checklist
</a>

<!-- Bad: image link with no alt -->
<a href="/cart"><img src="cart.png"></a>

<!-- Good: descriptive text -->
<a href="/blog/2026-seo-checklist">Read the 2026 SEO checklist</a>

<!-- Good: icon-only link with an accessible name -->
<a href="/search" aria-label="Search">
  <svg aria-hidden="true" focusable="false">...</svg>
</a>

<!-- Good: image link with alt as the accessible name -->
<a href="/cart">
  <img src="cart.png" alt="View shopping cart">
</a>

<!-- Good: card pattern — descriptive heading link, full-card click via ::before -->
<article class="card">
  <h3>
    <a href="/blog/2026-seo-checklist" class="card-link">
      Read the 2026 SEO checklist
    </a>
  </h3>
  <p>An updated guide to ranking in 2026...</p>
</article>
<style>
  .card { position: relative; }
  .card-link::before {
    content: "";
    position: absolute;
    inset: 0;
  }
</style>

How to Check Your Site for Link-Text Issues

Most teams have a small number of empty or icon-only links and a long tail of generic anchors. A single audit pass surfaces both.

  • Greadme deep scan — runs the accessibility audit pass on a single page, surfaces every empty or weak link, and pairs each finding with an AI-generated rewrite or a one-click GitHub PR.
  • Greadme crawler scan — checks every indexable page on the site so you catch "Read more" anchors in repeating templates (blog cards, related-post lists, product grids).
  • Greadme AI visibility analyzer — confirms that the descriptive link text on key pages is feeding the topical signal AI search engines extract.
  • Chrome DevTools → Accessibility pane — inspect any link to see the computed accessible name; if it's empty or generic, the screen-reader experience is too.
  • Google Search Console → Links report — review the most-used internal anchor texts; a top-10 dominated by "Read more" or "Learn more" is a red flag for both SEO and accessibility.
  • Screen-reader links list — open the page in NVDA, JAWS, or VoiceOver and bring up the list-of-links view. If you can't guess what each link does from the text alone, neither can a real user.

8 Rules for Writing Descriptive Link Text

1. Make the Link Text Match the Destination Title

The cleanest pattern is to use the destination page's primary noun phrase as the anchor: "Read the 2026 SEO checklist" links to the page literally titled "The 2026 SEO Checklist". Predictable for users, strong topical signal for search.

2. Lead With the Verb or the Object — Never With "Click"

"Download the report" or "The 2026 report (PDF)" both work. "Click here to download the report" buries the meaningful text behind a generic prefix and makes the screen-reader links list useless.

3. For Icon-Only Links, Add aria-label

An icon-only search button needs aria-label="Search". Hide the decorative SVG/icon-font glyph from assistive tech with aria-hidden="true", and make sure the visible icon reads as a recognizable affordance for sighted users.

4. For Image Links, Use the Alt as the Accessible Name

When an <a> wraps an <img>, the image's alt becomes the link's accessible name. Write the altfrom the destination's perspective ("View shopping cart"), not the image's ("cart icon").

5. Use the Card Pattern for Blog and Product Cards

Link the heading text (which is descriptive on its own) and use a CSS ::before with position: absolute; inset: 0 on the link to make the entire card click-able. The accessible name stays meaningful while the click target stays large.

6. Distinguish Duplicate Anchors With Hidden Context

If a layout truly requires multiple "Read more" links, append a visually-hidden span that disambiguates each one — for example "Read more <span class='sr-only'>about Core Web Vitals</span>". Sighted users see "Read more"; screen-reader users hear the full phrase.

7. Don't Use a URL as the Link Text

Screen readers read URLs character by character. Replace https://www.example.com/blog/post as the visible anchor with the page's title ("Read the 2026 SEO checklist") and keep the URL only inside the href.

8. Keep It Short Enough to Speak in One Breath

Aim for 2 to 8 words of anchor text. Long enough to convey purpose without context, short enough that the screen-reader links list stays scannable and the SEO anchor signal stays focused.

Common Link-Text Failures and How to Fix Them

Problem: Empty Link

What's happening: An <a href="..."></a> with no text, no aria-label, and no labelled child. Screen readers announce "link" with no destination.

Fix: Add visible text, or — if the design requires no visible text — add an aria-label describing the destination.

Problem: "Click Here" / "Read More" Anchors

What's happening: The link technically has text, so the strict audit passes, but the text fails WCAG 2.4.9 because it conveys no purpose on its own.

Fix: Rewrite as "Read the 2026 SEO checklist" or link the headline of the card itself instead of a separate "Read more" anchor.

Problem: Image Link With No Alt

What's happening: <a><img src="cart.png"></a>. The image has no accessible name, so neither does the link.

Fix: Add alt="View shopping cart" to the image, or wrap the image in a link with an aria-label if the image is purely decorative.

Problem: URL as the Visible Link Text

What's happening: The visible anchor is the full URL. Screen readers read it character by character; AI parsers and Google extract no topical signal.

Fix: Replace the visible text with the destination's title or a noun-phrase summary. Keep the URL only inside href.

Generic vs Descriptive Link Text — Side by Side

The same link, written four different ways, succeeds or fails for very different reasons depending on which audience you optimize for.

Anchor TextScreen-Reader QualitySEO Anchor SignalAI Extraction
"click here"Useless in the links list.Zero topical signal.No relationship inferred between source and destination.
"read more"Indistinguishable when repeated.Negligible signal.Treated as boilerplate; usually ignored.
Full URL as textRead character by character; painful.Weak signal — only domain words count.Often skipped during summarization.
"Read the 2026 SEO checklist"Clear in the links list out of context.Strong topical signal on the destination's primary keyword.Direct concept linkage; high citation odds.

FAQ

What is descriptive link text?

Descriptive link text is the visible text inside an <a>element that clearly describes where the link goes — readable on its own, without needing the surrounding sentence. "Read the 2026 SEO checklist" is descriptive; "click here" is not.

Which WCAG criteria cover link text?

Three are most relevant. SC 2.4.4 Link Purpose (In Context) at Level A requires the purpose to be clear from the link plus its immediate context. SC 2.4.9 Link Purpose (Link Only) at Level AAA requires the link text alone to convey purpose. SC 4.1.2 Name, Role, Value at Level A requires every link to expose an accessible name to assistive technology.

Does "click here" fail the link-name audit?

Not technically — "click here" gives the link an accessible name, so the strict link-namerule passes. But heuristic checks flag it as a warning because it fails WCAG 2.4.9, and screen-reader users routinely cite "click here"-style anchors as the worst pattern in their links lists.

How do screen readers handle empty links?

They announce "link" with no name, leaving the user no way to know where it goes. NVDA, JAWS, and VoiceOver all expose a links list that strips surrounding context, so an empty or generic link is functionally invisible in that view.

What's the right pattern for icon-only links?

Add aria-label to the link with a short verb-object phrase ("Search", "Open menu", "View cart") and mark the inner SVG or icon glyph with aria-hidden="true"so it isn't announced separately. The link then has exactly one accessible name from one source.

Do AI search engines like ChatGPT and Perplexity care about link text?

Yes — directly. AI search systems parse anchor text to map a page's outbound and internal navigation, and the resulting graph influences how the page is summarized and cited. Descriptive anchors give AI extractors a clean concept-to-concept signal; "click here" gives them noise.

How does descriptive link text help SEO?

Anchor text is a documented Google ranking signal that has been part of the algorithm since the original PageRank papers. Descriptive internal anchors carry topical signal to the destination page, helping it rank for the relevant queries; generic anchors carry essentially none.

Conclusion

Link text is one of the highest-leverage edits on any site. The same rewrite that lifts a page out of WCAG 2.4.4, 2.4.9, and 4.1.2 failures also strengthens its anchor-text signal in Google and tightens the concept graph AI search engines build for it. Get the anchors right and three audiences benefit at once.

Strip empty links and image-only links with no alt first; then sweep for "click here", "read more", and URL-as-text anchors and rewrite each one to name its destination. Run a Greadme deep scan to surface every weak anchor on your site and ship the fixes as a single GitHub PR.