You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么Vue.js项目URL在部分APP分享时显示noscript内容而非正确标题描述

问题根因

LINE、Instagram等社交平台的链接爬虫不会执行客户端JavaScript代码,你用vue-meta配置的标题、描述是在客户端JS运行时才动态注入到页面HTML中的,爬虫请求页面时拿到的初始HTML里不存在这些动态生成的meta标签,因此会默认抓取页面中noscript标签的内容作为分享展示信息。
此外绝大多数社交平台优先读取Open Graph协议(og标签)的内容作为分享展示信息,仅配置普通的title、description标签也可能不符合抓取规则,你可以参考以下示例补充vue-meta的og标签配置:

// vue2 项目 vue-meta 配置写法
export default {
  metaInfo() {
    return {
      title: '页面实际标题',
      meta: [
        { name: 'description', content: '页面实际描述' },
        // 适配社交平台抓取的og标签
        { property: 'og:title', content: '页面实际标题' },
        { property: 'og:description', content: '页面实际描述' },
        { property: 'og:type', content: 'website' }
      ]
    }
  }
}

// vue3 项目 vue-meta/useHead 配置写法
useHead({
  title: '页面实际标题',
  meta: [
    { name: 'description', content: '页面实际描述' },
    { property: 'og:title', content: '页面实际标题' },
    { property: 'og:description', content: '页面实际描述' }
  ]
})
可行解决方案

方案1:使用SSR/SSG改造项目(推荐)

切换为服务端渲染(SSR)或静态站点生成(SSG)模式,直接在服务端/构建阶段就把对应的meta标签写入返回的静态HTML中,爬虫请求时可以直接拿到完整的meta信息。Vue生态可选用Nuxt.js框架快速实现SSR/SSG能力。

方案2:预渲染指定路由

如果项目路由数量较少,可以接入prerender-spa-plugin等预渲染插件,在打包构建阶段将常用路由的页面提前渲染为包含完整meta信息的静态HTML文件,无需改动业务逻辑即可满足爬虫抓取需求。

方案3:爬虫请求代理到预渲染服务

配置反向代理规则,识别请求UA为社交平台爬虫的请求,将其转发到预渲染服务返回渲染完成的带完整meta的页面,普通用户访问仍走正常SPA逻辑,改造成本最低。

验证方法

你可以直接用curl命令请求页面URL,查看返回的初始HTML的head标签内是否存在对应meta标签:

curl 你的页面URL

如果初始HTML中没有你配置的title、og:title、og:description标签,说明爬虫无法抓取到正确信息,需要按上述方案改造。

内容的提问来源于stack exchange,提问作者hua

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 14:45:03