宿迁腾云网络网站建设公司

腾云网络 八年经验专注网站建设
  • 首页
  • 服务项目
    • 网站建设
    • 微信小程序
    • APP开发
    • SEO优化
  • 建站费用
  • 成功案例
    • 网站建设案例
    • 小程序案例
    • APP开发案例
    • SEO优化案例
  • 行业动态
    • 网站建设
    • SEO优化
    • 技术日志
  • 联系我们
    • 关于我们
首页 > 行业动态 > SEO优化 > 利用 Puppeteer 优化单页面 Vue 博客的 SEO 策略

利用 Puppeteer 优化单页面 Vue 博客的 SEO 策略

2024-10-12

Vue.js凭借其高性能的SPA功能在现代Web编程领域颇受欢迎。尽管其SEO表现欠佳,不利于搜索引擎抓取整个网站,但SEO对于提升用户流量至关重要。本文将探讨如何利用Node.js库在不改动现有代码的前提下,对Vue单页面应用的SEO进行有效优化。

Vue单页面应用的SEO挑战

Vue.js的SPAs模式导致客户端动态装载内容,极大提升了用户交互体验,却给搜索引擎爬虫带来挑战。爬虫通常只能检索静态HTML,Vue应用中至关重要的动态内容在首次加载时往往处于不可见状态。因此,确保爬虫能够抓取页面动态信息,成为Vue开发者亟需解决的难题。

Node.js库的引入

wget https://nodejs.org/dist/v17.9.0/node-v17.9.0-linux-x64.tar.gz

为应对该问题,建议采用一款Node.js库,其具备高级API用以管理浏览器,并通过开发者协议实现。该库预设为无头模式执行小程序开发,同时亦支持配置为有头模式。利用此方法,能够模拟浏览器活动并生成静态HTML,便于搜索引擎抓取。

tar -xzvf node-v17.9.0-linux-x64.tar.gz

安装与配置Node.js库

ln -s /opt/node-v17.9.0-linux-x64/bin/node /usr/local/bin/
ln -s /opt/node-v17.9.0-linux-x64/bin/npm /usr/local/bin/

为了安装Node.js,须访问其安装路径,下载并解压安装包。随后,建立符号链接以简化命令访问,并通过执行`node-v`命令检验安装是否完成。接着,安装必要的外部工具,搭建并切入项目文件夹seo优化,安裝所需依赖库。尽管过程细致,这些却是实施SEO优化的根本步骤。

创建服务器端运行脚本

项目目录中,须构建数个核心脚本。初为页面渲染脚本,专用于生成静态HTML页面内容。次为性能优化脚本,默认禁用冗余功能,以提升访问速度。终为服务器启动脚本seo优化,负责启动服务器并供应生成静态内容以供搜索引擎抓取。

npm install puppeteer --save
npm install express
npm install html-minifier

启动与调试

yum install pango.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXext.x86

在服务器启动后,运用`tail-f.out`指令即能监控日志以验证启动状态。若启动不果,常见故障如端口冲突可用调整端口方法解决。启动成功的标志是日志中仅显示“服务已启动”,并无其他错误信息。

配置与测试

const puppeteer = require('./node_modules/puppeteer');//由于目录不一致,所以使用的是绝对路径
const WSE_LIST = require('./puppeteer-pool.js'); //这里注意文件的路径和文件名
const spider = async (url) => {
    let tmp = Math.floor(Math.random() * WSE_LIST.length);
    //随机获取浏览器
    let browserWSEndpoint = WSE_LIST[tmp];
    //连接
    const browser = await puppeteer.connect({
        browserWSEndpoint
    });
    
    //打开一个标签页
    var page = await browser.newPage();
    
    // Intercept network requests.
    await page.setRequestInterception(true);

    page.on('request', req => {
      // Ignore requests for resources that don't produce DOM
      // (images, stylesheets, media).
      const whitelist = ['
document', 'script', 'xhr', 'fetch'];
      if (!whitelist.includes(req.resourceType())) {
        return req.abort();
      }
      
      // Pass through all other requests.
      req.continue();
    });
    
    //打开网页
    await page.goto(url, {
        timeout: 20000, //连接超时时间,单位ms
        waitUntil: '
networkidle0' //网络空闲说明已加载完毕
    });
    
    //获取渲染好的页面源码。不建议使用await page.content();获取页面,因为在我测试中发现,页面还没有完全加载。就获取到了。页面源码不完整。也就是动态路由没有加载。vue路由也配置了history模式
    let html = await page.evaluate(() => {
        return document.getElementsByTagName('
html')[0].outerHTML;
    });
    await page.close();
    return html;
}

module.exports = spider;

成功启动服务器后,执行下列配置步骤。若采用宝塔面板,于伪静态设置中插入必需代码。配置完毕,应用测试工具验证静态HTML内容的生成情况。对照配置前后的数据,可验证SEO优化的成效。

常见问题与解决方法

const puppeteer = require('./node_modules/puppeteer');
const MAX_WSE = 2; //启动几个浏览器 
let WSE_LIST = []; //存储browserWSEndpoint列表
//负载均衡
(async () => {
    for (var i = 0; i < MAX_WSE; i++) {
        const browser = await puppeteer.launch({
            //无头模式
            headless: true,
            //参数
            args: [
                '--disable-gpu',
                '--disable-dev-shm-usage',
                '--disable-setuid-sandbox',
                '--no-first-run',
                '--no-sandbox',
                '--no-zygote',
                '--single-process'
            ],
            //一般不需要配置这条,除非启动一直报错找不到谷歌浏览器
            //executablePath:'chrome.exe在你本机上的路径,例如C:/Program Files/Google/chrome.exe'
        });
        let browserWSEndpoint = await browser.wsEndpoint();
        WSE_LIST.push(browserWSEndpoint);
    }
})();

module.exports = WSE_LIST

操作过程可能遭遇诸如端口占用或配置失误等多种难题。我们将依据具体错误指引,施行针对性措施。若3000端口遭占用,可通过修改配置以选用未被占用的端口号。细微调整将有助于保证服务器平稳运行。

const express = require('./node_modules/express');
var app = express();
var spider = require("./spider.js");
var minify = require('html-minifier').minify;
app.get('*', async (req, res) => {
    let url = "https://www.shiyit.com" + req.originalUrl;
    console.log('请求的完整URL:' + url);
    let content = await spider(url).catch((error) => {
        console.log(error);
        res.send('获取html内容失败');
        return;
    });
    // 通过minify库压缩代码
    content=minify(content,{removeComments: true,collapseWhitespace: true,minifyJS:true, minifyCSS:true});
    res.send(content);
});
app.listen(3000, () => {
    console.log('服务已启动!');
});

总结与展望

以上流程令Vue单页面应用SEO优化在原代码未改动的前提下成为可能。虽然实施过程可能较为繁琐,遵循步骤逐一操作即可达成预期效果。展望未来,技术进步有望带来更便捷高效的做法。

nohup node service.js &

请问在执行Vue单页面应用的搜索引擎优化时网站开发,哪一环节最为棘手?敬请于评论区分享您的见解与经验,同时不妨点赞与转发本篇文章。

Tag:
网站制作公众号

宿迁腾云网络网站建设公司 | 网站开发 | 网站制作 | 网站优化

咨询电话:13160355545

上一篇

返回栏目

下一篇

免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。

热推

  • 网站优化如何提高网络推广的转化率?超级排名系统编辑整理发布!网站优化能发外链的gvm网站大全
  • 网站优化SEO(搜索引擎优化)利用一系列策略改进网站,增加从搜索引擎到你页面的访问量 广州网站优化-广州seo-网站优化
  • 网站优化海洋CMS火车头采集以及发布模块,怎么用火车头采集器实现什么是网站优化
  • 网站seo腾云网络怎样帮助网站吸引更多的流量?seo网站seo服务优化
  • 淘宝seo SEO优化技术淘宝seo最核心是什么淘宝有一套自己的排名规则
  • seo优化SEO优化更新频率对关键字排名优化有没有影响呢??seo优化秘籍 外贸仿牌英文seo
  • 腾云网络就是如星网络,河南如星网络科技(组图)
  • seo优化企业如何在短时间搭建一个网站,实现网站或产品在三大搜索引擎快速排名seo关键词优化外包
  • 网站优化如何做网络营销推广为大家总结的几点有关网站SEO发布技巧网站优化与seo优化
  • 网站seo新站来说该怎么优化网站?这里教你一个SEO优化的方法广州网站优化-广州seo-网站优化

相关

seo优化 公司建站如何做好 SEO?优企客总结的这六点你必

seo优化 公司建站如何做好 SEO?优企客总结的这六点你必

SEO 优化八步走:关键词分析、网站架构、目录页面优化与内容

SEO 优化技巧:关键词分析与用户搜索需求分析

SEO 优化技巧:关键词分析与用户搜索需求分析

扬州网站优化:利用 SEO 技术提升品牌曝光和询盘数量

扬州网站优化:利用 SEO 技术提升品牌曝光和询盘数量

深入了解 HTML 语义化:提升 SEO 优化的关键

深入了解 HTML 语义化:提升 SEO 优化的关键

电商网站 SEO 优化实战:技术架构与页面收录策略解析

电商网站 SEO 优化实战:技术架构与页面收录策略解析

SEO 优化推广网站:深入解析关键词与网站结构优化

网站 SEO 优化:做好诊断与调整,提升效果的关键步骤

百度搜索引擎打击盗版内容站点,提升版权保护意识

跨境电商发展势头强劲,企业纷纷发力谷歌广告

标签

seo(1182) 市场营销(661) 网站制作(573) 网站建设(564) 搜索引擎(553) 网站(482) PHP(361) 编程语言(345) 建站(294) 关键词排名优化(267) 网站建设公司(245) 优化(216) seo排名(207) 域名(190) 软件(171) 网站优化(148) 搜索引擎优化(146) 外链(141) 科技(136) 网站关键词(124) 网站排名优化(123) 域名服务器(120) 网站排名(107) 时政(103) 排名优化(95) 搜索引擎收录(93) 网站设计(92) 电子商务(88) 引擎(86) 移动互联网(85) 开发框架(79) 开发(75) 网站服务器(74) 框架(68) 前端开发(68) 网站分析(66) 网站建设方案(65) 关键(64) 流量(63) 源码(62) 百度优化(62) 网站权重(61) 开放源代码(59) seo培训(53) 网页设计(51) 百度(51) php框架(50) 网站建设知识(50) 大数据(50) 谷歌(49)
宿迁腾云网络网站建设公司
网站建设
  • 私人定制
  • 标准模板建站
  • 经济模板建站
精品模板

宿迁腾云网络网站建设公司

联系电话:13160355545

公司地址:江苏省宿迁市丽景湾华庭北门都市花园公寓9楼907

联系邮箱:admin@tyweb.net

全国分站
  • 北京
  • 广东
  • 东莞 广州 中山 深圳 惠州 江门 珠海 汕头 佛山 湛江 河源 肇庆 潮州 清远 韶关 揭阳 阳江 云浮 茂名 梅州 汕尾
  • 山东
  • 济南 青岛 临沂 济宁 菏泽 烟台 泰安 淄博 潍坊 日照 威海 滨州 东营 聊城 德州 莱芜 枣庄
  • 江苏
  • 苏州 徐州 盐城 无锡 南京 南通 连云港 常州 扬州 镇江 淮安 泰州 宿迁
  • 河南
  • 郑州 南阳 新乡 安阳 洛阳 信阳 平顶山 周口 商丘 开封 焦作 驻马店 濮阳 三门峡 漯河 许昌 鹤壁 济源
  • 上海
  • 河北
  • 石家庄 唐山 保定 邯郸 邢台 沧州 秦皇岛 张家口 衡水 廊坊 承德
  • 浙江
  • 温州 宁波 杭州 台州 嘉兴 金华 湖州 绍兴 舟山 丽水 衢州
  • 陕西
  • 西安 咸阳 宝鸡 汉中 渭南 安康 榆林 商洛 延安 铜川
  • 湖南
  • 长沙 邵阳 常德 衡阳 株洲 湘潭 永州 岳阳 怀化 郴州 娄底 益阳 张家界 湘西
  • 重庆
  • 福建
  • 漳州 泉州 厦门 福州 莆田 宁德 三明 南平 龙岩
  • 天津
  • 云南
  • 昆明 红河 大理 文山 德宏 曲靖 昭通 楚雄 保山 玉溪 丽江 临沧 思茅 西双版纳 怒江 迪庆
  • 四川
  • 成都 绵阳 广元 达州 南充 德阳 广安 阿坝 巴中 遂宁 内江 凉山 攀枝花 乐山 自贡 泸州 雅安 宜宾 资阳 眉山 甘孜
  • 广西
  • 贵港 玉林 北海 南宁 柳州 桂林 梧州 钦州 来宾 河池 百色 贺州 崇左 防城港
  • 安徽
  • 芜湖 合肥 六安 宿州 阜阳 安庆 马鞍山 蚌埠 淮北 淮南 宣城 黄山 铜陵 亳州 池州 巢湖 滁州
  • 海南
  • 三亚 海口 琼海 文昌 东方
  • 江西
  • 南昌 赣州 上饶 吉安 九江 新余 抚州 宜春 景德镇 萍乡 鹰潭
  • 湖北
  • 武汉 宜昌 襄樊 荆州 恩施 孝感 黄冈 十堰 咸宁 黄石 仙桃 随州 天门 荆门 潜江 鄂州 神农架
  • 山西
  • 太原 大同 运城 长治 晋城 忻州 临汾 吕梁 晋中 阳泉 朔州
  • 辽宁
  • 大连 沈阳 丹东 辽阳 葫芦岛 锦州 朝阳 营口 鞍山 抚顺 阜新 本溪 盘锦 铁岭
  • 黑龙江
  • 齐齐哈尔 哈尔滨 大庆 佳木斯 双鸭山 牡丹江 鸡西 黑河 绥化 鹤岗 伊春 大兴安岭 七台河
  • 内蒙古
  • 赤峰 包头 通辽 呼和浩特 乌海 鄂尔多斯 呼伦贝尔
  • 贵州
  • 贵阳 黔东 黔南 遵义 黔西 毕节 铜仁 安顺 六盘水
  • 甘肃
  • 兰州 天水 庆阳 武威 酒泉 张掖 陇南 白银 定西 平凉 嘉峪关 临夏 金昌 甘南
  • 青海
  • 西宁 海西 海东 海北 果洛 玉树 黄南
  • 新疆
  • 乌鲁木齐 伊犁 昌吉 石河子 哈密
  • 西藏
  • 拉萨 山南 林芝 日喀则
  • 吉林
  • 长春 白山 白城 延边 松原 辽源 通化 四平
  • 宁夏
  • 银川 吴忠 中卫 石嘴山 固原
SiteMap
网站地图
TAG标签
Copyright © 2017-2025 TYWEB.NET 宿迁腾云网络科技有限公司 ALL RIGHTS RESERVED.   苏ICP备17033535号-1

热门搜索

百度 下载 2025 2024 2026 货源 货货源 虚拟 禅道 报名 金蝶KIS旗舰版
  • 客服

    在线客服

  • 电话

    13160355545

  • 微信

精品模板
建站费用
成功案例
联系我们