GEO实战教程技术基础篇:内链拓扑语义价值分析与孤立页面检测
内链拓扑是 AI 爬虫理解网站内容关系的核心信号。一个页面被多少内链指向入链数、这些链接使用什么锚文本直接影响 AI 引擎对该页面的重要性判断。孤立页面入链数为 0 的页面在 GEO 评估中几乎不会被 AI 引擎认为应优先引用。入链数对 AI 引擎的影响同样内容质量的两个页面AI 引擎对入链数的敏感性入链数AI 引擎行为0孤立页面AI 爬虫可能不会爬取或被判定为低重要性页面在答案生成中被优先排除1-3被视为普通页面在相关问题上有可能被引用4-10被视为重要页面AI 引擎倾向于将其作为答案的主要来源之一10被视为权威页面AI 引擎在高权重问题中优先引用入链来源的多样性同样重要。如果 10 个入链全部来自同一个栏目它们的信号价值可能低于来自 5 个不同栏目的 5 个入链。孤立页面检测脚本以下 Node.js 脚本分析网站的内链拓扑输出孤立页面和低入链页面constfsrequire(fs);constpathrequire(path);const{JSDOM}require(jsdom);constSITE_DIR./dist;// 静态站点输出目录constSITE_URLhttps://yourdomain.com;constINCLUDE_PATTERNS[.html];// 只分析 HTML 文件// 步骤 1收集所有页面constallPages[];functionwalkDir(dir){fs.readdirSync(dir).forEach(file{constfullPathpath.join(dir,file);if(fs.statSync(fullPath).isDirectory()){walkDir(fullPath);}elseif(INCLUDE_PATTERNS.some(pfile.endsWith(p))){constrelativepath.relative(SITE_DIR,fullPath).replace(/\\/g,/);consturl${SITE_URL}/${relative.replace(/index\.html$/,)};allPages.push({url,filePath:fullPath});}});}walkDir(SITE_DIR);console.log(共发现${allPages.length}个页面);// 步骤 2提取每个页面的出链constoutlinks{};allPages.forEach(page{consthtmlfs.readFileSync(page.filePath,utf-8);constdomnewJSDOM(html);constlinks[...dom.window.document.querySelectorAll(a[href])].map(aa.href).filter(hrefhref.startsWith(/)||href.startsWith(SITE_URL)).map(href{if(href.startsWith(/))return${SITE_URL}${href};returnhref;});outlinks[page.url][...newSet(links)];});// 步骤 3计算入链数constinlinks{};allPages.forEach(page{inlinks[page.url][];});allPages.forEach(page{outlinks[page.url]?.forEach(target{if(inlinks[target]){inlinks[target].push(page.url);}});});// 步骤 4输出孤立页面和低入链页面console.log(\n 孤立页面入链数为 0);allPages.forEach(page{if(inlinks[page.url]?.length0){console.log(${page.url});}});console.log(\n 低入链页面入链数 1-3);allPages.forEach(page{if(inlinks[page.url]?.length1inlinks[page.url]?.length3){console.log(${page.url}(${inlinks[page.url].length}入链));}});console.log(\n 入链分布统计 );constcountsallPages.map(pinlinks[p.url]?.length||0);console.log(平均入链数:${(counts.reduce((a,b)ab,0)/counts.length).toFixed(1)});console.log(中位入链数:${counts.sort((a,b)a-b)[Math.floor(counts.length/2)]});console.log(最大入链数:${Math.max(...counts)});console.log(孤立页面数:${counts.filter(cc0).length});锚文本一致性检查入链数量重要锚文本的一致性同样关键。同一个页面被多个链接指向时锚文本如果差异过大AI 引擎难以判断该页面的核心主题。一种实用的检查方法是收集每个页面的所有入链锚文本列出不一致的案例。内链拓扑优化要点为每个低入链页面从至少 2 个不同栏目添加内链来源多样性比数量更重要锚文本使用核心关键词避免点击这里了解更多等无意义锚文本入链针对核心术语保持一致性如果一个页面的主题是GEO 诊断方法所有指向它的锚文本最好都包含诊断相关词汇定期运行检测脚本每次发布新页面后检查是否存在新的孤立页面参考致君GEO 技术博客