Finding internal link opportunities at scale [Temporarily Down]


Make contextual internal linking easier

One aspect of SEO that I have always struggled with is finding a scaleable solution for identifying and adding internal links to new and existing website content.

  • Which of my 762 URLs could benefit from more internal links?
  • What anchor text should I use to get the most out of contextual linking?
  • Does the page I want to add a new internal link on already link to the URL I want to target?

Okay, maybe I am being a bit dramatic!

But still, adding links can become a time-consuming, frustrating process – often resulting in routine contextual linking becoming a neglected practice for SEO and content teams who choose to focus on other more pressing needs.

I hope this template can serve you and your team as a vital tool to complement your SEO and content marketing efforts by helping stay on top of internal linking opportunities as they appear.

  • A new piece of content is published on the site – what are the best pages to add internal links to this new page?
  • Your site ranks in striking distance for a keyword – is this exact keyword query used on your site and does it have a link pointing to the target URL you want to rank for?
  • You’ve just started working on a new site and need a quick way to evaluate how the difference pieces of content relate to each other.

How the template works

Once your website’s raw data has been added to the sheet (see instructions below), input a Target Page (B2) and Target Anchor Text (B3) value into the Output tab to receive a list of URLs that contain the Target Anchor Text, while not already linking to the Target Page.

Target Page: This is the page you would like to point new internal links to. Once cell B2 is populated, the Output table will automatically be updated to only include URLs which do not link to the Target Page.

Target Anchor Text: This is the keyword phrase or anchor text you would like to look for amongst the existing content scraped in the Article Text tab. Once cell B3 is populated, the Output table will automatically be updated to only include URLs which include the Target Anchor Text.

Make a copy of the sheet below and continue reading for more instructions on how to set up the Sheet data.

Setting up the the Sheets template

1. Gather your data

This template requires metrics from the following 2 sources:

1. Google Search Console: Use Google Search Console or Data Studio (now Looker Studio) to pull Clicks by Landing Page for your preferred timeline. I like to use the past 90 days.

2. Screaming Frog: Use Screaming Frog or your preferred site crawling tool to extract 2 reports:

  • A bulk export of internal outlinks. We will filter this list to only display Hyperlinks, found in the Content section of the site, with all external domains removed. 

    This will filter the list to focus on unique, internal links found in the body of the article instead of overcounting links in the top or footer navigation menus.
Screaming Frog Bulk Export > Links > All Outlinks
Focus on internal hyperlinks found in the Content section
  • A custom extraction of your website’s body content. The text that we scrape will be used to identify good anchor text opportunities at the page-level. I typically will crawl the entire site and scrape the Inner Text of a page’s <article> tag to pull unique page content. You can get as creative as you’d like here!
Screaming Frog custom extraction

2. Populating the data in each tab

The sheet is broken up into 4 tabs. 3 tabs to input your site’s raw data and 1 output tab. Add your website data to the blue highlighted cells found in each respective tab.

1. Landing Page Clicks – GSC

Copy and paste your landing page and click performance.

2. Internal Outlinks – Screaming Frog

Copy and paste the Source + Destination columns from your bulk internal outlink export. Keeping in mind that internal hyperlinks within the content section of your site work best for this template.

3. Article Text – Screaming Frog

Copy and paste the export of your article, or body, text into the blue columns of the 3rd tab.

Note: It is recommended to crawl the article text of all of the URLs included in your GSC export to pull data from the same set of URLs.

3. Check your results

Once the information is populated in each of the three tabs, Columns C – G of the Article Text tab should be populated with additional information about each of the URLs.

The information in the Output tab is based on a QUERY formula found in cell A9 (make sure not to delete this formula).

The table in the Output tab will update based on updates to the Target Page and Target Anchor Text values found in cells B2 and B3, respectively.

Note: Cell B3 is based on RegEx. Use lowercase text and be sure to use a “\” to escape special characters (i.e. when searching for “401(k)” use “401\(k\)”).

Jameson Sansone - SEO & Demand Gen Marketing

Jameson Sansone

SEO enthusiast and jalapeño chip connoisseur.

Previous agency experience at Merkle + DuMont Project. Now working in-house at Human Interest and loving the B2B SaaS life. Sharing what I pick up along the way across SEO, content marketing, marketing automation, and more. Based in Raleigh, North Carolina.