SEO 自动化与脚本编写 是通过 Python、JavaScript 等编程语言和 API 接口,自动化执行重复性 SEO 任务(数据收集、排名监控、报告生成、技术审计等),提升工作效率和准确性的技术能力。
为什么需要 SEO 自动化?
重复性工作
SEO 日常重复任务:
❌ 每日排名检查(30 分钟/天)
❌ 周报数据整理(2 小时/周)
❌ 死链检测(1 小时/周)
❌ 竞争对手监控(1 小时/周)
❌ 报告制作(2 小时/周)
合计:约 10 小时/周
自动化价值
效率提升:
手动:10 小时/周
自动化:1 小时/周(检查 + 调整)
效率提升:90%
准确性提升:
手动:人为错误 5-10%
自动化:错误率<1%
价值释放:
节省时间用于:
- 策略思考
- 内容创作
- 外链建设
- 客户沟通
王尘宇案例
案例:自动化排名监控
背景:需要监控 500 个关键词排名
手动方案:
- 每天人工查询
- 整理 Excel
- 制作图表
- 时间:2 小时/天
自动化方案:
- Python 脚本自动查询
- 自动存入数据库
- 自动生成报告
- 时间:10 分钟/天检查
结果:
- 时间节省:92%
- 数据更准确
- 可实时监控
SEO 自动化场景
场景 1:排名监控 ⭐⭐⭐⭐⭐
自动化内容:
- 定时查询关键词排名
- 存储历史数据
- 排名变化告警
- 自动生成报告
技术实现:
语言:Python
库:requests, BeautifulSoup, pandas
API:SERP API、Ahrefs API
频率:每日/每周
场景 2:技术审计 ⭐⭐⭐⭐⭐
自动化内容:
- 死链检测
- 重定向追踪
- Meta 标签检查
- 页面速度监控
- 结构化数据验证
技术实现:
语言:Python
库:Screaming Frog API, requests
频率:每周/每月
场景 3:报告生成 ⭐⭐⭐⭐⭐
自动化内容:
- 数据收集整合
- 图表自动生成
- PDF/PPT 导出
- 邮件自动发送
技术实现:
语言:Python
库:pandas, matplotlib, reportlab
API:Google Analytics API, Search Console API
频率:每周/每月
场景 4:竞争对手监控 ⭐⭐⭐⭐
自动化内容:
- 对手排名变化
- 对手新外链
- 对手新内容
- 价格/产品变化
技术实现:
语言:Python
库:requests, BeautifulSoup
API:Ahrefs API, SEMrush API
频率:每日/每周
场景 5:内容优化 ⭐⭐⭐⭐
自动化内容:
- 关键词密度检查
- 内链建议
- 图片 ALT 检查
- 可读性分析
技术实现:
语言:Python
库:BeautifulSoup, NLTK
频率:发布前
场景 6:外链发现 ⭐⭐⭐⭐
自动化内容:
- 品牌提及监控
- 未链接提及发现
- 外链机会识别
- 外联列表生成
技术实现:
语言:Python
库:requests, BeautifulSoup
API:Mention API, Ahrefs API
频率:每周
编程基础
推荐语言:Python
为什么选择 Python?
✅ 语法简单
✅ SEO 库丰富
✅ 社区活跃
✅ 跨平台
✅ 免费开源
基础语法示例
Hello World:
print("Hello SEO!")
变量和数据类型:
# 字符串
keyword = "SEO 优化"
# 数字
search_volume = 1000
# 列表
keywords = ["SEO", "优化", "网站"]
# 字典
keyword_data = {
"keyword": "SEO 优化",
"volume": 1000,
"difficulty": 50
}
循环:
# for 循环
keywords = ["SEO", "SEM", "PPC"]
for kw in keywords:
print(f"关键词:{kw}")
# while 循环
count = 0
while count < 10:
print(count)
count += 1
函数:
def check_ranking(keyword, url):
"""检查关键词排名"""
# 实现代码
ranking = get_ranking(keyword, url)
return ranking
# 调用函数
result = check_ranking("SEO 优化", "example.com")
print(f"排名:{result}")
实用 SEO 脚本
脚本 1:批量检查死链 ⭐⭐⭐⭐⭐
import requests
from bs4 import BeautifulSoup
def check_links(url):
"""检查页面死链"""
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
links = soup.find_all('a', href=True)
dead_links = []
for link in links:
href = link['href']
try:
resp = requests.head(href, timeout=5)
if resp.status_code >= 400:
dead_links.append({
'url': href,
'status': resp.status_code
})
except:
dead_links.append({
'url': href,
'status': 'Error'
})
return dead_links
# 使用
dead_links = check_links("https://example.com")
print(f"发现 {len(dead_links)} 个死链")
for link in dead_links:
print(f"{link['url']} - {link['status']}")
脚本 2:批量获取 Title 和 Meta ⭐⭐⭐⭐⭐
import requests
from bs4 import BeautifulSoup
import pandas as pd
def get_page_meta(urls):
"""批量获取页面 Meta 信息"""
results = []
for url in urls:
try:
response = requests.get(url, timeout=10)
soup = BeautifulSoup(response.text, 'html.parser')
title = soup.title.string if soup.title else ''
meta_desc = soup.find('meta', attrs={'name': 'description'})
description = meta_desc['content'] if meta_desc else ''
results.append({
'url': url,
'title': title,
'description': description,
'title_length': len(title),
'desc_length': len(description)
})
except Exception as e:
results.append({
'url': url,
'title': 'Error',
'description': str(e)
})
return pd.DataFrame(results)
# 使用
urls = [
"https://example.com/page1",
"https://example.com/page2",
# ... 更多 URL
]
df = get_page_meta(urls)
df.to_excel("meta 信息.xlsx", index=False)
print(f"已处理 {len(df)} 个页面")
脚本 3:排名监控脚本 ⭐⭐⭐⭐⭐
import requests
import pandas as pd
from datetime import datetime
def check_google_ranking(keyword, domain):
"""检查 Google 排名(简化版)"""
# 实际使用建议使用 SERP API
url = f"https://www.google.com/search?q={keyword}"
headers = {
'User-Agent': 'Mozilla/5.0'
}
response = requests.get(url, headers=headers)
# 解析搜索结果,查找域名位置
# 这里简化处理
ranking = 0 # 实际应解析 HTML 获取排名
return {
'date': datetime.now().strftime('%Y-%m-%d'),
'keyword': keyword,
'domain': domain,
'ranking': ranking
}
# 批量检查
keywords = ["SEO 优化", "西安 SEO", "网站优化"]
domain = "example.com"
results = []
for kw in keywords:
result = check_google_ranking(kw, domain)
results.append(result)
# 保存结果
df = pd.DataFrame(results)
df.to_excel(f"排名监控_{datetime.now().strftime('%Y%m%d')}.xlsx", index=False)
脚本 4:自动生成 SEO 报告 ⭐⭐⭐⭐
import pandas as pd
import matplotlib.pyplot as plt
from reportlab.lib.pagesizes import A4
from reportlab.pdfgen import canvas
def generate_seo_report(data, output_file):
"""生成 SEO 报告 PDF"""
c = canvas.Canvas(output_file, pagesize=A4)
width, height = A4
# 标题
c.setFont("Helvetica-Bold", 24)
c.drawString(100, height - 50, "SEO 月度报告")
# 日期
c.setFont("Helvetica", 12)
c.drawString(100, height - 80, f"报告日期:{datetime.now().strftime('%Y-%m-%d')}")
# 数据表格
c.setFont("Helvetica", 10)
y = height - 120
c.drawString(100, y, "关键词")
c.drawString(250, y, "当前排名")
c.drawString(350, y, "上月排名")
c.drawString(450, y, "变化")
y -= 20
for row in data:
c.drawString(100, y, row['keyword'])
c.drawString(250, y, str(row['current']))
c.drawString(350, y, str(row['previous']))
change = row['current'] - row['previous']
c.drawString(450, y, f"{change:+d}")
y -= 20
c.save()
print(f"报告已生成:{output_file}")
# 使用
data = [
{'keyword': 'SEO 优化', 'current': 3, 'previous': 5},
{'keyword': '西安 SEO', 'current': 2, 'previous': 3},
# ... 更多数据
]
generate_seo_report(data, "SEO 报告.pdf")
脚本 5:竞争对手外链监控 ⭐⭐⭐⭐
import requests
import json
def monitor_competitor_backlinks(api_key, domain):
"""监控竞争对手外链(使用 Ahrefs API)"""
url = "https://openapi.ahrefs.com/v1/backlinks"
params = {
'target': domain,
'limit': 100,
'token': api_key
}
response = requests.get(url, params=params)
data = response.json()
# 处理数据
backlinks = []
for item in data.get('backlinks', []):
backlinks.append({
'source_url': item['src_url'],
'target_url': item['target_url'],
'anchor': item['anchor'],
'domain_rank': item['domain_rank']
})
return backlinks
# 使用
api_key = "your_api_key"
competitors = ["competitor1.com", "competitor2.com"]
for competitor in competitors:
backlinks = monitor_competitor_backlinks(api_key, competitor)
print(f"{competitor}: 发现 {len(backlinks)} 个外链")
# 可以保存到数据库或文件
API 集成
Google APIs
Search Console API:
from googleapiclient.discovery import build
def get_search_console_data():
service = build('searchconsole', 'v1')
request = {
'startDate': '2026-01-01',
'endDate': '2026-01-31',
'dimensions': ['query', 'page'],
'rowLimit': 1000
}
response = service.searchanalytics().query(
siteUrl='https://example.com',
body=request
).execute()
return response
Google Analytics API:
from googleapiclient.discovery import build
def get_ga_data():
analytics = build('analyticsreporting', 'v4')
body = {
'reportRequests': [{
'viewId': 'YOUR_VIEW_ID',
'dateRanges': [{'startDate': '30daysAgo', 'endDate': 'today'}],
'metrics': [{'expression': 'ga:sessions'}],
'dimensions': [{'name': 'ga:source'}]
}]
}
response = analytics.reports().batchGet(body=body).execute()
return response
Ahrefs API
import requests
def get_ahrefs_data(domain, api_key):
url = "https://openapi.ahrefs.com/v1/domain"
params = {
'target': domain,
'token': api_key
}
response = requests.get(url, params=params)
return response.json()
百度站长 API
import requests
def submit_urls_to_baidu(site_url, token, urls):
"""提交 URL 到百度"""
api_url = f"http://data.zz.baidu.com/urls?site={site_url}&token={token}"
headers = {'Content-Type': 'text/plain'}
data = '\n'.join(urls)
response = requests.post(api_url, headers=headers, data=data)
return response.json()
自动化工具
无代码自动化
Zapier:
连接不同应用
自动触发工作流
示例:新排名数据 → Google Sheets → 邮件通知
Make (Integromat):
可视化自动化
多应用集成
适合非技术人员
SEO 自动化工具
Rank Math Pro:
WordPress SEO 自动化
自动添加 Schema
自动内链建议
WordLift:
AI 驱动内容优化
自动 Schema 标记
知识图谱构建
王尘宇实战建议
18 年经验总结
- 从简单开始
- 先自动化最简单重复的工作
- 逐步学习编程
-
不要一开始就搞复杂的
-
ROI 优先
- 优先自动化耗时最多的任务
- 计算投入产出比
-
不要为了自动化而自动化
-
测试很重要
- 脚本要测试
- 监控运行状态
-
设置错误告警
-
文档不可少
- 记录脚本功能
- 写使用说明
-
方便交接维护
-
持续学习
- 学习 Python 基础
- 关注新工具
- 参加技术社区
西安企业建议
- 培养团队技术能力
- 与本地技术公司合作
- 参加技术交流活动
- 重视自动化工具投资
常见问题解答
Q1:没有编程基础能学吗?
答: 能。建议:
- 从 Python 基础开始
- 网上教程很多
- 2-3 个月可入门
- 边学边实践
Q2:自动化会出错吗?
答: 会。所以:
- 要设置监控
- 定期检查结果
- 保留手动复核
Q3:需要买什么工具?
答:
- 基础:免费工具 + Python
- 进阶:API 访问权限
- 高级:自动化工具订阅
Q4:自动化会影响 SEO 吗?
答: 不会。自动化只是:
- 数据收集
- 报告生成
- 监控告警
不影响搜索引擎判断
Q5:多久能收回学习成本?
答:
- 基础脚本:1-2 个月
- 中级自动化:3-6 个月
- 高级系统:6-12 个月
长期回报很高
总结
SEO 自动化与脚本编写核心要点:
- 🐍 Python 基础 — 语法简单,库丰富
- 📊 应用场景 — 排名监控、报告生成、技术审计
- 🔧 实用脚本 — 死链检查、Meta 获取、排名追踪
- 🔌 API 集成 — Google、Ahrefs、百度
- 🤖 自动化工具 — 无代码 + 有代码方案
王尘宇建议: SEO 自动化是提升效率的关键技能。花 3 个月学习 Python 基础,将让你未来 10 年受益。
关于作者
王尘宇
西安蓝蜻蜓网络科技有限公司创始人
2008 年开始从事互联网相关工作,拥有 18 年实战经验
专业领域:
- 网站建设与优化
- SEO 搜索引擎优化
- GEO 生成引擎优化
- 竞价推广与 SEM 运营
- 自媒体营销
联系方式:
- 🌐 网站:wangchenyu.com
- 💬 微信:wangshifucn
- 📱 QQ:314111741
- 📍 地址:陕西西安
提供服务:
- SEO 自动化咨询
- 脚本定制开发
- 企业网站整站优化
- SEO 团队培训
欢迎西安及全国的企业朋友交流合作!
本文最后更新:2026 年 3 月 18 日
版权声明:本文为王尘宇原创,属于"SEO 高级策略系列"第 38 篇,转载请联系作者并注明出处。
下一篇:SEO-39:SEO 案例分析:从 0 到 10 万流量
标签: SEO
还木有评论哦,快来抢沙发吧~