都2021年了,个人博客都成为小众产品了,几乎都是开发者,十有八九还是个前端开发。
虽然GitHub时常被墙,但大部分人还是会选择GitHub Pages,以减少服务器的维护成本。
而作为个人博客站长,几乎都会不务正业的折腾各种功能模块,今天就来介绍SEO相关,关于网站收录的部分。
常用的搜索引擎一般分为以下三种:
- 百度
- Bing
百度作为检索信息最多,且最乱的典型代表,你常常会在第一页找不到你想要的结果,但无奈它是我国最常用的搜索引擎。
常规的提交方法是去百度站长平台提交Sitemap,文件名一般为sitemap.xml
,由于我目前使用的Gridea,没有生成Sitemap的方法,于是乎决定采用API的方式提交。
我们先准备好推送网站收录的脚本,以下是我写好的.push.py
import re
import json
import requests
domain = "blog.xwl.io"
token = "xxxxxxxxxx"
res = requests.get("https://%s/archives/" % domain)
tags = re.findall(r'href="([a-zA-z]+://[^\s]*)"', str(res.text))
urls = []
for t in tags:
if t.endswith("css") or t.endswith("js"):continue
if not t.startswith(domain):continue
urls.append(t)
urls = "\n".join(urls)
headers = {"Content-Type": "text/plain"}
resp = requests.post("http://data.zz.baidu.com/urls?site=https://%s&token=%s" & (domain, token), headers=headers, data=urls)
print(resp.text)
该脚本的功能是抓取网页上的所有链接,目标页面一般是首页,或者归档页,然后通过百度提供的API进行提交。
另外有两个值得注意的地方:
- 脚本中的token在百度站长平台内的普通收录里获取。
- 百度之前有个自动提交的JS,据我所知目前已经作废了,但接口还会正常返回。
然后我们进入到Github的博客项目中,选择Action,创建一个Workflow,会生成一个基础的模版,然后直接在steps
路径下执行自己的脚本。
# This is a basic workflow to help you get started with Actions
name: CI
# Controls when the action will run.
on:
# Triggers the workflow on push or pull request events but only for the main branch
push:
branches: [ main ]
pull_request:
branches: [ main ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
- name: update baidu
uses: actions/setup-python@v2
with:
python-version: '3.x' # Version range or exact version of a Python version to use, using SemVer's version range syntax
architecture: 'x64' # optional x64 or x86. Defaults to x64 if not specified
- run: pip install requests && python .push.py
以上是我使用的完整的workflow配置,再添加上Google和Bing的部分,就大功告成了。
Google和Bing的Sitemap提交就非常的简单,直接通过一个GET请求即可。
在配置中的steps
字段下继续增加即可。
- name: update google
uses: wei/curl@master
with:
args: https://www.google.com/ping?sitemap=https://blog.xwl.io/atom.xml
- name: update bing
uses: wei/curl@master
with:
args: http://www.bing.com/webmaster/ping.aspx?sitemap=https://blog.xwl.io/atom.xml
把自己的小站弄的花里胡哨,除了知识的分享,也是希望更多的人能看到。