序文
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などを含む)を占めています。
警告
プロフェッショナルではない方法で他の同様のプッシュコードを使用すると、セキュリティ上の欠陥、冗長コード、車輪の再発明、ドキュメントの読み込み、人生への疑問、憂鬱、頭痛、さらには死、魂の消滅、消滅などの危険な副作用を引き起こす可能性があります。
公式交流QQグループとTelegramグループはサービスを停止しました。Githubのissueページで議論に参加してください。
操作手順
クイックスタート:
- 各ウェブマスタープラットフォームのキーを取得
hexo-submit-urls-to-search-engine
プラグインをインストールして設定hexo clean && hexo g && hexo d
を実行し、プッシュ結果を確認- プッシュが成功したら、 Githubアドレス でStarボタンをクリックしてサポートしてください
- ついでにGithubプロジェクトをwatchして、プラグインのアップグレード通知を受け取る
- さらに、こちらをクリックしてご支援ください
ウェブマスタープラットフォームキーの取得
本セクションで「記録」するキーは、hexoの_config.yml
に記入します。フォーマットは後述します。
ウェブサイトの検証について:一部のHexoテーマはウェブマスタープラットフォームのhtml検証タグの追加をサポートしており、関連設定を入力後hexo g && hexo d
を実行すると検証できます。一般的な詳細な操作手順については、Googleで検索してください:hexo ウェブマスタープラットフォーム 検証
Baidu
Baiduは中国の検索エンジンです。中国当局で複雑なウェブサイト登録手続きを行わない限り、ウェブサイトがインデックスされるのは困難です。
ウェブサイトのサーバーが中国国外にある場合、ウェブサイト登録手続きを行うことは基本的に不可能です。
以前の説明ドキュメントを参照して、Baiduにリンクを送信する方法を確認してください
Bing
Bingウェブマスタープラットフォームには新旧のバージョンがあります。
- Bingの新しいウェブマスタープラットフォームに登録してログインします Bing Webmaster Tools
- ウェブサイトを追加します
- ウェブサイト管理ページに入り、「設定」、「APIアクセス」、「APIキー」と進み、APIキーを記録します
(最近、Bingウェブマスタープラットフォームがアップグレードされ、サーバーとレイアウトが不安定です。トークンが表示されない場合は、しばらくしてから再度試してください) 現在、新しいウェブマスタープラットフォームにアップグレードされました。
これはBingの古いウェブマスタープラットフォームから取得した概略図です:
サーバーが中国国内にある場合は、Googleにプッシュするには、サーバーが国際インターネットにアクセスできる必要があることに注意してください。
Googleウェブマスタープラットフォームにも新旧のバージョンがありますが、2つのサイトの関係はBingほど良好ではありません。また、私たちが使用するGoogle Indexing APIは、ウェブマスタープラットフォームが提供するものではなく、Google developers Google開発プラットフォームに属しています。その過程で、公式ドキュメント(中国本土からアクセス可能)を参考に設定できます。
使用手順:
- 公式ドキュメントを開き、指示に従ってプロジェクトを作成し、サービスアカウントを作成します。指示に従ってウェブサイトで設定操作を行うだけで、アクセス トークンの取得などの後続の操作を完了する必要はありません。
Googleの公式ドキュメントに従って、Googleの新しい「検索コンソール」で権限メールアドレスを追加しても「権限がない」と表示されます。古いウェブサイトのウェブマスターツールに移動し、ウェブサイトをクリックして、メールアドレスをそこに追加してください現在、新しいウェブマスタープラットフォームで直接送信できます。- 取得したjsonキーファイルをhexoのルートディレクトリ(hexoの_config.ymlファイルと同じ場所)に配置します
Googleの古いウェブサイトのウェブマスターツール:
また、公式ドキュメントには次の注意書きがあります。Googleにリンクを送信する機能を有効にするかどうかは、実際の状況に応じて決定してください。
現在、Indexing APIは、JobPosting
またはBroadcastEvent
(VideoObject
にネスト)を含むウェブページをクロールするためにのみ使用できます。求人情報やライブビデオなどの短時間のウェブページを多く含むウェブサイトの場合、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.html
とhttps://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:port
、proxyhost
、port
を修正するだけです。Hexoが海外に展開されている場合は、0を入力して使用しないでください。科学的インターネットアクセスソフトウェアを使用すると、proxyhost
は通常127.0.0.1
になり、port
はソフトウェアで設定を確認でき、通常は8080
になります。Win10では、「設定」->「プロキシ」で確認できます。 - replace:一部のリンクが正しく生成されない場合があります(中国語ドメイン、ホームページが
http://cjh0613.github.io/blog
にある場合など)。これは、生成されたすべてのリンクの指定された文字列を置換する単純な置換機能です。例では、http://cjh0613.github.io/blog
をhttps://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は間違った「記事の最終更新時間」を取得し、最新のリンクを正常に判断して送信できなくなります。
- まず、
hexo_submit_urls_to_search_engine:
の設定項目のbaidu_token:
とbing_token:
に0
を入力してください - 環境変数
BAIDU_TOKEN
、BING_TOKEN
を設定します。値は取得済みのtoken
です - Github Actionを使用する場合は、
yml
ファイルで環境変数を設定する必要があります。以下に例があります 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などもプッシュされ、電子メールで送信されます)
アップグレード操作
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 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=あなたのウェブサイトリンク
次のアドレスの「エラー」テーブルで、一定期間(最大で過去30日間)の累積プッシュリンク数と、プッシュ失敗の割合(リアルタイム更新)のみを確認できます。毎日送信されたデータグラフがありますが、ないのと同じです…
https://console.developers.google.com/apis/api/indexing.googleapis.com/metrics?project=