【Nuxt】04 Nuxt2-SEO: sitemap.xml、seo优化、robots.txt

1 SiteMap设置

环境准备

注意生成sitemap依赖于@nuxtjs/sitemap,并且需要用axios进行请求,不要使用@nuxtjs/axios,不然会报错

sitemap.xml配置
  • 在nuxt.config.js中配置下面的内容
npm install @nuxtjs/sitemap
npm install axios
  • 在static/sitemap.js中配置下面的内容
const webConfig = {
  // 本地
  local: {
    baseURL: 'http://localhost:8828',
    referer: 'http://localhost:8828/',
    url: 'http://localhost:8828'
  },
  // sit环境
  sit: {
    baseURL: '',
    referer: '',
    url: ''
  },
  // 线上环境
  production: {
    baseURL: '',
    referer: '/',
    url: ''
  }
}


import axios from 'axios'
// 运行环境是不是开发环境
const isDev = Boolean(process.env.OPE_ENV === 'development')
const API_ENV = process.env.API_ENV
// 接口url
const baseUrl = webConfig[API_ENV].baseURL
// referer
const referer = isDev ? webConfig['local'].referer : webConfig[API_ENV].referer
// 网站域名
const hostname = isDev ? webConfig['local'].url : webConfig[API_ENV].url

const config = {
  baseURL: baseUrl,
  withCredentials: true,
  time: Date.now(),
  headers: {
    Accept: 'application/json; charset=utf-8',
    Referer: referer,
    common: {
      languageCode: 'zh-CN',
      referer: referer
    }
  }
}
const sitemap = {
  path: '/sitemap.xml', //生成的文件路径
  hostname: hostname, //网站的网址
  cacheTime: 1000 * 60 * 60 * 24, //一天的更新频率,只在generate:false有用
  gzip: true, //生成.xml.gz的sitemap
  generate: false,
 // 排除不要页面
  exclude: [
    '/404',
    '/page',
    '/details',
    '/article',
    '/tags',
    '/category',
    '/search'
  ],
  defaults: {
    changefred: 'always',
    lastmod: new Date(),
    priority: 0.8
  },
  routes: async () => {
    let routes = []
    let res = await axios.get(`${baseUrl}/api/getArticle`, {})
    if (res.code === 200) {
     res.list.forEach((item) => {
        routes.push(
          {
            url: `/xxxx/${item.pageCode}`,
            changefreq: 'always',
            priority: 0.9
          }
        )
      })
    }
    return routes
  }
}
module.exports = sitemap

  • 在nuxt.config.js中配置下面的内容
const sitemap = require('./static/sitemap')

module.exports = {
  ...,
  sitemap: sitemap,
}

2 robots.txt协议

在nuxt项目的static文件夹下,配置项目的静态文件,直接在static新建robots.txt即可,nuxt运行时会自动装配到根路由

# 该文件可以通过`网站域名/Robots.txt`直接访问

# User-agent作用:描述搜索引擎的名字,对于该文件来说至少药有一条user-agent记录,则该项的值设为*
User-agent: *
# Disallow:  描述不希望被访问到的一个url
Disallow: /cart?*
Disallow: /*Cart-*
Disallow: /*retailavailability
Allow: /*wishlist*.js
Sitemap: 网站的域名/sitemap.xml

3 seo优化

  • 全局seo:在nuxt.config.js的meta中添加网站的字符编码、语言、响应式标签、网站描述、网站关键字等信息;在link中添加全局的css、网站logo等信息。
head: {
    title: pkg.name,
    meta: [
      { charset: 'utf-8' },
      { name: 'viewport', content: 'width=device-width, initial-scale=1' },
      { hid: 'description', name: 'description', content: pkg.description }
    ],
    link: [
      { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }
    ]
  },
  • 页面seo:在nuxt.js项目pages路由页面的script中添加head方法,该方法将随nuxt运行时自动载入
head () {
  return {
    title: `${this.info.blogName} | ${this.info.blogDescription}`,
    meta: [
      { name: 'keywords', content: this.info.keywords },
      { name: 'description', content: this.info.description }
    ]
  }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Nuxt.js 是一个基于 Vue.js 的通用应用框架,它可以让你更快速、更轻松地开发应用程序。Nuxt.js 3 是 Nuxt.js 的最新版本,它提供了全新的架构和 API,具有更好的性能和更好的扩展性。下面是关于 Nuxt.js 3 中的 SEO 优化配置的介绍。 Nuxt.js 3 中的 SEO 优化配置主要是通过 nuxt.config.js 文件来进行配置。下面是一些常用的 SEO 配置项: 1. head 标签配置:可以通过配置 head 对象来设置 head 标签中的元信息,如 title、meta、link 等。 2. router 配置:可以通过配置 router 对象来设置路由相关的信息,如路由的 base、mode 等。 3. generate 配置:可以通过配置 generate 对象来设置生成静态站点的相关信息,如生成路径、页面列表等。 4. sitemap 配置:可以通过配置 sitemap 对象来生成站点地图。 5. robots 配置:可以通过配置 robots 对象来生成 robots.txt 文件。 6. canonical 配置:可以通过配置 canonical 对象来设置页面的 canonical URL。 下面是一个简单的 nuxt.config.js 文件的 SEO 配置示例: ``` export default { head: { title: 'My website', meta: [ { charset: 'utf-8' }, { name: 'viewport', content: 'width=device-width, initial-scale=1' } ], link: [ { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' } ] }, router: { base: '/my-website/' }, generate: { dir: 'dist/my-website' }, sitemap: { hostname: 'https://www.my-website.com', gzip: true }, robots: { UserAgent: '*', Disallow: '/' }, canonical: { baseURL: 'https://www.my-website.com' } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值