{"id":5713,"date":"2022-08-25T10:09:37","date_gmt":"2022-08-25T10:09:37","guid":{"rendered":"https:\/\/craighordlow.com\/index.php\/2022\/08\/25\/implementing-an-internal-linking-module-should-you-build-it-or-buy-it\/"},"modified":"2022-08-25T10:09:37","modified_gmt":"2022-08-25T10:09:37","slug":"implementing-an-internal-linking-module-should-you-build-it-or-buy-it","status":"publish","type":"post","link":"https:\/\/craighordlow.com\/index.php\/2022\/08\/25\/implementing-an-internal-linking-module-should-you-build-it-or-buy-it\/","title":{"rendered":"Implementing an internal linking module: Should you build it or buy it?"},"content":{"rendered":"<p>Have you ever wondered what kinds of scalable SEO solutions can drive positive ROI year after year? <\/p>\n<p>It\u2019s possible using a feature called a \u201clink module.\u201d\u00a0<\/p>\n<p>Now, internal link modules can be built internally by product and engineering teams or outsourced to a third-party vendor.\u00a0<\/p>\n<p>But, SEO implementation managers beware: there are pros and cons to both paths between using a vendor solution or architecting it internally. Even a hybrid approach has tradeoffs.\u00a0<\/p>\n<p>As an in-house SEO at enterprise brands, I\u2019ve been involved with two approaches for optimizing internal linking using a link module. This article is my documentation of the process, retrospective and learnings with the outcomes of each.\u00a0<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_81 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/craighordlow.com\/index.php\/2022\/08\/25\/implementing-an-internal-linking-module-should-you-build-it-or-buy-it\/#TLDR_Theres_no_single_right_approach_to_implementing_internal_link_modules\" >TL;DR: There\u2019s no single right approach to implementing internal link modules\u00a0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/craighordlow.com\/index.php\/2022\/08\/25\/implementing-an-internal-linking-module-should-you-build-it-or-buy-it\/#What_is_a_link_module\" >What is a link module?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/craighordlow.com\/index.php\/2022\/08\/25\/implementing-an-internal-linking-module-should-you-build-it-or-buy-it\/#The_value_of_internal_link_modules\" >The value of internal link modules<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/craighordlow.com\/index.php\/2022\/08\/25\/implementing-an-internal-linking-module-should-you-build-it-or-buy-it\/#How_to_spot_a_link_module\" >How to spot a link module<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/craighordlow.com\/index.php\/2022\/08\/25\/implementing-an-internal-linking-module-should-you-build-it-or-buy-it\/#A_word_on_customization\" >A word on customization<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/craighordlow.com\/index.php\/2022\/08\/25\/implementing-an-internal-linking-module-should-you-build-it-or-buy-it\/#The_different_types_of_link_modules\" >The different types of link modules<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/craighordlow.com\/index.php\/2022\/08\/25\/implementing-an-internal-linking-module-should-you-build-it-or-buy-it\/#What_data_is_needed\" >What data is needed\u00a0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/craighordlow.com\/index.php\/2022\/08\/25\/implementing-an-internal-linking-module-should-you-build-it-or-buy-it\/#Implementation_options_Build_it_or_buy_it\" >Implementation options: Build it or buy it<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/craighordlow.com\/index.php\/2022\/08\/25\/implementing-an-internal-linking-module-should-you-build-it-or-buy-it\/#Scenario_1_Build_it\" >Scenario 1: Build it<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/craighordlow.com\/index.php\/2022\/08\/25\/implementing-an-internal-linking-module-should-you-build-it-or-buy-it\/#Scenario_2_Buy_it\" >Scenario 2: Buy it<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/craighordlow.com\/index.php\/2022\/08\/25\/implementing-an-internal-linking-module-should-you-build-it-or-buy-it\/#Results\" >Results\u00a0<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/craighordlow.com\/index.php\/2022\/08\/25\/implementing-an-internal-linking-module-should-you-build-it-or-buy-it\/#Building_it_internally\" >Building it internally<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/craighordlow.com\/index.php\/2022\/08\/25\/implementing-an-internal-linking-module-should-you-build-it-or-buy-it\/#Buying_it_from_a_vendor\" >Buying it from a vendor<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/craighordlow.com\/index.php\/2022\/08\/25\/implementing-an-internal-linking-module-should-you-build-it-or-buy-it\/#Ask_yourself_What_are_my_current_conditions\" >Ask yourself: What are my current conditions?\u00a0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/craighordlow.com\/index.php\/2022\/08\/25\/implementing-an-internal-linking-module-should-you-build-it-or-buy-it\/#Key_takeaways\" >Key takeaways\u00a0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/craighordlow.com\/index.php\/2022\/08\/25\/implementing-an-internal-linking-module-should-you-build-it-or-buy-it\/#Final_thoughts\" >Final thoughts\u00a0<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"TLDR_Theres_no_single_right_approach_to_implementing_internal_link_modules\"><\/span>TL;DR: There\u2019s no single right approach to implementing internal link modules\u00a0<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>To save you some reading time \u2013 there is no definitive answer either way. Primarily because there will be different conditions for each website, business and team.\u00a0<\/p>\n<p>From my perspective, it seems the best investment of resources is to build your own solution because this path offers the most control as the SEO architect. Still, I\u2019ve also been in the opposite scenario where the vendor solution was the only option, and it was equally viable.<\/p>\n<p>I can only offer my experience and observations, having gone through the process in both cases. Hopefully, these insights will help others determine the best path forward because internal link modules are a powerful SEO lever.\u00a0<\/p>\n<h2><span class=\"ez-toc-section\" id=\"What_is_a_link_module\"><\/span>What is a link module?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><a href=\"https:\/\/searchengineland.com\/3-easy-internal-linking-strategies-for-keywords-with-different-search-volumes-311890\" target=\"_blank\" rel=\"noopener\">The importance of internal linking architecture<\/a> for a website cannot be overstated. Google\u2019s Webmaster Guidelines <a href=\"https:\/\/developers.google.com\/search\/blog\/2008\/10\/importance-of-link-architecture\" target=\"_blank\" rel=\"noreferrer noopener\">stipulate<\/a> that webmasters \u201ckeep important pages within several clicks from the homepage.\u201d\u00a0<\/p>\n<p>That\u2019s where link modules come in.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"140\" src=\"https:\/\/searchengineland.com\/wp-content\/seloads\/2022\/08\/1-what-is-a-link-module-example-800x140.png\" alt=\"Example of an internal link module.\" class=\"wp-image-387461\" title=\"| Craig Hordlow\"><\/figure>\n<\/div>\n<p>A link module is a widget inserted into the CSS code of a webpage. It is primarily designed to provide search engine bots easy access to other, prominent internal links as a pathway to finding and passing along link authority throughout the site.\u00a0<\/p>\n<p>Furthermore, the widget:<\/p>\n<ul>\n<li>Allows search engine crawlers (like Googlebot and Bingbot) to easily discover semantically related pages from a single page on which the link module is published on.<\/li>\n<li>Helps prospective customers discover related sections of the website or other similar products.\u00a0<\/li>\n<li>Can be used to pass on the earned authority and page strength from a single page to other pages \u2013 distributing link equity across the site. As a result, it can receive more organic traffic from search engines.<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"The_value_of_internal_link_modules\"><\/span>The value of internal link modules<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>When your goal is new customer acquisition, a link module is invaluable. To illustrate, have you ever heard of palazzo pants?\u00a0<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"800\" height=\"455\" src=\"https:\/\/searchengineland.com\/wp-content\/seloads\/2022\/08\/2-google-SERP-palazzo-pants-800x455.png\" alt=\"Google search results for &quot;palazzo pants&quot;.\" class=\"wp-image-387463\" title=\"| Craig Hordlow\"><\/figure>\n<\/div>\n<p>At the time, until I Googled it, I hadn\u2019t either. They\u2019re a style of women\u2019s wide-legged pants that are typically only seasonally relevant to the search channel.\u00a0<\/p>\n<p>According to Semrush, at upwards of 40,000 searches per month, it\u2019s also a pretty competitive search term.\u00a0<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"800\" height=\"204\" src=\"https:\/\/searchengineland.com\/wp-content\/seloads\/2022\/08\/3-sem-rush-KW-overview--800x204.png\" alt=\"Semrush keyword overview for &quot;palazzo pants&quot;\" class=\"wp-image-387464\" title=\"| Craig Hordlow\"><\/figure>\n<\/div>\n<p>A solution for most enterprise ecommerce brands is to have a small amount of content on the page to try to capture rankings and clicks for this term.\u00a0<\/p>\n<p>But, if you can bolster your page with an internal link module (\u201cPopular Searches\u201d below) that contains other useful internal site links, you\u2019ll be ahead of the competition.\u00a0<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"363\" src=\"https:\/\/searchengineland.com\/wp-content\/seloads\/2022\/08\/4-palazzo-pants-redacted-example-800x363.png\" alt=\"Internal link module for palazzo pants.\" class=\"wp-image-387465\" title=\"| Craig Hordlow\"><\/figure>\n<\/div>\n<p>The one-two punch is that in addition to the <a href=\"https:\/\/searchengineland.com\/optimize-ecommerce-site-better-indexing-387037\" target=\"_blank\" rel=\"noopener\">optimized, on-page copy<\/a>, a link module can contain seasonally relevant search terms as anchor text and related internal links. It\u2019s dynamically designed to be as relevant as possible.\u00a0<\/p>\n<h2><span class=\"ez-toc-section\" id=\"How_to_spot_a_link_module\"><\/span>How to spot a link module<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Internal link modules are typically located in the middle or bottom of a webpage. You\u2019ll recognize the customer-facing solution (below) since it appears to be a grouping or overview of relevant topics on the site.\u00a0<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"264\" src=\"https:\/\/searchengineland.com\/wp-content\/seloads\/2022\/08\/5-HD-link-module-800x264.png\" alt=\"Internal link module for a website.\" class=\"wp-image-387466\" title=\"| Craig Hordlow\"><\/figure>\n<\/div>\n<p>Once you know what to look for, you can spot a link module almost anywhere.\u00a0<\/p>\n<h2><span class=\"ez-toc-section\" id=\"A_word_on_customization\"><\/span>A word on customization<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Most vendor solutions allow you to customize their link module product on your website to match your brand guidelines.\u00a0<\/p>\n<p>Alternatively, in-house designers and UX teams should be involved in building a proprietary internal link module. <\/p>\n<p>These teams are more familiar with your customer and, therefore, able to reflect their needs and interests in the design and UX of the module itself. That is, if you can get on their design roadmap.\u00a0<\/p>\n<h2><span class=\"ez-toc-section\" id=\"The_different_types_of_link_modules\"><\/span>The different types of link modules<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Now put on your 3D goggles because we\u2019re going to look at the links themselves.\u00a0<\/p>\n<p>If we peel back the visual part of the internal link module that a user sees on the page, there is an invisible distinction between the types of link modules at play.\u00a0<\/p>\n<p>The differentiation is mainly visible to search engines since it pertains to the type of links involved. The two types I\u2019m referring to in this article are:<\/p>\n<ul>\n<li>Related internal links<\/li>\n<li>Managing internal link equity<\/li>\n<\/ul>\n<p>Related internal links are relevant to the page they are on and point to other pages that are relevant to that page in some way (like the palazzo pants example).\u00a0<\/p>\n<p>Management of <a href=\"https:\/\/searchengineland.com\/3-ways-improve-link-equity-distribution-282387\" target=\"_blank\" rel=\"noopener\">internal link equity<\/a> is about being intentional in directing the page authority through internal links. This means that the link on the page may or may not be directly relevant to that page, but it\u2019s there because its goal is to pass that page\u2019s authority on to other parts of the site.\u00a0<\/p>\n<p>The first type deals with relevance, the latter with managing page authority. Both have different impacts.<\/p>\n<p>The first can impact conversions more since you\u2019re ostensibly leading the user to a useful, related page. The latter can impact page indexation and long-tail rankings.\u00a0<\/p>\n<p>This segues into what type(s) of data are needed to feed different types of internal linking modules.\u00a0<\/p>\n<h2><span class=\"ez-toc-section\" id=\"What_data_is_needed\"><\/span>What data is needed\u00a0<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Much like the output of a good recipe is predicated on using the best ingredients, one of the critical components of a useful link module is the data input.\u00a0<\/p>\n<p>The types of in-house data that can power a link module is, to a degree, anything you can get your hands on. It can be anything from on-site search queries to an API intake of the company\u2019s Google Ads account. <\/p>\n<p>Based on what\u2019s at your disposal to pull in, the ultimate goal is this:<\/p>\n<p>The information should be useful to both humans and search engines.\u00a0<\/p>\n<p>Ideally, your in-house data will be better than what a third-party tool can provide. I say this because, hopefully, you have access to your proprietary data as an in-house SEO. <\/p>\n<p>However, it\u2019s not uncommon that the data is noisy, unreliable or the mapping is incomplete, which can constitute needing to leverage a vendor solution.\u00a0<\/p>\n<p>On the vendor side, enterprise tools typically either have their own database of keywords and therefore bring things like search volume data to the table (of course, they prefer to use search terms important to your business). Alternatively, they\u2019ll want to tie into your Google Search Console data.\u00a0<\/p>\n<p>If you need to outsource the data inputs be prepared to pay for maintaining those inputs on an ongoing basis. This is why vendor solutions can often become more expensive over time but it depends upon the conditions in which you find yourself (more on this, too, later).\u00a0<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Implementation_options_Build_it_or_buy_it\"><\/span>Implementation options: Build it or buy it<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Now that you know what a link module is, where to find it on a page and what kind of data powers it, let\u2019s dive into the high level of what\u2019s involved with launching this feature: building vs. buying.\u00a0<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Scenario_1_Build_it\"><\/span>Scenario 1: Build it<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>For context, below is an overview of the project I worked on when building a link module.\u00a0<\/p>\n<ul>\n<li><strong>Website type: <\/strong>Aggregator of branded products<\/li>\n<li><strong>Domain size:<\/strong> Enterprise, roughly 3 million URLs\u00a0<\/li>\n<li><strong>Data sources used:<\/strong> On-site search terms, Google Ads, third-party enterprise software<\/li>\n<li><strong>Number of links displayed within the module:<\/strong> +\/- 13<\/li>\n<li><strong>Level of effort:<\/strong> High\u00a0<\/li>\n<\/ul>\n<p>When I came on board, the solution for related internal linking had already been architected by the current SEO Product Lead. I want to underscore that it took him, mostly by himself, the better part of 2 years just to put into place a strategy, resources and data sources for facilitating this type of feature that operated (for the most part) autonomously.\u00a0<\/p>\n<p>My role was to help drive the project toward a fully automated, in-house solution. This took a lot of cross-functional coordination and planning.<\/p>\n<p>The hard work is in setting up the intricate processes, product feature documentation and regression tests so that each job runs consistently and seamlessly. There\u2019s a process for internal business teams and stakeholders to be able to adjust or override the link module as needed. Keep in mind, done well, this type of coordination can take a few years to accomplish.\u00a0<\/p>\n<p>If you have the right conditions and resources to support this approach, it\u2019s worth it due to several factors.\u00a0<\/p>\n<p>In terms of ROI, there are no external vendor costs. The main (if not only) costs are the internal teams\u2019 hourly wages for building the feature and then maintaining it in terms of initial performance and iterative optimizations.\u00a0<\/p>\n<p>Another positive factor in building internally is the ability to customize the design and directly manage the data inputs for optimal performance. Here, you can:<\/p>\n<ul>\n<li>Refresh the data inputs at a custom frequency.<\/li>\n<li>Switch out or add additional data sources to the operational logic, which isn\u2019t always available in a vendor solution.<\/li>\n<\/ul>\n<p>The drawbacks are:<\/p>\n<ul>\n<li>A high level of effort.<\/li>\n<li>Lengthy speed to market.\u00a0<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Scenario_2_Buy_it\"><\/span>Scenario 2: Buy it<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>For context, below is an overview of the project I worked on when implementing a vendor solution.<\/p>\n<ul>\n<li><strong>Website type:<\/strong> Household appliances, hardware parts and tools\u00a0<\/li>\n<li><strong>Domain size:<\/strong> Enterprise, Less than 1 million URLs<\/li>\n<li><strong>Data sources used:<\/strong> Enterprise tool for keywords and search volume data, client\u2019s Adobe Analytics traffic data\u00a0<\/li>\n<li><strong>Number of links displayed within the module:<\/strong> Varies<\/li>\n<li><strong>Level of effort:<\/strong> Medium\u00a0<\/li>\n<\/ul>\n<p>In this scenario, it was a 6-month scope of work to update the existing on-page feature. The vendor\u2019s link module product had previously been implemented on the site, and there was finally alignment with the budget and contracts to invest in the project again.\u00a0<\/p>\n<p>My second week on the job was the kick-off call for this project. You can imagine my gratitude for leveraging a vendor that had previously provided this solution and our agency resources.\u00a0<\/p>\n<p>For context, this link module was designed to manage internal link equity. So the biggest benefit was speed to market since we were leveraging their proprietary algorithm that \u201cboosted\u201d or \u201cdampened\u201d internal pages based on our business feedback. The remaining ingredient was identifying the URLs we, as the business, wanted to give more link equity to\/from.<\/p>\n<p>However, I quickly learned that this was not a simple refresh but a complete revamp. <\/p>\n<p>It had been several years since the widget was updated. During that period, the website migrated to a new platform, shed some product lines and acquired new ones. On top of that, it was right in the middle of the COVID-19 pandemic, so we won\u2019t be able to compare pre\/post-performance data accurately.\u00a0<\/p>\n<p>While I\u2019m proud to say the engineering team was able to launch the first feature implementation on the site, I learned a lot from this process.<\/p>\n<p><strong>Observations<\/strong><\/p>\n<p>A few helpful tips if you\u2019re considering installing a vendor solution:\u00a0<\/p>\n<ul>\n<li>Vendor link module solutions are a great quick way to get the benefit of a link module running on your site. But take it with a grain of salt when they say their solution is as easy as a WYSIWYG editor that works just by dropping the code on the page. Nothing is ever quite that easy or simple.\u00a0<\/li>\n<li>To that end, always get a sample set of the code and provide it to your engineers to test in a development environment. It\u2019s an opportunity to test what code the vendor is sending over in a sandbox to make sure it works well with your existing site code and tech stack.\u00a0<\/li>\n<li>Build extra time to your sprints to allow for \u201ctransforming\u201d the data. Any intake from a vendor needs to be transcribed to your tech stack for it to work. Building buffer time into your dev sprints for this work helps set expectations with leadership.\u00a0<\/li>\n<li>Start gathering your pre\/post data early. Analytics teams usually have a million requests, so you\u2019ll want to get on their radar early. You will need data before and after the feature is live for specific periods to help you evaluate the impact.\u00a0<\/li>\n<\/ul>\n<hr class=\"wp-block-separator has-text-color has-background has-cyan-bluish-gray-background-color has-cyan-bluish-gray-color\">\n<p><!-- START INLINE FORM --><\/p>\n<div class=\"nl-inline-form border py-2 px-1 my-2\">\n<div class=\"row align-items-center\">\n<div class=\"col-12 col-lg-3 col-xl-4 pe-md-0 pb-2 pb-lg-0\">\n<p class=\"inline-form-text text-center mb-0\">Get the daily newsletter search marketers rely on.<\/p>\n<\/p><\/div>\n<div class=\"col-12 col-lg-7 col-xl-6  pe-lg-0\">\n<div class=\"form-nl-inline\">\n<div class=\"row g-0\">\n<div class=\"form-group col-12 col-lg-8 mb-0\"><\/div>\n<div class=\"col-12 col-lg-4 col-xl-4 mb-0\">\n<div class=\"d-none\">\n<p>Processing&#8230;Please wait.<\/p>\n<\/div>\n<p>\t\t\t\t\t\t\t<button class=\"btn btn-dark inlineButton w-100 rounded-0 font-weight-bold\" type=\"submit\" name=\"submit_button\">SUBSCRIBE<\/button>\n\t\t\t\t\t\t<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"col-12 col-lg-2 col-xl-2 ps-1\">\n<p class=\"text-center mb-0\"><a class=\"nl-terms\" href=\"https:\/\/searchengineland.com\/termsofuse\" target=\"_blank\" rel=\"noopener noreferrer\">See terms.<\/a><\/p>\n<\/p><\/div>\n<\/p><\/div>\n<\/div>\n<p><!-- END INLINE FORM --><\/p>\n<hr class=\"wp-block-separator has-text-color has-background has-cyan-bluish-gray-background-color has-cyan-bluish-gray-color\">\n<h2><span class=\"ez-toc-section\" id=\"Results\"><\/span>Results\u00a0<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Oscar Wilde said, \u201cSuccess is a science; if you have the conditions, you get the result.\u201d<\/p>\n<p>By this point, I\u2019m sure you can appreciate the caveats and complexities of implementing a link module, as the conditions are different for every business.\u00a0<\/p>\n<p>With that, it\u2019s time for some pros and cons, which should be weighed against your own set of conditions, goals and resources.\u00a0<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Building_it_internally\"><\/span>Building it internally<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>A proprietary, automated link module that leverages related internal links can deliver ROI year after year. To an enterprise brand with ~3 million URLs and an average of 300,000 organic sessions per week for the linked pages, this correlated to sales and sessions on an annualized basis of tens of millions of dollars (based on an analysis in 2019).\u00a0<\/p>\n<p>It also has value to customers in terms of product discovery. The link module is helpful to shoppers who don\u2019t immediately find exactly what they\u2019re looking for on a particular page. <\/p>\n<p>For example, on a broad category page like \u201cdresses,\u201d the widget might include links to variations like wedding gowns, summer dresses, or lace dresses. The customer can click these links to find more pages highly relevant to her search for that perfect dress.<\/p>\n<p>The potential drawbacks are the necessary conditions of needing an in-house team with sufficient budget and time to bring a feature of this size and value to fruition.\u00a0<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Buying_it_from_a_vendor\"><\/span>Buying it from a vendor<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Conversely, if your scenario is such that you have a small SEO team or don\u2019t have sufficient in-house data to power a link module of any kind, a vendor solution might be best for you.\u00a0<\/p>\n<p>One drawback is the need to build into your budget and plan ahead a few years for timely upkeep and maintenance.\u00a0<\/p>\n<p>In terms of measuring the impact of the vendor solution for this internal link equity module, the overall results were positive yet not as impressive as we would have liked due to a few internal and external factors.\u00a0<\/p>\n<p>As previously mentioned, the migration, the removal of a significant number of pages, and the addition of new pages largely meant the internal link module update set a new baseline.\u00a0<\/p>\n<p>This was a core project, but it wasn\u2019t enough to provide the impact we hoped for as a stand-alone initiative.\u00a0<\/p>\n<p>It underscores that to drive real and sustainable growth, other factors like <a href=\"https:\/\/searchengineland.com\/case-study-the-true-value-of-informational-content-for-e-commerce-seo-327692\" target=\"_blank\" rel=\"noopener\">creating unique content<\/a> and <a href=\"https:\/\/searchengineland.com\/content-better-user-experience-386253\" target=\"_blank\" rel=\"noopener\">improving the user experience<\/a> should also be addressed. The link module was just a stepping stone without unique <a href=\"https:\/\/searchengineland.com\/how-e-a-t-content-and-link-building-can-drive-ymyl-seo-success-382652\" target=\"_blank\" rel=\"noopener\">E-A-T content<\/a> to capture non-brand searches.<\/p>\n<p>Conceptually, it\u2019s similar to changing out parts of a race car. The goal is to improve overall performance. But, if sequentially, you\u2019re only able to replace just the engine and the hoses with new clean parts that will only address part of the entire system that powers the race car.\u00a0<\/p>\n<p>Other equally important parts of the car also need updating \u2013 tires, steering wheel, brakes, the data system and transponder, suspension \u2013 all parts functioning at their best keep the car performing at a high level.\u00a0<\/p>\n<p>Back to us tuning up our website, in addition to a platform migration, there were changes in the amount and type of URLs. There was also external volatility as Google publicly acknowledged <a href=\"https:\/\/searchengineland.com\/google-broad-core-algorithm-update-guide-382149\" target=\"_blank\" rel=\"noopener\">various algorithm updates<\/a>.\u00a0<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"343\" src=\"https:\/\/searchengineland.com\/wp-content\/seloads\/2022\/08\/6-GA-overview-chart-800x343.png\" alt=\"| Craig Hordlow\" class=\"wp-image-387467\" title=\"| Craig Hordlow\"><\/figure>\n<\/div>\n<p>Deploying a link module is a point-in-time optimization. Subsequently, there was a noticeable +12% increase in sessions in the 30 days following the launch. The impact provides a continuous benefit given that it\u2019s now better optimized overall.\u00a0<\/p>\n<p>As such, there were a few promising trends in the following 16 months, from April 2021\u2013July 2022. All things being equal \u2013 where the module was live on the pages of the site and such pages were indexed \u2013 the observed positive correlations include:<\/p>\n<ul>\n<li>Roughly 270 non-brand search terms containing the word \u201cparts\u201d (a search term indicating intent) drove:\n<ul>\n<li>262,000+ clicks.\u00a0<\/li>\n<li>5 million+ impressions.<\/li>\n<li>2.1 million+ clicks on mobile and 1.4 million+ on desktop.<\/li>\n<\/ul>\n<\/li>\n<li>Just under 200 of those terms occupied positions 1-2 which means a decent amount of SERP visibility and subsequent traffic.<\/li>\n<\/ul>\n<p>Furthermore, the pages where link equity was directed continue to show improved performance. <\/p>\n<p>What\u2019s also promising is that the new pages added (page type C) were the third highest group that improved in terms of clicks which illustrates that internal links can positively impact long-tail queries and their pages.<\/p>\n<figure class=\"wp-block-table is-style-stripes\">\n<table>\n<tbody>\n<tr>\n<td><strong>Page Types<\/strong><\/td>\n<td><strong>Clicks<\/strong><\/td>\n<td><strong>Impressions<\/strong><\/td>\n<td><strong>Notes<\/strong><\/td>\n<\/tr>\n<tr>\n<td>A Pages<\/td>\n<td>7.5M<\/td>\n<td>37M<\/td>\n<td>Transactional pages we wanted improved<\/td>\n<\/tr>\n<tr>\n<td>B Pages<\/td>\n<td>1.7M<\/td>\n<td>41M<\/td>\n<td>Informational pages<\/td>\n<\/tr>\n<tr>\n<td>C Pages\u00a0<\/td>\n<td>1.2M<\/td>\n<td>29M<\/td>\n<td>New pages added to the link module<\/td>\n<\/tr>\n<tr>\n<td>D Pages<\/td>\n<td>1M<\/td>\n<td>40M<\/td>\n<td>Transactional pages<\/td>\n<\/tr>\n<tr>\n<td>E Pages<\/td>\n<td>610K<\/td>\n<td>16M<\/td>\n<td>Informational\/ Overview pages<\/td>\n<\/tr>\n<tr>\n<td>F Pages<\/td>\n<td>559K<\/td>\n<td>14M<\/td>\n<td>Transactional pages<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p>In retrospect, for this domain, revamping the internal linking architecture was needed. But in isolation, it could only do so much.\u00a0<\/p>\n<p>To drive real, sustainable growth, all aspects of SEO, from content to technical to user experience, needed to be firing on all cylinders to drive optimal performance.\u00a0<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Ask_yourself_What_are_my_current_conditions\"><\/span>Ask yourself: What are my current conditions?\u00a0<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Given all of this input, you\u2019ve probably come to understand there are a fair amount of tradeoffs whether you build or buy this type of solution. <\/p>\n<p>It\u2019s worth evaluating your scenario to determine which approach is best. Ask yourself:\u00a0<\/p>\n<ul>\n<li>What are my in-house resources in terms of engineering and\/or product support?\u00a0<\/li>\n<li>What kind of data do I have access to, and is it the necessary data to power a link module?<\/li>\n<li>Is there a product manager who would help me implement this feature? Or, as the SEO PM, what features am I deprioritizing in order to prioritize this initiative?\u00a0<\/li>\n<li>What level of maintenance or support am I\/my team able to provide on an ongoing basis?\u00a0\u00a0<\/li>\n<li>What\u2019s my budget? What does supporting a vendor solution over 5 years look like as opposed to in-house teams overseeing the upkeep?<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Key_takeaways\"><\/span>Key takeaways\u00a0<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Both paths require ongoing investment. The question to ask is, \u201cwhen and how much?\u201d Then, \u201cwhat resources and support do we have?\u201d\u00a0<\/p>\n<p>The benefit of building a link module is that the initial investment costs are primarily upfront so that by Year 5, the ongoing cost to the business (outside of FTE headcount) pertains to maintenance and optimization.\u00a0<\/p>\n<p>The \u201cbuy\u201d solution can deliver more immediate incremental revenue but without internal support, it will need a future investment to update the module to keep it running at its optimal level.\u00a0<\/p>\n<p>When evaluating which approach is best for your business, a visual matrix helps illustrate the level of effort and investment involved.\u00a0<\/p>\n<p>While writing and researching this article, I learned of a third option. If you have the means for a hybrid solution, it could be best to contract a vendor to guide and advise your internal engineering and product teams on building your in-house solution. #nextlevelSEO<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"445\" src=\"https:\/\/searchengineland.com\/wp-content\/seloads\/2022\/08\/7-matrix-800x445.png\" alt=\"Internal link module implementation matrix.\" class=\"wp-image-387468\" title=\"| Craig Hordlow\"><\/figure>\n<\/div>\n<p>Additionally, a cost-benefit analysis between the two offers a perspective of the tradeoffs involved and associated costs against your conditions and resources. <\/p>\n<p>Below is a rough, back-of-the-napkin outline designed to get your wheels turning.\u00a0<\/p>\n<figure class=\"wp-block-table is-style-stripes\">\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td><strong>Build<\/strong><\/td>\n<td><strong>Buy<\/strong><\/td>\n<td><strong>Considerations<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Year 1<\/td>\n<td>Activity: Building<br \/>Cost: ~$7M FTE~300K\/year engineering\u00a0<\/td>\n<td>Activity: 6-month implementation. Incremental ROI begins.<br \/>Cost: ~$100K Vendor solution~$550K\/yr FTE + engineering<\/td>\n<td>The benefit of buying is the speed to market &amp; incremental revenue.<\/td>\n<\/tr>\n<tr>\n<td>Year 2<\/td>\n<td>Activity: Building<br \/>Cost: ~$7M FTE~300K\/year engineering\u00a0<\/td>\n<td>Activity: Monitor &amp; measure, ROI.<br \/>Cost: ~$550K\/yr FTE + engineering<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Year 3<\/td>\n<td>Activity: Finalize build. Test\/launch. Incremental ROI begins.<br \/>Cost: ~$3-5M FTE<\/td>\n<td>Activity: Monitor &amp; measure, ROI.<br \/>Cost: ~$400K\/yr FTE + engineering\u00a0<\/td>\n<td>Ideally, the cost of building decreases as you transition into a \u201cmaintain and optimize\u201d phase.<\/td>\n<\/tr>\n<tr>\n<td>Year 4<\/td>\n<td>Activity: Adjustments as needed. ROI continues.<br \/>Cost: ~$3-5M FTE<\/td>\n<td>Activity: Update the link module + improve customer-facing design, etc.<br \/>Cost: ~$100K Vendor solution~$550K\/yr FTE<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Year 5<\/td>\n<td>Activity: maintenance &amp; optimization. ROI continues.<br \/>Cost: ~$3-5M FTE<\/td>\n<td>Activity: Update link module if not done in year 4. <br \/>Cost: ~$100K Vendor solution~$550K\/yr FTE<\/td>\n<td>Within either year 4-5, the vendor solution should be updated.\u00a0<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p><strong>Practical note:<\/strong> Over the course of four years, the costs of maintenance for a vendor approach over Years 2 and 3 should be compared to the estimated internal hours of a given SEO team maintaining this internally. In theory, this could tip the scale in favor of a \u201cbuild it\u201d solution when looking at the costs of both solutions over 3+ years.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Final_thoughts\"><\/span>Final thoughts\u00a0<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>So, the CliffsNotes version is this: if you\u2019re going to play with link flow or crafting equity, prepare for inherent complexities. <\/p>\n<p>When I began writing this article I thought the best path was to build a proprietary link module, if time\/resources\/technology etc. allows because, ultimately, you as the SEO Product Manager will be at the helm dialing in the specifications of how the feature works and performs. <\/p>\n<p>I still think that\u2019s true but, it\u2019s myopic to think that solution works for everyone. The same solution might not be right for another in-house team with a different set of conditions.\u00a0\u00a0<\/p>\n<p>The fundamentals are still true here: SEO is a long game, it <a href=\"https:\/\/searchengineland.com\/seo-investment-not-cost-384995\" target=\"_blank\" rel=\"noopener\">requires investment<\/a> just like any acquisition channel does in order to grow, and it\u2019s interconnected to the online experience as a whole. In addition to improving one aspect (like internal linking) compounding results are driven by an ongoing, collective set of improvements made to other aspects of the site like content, UX, page speed, etc.\u00a0<\/p>\n<p>That said, if you can leverage a vendor to guide your internal teams in the building process, that just might be the proverbial golden ticket.\u00a0<\/p>\n<p><strong>Dedication<\/strong><\/p>\n<p>Sharing inconclusive results about our work is not always easy. I\u2019d like to dedicate this article to the late <a href=\"https:\/\/searchengineland.com\/bill-slawski-passes-away-385293\" target=\"_blank\" rel=\"noopener\">Bill Slawski<\/a>, the \u201cDean of SEO\u201d as he was recently called by his fellow colleagues who I feel share the same respect for wanting to honor his memory.\u00a0<\/p>\n<p>Special thanks to <a href=\"https:\/\/www.linkedin.com\/in\/jacquelineurick\/\" target=\"_blank\" rel=\"noreferrer noopener\">Jacqueline Urick<\/a> and <a href=\"https:\/\/www.linkedin.com\/in\/davidgraveline\/\" target=\"_blank\" rel=\"noreferrer noopener\">David Graveline<\/a> for their contributions to this article.\u00a0<\/p>\n<p>The post <a rel=\"nofollow noopener\" href=\"https:\/\/searchengineland.com\/internal-linking-module-build-vs-buy-387460\" target=\"_blank\">Implementing an internal linking module: Should you build it or buy it?<\/a> appeared first on <a rel=\"nofollow noopener\" href=\"https:\/\/searchengineland.com\/\" target=\"_blank\">Search Engine Land<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Have you ever wondered what kinds of scalable SEO solutions can drive positive ROI year after year? It\u2019s possible using a feature called a \u201clink module.\u201d\u00a0 Now, internal link modules can be built internally by product and engineering teams or outsourced to a third-party vendor.\u00a0 But, SEO implementation managers beware: there are pros and cons to both paths between using a vendor solution or architecting it internally. Even a hybrid approach has tradeoffs.\u00a0 As an in-house SEO at enterprise brands, I\u2019ve been involved with two approaches [&hellip;]<\/p>\n","protected":false},"author":0,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"h5ap_radio_sources":[],"cybocfi_hide_featured_image":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-5713","post","type-post","status-publish","format-standard","hentry","category-best-seo-blogs"],"featured_image_src":null,"featured_image_src_square":null,"author_info":{"display_name":false,"author_link":"https:\/\/craighordlow.com\/author\/"},"_links":{"self":[{"href":"https:\/\/craighordlow.com\/index.php\/wp-json\/wp\/v2\/posts\/5713","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/craighordlow.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/craighordlow.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/craighordlow.com\/index.php\/wp-json\/wp\/v2\/comments?post=5713"}],"version-history":[{"count":0,"href":"https:\/\/craighordlow.com\/index.php\/wp-json\/wp\/v2\/posts\/5713\/revisions"}],"wp:attachment":[{"href":"https:\/\/craighordlow.com\/index.php\/wp-json\/wp\/v2\/media?parent=5713"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/craighordlow.com\/index.php\/wp-json\/wp\/v2\/categories?post=5713"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/craighordlow.com\/index.php\/wp-json\/wp\/v2\/tags?post=5713"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}