PLAINFINCH learn by building

Internal links

You will connect a site's pages with clear links so the crawler reaches every page that matters.

What is an internal link?

An internal link is a link from one page on your site to another page on the same site. The bird club's menu, the Home link at the bottom of each page and a sentence that says see the recent sightings page are all internal links. Links to other sites are called external links, and links from other sites to yours are often called backlinks.

Internal links do two jobs at once. They let visitors move around the site, and they let crawlers discover pages and work out how they relate. A search engine that reaches the home page follows each link it finds, reads the next page and follows its links in turn. If a page has no links pointing to it from anywhere, the crawler can only learn about it from a sitemap or from someone submitting the address.

How does a crawler follow links?

A crawler reads the HTML of a page and collects the href of every <a> element. It turns relative addresses such as /walks.html into full URLs, sets aside links to other sites, and adds the rest to its list of addresses to fetch. Google's documentation is direct about this: it can reliably follow links only when they are <a> elements with an href attribute.

That rules out a few patterns that work in a browser. A <button> or <span> with a click handler has no address to collect. A link whose href is javascript:void(0) goes nowhere. A link that only appears after someone opens a menu with a script may be found when Google renders the page, which can happen later than the first fetch, and may not be found at all if the script fails. The lab does not run JavaScript, so it only sees links that are in the HTML from the start.

Links inside an HTML comment are not links. The break-it exercise on this page has one, left over from testing a layout, and it is an easy mistake to make when you comment out a block to try something.

<!-- A crawler can follow this -->
<a href="/sightings.html">Recent sightings</a>

<!-- A crawler has no address here -->
<span onclick="location.href='/sightings.html'">Recent sightings</span>
FigureThe crawler reads the home page and collects every a element with an href. A plain link to /sightings.html is followed and the page is indexed. A link inside an HTML comment, a link with rel nofollow and a button with a click handler give the lab crawler nothing to follow, so walks, events and join are never fetched.The crawler reads the home page and collects every a element with an href. A plain link to /sightings.html is followed and the page is indexed. A link inside an HTML comment, a link with rel nofollow and a button with a click handler give the lab crawler nothing to follow, so walks, events and join are never fetched.
Four lines that all look like links in a browser. Only the plain a element with an href gives a crawler an address to follow.

What should the link text say?

Link text, also called anchor text, is the visible words inside the <a> element. It should tell someone where the link goes before they click it. Guided walks, recent sightings and talks and events all do that. Click here, read more and this page do not, because they only make sense next to the sentence around them.

Search engines use link text as one clue about the target page. When several pages link to the sightings page with words like recent sightings, that reinforces what the page is about. Screen reader users often move through a list of all the links on a page, where a column of click here entries is useless. The fix is usually to move the link onto the words that already describe the destination.

Keep link text natural. Writing every link as bird watching walks river gravel pits makes the text awkward to read and is a pattern search engines associate with manipulation. If a link is an image, its alt text acts as the link text, so describe where it goes.

Where should internal links go?

Your main navigation should reach the pages most visitors want, so every page is at most a few clicks from the home page. For a small club that might be walks, events, sightings and joining. Beyond the menu, the most useful links sit inside the text, at the point where a reader would want to go next. The walks page mentions what you might see, so a link to recent sightings belongs there.

New pages need at least one link from a page that is already found, or they start life as orphans. When you publish something, ask which existing pages a visitor would come from and add the link there too. Pages you link to often, especially from the home page, look more important to search engines than pages buried several levels deep.

You do not need to link every page to every other page. A short, relevant set of links is easier for people to use, and a page with hundreds of links tells search engines very little about which ones count.

  • Menu: the few pages most people come for.
  • In the text: the next page a reader would want, linked on words that name it.
  • Footer: contact, privacy and other pages people look for at the bottom.
  • New page: at least one link from an existing page on the same topic.

What does nofollow do on an internal link?

Adding rel="nofollow" to a link asks search engines not to treat it as an endorsement and not to follow it. It was designed for links you do not vouch for, such as links in comments. Since 2019 Google has also recognised rel="ugc" for user content and rel="sponsored" for paid links, and treats all three as hints rather than strict instructions.

On a link to your own page, nofollow gains you nothing. It does not save crawl effort on a small site, and it does not keep the page out of search; if you want a page left out of results, use a noindex robots meta tag on that page. The lab follows nofollow strictly to make the effect easy to see. Google may still crawl the target, especially if other links point to it.

How do you find orphan pages?

An orphan page is one that exists but has no links pointing to it. In the lab, the Index view marks it as not discovered and Checks warns about it. On a real site, look for pages that are in your content system or sitemap but missing from your menus, or pages that the Pages report in Search Console lists as Discovered, currently not indexed.

A site crawler tool on your own computer can follow every link from the home page and list what it reaches; compare that list with the pages you know you have. Another quick test is to search your own site's HTML for the address of a page, for example with your editor's search across files. If the only place it appears is the sitemap, real visitors have no way to find it either.

How many links are too many?

There is no fixed number. Google used to suggest keeping links to a reasonable number per page and has since dropped any specific figure. A page should have as many links as help a reader, and no more. Navigation, a few links in the text and a footer is plenty for most small sites.

Problems come from patterns. Footers stuffed with dozens of keyword links to every page, or blocks of links to tag pages that each repeat the same list, add noise without helping anyone. Broken internal links are worse than missing ones, because they send visitors and crawlers to a 404 error. The lab reports them in Checks, and a real site crawler tool or the Pages report in Search Console will show them too.

What do AI tools get wrong about internal links?

AI tools often build navigation with buttons and click handlers, or with JavaScript frameworks that render links only after a script runs. The page works when you click around in a browser, and a crawler reading the HTML may find nothing to follow. When you review generated code, check that every link to another page is a plain <a href>.

They also suggest exact-match anchor text everywhere, such as making every link say best bird walks near the river, and sometimes recommend adding nofollow to internal links to sculpt where ranking signals flow. Both ideas are years out of date. Write links that describe the page in normal words, use nofollow only for links you do not vouch for, and remember that the lab cannot tell you how any of this affects rankings, because it does not rank anything.

Field notes

  • Internal links are links between pages on your own site, and crawlers follow them to find pages.
  • Crawlers follow a elements with an href, so links made only with JavaScript clicks may be missed.
  • Link text should say what the target page is about, rather than click here.
  • An orphan page has no internal links pointing to it, so find and link it from a related page.

Easy to get wrong

Link text that names the destination helps people scanning a list of links and gives search engines a clue about the target.

Crawlers follow <a> elements with an href. A click handler gives them no address.

Nofollow on your own pages does not help, and it can stop a crawler finding them. Use noindex on a page you want left out of results.

Questions people ask

Do internal links help a page rank?

They help search engines find a page and understand what it is about, and pages you link to prominently look more important within your site. Nobody can tell you how much that changes a position for any search.

Is a sitemap enough instead of links?

A sitemap helps crawlers discover addresses. Links do that and also guide visitors and show how pages relate. Use both.

Should the logo link to the home page?

Yes, it is a convention people expect. Give the logo image an alt that names the site, since that becomes the link text.

Does it matter whether I use relative or full URLs in links?

Both work. Paths such as /walks.html are shorter and keep working if the domain changes. Avoid full http:// links on an HTTPS site, which cost a redirect.

Keep going