# 如何自动提交站点地图给谷歌? {#如何自动提交站点地图给谷歌?}
将你的站点地图自动提交给谷歌
# 前言 {#前言}
本文教大家如何自动提交网站的站点地图到谷歌
前提条件为你已经有Search Console的账号并绑定了你的网站~
如果不知道什么是Search Console请先看下我之前的文章 如何在Google搜索到我的网站?? 类似
没看过的小伙伴可以先看下~
特殊注意
-
本文基于可以访问到谷歌的童鞋,不懂怎么访问的话,请自行学习
-
你需要有一个谷歌账号,没有的童鞋,也请自行Google一下哈
-
谷歌的收录速度可是非常快的
# 什么是站点地图? {#什么是站点地图?}
站点地图是一个网站所有链接的容器。很多网站的连接层次比较深,爬虫很难抓取到,站点地图可以方便爬虫抓取网站页面,通过抓取网站页面,清晰了解网站的架构,网站地图一般存放在根目录下并命名sitemap,为爬虫指路,增加网站重要内容页面的收录。站点地图就是根据网站的结构、框架、内容,生成的导航网页文件。站点地图对于提高用户体验有好处,它们为网站访问者指明方向,并帮助迷失的访问者找到他们想看的页面。
站点地图(sitemap)一般分为两种方式来记录,xml格式文件或者txt文件,一般两种文件中包含了该网站的所有链接,可以提交给爬虫去爬取,让搜索引擎更快的去收录网站内容
# 站点地图示例 {#站点地图示例}
sitemap.xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://www.example.com/</loc>
<lastmod>2005-01-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://www.example.com/catalog?item=12&desc=vacation_hawaii</loc>
<changefreq>weekly</changefreq>
</url>
<url>
<loc>http://www.example.com/catalog?item=73&desc=vacation_new_zealand</loc>
<lastmod>2004-12-23</lastmod>
<changefreq>weekly</changefreq>
</url>
<url>
<loc>http://www.example.com/catalog?item=74&desc=vacation_newfoundland</loc>
<lastmod>2004-12-23T18:00:15+00:00</lastmod>
<priority>0.3</priority>
</url>
<url>
<loc>http://www.example.com/catalog?item=83&desc=vacation_usa</loc>
<lastmod>2004-11-23</lastmod>
</url>
</urlset>
sitemap.txt
http://www.example.com/
http://www.example.com/catalog?item=12&desc=vacation_hawaii
http://www.example.com/catalog?item=73&desc=vacation_new_zealand
http://www.example.com/catalog?item=74&desc=vacation_newfoundland
http://www.example.com/catalog?item=83&desc=vacation_usa
如果想深入了解xml格式站点地图语法的童鞋,请用力点击此处!
# 如何自动提交给Google? {#如何自动提交给google}
# 提交方式 {#提交方式}
如何手动提交站点地图给谷歌在我 这篇 文章中已经有介绍了,没看过的小伙伴可以看下
那么如何自动提交呢?
其实谷歌官方已经给出了接口,可以让开发者通过程序的方式来访问,就可以自动提交了~
接口如下:
http://www.google.com/ping?sitemap=URL/of/file
其中,sitemap=
后面的内容,就填写你的站点地图在网站的位置
注意
sitemap=
后面内容一定要处于公网环境,且可以让google访问的到
# 编码思路 {#编码思路}
提示
本方式基于 vuepress 和 github Actions 来实现
有了接口就很好办了
我们需要做的主要就是三点
- 生成站点地图文件
- 编写推送将站点地图文件推送给谷歌的脚本
- 编写github Action
yml
文件
# 编码实现 {#编码实现}
-
编写生成站点资源的
node.js
脚本/**
- 生成谷歌链接推送文件 */ const fs = require('fs'); const path = require('path'); const chalk = require('chalk') const matter = require('gray-matter'); // FrontMatter解析器 https://github.com/jonschlinkert/gray-matter const readFileList = require('./modules/readFileList'); const urlsRoot = path.join(__dirname, '../docs/.vuepress/dist/', 'google.xml'); // 谷歌链接推送文件 const DOMAIN = process.argv.splice(2)[0]; // 获取命令行传入的参数
if (!DOMAIN) { console.log(chalk.red('请在运行此文件时指定一个你要进行谷歌推送的域名参数,例:node utils/googlePush.js https://taixingyiji.com')) return }
main();
/**
- 主体函数
*/
function main() {
const begin = '\n' +
'
' fs.writeFileSync(urlsRoot, begin) const files = readFileList(); // 读取所有md文件数据 // 生成xml files.forEach( file => { const { data } = matter(fs.readFileSync(file.filePath, 'utf8')); if (data.permalink) { const url = '\n '); }' + '\r\n ' // const link ='+ ' + '\r\n${DOMAIN}${data.permalink}
+'daily ' + '\n\r\n${DOMAIN}${data.permalink}
; console.log(url) fs.appendFileSync(urlsRoot, url); } }) fs.appendFileSync(urlsRoot, '\r\n
在 package.json
文件中修改 build
脚本命令如下
"scripts": {
"build": "vuepress build docs && node utils/googlePush.js 你的域名",
},
-
编写谷歌推送脚本
#!/usr/bin/env sh
确保脚本抛出遇到的错误
set -e
谷歌鏈接推送
curl http://www.google.com/ping?sitemap=http://taixingyiji.com/google.xml
-
配置Github Action
跟着图片一步一步来~
然后填写的内容如下~,可以直接复制
## 利用GitHub Actions每天定时给Google推送链接,提高收录率 ##
name: googlePush
# 两种触发方式:一、push代码,二、每天国际标准时间23点(北京时间+8即早上7点)运行
on:
push:
schedule:
- cron: '0 23 * * *' # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/events-that-trigger-workflows#scheduled-events-schedule
# on:
# push:
# schedule:
# - cron: '*/5 * * * *' # 每5分钟一次,测试用
jobs:
bot:
runs-on: ubuntu-latest # 运行环境为最新版的Ubuntu
steps:
- name: 'Checkout codes' # 步骤一,获取仓库代码
uses: actions/checkout@v1
- name: 'Run googlePush' # 步骤二,执行sh命令文件
run: npm install && npm run googlePush # 运行目录是仓库根目录
# 大功告成 {#大功告成}
OK,那么,还是老样子,大功告成~~
这样的话,每当你push
的时候,或者每天早上,github Actions
都会自动提交站点地图给Google
如果想知道如何通过程序将网站链接自动推送给百度的童鞋,请点击此处