网页想要google 收录, 需要在 Google-Search-Console 里面手动提交索引请求, 然后 Google 会记录链接, 稍后派出爬虫抓取网页.
对于页面比较少的网站, 手动提交一下也不会花太多的时间, 但是对于经常更新, 或者链接比较多的网站, 则需要考虑用 google-indexing-api 来批量提交索引请求.
这个过程中, 踩了不少坑, 特意记录一下.
准备工作
在使用 indexing-api 之前, 我们需要准备一些资料, 参考 使用 Indexing API 的前提条件 简单总结一下, 就是去 google-cloud 的云服务平台, 创建项目, 启用API, 注册服务号并设置密钥. 这里官方的文档流程不够全, 建议看我的流程.
1.1 创建项目与服务号
先打开 https://console.cloud.google.com/iam-admin/serviceaccounts?hl=zh-cn
然后在顶部选择项目, 没有项目的话, 可以新建一个项目.
新建完项目后, 切换到该项目工作区下, 从左侧菜单切换到 服务账号页面.
从顶部创建一个新的服务账号, 名称可以自己写, 按照 google的文档说法, 只需要确定名称之后, 后面2-3步的服务帐号权限(可选), 可以直接跳过.
当服务账号创建成功后, 可以在列表中看见它, 此时密钥ID的属性是空的, 我们需要点击左右侧的操作对应的图表(三个点), 然后选择”管理密钥”, 在管理密钥页面, 点击添加密钥->创建新的密钥, 格式选择JSON, 创建完成后会自动下载一个JSON文件(注意, 这个文件只会下载一次, 因此我们要好好保存, 后面会用到).
1.2 启用API
直接在 项目的页面中, 点击 “GoogleCloud”的图标, 进入项目的主页, 这里注意到下面有快速访问
我们点击 “API和服务”, 在 “已启用的API和服务” 中, 选择 “启用API和服务”
然后能看到一堆可以选择的 API, 这里我们要启用两个, 直接用搜索搜 “Web Search Indexing API” 和 “Google Search Console API” 并启用
在 Google 官方的文档里面,第一步就是启用 search-indexing-api , 但是没有启用 google-console-api, 会导致后面我们没有 google-search-console 的权限从而导致 indexing-api执行失败.
绑定服务号至 GSC
我们复制一下刚才创建密钥的服务号 对应的电子邮件.
然后打开 https://search.google.com/search-console (这是google的网站管理中心, 如果我们是第一次打开的话, 建议先按照提示, 绑定网站并完成验证, 可以参考我的其他文章)
然后在设置中, 选择 用户和权限, 点击添加 用户, 权限为 拥有者.
这样, 我们注册的服务号就有权限访问 Google-Search-Console(GSC)的数据了. (上面我们没有启用 search-console-api的话, 这里只是绑定用户了, 也还是会出错).
使用Google-Indexing-Script
当我们准备好服务号, 启用API并在 GSC中添加服务号为拥有者之后, 去 Github上 clone项目 https://github.com/goenning/google-indexing-script
这是别人封装好的调用 indexing-api 的脚本, clone项目到本地后, 安装依赖
然后把刚才下载的 密钥json复制到项目根目录, 改名为 service_account.json, 然后按照文章所说, 执行指令
npm run index xxx.com
即可调用脚本自动抓取url并提交google索引 (PS: 这里抓取链接是通过读取 sitemap.xml, 因此最好在网站根目录下准备好 sitemap.xml 并提交到 google-search-console里)
总结
使用 indexing-api 可以快速帮助 Google收录我们的网页, 如果我们不做这个的话, 等着爬虫自己去抓取, 按照现在的网站数量, 可能要不断地时间. 而用 indexing-api, 可以批量的提醒 google, 我们的网页更新了, 快来抓取把, 通常提交索引请求的2-3天内, google 便会用爬虫抓取新的网页. 当然只是收录, 要想在搜索结果中获取好的排名(权重), 还需要做更多的事情.