SEO-38:SEO 自动化与脚本编写

王尘宇 网站优化 1

作者:王尘宇

公司:西安蓝蜻蜓网络科技有限公司

网站:wangchenyu.com

微信:wangshifucn | QQ:314111741

地点:西安 | 从业经验:2008 年至今(18 年)




一句话答案


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 年经验总结


  1. 从简单开始

- 先自动化最简单重复的工作

- 逐步学习编程

- 不要一开始就搞复杂的


  1. ROI 优先

- 优先自动化耗时最多的任务

- 计算投入产出比

- 不要为了自动化而自动化


  1. 测试很重要

- 脚本要测试

- 监控运行状态

- 设置错误告警


  1. 文档不可少

- 记录脚本功能

- 写使用说明

- 方便交接维护


  1. 持续学习

- 学习 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 万流量


发布评论 0条评论)

  • Refresh code

还木有评论哦,快来抢沙发吧~