前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >如何自动提交站点地图给谷歌?

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

作者头像
taixingyiji
发布2022-07-25 15:41:10
发布2022-07-25 15:41:10
1.1K00
代码可运行
举报
运行总次数:0
代码可运行

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

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

# 前言

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

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

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

没看过的小伙伴可以先看下~

特殊注意

  1. 本文基于可以访问到谷歌的童鞋,不懂怎么访问的话,请自行学习
  2. 你需要有一个谷歌账号,没有的童鞋,也请自行Google一下哈
  3. 谷歌的收录速度可是非常快的

# 什么是站点地图?

站点地图是一个网站所有链接的容器。很多网站的连接层次比较深,爬虫很难抓取到,站点地图可以方便爬虫抓取网站页面,通过抓取网站页面,清晰了解网站的架构,网站地图一般存放在根目录下并命名sitemap,为爬虫指路,增加网站重要内容页面的收录。站点地图就是根据网站的结构、框架、内容,生成的导航网页文件。站点地图对于提高用户体验有好处,它们为网站访问者指明方向,并帮助迷失的访问者找到他们想看的页面。

站点地图(sitemap)一般分为两种方式来记录,xml格式文件或者txt文件,一般两种文件中包含了该网站的所有链接,可以提交给爬虫去爬取,让搜索引擎更快的去收录网站内容

# 站点地图示例

sitemap.xml

代码语言:javascript
代码运行次数:0
运行
复制
<?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

代码语言:javascript
代码运行次数:0
运行
复制
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?

# 提交方式

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

那么如何自动提交呢?

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

接口如下:

代码语言:javascript
代码运行次数:0
运行
复制
http://www.google.com/ping?sitemap=URL/of/file

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

注意

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

# 编码思路

提示

本方式基于 vuepress github Actions 来实现

有了接口就很好办了

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

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

# 编码实现

  1. 编写生成站点资源的node.js脚本
代码语言:javascript
代码运行次数:0
运行
复制
/**
 * 生成谷歌链接推送文件
 */
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>');
}

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

代码语言:javascript
代码运行次数:0
运行
复制
"scripts": {
    "build": "vuepress build docs && node utils/googlePush.js 你的域名",
  },
  1. 编写谷歌推送脚本
代码语言:javascript
代码运行次数:0
运行
复制
#!/usr/bin/env sh

# 确保脚本抛出遇到的错误
set -e
# 谷歌鏈接推送
curl http://www.google.com/ping?sitemap=http://taixingyiji.com/google.xml
  1. 配置Github Action

跟着图片一步一步来~

然后填写的内容如下~,可以直接复制

代码语言:javascript
代码运行次数:0
运行
复制
## 利用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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-12-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • # 如何自动提交站点地图给谷歌?
    • # 前言
    • # 什么是站点地图?
    • # 站点地图示例
    • # 如何自动提交给Google?
      • # 提交方式
      • # 编码思路
      • # 编码实现
    • # 大功告成
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档