Apostrope Siteap 模块生成 XML 网站地图, 供网站使用 ApostropheCMS 磁带控制系统. 站点地图包括您网站上所有公众可见的页面,包括事件和博客帖等"件"内容.
一个经常更新和准确的XML站点地图可以让搜索引擎更快地索引您的内容并查看新页面. Sitemap 模块将维护缓存的站点地图以快速加载,但在一个小时后(默认情况下)自动刷新. 这也阻止了网站地图过时,这将是 罺 为SEO.
路线图
| 特性 | 状态 |
|---|---|
| 用于单一本地网站的项目生成 | 已执行 |
| 排除某些 Doc 类型的模块配置 | 已执行 |
| 手动生成站点映射的任务 | 已执行 |
| 文本风格的站点地图生成(用于内容战略工作) | 计划数 |
| 支持多个地(地) | 已执行 |
| 输出定制功能 | 计划数 |
安装
npm install @apostrophecms/sitemap
使用
初始化
配置 @apostrophecms/sitemap 内 app.js 作为项目单元.
// app.js
require('apostrophe')({
shortName: 'my-project',
baseUrl: 'https://example.com',
modules: {
'@apostrophecms/sitemap': {}
}
});
启动网站 (与 node app 或你所偏爱的指令),并且 http://localhost:3000/sitemap.xml (地方发展)。 您现在应该看到一个站点地图中显示的任何页面, 以及任何有相关块页的作品 .
设置 baseUrl
必须配置一个 baseUrl 用于项目正确显示 URL。 如上所示,这可以在应用程序配置对象中实现. 为支持生产和发展环境的不同领域,还可以将其配置在以下结构中: data/local.js 文件,通过版本控制应当被忽略. data/local.js 将优先于 app.js,因此两者也可以用来支持多种环境.
// data/local.js
module.exports = {
baseUrl: 'http://localhost:3000'
};
选项
所有站点映射模块选项都配置在 options 对象.
// modules/@apostrophecms/sitemap/index.js
module.exports = {
// 👇 Module options
options: {
cacheLifetime: 1800,
excludeTypes: [ 'exclusive-page', 'category' ]
}
};
这些内容可在 app.js 模块的配置对象,但使用模块配置的专用文件是更好的做法.
cacheLifetime
默认的站点图被缓存一个小时. 您可以通过指定 cacheLifetime 选项,以秒计。 它必须是一个大于零的数字.
提示 : 为了更容易进入缓存寿命,它可以帮助将其写作数学表达式,将期望的分数乘以60:
cacheLifetime: 30 * 60 // or 1800 seconds
记住:Google和其他搜索引擎比每周多,如果是这样的话. 每小时刷一次 通常都足够了.
excludeTypes
如果存在特定的页面类型或块内容类型,则应 没有 在站点映射中,将它们列在阵列中作为 excludeType 选项.
excludeTypes: [ 'exclusive-page', 'category' ]
piecesPerBatch (折旧)
此选项不再被使用, 将被忽略 。 它之前用于控制在直接从数据库查询中构建站点映像时每次处理多少件. 站点地图模块现在使用集中式 getAllUrlMetadata API代替.
perLocale
如果您的项目使用多个本地地址, 您想要 每个地方都有自己的站点地图,启用 perLocale 选项 :
// modules/@apostrophecms/sitemap/index.js
module.exports = {
options: {
perLocale: true
}
};
这将:
- 为每个地方生成单独的站点映射文件(例如,
/sitemaps/en.xml, (中文(简体) ),/sitemaps/es.xml页:1 - 服务网站映射索引文件于
/sitemaps/index.xml - 禁用默认
/sitemap.xml路径(返回 a 404)
💡 提示 如果你使用多个地方,启用
perLocale生成一个单独的站点图.
Sitemap: https://example.com/sitemaps/index.xml
任务
print
这个 print 命令会根据需要生成最新的站点地图 将网站映射打印到控制台。也可以根据需要将输出管道化,以帮助生成静态文件版本。 在命令行上,运行 :
node app @apostrophecms/sitemap:print
update-cache
使用 update-cache 任务以强制随时更新缓存。 如果网站非常大(数以百计的URL),在生产服务器上运行此任务选项时,比标准缓存刷新更频繁地使用克龙任务,有助于在搜索引擎开始爬行网站时确保缓存可用.
node app @apostrophecms/sitemap:update-cache
clear
您可以在任何时间手动清除缓存的站点图 clear 任务。 这将迫使在下次请求时生成一个新的站点图 /sitemap.xml。在命令行中,运行:
node app @apostrophecms/sitemap:clear
向搜索引擎介绍网站地图
创建一个 public/robots.txt 如果您还没有文件,请添加站点映射行。 这是没有其他网站的有效例子 robots.txt 规则 :
Sitemap: https://example.com/sitemap.xml
解决问题
- 如果你已经有静态
public/sitemap.xml文档, 文件将在/sitemap.xmlURL路径代替. 删除它让模块接管. - 默认情况下会缓存一个小时,所以不会立即看到内容的改变. 见上文关于
cacheLifetime选项,clear任务,以及update-cache任务,用于更频繁地更新网站图.