WordPress/ai

New Experiment: Suggest internal links within post content

Open

#875 opened on Jul 16, 2026

View on GitHub
 (1 comment) (2 reactions) (0 assignees)PHP (136 forks)auto 404
Help Wanted[Type] Enhancement

Repository metrics

Stars
 (246 stars)
PR merge metrics
 (Avg merge 5d 4h) (72 merged PRs in 30d)

Description

What problem does this address?

Authors and editors often lack full context of everything already published on a site, so valuable opportunities to link new posts to related existing content go unused. Internal links are one of the higher-leverage, lower-effort levers for on-site engagement and SEO (they pass link equity, surface related content to readers, and help establish topical authority), but finding good linking opportunities by hand doesn't scale, especially on larger sites.

What is your proposed solution?

Add a new experiment that suggests up to 5 (filterable) internal links per post, pointing to other existing content on the same site. Links are suggested only, never auto-inserted so that the author/editor reviews and accepts/rejects each one, consistent with how every other experiment in this plugin requires explicit user action.

I considered a "related posts" block/widget at the end of a post as an alternative, but this would have lower engagement than in-content contextual links, and doesn't help with the deeper problem of missing internal links inside the body copy.

Two entry points into the same underlying suggestion ability:

  1. Pre-publish flow (primary)

Suggestions surface as part of the pre-publish panel: run against the current draft content, return up to 5 candidate links (anchor text >> target post/page), and let the user accept or dismiss each before publishing.

  1. On-demand flow, ahead of pre-publish (secondary)

A user can manually trigger link suggestions at any point while drafting, using the same pattern already established by the Editorial Notes experiment (which reviews content block-by-block and adds Notes with suggestions for accessibility/readability/grammar/SEO). This experiment would do the same for internal links: WP 6.9–7.0: attach the note to the relevant paragraph block, since inline/text-range Notes aren't available yet. WP 7.1+: attach the note to the specific word(s)/phrase once inline Notes ship, anchoring the suggestion to the exact anchor text rather than the whole paragraph.

Since Editorial Notes already solves "review content block-by-block, write a Note" and Editorial Updates already solves "apply a Note's suggestion to content," this experiment could be a new ability (ai/internal-link-suggestions or similar) plus registration as a consumer of those existing patterns, rather than new editor plumbing. The only downside there is it requires those experiments to be enabled to fully function, so not optimal.

Scope for v1

  • Up to 5 suggested links per post; count filterable.
  • Candidate targets: other posts/pages on the same site (taxonomy archives and cross-network/multisite targets are reasonable future iterations).
  • Anchor text pulled from the post's own content, no invented anchors or URLs.
  • Suggestions are review-and-accept only; nothing is auto-published or auto-inserted.
  • Filterable: link count, eligible post types as suggestion targets, eligible post types for suggestions to appear on.

Open questions

  • Should this reuse the Editorial Notes/Editorial Updates code paths directly, or register as its own experiment that happens to write Notes the same way? [I think the later, but open to discussion here.]
  • Does the suggestion ability need its own lightweight content/link index or is per-post context sufficient to send to the connector at suggestion time?
  • Should the Notes-based flow auto-detect and degrade gracefully between paragraph-level (6.9–7.0) and inline (7.1+) Notes based on the installed core version, or should that just follow whatever core version the site is running with no separate toggle? [I think the former, as that allows us to remove the 6.9-7.0 fallback once 7.1 becomes our min WP version]
  • Do we want a short "reason" string noting why the AI thinks this is a good suggestion to help the editor evaluate relevance before accepting?

Why is this important to you?

No response

I have searched existing issues and this is not a duplicate.

  • Yes

Contributor guide