序文

hexoでhexo-submit-urls-to-search-engineプラグインを使用すると、Hexoブログの新しいリンクをGoogle、Bing、Baiduの検索エンジンウェブマスタープラットフォームに積極的にプッシュでき、ウェブサイトのインデックス品質と速度を向上させることができます。このプラグインを使用すると、主要な検索エンジンに純粋な天然の植物飼育インデックス作成リクエストを送信でき、一度設定すれば永続的に利用できます。

例えば、私の記事が公開からわずか5分でBingで検索できることがあります(これは最良の場合であり、長期的な安定性を保証するものではありません)。見てください、これがhexo-submit-urls-to-search-engineの威力です。BaiduとGoogleは少し遅れています。

これら3つの主要な検索エンジンは、世界の検索エンジン市場の97%(メタ検索エンジンである多吉、Duckduckgoなど、Bingインデックスを使用するYahoo、Ecosiaなどを含む)を占めています。

警告

プロフェッショナルではない方法で他の同様のプッシュコードを使用すると、セキュリティ上の欠陥、冗長コード、車輪の再発明、ドキュメントの読み込み、人生への疑問、憂鬱、頭痛、さらには死、魂の消滅、消滅などの危険な副作用を引き起こす可能性があります。

Githubアドレス

公式交流QQグループとTelegramグループはサービスを停止しました。Githubのissueページで議論に参加してください。

操作手順

クイックスタート:

  1. 各ウェブマスタープラットフォームのキーを取得
  2. hexo-submit-urls-to-search-engineプラグインをインストールして設定
  3. hexo clean && hexo g && hexo dを実行し、プッシュ結果を確認
  4. プッシュが成功したら、 Githubアドレス でStarボタンをクリックしてサポートしてください
  5. ついでにGithubプロジェクトをwatchして、プラグインのアップグレード通知を受け取る
  6. さらに、こちらをクリックしてご支援ください

ウェブマスタープラットフォームキーの取得

本セクションで「記録」するキーは、hexoの_config.ymlに記入します。フォーマットは後述します。

ウェブサイトの検証について:一部のHexoテーマはウェブマスタープラットフォームのhtml検証タグの追加をサポートしており、関連設定を入力後hexo g && hexo dを実行すると検証できます。一般的な詳細な操作手順については、Googleで検索してください:hexo ウェブマスタープラットフォーム 検証

Baidu

Baiduは中国の検索エンジンです。中国当局で複雑なウェブサイト登録手続きを行わない限り、ウェブサイトがインデックスされるのは困難です。

ウェブサイトのサーバーが中国国外にある場合、ウェブサイト登録手続きを行うことは基本的に不可能です。

以前の説明ドキュメントを参照して、Baiduにリンクを送信する方法を確認してください

Bing

Bingウェブマスタープラットフォームには新旧のバージョンがあります。

  1. Bingの新しいウェブマスタープラットフォームに登録してログインします Bing Webmaster Tools
  2. ウェブサイトを追加します
  3. ウェブサイト管理ページに入り、「設定」、「APIアクセス」、「APIキー」と進み、APIキーを記録します

URL送信から設定を開く

APIアクセス画面

Bingの新しいウェブマスタープラットフォームからAPIキーを取得

(最近、Bingウェブマスタープラットフォームがアップグレードされ、サーバーとレイアウトが不安定です。トークンが表示されない場合は、しばらくしてから再度試してください) 現在、新しいウェブマスタープラットフォームにアップグレードされました。

これはBingの古いウェブマスタープラットフォームから取得した概略図です:

Bingの古いウェブマスタープラットフォームからBingウェブマスターAPIキーを取得

Google

サーバーが中国国内にある場合は、Googleにプッシュするには、サーバーが国際インターネットにアクセスできる必要があることに注意してください。

Googleウェブマスタープラットフォームにも新旧のバージョンがありますが、2つのサイトの関係はBingほど良好ではありません。また、私たちが使用するGoogle Indexing APIは、ウェブマスタープラットフォームが提供するものではなく、Google developers Google開発プラットフォームに属しています。その過程で、公式ドキュメント(中国本土からアクセス可能)を参考に設定できます。

使用手順:

  1. 公式ドキュメントを開き、指示に従ってプロジェクトを作成し、サービスアカウントを作成します。指示に従ってウェブサイトで設定操作を行うだけで、アクセス トークンの取得などの後続の操作を完了する必要はありません。
  2. Googleの公式ドキュメントに従って、Googleの新しい「検索コンソール」で権限メールアドレスを追加しても「権限がない」と表示されます。古いウェブサイトのウェブマスターツールに移動し、ウェブサイトをクリックして、メールアドレスをそこに追加してください 現在、新しいウェブマスタープラットフォームで直接送信できます。
  3. 取得したjsonキーファイルをhexoのルートディレクトリ(hexoの_config.ymlファイルと同じ場所)に配置します

Googleの古いウェブサイトのウェブマスターツール:

古いウェブサイトのウェブマスターツール1

古いウェブサイトのウェブマスターツール2

また、公式ドキュメントには次の注意書きがあります。Googleにリンクを送信する機能を有効にするかどうかは、実際の状況に応じて決定してください。

現在、Indexing APIは、JobPostingまたはBroadcastEventVideoObjectにネスト)を含むウェブページをクロールするためにのみ使用できます。求人情報やライブビデオなどの短時間のウェブページを多く含むウェブサイトの場合、Indexing APIは異なるコンテンツに対して更新を個別にプッシュすることで、検索結果のコンテンツを最新の状態に保ちます。

Indexing APIクイックスタート | Google検索センター | Google for Developers

とにかく私は送信しました。Googleがウェブサイトをクロールしないと、あなたのウェブページに求人情報やライブビデオが含まれていないことをどのように知ることができるでしょうか?クロールしたからには、たとえ求人情報やライブビデオが見つからなくても、リソースを無駄にして、クロールした情報を利用しない理由があるのでしょうか?利用する限り、私たちの目的は達成されます。実際の使用では、Googleはこれに対してペナルティを科しているようには見えません。もしかしたらGoogleはドキュメントを修正するのを忘れたのでしょうか?私は現在、このドキュメントに長年修正されていない2つの重大なエラーがあることを発見しました。

hexoの設定

本プラグインのインストール

hexoのルートディレクトリで実行してください:

もちろん、中華圏ではcnpmを使用するとダウンロードがより高速になります

npm install --save hexo-submit-urls-to-search-engine

本プラグインはyarnインストールもサポートしています:

yarn add hexo-submit-urls-to-search-engine

hexoの_config.ymlの編集

hexo-submit-urls-to-search-engine

hexo-submit-urls-to-search-engineプラグインを設定するには、以下をhexoの_config.ymlに貼り付けます。

ヒント

もちろん、環境変数を使用してキーを記録することもできます。これにより、ソースコードが公開リポジトリに置かれていても、キーが漏洩することはありません。

hexo_submit_urls_to_search_engine:
  submit_condition: count #リンクが送信される条件、選択可能な値:count | period 現在はcountのみサポート
  count: 10 # 最新の10個のリンクを送信
  period: 900 # 修正時間が900秒以内のリンクを送信
  google: 0 # Googleに送信するかどうか、選択可能な値:1 | 0(0:いいえ、1:はい)
  bing: 1 # Bingに送信するかどうか、選択可能な値:1 | 0(0:いいえ、1:はい)
  baidu: 1 # Baiduに送信するかどうか、選択可能な値:1 | 0(0:いいえ、1:はい)
  txt_path: submit_urls.txt ## テキストドキュメント名、プッシュする必要があるリンクはこのテキストドキュメントに保存されます
  baidu_host: https://cjh0613.github.io ## Baiduウェブマスタープラットフォームに登録されているドメイン
  baidu_token: ドキュメントの説明に従って取得してください ## これはあなたのキーですので、公開リポジトリに直接公開しないでください!
  bing_host: https://cjh0613.github.io ## Bingウェブマスタープラットフォームに登録されているドメイン
  bing_enable_indexnow: false # indexNowを使用してBingにリンクを送信するかどうか: true (はい) | false (いいえ)。2.1.1以降のバージョンでのみ、この機能を有効にできます。
  bing_token: ドキュメントの説明に従って取得してください ## これはあなたのキーですので、公開リポジトリに直接公開しないでください!
  google_host: https://cjh0613.github.io ## Googleウェブマスタープラットフォームに登録されているドメイン
  google_key_file: Project.json #Googleキーのjsonファイルを保存します。ウェブサイトのルートディレクトリ(hexoの_config.ymlファイルと同じ場所)に配置してください。jsonファイルの内容を公開リポジトリに直接公開しないでください!
  google_proxy: http://127.0.0.1:8080 # GoogleにURLを送信するために使用されるシステムHTTPプロキシ、0を入力すると使用しない
  replace: 0  # リンクの一部の文字列を置換するかどうか、選択可能な値:1 | 0(0:いいえ、1:はい)
  find_what: http://cjh0613.github.io/blog
  replace_with: https://cjh0613.com

キーを公開した場合の結果

あなたの「敵」、自己意識のあるAI、テロリストがあなたのキーを使用して、存在しないページリンクを検索エンジンにプッシュする可能性があります。これにより、あなたのアカウントが正常にプッシュできなくなり、デッドリンクをプッシュするとウェブサイトの重みが低下します。

注釈

  • submit_condition:リンクを送信するかどうかの判断方法を2種類サポートします。つまり、count | periodです。それぞれ、以下のcount | period設定項目を適用します。
  • period:時間間隔、単位は秒です。記事の更新時間と本プラグインの実行時間との差がこの数値よりも小さい場合、そのリンクが送信されます。例えば、a.htmlとb.htmlという2つのファイルがあり、それぞれhttps://yoursite.com/a.htmlhttps://yoursite.com/b.htmlに対応するとします。更新時間と本プラグインの実行時間との差がそれぞれ800秒と1000秒の場合(periodフィールドが900に設定されている場合)、https://yoursite.com/a.htmlが送信され、https://yoursite.com/b.htmlは送信されません。
  • google_proxy:GoogleにURLを送信するために使用されるシステムHTTPプロキシ、形式はhttp://proxyhost:portproxyhostportを修正するだけです。Hexoが海外に展開されている場合は、0を入力して使用しないでください。科学的インターネットアクセスソフトウェアを使用すると、proxyhostは通常127.0.0.1になり、portはソフトウェアで設定を確認でき、通常は8080になります。Win10では、「設定」->「プロキシ」で確認できます。
  • replace:一部のリンクが正しく生成されない場合があります(中国語ドメイン、ホームページがhttp://cjh0613.github.io/blogにある場合など)。これは、生成されたすべてのリンクの指定された文字列を置換する単純な置換機能です。例では、http://cjh0613.github.io/bloghttps://cjh0613.comに置換します。中国語ドメインをトランスコードされたドメインに置換することもできます。

2020.7.12 本セクションの注釈を更新、liuyib様のご提案に感謝します 2021.5.12 google_proxyを追加

上記の設定を完了したら、Hexoのルートディレクトリでhexo generateコマンドを実行すると、送信するリンクを保存する.txtファイルが生成されます。

このファイルを開いてリンクが正しいかどうかを確認できます。正しくない場合は、hexoの_config.ymlにアクセスして設定してください。この.txtファイルを手動で修正してから、リンクを送信することもできます。

deploy

以前にdeploy:設定項目を追加したことがない場合は、以下をhexoの_config.ymlに貼り付けて、デフォルトのdeploy:設定項目を上書きします。

deploy:
- type: cjh_google_url_submitter
- type: cjh_bing_url_submitter
- type: cjh_baidu_url_submitter

この手順を完了すると、hexo deployコマンドを実行したときに、リンクが自動的に検索エンジンにプッシュされます。

  • プッシュをトリガーするには、以前にこのコマンドを使用して展開したかどうかに関係なく、hexo deployまたはhexo dコマンドを実行する必要があります。

もちろん、事前にhexo generateを実行して、プッシュするリンクを保存する最新の.txtファイルを生成する必要があります。

プッシュが成功した場合は、 Github リポジトリでStarを押してサポートしてください。ありがとうございます!

deploy:設定項目が設定されている場合は、上記のコードブロックを直接貼り付けると設定の競合が表示されます。既存のdeploy:設定項目に追加するだけです。例えば:

deploy:
- type: git
  repo: 
    coding: git@xxx
  branch: master 
  
  #本プラグインの設定項目を追加:
- type: cjh_google_url_submitter
- type: cjh_bing_url_submitter
- type: cjh_baidu_url_submitter

注意:上記の各type: の前には- があります。

継続的インテグレーションのサポート

本セクションは、hexoが公開リポジトリに保存され、CI(継続的インテグレーション、例えば、Github action、travis、coding-ci、netlifyなど)を使用してコンパイルおよび公開される展開方法の参考になります。

BaiduとBingは環境変数を使用してキーを記録できます。Googleには他の解決策があります。以下を参照してください

CI自動展開を使用する場合は、各ページのFront-matter(.mdファイルの最上部にある---で区切られた領域。個々のファイルの変数を指定するために使用されます)にupdated:を追加して、Hexoに「記事の最終更新時間」を修正することを通知してください。例えば:

---
title: Hello World
date: 2013/7/13 20:46:25
updated: 2020-08-25 9:36:00
---

これは、ファイルがローカルコンピューターに置かれている場合、updated:がないと、Hexoがファイル属性を読み取り、「ファイルの最終更新時間」を「記事の最終更新時間」として使用して、最新の10個のリンクを正常に判断して送信できるからです。一方、CI自動展開では、Hexoリソースはサーバーにクローンされたばかりであるため、updated:を追加しないと、Hexoもファイル属性を読み取りますが、このとき属性の最終更新時間は完全に同じgitクローン時間になり、Hexoは間違った「記事の最終更新時間」を取得し、最新のリンクを正常に判断して送信できなくなります。

  1. まず、hexo_submit_urls_to_search_engine:の設定項目のbaidu_token: bing_token: 0を入力してください
  2. 環境変数BAIDU_TOKENBING_TOKENを設定します。値は取得済みのtokenです
  3. Github Actionを使用する場合は、ymlファイルで環境変数を設定する必要があります。以下に例があります
  4. hexo clean && hexo generate && hexo deployで快適な生活をお楽しみください

環境変数の設定

参考:

hexo_submit_urls_to_search_engine:
  submit_condition: count #リンクが送信される条件、選択可能な値:count | period 現在はcountのみサポート
  count: 10 # 最新の10個のリンクを送信
  period: 900 # 修正時間が900秒以内のリンクを送信
  google: 1 # Googleに送信するかどうか、選択可能な値:1 | 0(0:いいえ、1:はい)
  bing: 1 # Bingに送信するかどうか、選択可能な値:1 | 0(0:いいえ、1:はい)
  baidu: 1 # Baiduに送信するかどうか、選択可能な値:1 | 0(0:いいえ、1:はい)
  txt_path: submit_urls.txt ## テキストドキュメント名、プッシュする必要があるリンクはこのテキストドキュメントに保存されます
  baidu_host: https://en.cjh0613.com ## Baiduウェブマスタープラットフォームに登録されているドメイン
  baidu_token: 0 ## これはあなたのキーですので、公開リポジトリに直接公開しないでください!
  bing_host: https://en.cjh0613.com ## Bingウェブマスタープラットフォームに登録されているドメイン
  bing_token: 0 ## これはあなたのキーですので、公開リポジトリに直接公開しないでください!
  google_host: https://en.cjh0613.com ## Googleウェブマスタープラットフォームに登録されているドメイン
  google_key_file: Project.json #Googleキーのjsonファイルを保存します。ウェブサイトのルートディレクトリ(hexoの_config.ymlファイルと同じ場所)に配置してください。jsonファイルの内容を公開リポジトリに直接公開しないでください!
  google_proxy: 0 # GoogleにURLを送信するために使用されるシステムHTTPプロキシ、0を入力すると使用しない
  replace: 0  # リンクの一部の文字列を置換するかどうか、選択可能な値:1 | 0(0:いいえ、1:はい)
  find_what: http://cjh0613.github.io/blog
  replace_with: https://cjh0613.com

Github Actionを使用する場合は、ymlファイルで環境変数を設定する必要があります:

- name: xxxx #適当な名前を入力
  env:
    BAIDU_TOKEN: ${{ secrets.BAIDU_TOKEN }} # ここに注意、他のものは重要ではありません
    BING_TOKEN: ${{ secrets.BING_TOKEN }} # ここに注意、他のものは重要ではありません
  run: |
    npm i -g hexo-cli # hexoをインストール
    npm i
    ……
    hexo deploy    

Googleへのリンクのプッシュに関しては、jsonキーファイルに多くの情報があるため、コピーアンドペーストで環境変数を設定するのは面倒です。私はjsonキーファイルをプライベートリポジトリに入れて、クローンし、ルートディレクトリにコピーすることで解決しました。

プラグインのアップグレード

プラグインのアップグレード通知

本プラグインをインストールした後、 Github このプロジェクトをwatchして、プラグインのアップグレード通知を受け取るようにしてください(Releases onlyを選択してアップグレード通知のみを取得し、Watchingを選択するとIssues、Pull requestsなどもプッシュされ、電子メールで送信されます

Releases onlyを選択

アップグレード操作

hexoのルートディレクトリで実行してください:

もちろん、中華圏ではcnpmを使用するとダウンロードがより高速になります

npm install --save hexo-submit-urls-to-search-engine@バージョン

以前に私が提示したのは別のコマンド:npm update --save hexo-submit-urls-to-search-engineでしたが、実際にテストしたときに問題が発生しました。

yarnアップグレード:

yarn add hexo-submit-urls-to-search-engine@バージョン

非互換性のアップグレード

警告

プラグインのアップグレードが下位互換性がない場合があり、hexoの_config.ymlにある本プラグインに関連する設定項目を変更したり、その他の変更が必要になる場合があります。 この状況は通常、バージョン番号の最初の小数点の前にある数字が増加するときに発生します。例えば、^1.0.0から^2.0.0にアップグレードする場合です。

1.x.xから2.x.xへのアップグレード:

hexo_submit_urls_to_search_engine:設定項目に次の3つの設定項目を追加する必要があります:

  replace: 0  # リンクの一部の文字列を置換するかどうか、選択可能な値:1 | 0(0:いいえ、1:はい)
  find_what: http://cjh0613.github.io/blog
  replace_with: https://cjh0613.com

わかりました、今回のアップグレードは下位互換性があることがわかりました。これらの3つの設定項目がなくてもエラーは発生しません…

返信情報

プッシュ成功情報

Bing

Bing response:  { d: null }

Google

Google response:  { urlNotificationMetadata:
   { url:
      'https://cjh0613.github.io',
     latestUpdate:
      { url:
         'https://cjh0613.github.io',
        type: 'URL_UPDATED',
        notifyTime: '2020-06-12T05:37:25.701779228Z' } } }

その他

その他の返信については、公式ドキュメントを参照してください。ただし、一般的に、返信を翻訳すれば原因がわかります。

検索エンジンが1日に送信できるリンクの数が限られているためである場合があります。公式サイトにログインして確認してください。私のサイトドメインcjh0613.github.ioをcjh0613.comに変更した後、Bingの割り当ては10個でしたが、10日間連続でプッシュした後、割り当てが突然10から10000に変わりました。

一部のリンクのプッシュが失敗した場合は、手動で処理してください。フィードバックに基づいて送信するリンクを保存しているtxtを変更し(一般的に、正常に送信されたリンクを削除します)、hexo deployだけを実行して再度プッシュします。ウェブサイトを再生成する必要はありません。

毎日検索エンジンにリンクをプッシュしたい場合は、毎日hexo dを実行するか、Github Actionを設定して毎日hexo g && hexo dを実行することができます。車輪の再発明は必要ありません。

結果の確認

インデックスの確認

このサイトのインデックスを確認する例として、任意の検索エンジンを開き、site:ドメインを入力します。ここでは、次のようになります。

site:cjh0613.github.io

検索すると確認できます。

新しいサイトのインデックス量が0→1になるには、非常に時間がかかる場合があります。1か月程度かかるかもしれません。しばらくお待ちください。

実際のインデックス速度は、他の要因にも関係します。ウェブ上のSEO資料はたくさんありますが、それらはすべて公式説明を中心にしています。

プッシュ記録の確認

Bing

Bingの新しいウェブマスタープラットフォームにログインすると、詳細なプッシュリンクリスト(リアルタイム更新)を確認できます:

https://www.bing.com/webmasters/submiturl?siteUrl=あなたのウェブサイトリンク

Bingのプッシュ記録と残りの割り当ての確認

Google

次のアドレスの「エラー」テーブルで、一定期間(最大で過去30日間)の累積プッシュリンク数と、プッシュ失敗の割合(リアルタイム更新)のみを確認できます。毎日送信されたデータグラフがありますが、ないのと同じです…

https://console.developers.google.com/apis/api/indexing.googleapis.com/metrics?project=

Googleプッシュリンク数の確認

このプラグインを開発する際に参考にした資料

以前の説明ドキュメントを参照してください