Good links are the lifeblood of good information architecture (IA). The On-Page Link Report tool gives you the data you need to understand a page’s function (or disfunction) in your inbound Search experience.
It also has applications in several SEO use cases. is your link auditing sidekick. Available on Chrome, and powered by JavaScript, it provides snappy on-page interlinking data with filters and export options.
How It Works
Good links are the lifeblood of good information architecture. This tool gives you the data you need to understand a page’s function (or disfunction) in building Search experiences that drive results, and the flexibility to apply to various SEO practices.

When run, the code executes client-side JavaScript to scan the active browser tab.
Then, a new tab will open. Containing a user-friendly view of each link URL detected, plus additional context critical to foundational SEO.
Use Cases
It’s more than a link checker. It’s utility extends beyond on-page link structure scanning:
- Screen Reader Accessibility: Instantly view and export image alt text of a page, or product galleries without navigating CMS, scanning HTML, downloading a browser extension or firing up your web crawler.
- Funnel Mapping: With this in mind, run the report on hub pages, conversion pages, and organizational detail pages to understand how you’re distributing link equity & transforming intent.
- Benchmark the Competition: ranking shifts are often tied to competitors improving the Search experience or contextualizing link equity distribution with a buyer’s journey. Run the report an key pages on competitor sites periodically to learn from their successes (or mistakes).
- Check Your Digital Footprint: run it on socials, directory profiles, and pages that mention your brand. In any setting, the on-page link report gives you the ingredients for quick-start optimization prioritization.
Disclaimer: some websites prevent the use of bookmarklets, in some cases clearing cache and restarting the browsers fixes it.
Setup Guide
Read on for the step-by-step guide for your new on-page link analysis toolkit.
-
Create the Bookmarklet
To get started, scroll to Copy The Code and prepare you pasting skills.
Click the snippet to copy the bookmarklet code.
Create a new bookmark in your browser.
When prompted to add a URL for your new bookmark, instead paste the bookmarklet code you just copied. -
Navigate to Any Web Page
Open the page you want to audit: homepage, a product page, a blog post, or a competitor site. The choice is yours.
-
Click the New Bookmarklet
Once you’ve decided the page you’d like to audit, click the new bookmarklet. Instantly, the tool will open a new tab and render a full link report, sorted by internal and external links.
-
Filter by Location
Use the quick filters to view links in specific locations. This tool supports filtering by navigation (head nav), footer, body, and image links. Great for spotting nav clutter, broken footers, empty anchors and hidden links.
-
Customize the Data You Export
Click “COPY VISIBLE” to quickly grab a clean, spreadsheet-friendly copy of the links displayed. Paste directly into spreadsheets, word document, or slide deck. Please note that “COPY VISIBLE” is literal – if you filter to view only external image links then that’s what you’ll be able to copy.
Copy Code
javascript:(function(){function guessLocation(a){ if(a.closest('footer,[role="contentinfo"],.footer')) return "Footer"; if(a.closest('nav,[role="navigation"],.nav,.navbar,header,[data-nav]')) return "Navigation"; return "Body";}var domain = location.hostname.replace(/^www\./, "");var all = [].map.call(document.querySelectorAll("a[href]"), function(a){ var href = a.href; var loc = guessLocation(a); var img = a.querySelector("img"); if(img){ return {text: img.alt ?%20img.alt%20:%20%22%E2%9A%A0missing!%22,%20href:%20href,%20loc:%20%22Image%22,%20table:%20%22Images%22};%20}%20if(a.querySelector(%22svg%22)){%20return%20{text:%20%22[SVG%20Icon]%22,%20href:%20href,%20loc:%20%22Image%22,%20table:%20%22Images%22};%20}%20var%20text%20=%20a.innerText.trim()%20||%20a.getAttribute(%22aria-label%22)%20||%20href;%20return%20{text:%20text,href:%20href,loc:%20loc,internal:%20(new%20URL(href,%20location.href).hostname.replace(/^www\./,%22%22)%20===%20domain),table:%20(new%20URL(href,%20location.href).hostname.replace(/^www\./,%22%22)%20===%20domain)%20?%20%22Internal%22%20:%20%22External%22%20};});var%20internals%20=%20all.filter(l%20=%3E%20l.table%20===%20%22Internal%22);var%20externals%20=%20all.filter(l%20=%3E%20l.table%20===%20%22External%22);var%20images=%20all.filter(l%20=%3E%20l.table%20===%20%22Images%22);function%20renderTable(rows){%20return%20%27%3Cdiv%20class=%22table%22%3E%3Cdiv%20class=%22row%20header%22%3E%3Cdiv%20class=%22cell%20colA%22%3EAnchor%3C/div%3E%3Cdiv%20class=%22cell%20colB%22%3ELocation%3C/div%3E%3Cdiv%20class=%22cell%20colC%22%3EURL%3C/div%3E%3C/div%3E%27%20+%20rows.map(l%20=%3E%27%3Cdiv%20class=%22row%20loc-%27%20+%20l.loc%20+%20%27%22%3E%27%20+%27%3Cdiv%20class=%22cell%20colA%22%3E%27%20+%20l.text.replace(/%3C/g,%20%22<%22)%20+%20%27%3C/div%3E%27%20+%27%3Cdiv%20class=%22cell%20colB%22%3E%27%20+%20l.loc%20+%20%27%3C/div%3E%27%20+%27%3Cdiv%20class=%22cell%20colC%22%3E%3Ca%20href=%22%27%20+%20l.href%20+%20%27%22%20target=%22_blank%22%3E%27%20+%20l.href%20+%20%27%3C/a%3E%3C/div%3E%27%20+%27%3C/div%3E%27%20).join(%22%22)%20+%20%22%3C/div%3E%22;}var%20html%20=%20`%3C!doctype%20html%3E%3Chtml%3E%3Chead%3E%3Cmeta%20charset=%22utf-8%22%3E%3Ctitle%3E%F0%9F%97%B2%20On-Page%20Link%20Report%20by%20the%20Strandfish%20Collective%3C/title%3E%3Cstyle%3E:root{--animation-speed:.3s;--light-font-color:#424242;--light-header-bg:#2c302e;--light-bg-color:#fff;--light-cell-font-color:#fe6f5e;--light-a-color:#20a39e;--dark-font-color:#dbffb9;--dark-cell-font-color:#fff;--dark-a-color:#f5cff4;--dark-bg-color:#2c302f;--dark-header-bg:#000;--font-color:var(--light-font-color);--a-color:var(--light-a-color);--cell-font-color:var(--light-cell-font-color);--header-bg:var(--light-header-bg);--bg-color:var(--light-bg-color);--fs:1em;--pad:16px;--wmax:1100px}*{box-sizing:border-box}body{font-family:Calibri,Arial,Helvetica,sans-serif;font-size:var(--fs);margin:0;color:var(--font-color);background:linear-gradient(to%20right,#00FFCD%200%,#F5CFF4%20100%)}h1{font-size:14px;margin:0%200%208px}a{text-decoration:underline;color:var(--a-color)}button{padding:6px%2010px;margin:6px%204px}.wrap{max-width:100%;margin:0;padding:var(--pad);background:var(--bg-color)}header.strandfish-seo-tool-header{background:linear-gradient(to%20right,#00FFCD%200%,#F5CFF4%20100%);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;font-size:.9em;padding:10px%2016px}header%20a{text-decoration:none;color:black;font-weight:600}header%20.fish-icon.wave{font-size:6em;line-height:0;background:linear-gradient(90deg,#00FFCD,#F5CFF4,#00FFCD);background-size:200%%20100%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:shimmer%203s%20infinite%20linear;cursor:pointer}@keyframes%20shimmer{0%{background-position:200%%200}100%{background-position:-200%%200}}header%20.fish-icon.wave:hover{animation-play-state:paused;transform:scale(1.1)}..filters{text-align:right;margin:0%20auto%2012px}.filters%20input[type=radio]{display:none}.filters%20label{display:inline-block;min-width:120px;background:var(--bg-color);border:1px%20solid;color:var(--font-color);padding:8px%2010px;margin:4px;box-shadow:1px%203px;cursor:pointer;border-radius:0;font-weight:600}.filters%20input#f-nav:checked+label{background:#f5cff4;color:#000;transition:.3s;box-shadow:1px%203px%20#000!important;border-color:#f5cff4}.filters%20input#f-body:checked+label{background:#dbfeb8;color:#000;transition:.3s;box-shadow:1px%203px%20#000!important;border-color:#dbfeb8}.filters%20input#f-footer:checked+label{background:#fe6f5e;color:#000;transition:.3s;box-shadow:1px%203px%20#000!important;border-color:#fe6f5e}.filters%20input#f-all:checked+label{background:#2c302e;color:#fff;transition:.3s;box-shadow:1px%203px%20#000!important;border-color:#2c302e}.filters%20input#f-img:checked+label{background:#20a39e;color:#000;transition:.3s;box-shadow:1px%203px%20#000!important;border-color:#20a39e}.table{display:block;width:100%;border:1px%20solid%20#ddd;margin:12px%20auto;background:var(--bg-color)}.row{display:flex;transition:max-height%20.4s%20ease,opacity%20.4s%20ease;max-height:500px;opacity:1;overflow:hidden}.row.header{font-weight:bold;background:var(--header-bg);color:#fff}.cell{flex:1;padding:6px;text-align:left;word-break:break-word}.colA{flex:45%}.colB{flex:15%}.colC{flex:40%}footer{text-align:center;margin:18px%200;color:var(--font-color)}.row.filtered{max-height:0;opacity:0;padding:0;margin:0;border:0}.theme-switch-wrapper{text-align:center;margin:10px%200}.theme-switch{position:relative;display:inline-block;width:40px;height:20px}.theme-switch%20input{display:none}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;transition:.4s;border-radius:20px}.slider:before{position:absolute;content:%22%22;height:14px;width:14px;left:3px;bottom:3px;background:#fff;transition:.4s;border-radius:50%}button#copyVisible%20{font-family:Calibri,%20Arial,%20Helvetica,%20sans-serif;font-size:10px;margin-top:0px;margin-bottom:0px;color:#000;background:#00ffcd;padding:8px%2010px;box-shadow:1px%203px;font-weight:600;border:1px%20solid;}.toc%20{align-content:%20center;}%20%3C/style%3E%3C/head%3E%3Cbody%3E%3Cheader%20class=%22strandfish-seo-tool-header%22%3E%20%3Cdiv%3ECode%20by%20%3Ca%20href=%22https://strandfish.com?utm_source=strandfish-seo-tools&utm_medium=bookmarklet%22%3EThe%20Strandfish%20Collective%3C/a%3E%3C/div%3E%20%3Cdiv%3E%3Cspan%20class=%22fish-icon%20wave%22%3E%3Ca%20href=%22https://strandfish.com?utm_source=strandfish-seo-tools?utm_source=strandfish-seo-tools&utm_medium=bookmarklet&utm_content=fish-icon%22%20style=%22color:black;%22%3E%F0%93%86%9B%3C/a%3E%3C/span%3E%3C/div%3E%20%3Cdiv%20style=%22text-align:right;%22%3EDiscover%20more%20%3Ca%20href=%22https://strandfish.com/seo-tools/?utm_source=strandfish-seo-tools&utm_medium=bookmarklet&utm_content=discover-seo-tools%22%3ESEO%20Tools%3C/a%3E%20%3C/div%3E%3C/header%3E%3Cdiv%20class=%22wrap%22%3E%20%3Ch1%3E%F0%9F%97%B2%20On-Page%20Link%20Report:%20${location.hostname}%3C/h1%3E%20%3Cdiv%20style=%22display:flex;justify-content:%20space-between;%22%3E%3Cdiv%20class=%22toc%22%20style=%22%20align-content:%20center;%22%3EJump%20To:%20%3Ca%20href=%22#internal%22%3EInternal%20Links%3C/a%3E%20|%20%3Ca%20href=%22#external%22%3EExternal%20Links%3C/a%3E%20|%20%3Ca%20href=%22#images%22%3EImage%20Links%3C/a%3E%3Cbr%3E%3Ca%20href=%22${location.protocol}//${location.hostname}/sitemap.xml?utm_source=strandfish-seo-tools&utm_medium=bookmarklet&utm_content=sitemap-link%22%20target=%22_blank%22%3EView%20Sitemap%20%E2%86%92%3C/a%3E%20%3C/div%3E%20%3Cdiv%20class=%22filters%22%20style=%22%20text-align:%20right;%20display:%20block;%22%3EChoose%20Report%20Filters:%20%3Cinput%20type=%22radio%22%20id=%22f-all%22%20name=%22loc%22%20checked=%22%22%3E%3Clabel%20for=%22f-all%22%3EALL%3C/label%3E%3Cinput%20type=%22radio%22%20id=%22f-nav%22%20name=%22loc%22%3E%3Clabel%20for=%22f-nav%22%3ENAVIGATION%3C/label%3E%3Cinput%20type=%22radio%22%20id=%22f-body%22%20name=%22loc%22%3E%3Clabel%20for=%22f-body%22%3EBODY%3C/label%3E%3Cinput%20type=%22radio%22%20id=%22f-footer%22%20name=%22loc%22%3E%3Clabel%20for=%22f-footer%22%3EFOOTER%3C/label%3E%3Cinput%20type=%22radio%22%20id=%22f-img%22%20name=%22loc%22%3E%3Clabel%20for=%22f-img%22%3EIMAGES%3C/label%3E%3Cbutton%20id=%22copyVisible%22%3ECOPY%20VISIBLE%20DATA%3C/button%3E%3Cbr%3Eor%20%3Ca%20href=%22javascript:if(window.print)window.print()%22%3Eget%20a%20PDF%3C/a%3E%3C/div%3E%20%3C/div%3E%3Ch2%20id=%22internal%22%3EInternal%20Links%3C/h2%3E${renderTable(internals)}%20%3Ch2%20id=%22external%22%3EExternal%20Links%3C/h2%3E${renderTable(externals)}%20%3Ch2%20id=%22images%22%3EImage%20Links%3C/h2%3E${renderTable(images)}%20%3Cfooter%3E%20For%20the%20latest%20tools%20check%20out%20the%20%3Ca%20href=%22https://strandfish.com/blog/?utm_source=strandfish-seo-tools&utm_medium=bookmarklet&utm_content=blog-cta%22%20target=%22_blank%22%3E%20Strandfish%20Blog%3C/a%3E%3Cbr%3EUpdated%2012/17/2025%20%3C/footer%3E%3C/div%3E%3Cscript%3E%20function%20sel(){if(document.getElementById('f-nav').checked)%20return%20'Navigation';if(document.getElementById('f-body').checked)%20return%20'Body';if(document.getElementById('f-footer').checked)%20return%20'Footer';if(document.getElementById('f-img').checked)%20return%20'Image';return%20'All';%20}%20function%20applyFilter(){var%20f%20=%20sel();document.querySelectorAll('.row').forEach(function(r){if(r.classList.contains('header'))%20return;if(f==='All'%20||%20r.classList.contains('loc-'+f))%20r.classList.remove('filtered');else%20r.classList.add('filtered');});%20}%20['f-all','f-nav','f-body','f-footer','f-img'].forEach(function(id){document.getElementById(id).addEventListener('change',%20applyFilter);%20});%20applyFilter();%20function%20copyVisible(){var%20rows%20=%20[].slice.call(document.querySelectorAll('.row')).filter(r%20=%3E!r.classList.contains('header')%20&&%20!r.classList.contains('filtered'));if(!rows.length){%20alert('No%20visible%20links');%20return;%20}var%20out%20=%20['Anchor\\tLocation\\tURL'];rows.forEach(r%20=%3E%20{var%20c%20=%20r.querySelectorAll('.cell');out.push([c[0].innerText.trim(),%20c[1].innerText.trim(),%20c[2].innerText.trim()].join('\\t'));});navigator.clipboard.writeText(out.join('\\n')).then(()=%3Ealert('Copied!'));%20}%20document.getElementById('copyVisible').onclick%20=%20copyVisible;%20document.getElementById(%22darkModeToggle%22).addEventListener(%22change%22,function(){if(this.checked){document.documentElement.style.setProperty(%22--font-color%22,%22var(--dark-font-color)%22);document.documentElement.style.setProperty(%22--bg-color%22,%22var(--dark-bg-color)%22);}%20else%20{document.documentElement.style.setProperty(%22--font-color%22,%22var(--light-font-color)%22);document.documentElement.style.setProperty(%22--bg-color%22,%22var(--light-bg-color)%22);}%20});%3C/script%3E%3C/body%3E%3C/html%3E%60;var%20w%20=%20window.open();w.document.open();w.document.write(html);w.document.close();})();
