美文网首页jouypub.com
NodeJs生成sitemap站点地图

NodeJs生成sitemap站点地图

作者: JouyPub | 来源:发表于2019-06-11 13:48 被阅读1次

如果博客是使用Hexo管理的,sitemap可以使用插件来生成。但对于一个内容管理网站,后端可能是express、koa之类的框架,这时sitemap就需要自己来生成了

什么是sitemap

  Sitemap可方便网站管理员通知搜索引擎他们网站上有哪些可供抓取的网页。最简单的Sitemap形式,就是XML文件,在其中列出网站中的网址以及关于每个网址的其他元数据(上次更新的时间、更改的频率以及相对于网站上其他网址的重要程度为何等),以便搜索引擎可以更加智能地抓取网站。

sitemap结构

<url>
    <loc>http://www.jouypub.com/</loc>
    <lastmod>2019-05-01</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
</url>

loc:文章链接地址
lastmod:最后更新时间
changefreq:更新频率,daily/monthly
priority:权重

生成sitemap,基于express项目

开源包:sitemap,地址: https://github.com/ekalinin/sitemap.js

> npm install --save sitemap

代码中使用

const express = require('express')
const sm = require('sitemap');

router.get('/sitemap.xml', function (req, res) {
    let pageRequest = Object.create({});
    pageRequest.pageSize = -1;
    pageRequest.pageNum = 1;
    api.post('/article/list', pageRequest, function (result) {
        let urls = [];
        for (let article in  result) {
            urls.push({
                url: article.url,
                changefreq: 'daily',
                lastmodrealtime: true,
                priority: 1,
                lastmod: article.updateTime
            });
        }

        let sitemap = sm.createSitemap({
            hostname: 'http://invest.jouypub.com',
            cacheTime: 600000,  // 600sec, cache purge period
            urls: urls
        });

        sitemap.toXML(function (err, xml) {
            if (err) {
                console.log(err);
                return res.status(500).end();
            }
            res.header('Content-Type', 'application/xml');
            res.send(xml);
        });
    });
});

sitemap优化

上面那种方法在文章数少时还能使用,如果有几千甚至几万篇文章,一次拉取的方式就不适合了,就需要把返回结果写入到文件中,一天更新一次。只需要只需要把
sitemap.toXML()
改成
fs.writeFileSync("app/assets/sitemap.xml", sitemap.toString());即可。每次请求sitemap时读文件即可

欢迎订阅「K叔区块链」 - 专注于区块链技术学习
博客地址:http://www.jouypub.com
简书主页:https://www.jianshu.com/u/756c9c8ae984
segmentfault主页:https://segmentfault.com/blog/jouypub
腾讯云主页:https://cloud.tencent.com/developer/column/72548

相关文章

  • NodeJs生成sitemap站点地图

    如果博客是使用Hexo管理的,sitemap可以使用插件来生成。但对于一个内容管理网站,后端可能是express、...

  • 网站地图生成

    网站地图生成是使用站长工具_sitemap网站地图免费生成工具完成的,站长工具_sitemap网站地图免费生成工具...

  • hexo(3)-生成sitemap站点地图

    我的博客:www.viggoz.com 1.先确认博客是否被收录 在百度或者谷歌上面输入下面格式来判断,如果能搜索...

  • Hexo博客Next主题SEO优化方法

    添加站点地图 安装插件 需要安装两个插件来生成 sitemap 文件,前一个是传统的 sitemap,后一个是百度...

  • 网站地图(sitemap)在线生成

    网站地图在线生成其实也就是sitemap在线生成,在线生成网站地图(sitemap)的方式其实就两种: 一是、网站...

  • 【读书笔记1】关于Axure的基本概念

    1、网站地图(Sitemap) 这个区域会列出当前站点的地图。站点地图是树状的,以Home(首页)为根节点。 2、...

  • 独立站百科29 什么是站点地图

    sitemap,站点地图,不是真正的地图,而是网站所有的链接的集合,站点地图的作用是帮助搜索引擎快速的爬取和收录网...

  • 网站地图

    站长工具_sitemap网站地图免费生成工具(https://sitemap.webkk.net)提供便捷的在线工...

  • 网页地图

    网页地图是什么?网页地图就是网站地图、站点地图、sitemap。网页地图是一个网站所有链接的容器。很多网站的连接层...

  • 网站地图是什么

    网站地图是什么?网站地图又叫站点地图或者Sitemap,网站地图是一个包含了大量网站链接的文件,这些链接是这个网站...

网友评论

    本文标题:NodeJs生成sitemap站点地图

    本文链接:https://www.haomeiwen.com/subject/qbxqfctx.html