Lake's Blog Lake's Blog
首页
HCFrame
  • 博客搭建

    • 搜索引擎
    • SEO优化
    • 问题记录
  • Vue

    • 问题记录
  • uni-app
  • 开发

    • Spring
  • 数据库及中间件

    • Elasticsearch
    • SQL
  • 杂谈

    • 杂谈
  • 微服务

    • nacos
    • CAS
  • 算法说明

    • algorithm
  • leetCode

    • leetCode
  • 代理

    • Nginx
  • Linux

    • ubuntu
  • Docker
  • 数据库
  • 消息队列
  • openwrt
  • 友情链接
关于
  • 网站
  • 资源
  • 分类
  • 标签
  • 归档
GitHub

Lake Liu

很菜的程序员
首页
HCFrame
  • 博客搭建

    • 搜索引擎
    • SEO优化
    • 问题记录
  • Vue

    • 问题记录
  • uni-app
  • 开发

    • Spring
  • 数据库及中间件

    • Elasticsearch
    • SQL
  • 杂谈

    • 杂谈
  • 微服务

    • nacos
    • CAS
  • 算法说明

    • algorithm
  • leetCode

    • leetCode
  • 代理

    • Nginx
  • Linux

    • ubuntu
  • Docker
  • 数据库
  • 消息队列
  • openwrt
  • 友情链接
关于
  • 网站
  • 资源
  • 分类
  • 标签
  • 归档
GitHub
  • 博客搭建

    • 搜索引擎

      • 如何在百度搜索到我的网站?
      • 如何在Google搜索到我的网站?
      • 如何自动提交站点地图给谷歌?
        • 前言
        • 什么是站点地图?
        • 站点地图示例
        • 如何自动提交给Google?
          • 提交方式
          • 编码思路
          • 编码实现
        • 大功告成
    • SEO优化

    • 问题记录

    • Markdown基本语法
    • Vue或VuePress添加不蒜子统计
  • VUE

  • UNIAPP

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

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

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

# 前言

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

前提条件为你已经有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>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

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
1
2
3
4
5

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

# 如何自动提交给Google?

# 提交方式

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

那么如何自动提交呢?

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

接口如下:

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

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

注意

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

# 编码思路

提示

本方式基于 vuepress 和 github 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 = '<?xml version="1.0" encoding="UTF-8"?>\n' +
        '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'
    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  <url>' +
                '\r\n    <loc>'+`${DOMAIN}${data.permalink}`+'</loc>' +
                '\r\n    <changefreq>daily</changefreq>' +
                '\n  </url>'
            // const link = `\r\n${DOMAIN}${data.permalink}`;
            console.log(url)
            fs.appendFileSync(urlsRoot, url);
        }
    })
    fs.appendFileSync(urlsRoot, '\r\n</urlset>');
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

在 package.json 文件中修改 build 脚本命令如下

"scripts": {
    "build": "vuepress build docs && node utils/googlePush.js 你的域名",
  },
1
2
3
  1. 编写谷歌推送脚本
#!/usr/bin/env sh

# 确保脚本抛出遇到的错误
set -e
# 谷歌鏈接推送
curl http://www.google.com/ping?sitemap=http://taixingyiji.com/google.xml
1
2
3
4
5
6
  1. 配置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 # 运行目录是仓库根目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

# 大功告成

OK,那么,还是老样子,大功告成~~

这样的话,每当你push的时候,或者每天早上,github Actions 都会自动提交站点地图给Google

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

编辑
#Google#谷歌#链接收录#站点地图
上次更新: 2023/03/24, 08:53:10
如何在Google搜索到我的网站?
使vuepress可以设置每个文章页的专属Keywords

← 如何在Google搜索到我的网站? 使vuepress可以设置每个文章页的专属Keywords→

最近更新
01
IDEA行号太宽
03-11
02
uniapp中实现h5扫码功能(微信版)
08-12
03
Docker安装Rabbitmq
07-22
更多文章>
本站总访问量次 | 您是本站第位访问者
Theme by Vdoing | Copyright © 2020-2024 Lake Liu | MIT License | 背景图、Logo、头像设计@Drrizzee
  • 跟随系统
  • 深色模式
  • 浅色模式
  • 阅读模式