Frederick

Welcome to my Alter Ego's site!

Jan 27, 2026 - 2 minute read - 评论

seo问题

问题1:SEO设置不稳定

每次加载网站时,SEO设置都会发生变化,无法保持一致性。这导致网站的SEO表现不稳定,影响搜索引擎优化效果。

原因:详见seoManager.ts:90

this.#originMetaRoutes = metaRoutes;

每次打开SEO面板时,initSeoInfo()都从readdy-sitemap.json重新获取数据

系统没有区分服务器和本地数据,用户的编辑只存在于内存中,页面刷新后丢失

问题2:发布时SEO设置未保存

发布页面后,SEO设置似乎没有被正确保存。每次分享页面给自己查看时,所有页面都使用相同的标题。

指包含用户手动编辑的页面,如果选择ai自动生成,editedSeoJson.pages为空数组,导致AI生成时没有保留用户之前的编辑

src/views/project/components/Seo/index.vue

const editedSeoJson = getEditedSeoJson(); // 只在手动编辑模式下有数据
const params = {
  embedCode: JSON.stringify(editedSeoJson), // 自动生成时为空对象
  isSEO: true
}

getEditedSeoJson() 只返回用户在当前会话中手动编辑的数据,JSON.stringify(editedSeoJson)将这个可能为空的对象序列化后传给AI

问题3:分享链接都使用相同标题

原因:share.ts

export interface projectShareParams {
  projectId: string;
  versionId: number; 
}

分享API只传递项目ID和版本ID,后端无法知道用户要分享的是哪个具体页面,所有分享链接都使用项目默认的meta标签

无论从哪个页面分享,社交平台显示的都是:(不确定,还没验证)

<!-- 微信、Twitter、Facebook等显示的都是这个 -->
<meta property="og:title" content="AI网站生成器 - Readdy.ai" />
<meta property="og:description" content="使用AI快速生成专业网站" />
<meta property="og:url" content="https://yoursite.com" />

问题四:Schema标记生成打乱SEO设置

seoPrompt.ts

2.Update the corresponding meta data in each page based on the data I provided
-Exclude empty/null data fields from consideration

AI prompt没有指示保留用户手动编辑的metadata,生成时会完全重写所有SEO设置,用户的精心编辑被AI的自动生成覆盖

一些解决思路

加载时重置问题:添加持久化本地存储,将用户编辑保存到localstorge,然后恢复用户编辑

修复发布时数据丢失,修改geteditedseojson函数,主要是传递的哪些metadata

分享链接问题:增加参数,添加具体页面路径和标题,然后调用时await json页面路径+标题

改进seo的prompt