很多站长在做整站优化的时候,容易把注意力放在关键词和外链上,却忽略了站内最基础的内链结构。等到网站内容多了,栏目之间互相链接一团糟,搜索引擎爬虫抓取效率下降,权重也分散得厉害。其实内链乱了并不可怕,关键是用对方法重新梳理,让整站优化回到正轨。
动手改之前,得先知道现在的内链长什么样。与其靠肉眼翻页面,不如用爬虫把全站导出来。下面这段 Python 脚本可以帮你抓取站内所有 a 标签的 href,并只保留同域名链接:
import requests
from bs4 import BeautifulSoup
from urllib.parse import urlparse
base = 'https://example.com'
domain = urlparse(base).netloc
def crawl(url, seen):
if url in seen:
return
seen.add(url)
try:
html = requests.get(url, timeout=5).text
except:
return
soup = BeautifulSoup(html, 'html.parser')
for a in soup.find_all('a'):
href = a.get('href')
if not href:
continue
if urlparse(href).netloc == domain:
crawl(href, seen)
links = set()
crawl(base, links)
print(len(links))
跑完你就能拿到一份URL清单。接着用表格统计每个页面有多少出链、多少入链,哪些页面孤零零没人链,哪些页面被链得过多。一般没被任何内页链接的就叫孤儿页,它们是整站优化里的隐患。
| 页面类型 | 入链数 | 处理建议 |
|---|---|---|
| 首页 | 120 | 保持核心入口 |
| 栏目页 | 40 | 补足下级页链接 |
| 文章页 | 3 | 增加相关推荐 |
| 孤儿页 | 0 | 并入导航或删除 |
内链乱,多半是因为写文章的人随手插链接,没有统一规则。比较实用的做法是按栏目树来限定:
这样权重会顺着树形结构流动,不会在无关页面间兜圈子。我们之前接手一个站,文章里动不动就链到关于我们、联系客服,这种无效内链占了两成,清掉之后收录速度明显好了些。
很多人喜欢在正文里加粗几个词然后链走,其实不如在文末做相关推荐模块。相关推荐可以基于标签或分类取同主题的其他文章,既能留得住用户,也符合爬虫的抓取习惯。简单的 SQL 思路:
SELECT id, title FROM posts
WHERE category_id = 当前分类
AND id != 当前文章id
ORDER BY publish_time DESC
LIMIT 5;
如果站点用了 Elasticsearch,也可以按向量相似度取前几条。重点是别让编辑手动塞链接,系统自动出,整站优化的内链质量才稳。
内链梳理经常查出一批 404。可以用站点地图对比线上链接,或者用下边的 shell 命令批量测状态:
cat urls.txt | while read u; do
code=$(curl -s -o /dev/null -w '%{http_code}' $u)
echo $u $code
done
返回不是 200 的,该修的修、该 301 的 301。特别是早年改版留下的老链接,还被内页链着,权重就白白漏掉了。
内链不是越多越好,清楚谁链谁、为什么链,比堆数量重要得多。
结构调好之后,到搜索引擎后台重提交站点地图,让爬虫早点再来。接下来两周看收录量和重点页的展现点击。如果孤儿页被链之后开始收录,说明梳理起作用了。整站优化是个慢活,内链这层底子打牢,后面的关键词布局才好铺开。
评论
加载中...