Free HTTP External Link Checker & Web Crawler Tool
Analyze any webpage instantly using this free external link checker JavaScript tool. Simply paste the script into your browser’s developer console to extract all outbound links and verify their HTTP response status.
This tool is designed for developers, SEO professionals, and website owners who want to audit external links directly from the browser without installing extensions or using third-party tools.
How to Use This Tool in Google Chrome
The Chrome Console Script
- Open the webpage you want to analyze in Chrome.
- Press
F12(orRpc + Option + Ion Mac) or Ctrl + Shift + I (or Right Click → Inspect) and click on the Console tab. - Paste the following JavaScript code and press Enter:
(async () => {
console.log("%c🚀 Starting Link Analysis...", "color: #4f46e5; font-weight: bold; font-size: 14px;");
// 1. Collect all anchor tags with absolute HTTP/HTTPS links
const currentHost = window.location.host;
const links = Array.from(document.querySelectorAll('a[href^="http"]'));
// 2. Filter for unique external links
const externalLinks = [];
const seenUrls = new Set();
links.forEach(link => {
try {
const url = new URL(link.href);
if (url.host !== currentHost && !seenUrls.has(url.href)) {
seenUrls.add(url.href);
externalLinks.push({
anchorText: link.textContent.trim() || '[No Anchor Text]',
url: url.href
});
}
} catch (e) {
// Skip invalid URLs
}
});
if (externalLinks.length === 0) {
console.log("✅ No external links found on this page.");
return;
}
console.log(`🔍 Found ${externalLinks.length} unique external links. Verifying status codes...`);
console.table(externalLinks); // Show initial map
// 3. Asynchronously test each link via fetch (HEAD request)
const results = [];
for (const item of externalLinks) {
try {
// Using HEAD request to optimize speed and bandwidth
const response = await fetch(item.url, {
method: 'HEAD',
mode: 'no-cors' // Bypasses strict CORS block, but will return status 0 for protected sites
});
// Note: 'no-cors' forces an opaque response, meaning JS can't always view the exact status code (returns 0)
// If it succeeds without throwing an error, the endpoint is generally reachable.
results.push({
"Anchor Text": item.anchorText,
"External URL": item.url,
"Status": response.status === 0 ? "OK (Opaque/Protected)" : response.status
});
} catch (error) {
results.push({
"Anchor Text": item.anchorText,
"External URL": item.url,
"Status": "FAILED / TIMEOUT"
});
}
}
// 4. Output beautiful responsive table directly in the console
console.log("%c📊 Final Analysis Results:", "color: #10b981; font-weight: bold; font-size: 14px;");
console.table(results);
})();
What This Script Does
Extracts all external links from a webpage. Filters out internal domain URLs. Removes duplicate links. Checks link accessibility using HTTP HEAD requests. Displays results in a clean console table.