AI 实践|零成本生成SEO友好的TDK落地方案

之前写过一篇文章「Google搜索成最大入口,简单谈下个人博客的SEO」,文章里介绍了网页的描述信息TDK(Title、Description和Keywords)对SEO的重要作用,尽管已经意识到了TDK能够直接影响到SEO的效果,但仍存在随意编写或忽略的情况,究其原因,第一是懒散,嫌麻烦,第二是不懂,随便写写效果不佳。曾经幻想有一个工具既能读懂文章的意思,又对SEO比较的了解,可以根据文章内容自动生成SEO友好的TDK,一直以来也仅仅是幻想,但随着AI的出现,随着GPT的普及,让这件原本几乎不太可能实现的事情也变得容易了很多

写好文章丢给GPT,再配上一段提示词,GPT就能根据文章的内容生成SEO友好的slug、title、keywords和description等信息,例如我把上篇文章「 全程使用 AI 从 0 到 1 写了个小工具」的内容丢给DeepSeek,让他从SEO友好的角度生成文章的TDK等信息

可以看到DeepSeek生成的内容确实十分的专业,利用AI生成SEO友好的TDK已然可以实现了。虽然功能能够实现,但每次都要复制文章内容给GPT,还是麻烦的,于是考虑借助API来实现自动化,许多AI模型都有提供API,但几乎全都收费,提供API还免费的不多,调研了一圈,决定试用硅基流动,主要原因是当前邀请注册送2000万Token,同时也支持Json格式输出,这对于我后续要拿到数据做自动化处理可太重要了。也想试用的朋友可以用我的推荐链接注册或是填写我的推荐码:tqPo40nB,这样就能免费获得2000万的Token

实际体验下来2000万的Token根本用不完,我300多篇文章近60万字,加上前期的调试调用,全部文章重新生成一遍SEO友好的描述信息,也就用了大概180万Token,用不完,根本用不完

过程

大概的实现流程是,调用AI的API,把文章内容喂它,同时让它输出Json格式的结果,我们拿到结果之后,把相应的TDK描述信息例如Keywords和Description写入数据库,然后再调用生成程序把文章连带这些描述生成HTML文件,最后上传到github自动发布,整个流程就算完成了。这其中基本的流程我的博客后台程序都已经是实现好的,需要修改的主要就是根据文章内容,调用AI来生成SEO友好的描述信息,然后把这些信息写入数据库。具体的实现过程很简单,主要就两步,以我用的硅基流动平台为例

首先去注册平台账号并登录,登录之后点击页面左侧的API密钥-新建API密钥,填写描述信息了之后就创建了一个API密钥

然后就可以调用API传入文章内容+需求让他生成数据,硅基流动它不是具体的某个模型,而是提供了一个模型市场,这个模型市场里的模型都可以调用,部分模型支持openai库进行调用,这样就比较方便,我们通过python调用,需要Python版本高于3.7.1,在调用之前先安装openai库,执行如下命令:

pip install --upgrade openai

安装完成后,就可以调用,一个简单的调用示例如下:

import json  
from openai import OpenAI


def generate_seo_data(content):
    client = OpenAI(
        api_key="sk-xxxxxxxx", # 替换成自己的密钥
        base_url="https://api.siliconflow.cn/v1"
    )

    try:
        response = client.chat.completions.create(
            model="deepseek-ai/DeepSeek-V2.5",
            messages=[
                {"role": "system", "content": "You are a helpful assistant designed to output JSON."},
                {"role": "user", "content": f"? 以下是一篇markdown格式的文章,请根据文章内容从SEO友好的角度提取出slug、title、keywoards和description,至少10个keywords,要列表格式:{content}"
                "Please respond in the format {\"slug\": ..., \"title\": ..., \"keywords\": ..., \"description\": ...}"}
            ],
            response_format={"type": "json_object"}
        )

        return json.loads(response.choices[0].message.content)
    except Exception as e:
        print("Error generating SEO data:", str(e))
        return {"slug": "", "title": "", "keywords": [], "description": ""}

把代码里的api_key替换成第一步里生成的key,稍微调整下content的内容就可以为你所用。输出的结果就是这样的

>>> blog = Blog.objects.get(title='运维自动化系统各模块介绍')
>>> seo_data = generate_seo_data(blog.content)
>>> 
>>> seo_data.get('slug')
'devops-automation-platform-overview'
>>> 
>>> seo_data.get('title')
'运维自动化平台功能模块全面解析'
>>> 
>>> seo_data.get('keywords')
['运维自动化', '资产管理', '容器管理', '监控告警', '作业系统', '任务系统', '域名管理', '备份系统', '数据库服务', '费用中心', '审计中心', '用户管理']
>>> 
>>> seo_data.get('description')
'本文从整体视角介绍了一个较为完善的运维自动化系统包含的主要功能模块,包括工作台、资产管理、容器管理、监控告警、作业系统、任务系统、域名管理、备份系统、数据库服务、费用中心、审计中心和用户管理,详细解析每个模块如何解决实际运维中的问题。

然后我只需要把这些输出的数据保存到数据库,会自动触发页面生成方法并上传,整个流程就完成了

后记

当初找了好久的工具尝试了很多的方法来实现SEO友好型TDK信息的自动生成,始终没有很好的方案,现在终于找到了完美的方式来解决这个问题,但如今已经进入AI的时代,传统网站加速走向没落变成了一个不争的事实,那即便是生成再完美的TDK,做再好的SEO,意义还大吗

AI用的越多,越是感叹其强大,同时带来的打击也越大