Fix guides

Fix: orphan pages and internal links

Fix Orphan pages, the Internal links check, repeated links, nofollow on internal links and links without text, with steps for WordPress, Shopify, Webflow and Wix.

Updated Oct 24, 2026

Internal links are how visitors and Google move through a site and how ranking value spreads from strong pages (like the home page) to the rest. This guide covers orphan pages and all internal-link checks.

WhereCheck nameFlagged when
Site crawlOrphan pages (notice)A crawled page (other than the start page) has no internal links pointing to it from the other crawled pages
Audit, LinksInternal linksThe page has fewer than 5 internal links
Audit, LinksSame link used more than 3 timesOne URL is linked more than 3 times on the page
Audit, Linksnofollow tagLinks on the page carry rel="nofollow"
Audit, Technical & securityMeta nofollowThe page has <meta name="robots" content="nofollow">
Audit, LinksLink have discernible textA link has no text, for example an icon-only link without a label

Find the affected pages in the app

  1. Site crawl › open the crawl › Issues › Orphan pages lists the URLs (the first 20; Export for all).
  2. Site crawl › Pages: click a page to open its details. Internal links in shows how many internal links point to it (0 or 1 = needs more links).
  3. Click depth in the details (and the Depth column) shows how many clicks the page is from the start page; important pages should be at depth 1 to 3. The details panel also has Run page audit.
  4. Site crawl › Links: chip Internal, search a URL to see which pages link to it (Found on) and with which Anchor text. The Nofollow column shows nofollowed links.
  5. Audit report › Links (open the report from Audits) shows the number of internal and external links on the audited page.
  6. Compare the crawl with the XML sitemap: pages in the sitemap that the crawl never reached have no crawlable links. See Fix: Crawl finds few pages.

Orphan pages

How we detect it

After the crawl, the app counts the internal links from other crawled pages that point to each page. A page that returns 200 with zero counted links (other than the start page) is an Orphan page (notice).

Why it matters

Pages with no internal links are hard for Google to find and look unimportant, so they rank poorly or don’t get indexed. Internal links also pass ranking value.

Common causes

  • If the page was created and never added to a menu or linked from content → it was forgotten.
  • If it was removed from the menu during a redesign → the link went, the page stayed.
  • If it is an old, duplicate or test page → it should probably not exist.
  • If it is an ads landing page → it is unlinked on purpose.

Fix: basic

  1. The page should rank → add links (steps 4–6).
  2. Old, duplicate or test page → 301 redirect it to the closest live page, or delete it and let it return 404/410 (how to add redirects); remove it from the sitemap.
  3. Ads-only landing page → set it to noindex (how to set noindex); it doesn’t need internal links.
  4. Add 2 or 3 contextual links from related pages, with descriptive anchor text (“emergency boiler repair”, not “click here”).
  5. Add the page to a hub: a services overview, a locations page, a category or a “Related articles” block.
  6. Put important pages (services, locations, top categories) in the main menu or footer.

Fix: expert

A contextual link in body text:

<p>Most leaks we fix come from worn valves. If water is coming through the ceiling,
see our <a href="/emergency-plumber-leeds/">emergency plumbing service</a> or read
<a href="/blog/how-to-turn-off-your-water/">how to turn off your water supply</a>.</p>

Links must be real <a href="…"> elements. Links made with onclick or buttons are not followed by Google or by the crawler.

Platform steps

WordPress

  1. Menu: Appearance › Menus (or Appearance › Editor › Navigation) › add the page › Save Menu.
  2. In content: open a related post, select text, press Ctrl+K, search for the page › Update.
  3. Suggestions: Yoast SEO Premium shows internal linking suggestions in the editor sidebar; Rank Math has Link Suggestions (enable under Rank Math SEO › General Settings › Links).
  4. Related posts: add a Query Loop block filtered by category, or use the theme’s related posts option in the Customizer.

Shopify

  1. Menu: Shopify admin › Online Store › Navigation › Main menu or Footer menu › Add menu item › Save menu.
  2. Products: add orphan products to a collection (Products › product › Collections field), which links them automatically.
  3. Blog articles: add links in the article body, or a “Related products” section in the theme editor.

Webflow

  1. Add the page to the navbar or footer component, or add a Collection List of related items to the CMS template. Publish.

Wix

  1. In the Wix Editor (open the site from the Wix dashboard): Site Menu › Manage Menu › + Add Menu Item, or add text links on related pages. For blog posts, turn on Related Posts in Blog settings.

Squarespace

  1. In your Squarespace account, open the site and add the page to Main Navigation or Footer Navigation in the Pages panel, or link it from a text block.

Verify the fix

  1. Open the source pages and check the new links work.
  2. Site crawl › open the crawl › Crawl again, then Compare: Orphan pages should move to Fixed issues, and Internal links in goes up for those pages.
  3. Optional: in Search Console, Links › Internal links shows Google’s count (updates over weeks).

Automation

Assisted: link opportunities can be found automatically from page topics; inserting links needs WordPress admin (post content), the Shopify Admin API or a CMS API, with a human check of anchors.

How we detect it

The audit counts internal links on the audited page. Fewer than 5 fails (“Only N internal links”). The value shows “N internal, N external”.

Why it matters

Internal links spread ranking strength across the site and keep visitors moving to the next step.

Common causes

  • If the page is a landing page with no menu → navigation was removed.
  • If the content has no links → links were never added in the body.
  • If the menu is built with JavaScript or buttons → links aren’t real <a href> elements.

Fix: basic

  1. Add a short “Related services” or “You may also need” list with 3 to 5 links at the end.
  2. Link the first mention of each related topic in the body.
  3. Link to the parent page (for example from “Boiler repair Leeds” to “Plumbing services”).
  4. Use descriptive anchors; avoid “click here” and “read more”.

Fix: expert

Use the HTML example under Orphan pages. Check that menu items are <a href> elements: Ctrl+U and search the menu label.

Platform steps

All platforms

  1. Add links in the page editor as described under Orphan pages › Platform steps.

Verify the fix

  1. Open the report in Audits and click Run again. Internal links should show 5 or more.

Automation

Assisted: same access as Orphan pages.

How we detect it

The classic audit scanner counts how often each URL is linked on the page. More than 3 times shows Same link used more than 3 times.

Why it matters

Repeating the same link clutters the page and weakens the anchor text signal. It is a minor issue.

Common causes

  • If the page has cards → image, title and “Read more” each link to the same page.
  • If body text repeats the link → every mention of a topic was linked.

Fix: basic

  1. Link only the first mention in body text.
  2. On cards, wrap image and title in one link instead of separate links.
  3. Keep menu and footer links; they’re expected.

Fix: expert

One link around a whole card:

<a class="card" href="/services/boiler-repair/">
  <img src="/img/boiler.webp" alt="Engineer repairing a combi boiler" width="400" height="300">
  <h3>Boiler repair</h3>
</a>

Platform steps

WordPress (Elementor / block themes)

  1. In card or post widgets, turn off separate links on the image or the “Read more” button where the title already links.

Verify the fix

  1. Open the report in Audits and click Run again; the line should no longer appear.

Automation

Manual: needs theme or layout changes.

nofollow tag

How we detect it

The classic audit scanner lists links on the page that carry rel="nofollow". In the crawl, Site crawl › Links shows a Nofollow column.

Why it matters

A nofollow tells Google not to pass ranking value through the link. On internal links that only hurts your own pages.

Common causes

  • If internal links are nofollow → a plugin or theme option added it, or links were copied from an old site.
  • If external links are nofollow → often correct (paid, affiliate, user comments).

Fix: basic

  1. Find them: Site crawl › open the crawl › Links, chip Internal, look at Nofollow; on one page, Ctrl+U and search nofollow.
  2. Remove nofollow from internal links (see Platform steps).
  3. Keep nofollow, rel="sponsored" or rel="ugc" only for paid, affiliate and user-generated links.

Fix: expert

<!-- before -->
<a href="/services/" rel="nofollow">Our services</a>
<!-- after -->
<a href="/services/">Our services</a>

Platform steps

WordPress

  1. Block editor: select the link › link settings › untick Mark as nofollow (Rank Math/Yoast option) › Update.
  2. Elementor: link options (gear) › untick Add nofollow › Update.

Shopify / hand-coded

  1. Remove rel="nofollow" from the link in the page or theme.liquid.

Verify the fix

  1. Crawl again in Site crawl: the Nofollow column shows no internal links.

Automation

Automatable: internal nofollow can be removed in bulk via WordPress admin (post content) or theme files.

Meta nofollow

How we detect it

The classic audit reads the page’s robots meta tag (the no_follow statistic) and shows Meta nofollow under Technical & security.

Why it matters

A page-level nofollow tells Google not to follow any link on the page, so nothing on it passes value.

Common causes

  • If every page has it → WordPress Discourage search engines is on (adds noindex, nofollow), or a staging setting was copied to live.
  • If one page has it → the SEO plugin’s advanced setting was changed on that page.

Fix: basic

  1. Ctrl+U and search name="robots".
  2. Change it to follow (see Platform steps; background: Google’s robots meta tag docs).

Fix: expert

<!-- remove or change -->
<meta name="robots" content="nofollow">
<!-- to -->
<meta name="robots" content="index, follow">

Also check the server doesn’t send an X-Robots-Tag: nofollow header:

curl -sI https://example.com/page/ | grep -i x-robots-tag

Platform steps

WordPress

  1. Yoast: edit page › Yoast SEO › Advanced › Should search engines follow links on this content? › Yes › Update.
  2. Rank Math: edit page › Advanced › Robots Meta › untick No Follow › Update.
  3. Settings › Reading › untick Discourage search engines from indexing this site › Save Changes.

Shopify / hand-coded

  1. Delete or change the tag in layout/theme.liquid or the page template › Save.

Verify the fix

  1. Ctrl+U shows index, follow or no robots tag; curl shows no X-Robots-Tag: nofollow.
  2. Open the report in Audits and click Run again. Meta nofollow should pass.

Automation

Automatable: via WordPress admin via plugin (robots meta) or theme files; header changes need server SSH.

How we detect it

The classic audit scanner checks each link for text. Icon-only links without a label fail: “Some links do not have a discernible text”. In ”+” audits, Lighthouse may show Links do not have a discernible name or Links are not crawlable.

Why it matters

Links without text can’t be understood by screen readers or by Google, so they pass no context.

Common causes

  • If they are social icons, a search icon or an arrow → icon-only links.
  • If they are linked images → the image has no alt text.
  • If they are <a href="#"></a> → empty links left by the theme.

Fix: basic

  1. Give icon links a label: in page builders, fill the ARIA label or Link label field on icon and button widgets.
  2. Give linked images a meaningful alt text (it becomes the link text; see Fix: images › alt text).
  3. Delete empty links.

Fix: expert

<!-- before -->
<a href="https://www.facebook.com/smithplumbing"><svg>…</svg></a>
<!-- after: aria-label -->
<a href="https://www.facebook.com/smithplumbing" aria-label="Smith Plumbing on Facebook"><svg aria-hidden="true">…</svg></a>
<!-- or: visually hidden text -->
<a href="/search/"><svg aria-hidden="true">…</svg><span class="sr-only">Search</span></a>
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

Platform steps

WordPress (Elementor)

  1. Social Icons widget › each item › Link options › set the label; Icon widget › Advanced › Attributes aria-label|Facebook.

Shopify

  1. Social icons in most themes already include hidden text; if not, add aria-label in snippets/social-icons.liquid.

Verify the fix

  1. Open the report in Audits and click Run again; the line should pass.

Automation

Assisted: labels can be generated from link targets; inserting them needs theme or builder access.

Common questions

If a page is in the XML sitemap, is it still an orphan?

Yes. A sitemap helps Google find a URL, but internal links tell Google the page matters and pass ranking value to it. Link to every page you want to rank from at least one relevant page.

How many internal links should a page have?

The audit's Internal links check passes at 5 or more. Most content pages should link to 3 to 5 closely related pages from the body text, on top of the menu and footer.

Should internal links ever be nofollow?

Almost never. Use nofollow for paid, sponsored or untrusted external links. Internal nofollow doesn't save crawl budget and stops value flowing to your own pages.

Why are there orphan pages the crawler found anyway?

The crawler counts how many links from other crawled pages point to each page. A page can be reached and still have no counted internal links. Treat the list as pages that need links.

Still need help?

Ask in the chat inside the app, or send us a message on the contact page. You can also browse all help topics.