51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

如何自动提交站点地图给谷歌?

# 如何自动提交站点地图给谷歌? {#如何自动提交站点地图给谷歌?}

将你的站点地图自动提交给谷歌

# 前言 {#前言}

本文教大家如何自动提交网站的站点地图到谷歌

前提条件为你已经有Search Console的账号并绑定了你的网站~

如果不知道什么是Search Console请先看下我之前的文章 如何在Google搜索到我的网站?? 类似

没看过的小伙伴可以先看下~
特殊注意

  1. 本文基于可以访问到谷歌的童鞋,不懂怎么访问的话,请自行学习

  2. 你需要有一个谷歌账号,没有的童鞋,也请自行Google一下哈

  3. 谷歌的收录速度可是非常快的

# 什么是站点地图? {#什么是站点地图?}

站点地图是一个网站所有链接的容器。很多网站的连接层次比较深,爬虫很难抓取到,站点地图可以方便爬虫抓取网站页面,通过抓取网站页面,清晰了解网站的架构,网站地图一般存放在根目录下并命名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&amp;desc=vacation_hawaii</loc>
      <changefreq>weekly</changefreq>
   </url>
   <url>
      <loc>http://www.example.com/catalog?item=73&amp;desc=vacation_new_zealand</loc>
      <lastmod>2004-12-23</lastmod>
      <changefreq>weekly</changefreq>
   </url>
   <url>
      <loc>http://www.example.com/catalog?item=74&amp;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&amp;desc=vacation_usa</loc>
      <lastmod>2004-11-23</lastmod>
   </url>
</urlset>

sitemap.txt

http://www.example.com/
http://www.example.com/catalog?item=12&amp;desc=vacation_hawaii
http://www.example.com/catalog?item=73&amp;desc=vacation_new_zealand
http://www.example.com/catalog?item=74&amp;desc=vacation_newfoundland
http://www.example.com/catalog?item=83&amp;desc=vacation_usa

如果想深入了解xml格式站点地图语法的童鞋,请用力点击此处!

# 如何自动提交给Google? {#如何自动提交给google}

# 提交方式 {#提交方式}

如何手动提交站点地图给谷歌在我 这篇 文章中已经有介绍了,没看过的小伙伴可以看下

那么如何自动提交呢?

其实谷歌官方已经给出了接口,可以让开发者通过程序的方式来访问,就可以自动提交了~

接口如下:

http://www.google.com/ping?sitemap=URL/of/file

其中,sitemap=后面的内容,就填写你的站点地图在网站的位置
注意

sitemap=后面内容一定要处于公网环境,且可以让google访问的到

# 编码思路 {#编码思路}

提示

本方式基于 vuepressgithub Actions 来实现

有了接口就很好办了

我们需要做的主要就是三点

  1. 生成站点地图文件
  2. 编写推送将站点地图文件推送给谷歌的脚本
  3. 编写github Action yml 文件

# 编码实现 {#编码实现}

  1. 编写生成站点资源的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 '+${DOMAIN}${data.permalink}+'' + '\r\n daily' + '\n ' // const link = \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 你的域名",
  },
  1. 编写谷歌推送脚本

    #!/usr/bin/env sh

    确保脚本抛出遇到的错误

    set -e

    谷歌鏈接推送

    curl http://www.google.com/ping?sitemap=http://taixingyiji.com/google.xml

  2. 配置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

如果想知道如何通过程序将网站链接自动推送给百度的童鞋,请点击此处

赞(0)
未经允许不得转载:工具盒子 » 如何自动提交站点地图给谷歌?