当前位置: 首页 > news >正文

【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].urlconst 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的sitemapgenerate: 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 }]}
}
http://www.lryc.cn/news/178246.html

相关文章:

  • VMware VSAN 入门
  • 【设计模式】备忘录模式
  • vue3+elementUiPlus表格导出功能
  • 专题五:优先级队列
  • 游戏设计模式专栏(一):工厂方法模式
  • element中使用el-steps 进度条效果demo(整理)
  • 038:mapboxGL 旋转地图(rotateTo)
  • java遇到的问题
  • LLM(二)| LIMA:在1k高质量数据上微调LLaMA1-65B,性能超越ChatGPT
  • Android AMS——创建Application(七)
  • html 边缘融合加载
  • ElasticSearch - 在 微服务项目 中基于 RabbitMQ 实现 ES 和 MySQL 数据异步同步(考点)
  • Springboot+vue的企业人事管理系统(有报告),Javaee项目,springboot vue前后端分离项目。
  • 初识Java 11-1 函数式编程
  • 【Ambari】银河麒麟V10 ARM64架构_安装Ambari2.7.6HDP3.3.1问题总结
  • 李宏毅机器学习第一课(结尾附作业模型详细分析)
  • 对日项目工作总结
  • 设计模式探索:从理论到实践的编码示例 (软件设计师笔记)
  • 【内网穿透】在Ubuntu搭建Web小游戏网站,并将其发布到公网访问
  • 在cesuim上展示二维模型
  • c/c++中如何输入pi
  • python爬虫:JavaScript 混淆、逆向技术
  • Vue error:0308010C:digital envelope routines::unsupported
  • gitee 远程仓库操作基础(一)
  • DRM全解析 —— ADD_FB2(0)
  • 01Redis的安装和开机自启的配置
  • 进入IT行业:选择前端开发还是后端开发?
  • Java集成Onlyoffice以及安装和使用示例,轻松实现word、ppt、excel在线编辑功能协同操作,Docker安装Onlyoffice
  • 编程面试_动态规划
  • ip地址可以精确定位吗