Förord

Efter att ha använt hexo-submit-urls-to-search-engine-pluginet kan hexo aktivt skicka nya länkar till Hexo-bloggen till Googles, Bings och Baidus sökmotorers webmasterplattformar för att förbättra webbplatsens indexeringskvalitet och hastighet. Detta plugin låter dig skicka helt naturliga, växtbaserade indexeringsförfrågningar till stora sökmotorer, en gång för alla.

Till exempel, ibland kan min artikel indexeras av Bing bara 5 minuter efter publicering (detta är det bästa fallet, det garanteras inte att det är stabilt på lång sikt). Ser du, det här är kraften i hexo-submit-urls-to-search-engine. Baidu och Google är lite långsammare.

Dessa tre stora sökmotorer har redan tagit 97 % av den globala sökmotormarknaden (inklusive metasökmotorerna Duckduckgo och andra; Yahoo och Ecosia använder Bings index).

Varning

Icke-professionell användning av annan liknande push-kod kan orsaka farliga biverkningar, inklusive men inte begränsat till: säkerhetsbrist, redundant kod, återuppfinna hjulet, dokumentgnagande, existentiell kris, depression, huvudvärk, och till och med död, upplösning och utplåning.

Github-adress

Den officiella kommunikations-QQ-gruppen och Telegram-gruppen har upphört med sin verksamhet. Gå till Github-ärendesidan för att delta i diskussionen.

Steg

Snabbstart:

  1. Hämta nycklarna till de olika webmasterplattformarna
  2. Installera och konfigurera hexo-submit-urls-to-search-engine-pluginet
  3. hexo clean && hexo g && hexo d, och kolla upp push-resultaten
  4. Om push-ningen lyckades, gå till Github-adressen och klicka på Star-knappen för att stödja
  5. Titta även på Github-projektet för att få påminnelser om plugin-uppgraderingar
  6. Du kan också klicka här för att donera

Hämta nycklar för webmasterplattformen

De nycklar som “antecknas” i det här avsnittet ska alla fyllas i _config.yml för hexo, formatet ges senare.

Om verifiering av webbplatsen: Vissa Hexo-teman stöder tillägg av HTML-verifieringstaggar för webmasterplattformen, efter att ha fyllt i relevanta inställningar hexo g && hexo d kan du verifiera. Allmänna detaljerade steg, vänligen googla själv: hexo webmasterplattform verifiering

Baidu

Baidu är en sökmotor från Kina. Om inte komplicerade webbplatsregistreringsformaliteter hanteras i Kina är det svårt att få webbplatsen indexerad.

Om din webbplatsserver finns utanför Kina är det i princip omöjligt att slutföra webbplatsens registreringsformaliteter.

Se det gamla instruktionsdokumentet för att lära dig hur du skickar länkar till Baidu

Bing

Bings webmasterplattform har en ny och en gammal version.

  1. Registrera dig och logga in på Bings nya webmasterplattform Bing Webmaster Tools
  2. Lägg till webbplatsen
  3. Gå till webbplatsens hanteringssida, inställningar, API-åtkomst, API-nyckel, notera API-nyckeln

Öppna inställningar från URL-insändning

API-åtkomstgränssnitt

Hämta API-nyckeln från Bings nya webmasterplattform

(På senare tid har Bings webmasterplattform uppgraderats, servern och layouten är instabila, om token inte kan visas kan du försöka igen efter en tid) Nu har den uppgraderats till en ny webmasterplattform.

Detta är ett schematiskt diagram för att få det från den gamla Bing webmasterplattformen:

Hämta Bing webmaster API-nyckel från den gamla Bing webmasterplattformen

Google

Om din server finns i Kina, observera att din server måste ha tillgång till det internationella internet för att skicka till Google.

Googles webmasterplattform har också en ny och en gammal version, men förhållandet mellan de två webbplatserna hanteras inte lika bra som Bing. Dessutom tillhandahålls Google Indexing API som vi använder inte av webmasterplattformen, utan hör till Googles utvecklingsplattform google developers. Under processen kan du hänvisa till det officiella dokumentet (tillgängligt i Kina) för konfiguration.

Användningssteg:

  1. Öppna det officiella dokumentet och följ anvisningarna för att skapa ett projekt och ett servicekonto. Du behöver bara följa instruktionerna för att utföra konfigurationsåtgärder på webbplatsen, du behöver inte slutföra efterföljande operationer som att hämta åtkomsttokens.
  2. Om du bara lägger till behörighets-e-postadressen i Googles nya “Search Console” enligt Googles officiella dokument kommer du fortfarande att få en prompt om “ingen behörighet”. Gå till det gamla Webmaster Tools, klicka på din webbplats och lägg till e-postadressen där. Nu kan du skicka in direkt på den nya webmasterplattformen.
  3. Lägg den hämtade json-nyckelfilen i hexos rotkatalog (samma plats som hexo _config.yml-filen)

Googles gamla webmasterverktyg:

Gammalt webmasterverktyg 1

Gammalt webmasterverktyg 2

Dessutom finns det en följande uppmaning i det officiella dokumentet, bestäm om du ska aktivera funktionen för att skicka länkar till Google enligt den faktiska situationen:

För närvarande kan Indexing API endast användas för att söka efter webbsidor som innehåller JobPosting eller BroadcastEvent (nästlade i VideoObject). För webbplatser som innehåller många korta webbsidor (som jobbannonser eller livevideor) håller Indexing API innehållet i sökresultaten uppdaterat genom att skicka uppdateringar för olika innehåll separat.

Snabbstart av Indexing API | Google Search Central | Google for Developers

Jag skickade det ändå. Om Google inte söker igenom din webbplats, hur vet de då att din webbsida inte innehåller jobbannonser eller livevideor? Eftersom den har sökts igenom, även om jobbannonser eller livevideor inte hittas, vad finns det för anledning att slösa resurser och kassera den insamlade informationen? Eftersom den används har vårt mål uppnåtts. I själva användningen verkar Google inte ha minskat behörigheten för detta. Kanske Google glömde att ändra dokumentet? Jag har hittat två allvarliga fel i detta dokument som inte har ändrats på många år.

Konfigurera hexo

Installera detta plugin

Kör i hexos rotkatalog:

Självklart är nedladdningshastigheten snabbare med cnpm i Kina

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

Detta plugin stöder också yarn-installation:

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

Redigera hexos _config.yml

hexo-submit-urls-to-search-engine

Konfigurera hexo-submit-urls-to-search-engine-pluginet, klistra in följande i hexos _config.yml.

Tips

Du kan naturligtvis använda miljövariabler för att ställa in poster för nycklar, så att även om källkoden placeras i ett offentligt lager, kommer inte nycklarna att läckas

hexo_submit_urls_to_search_engine:
  submit_condition: count #Villkoret för när en länk ska skickas in, valbara värden: count | period, stöder endast count för närvarande
  count: 10 # Skicka in de 10 senaste länkarna
  period: 900 # Skicka in länkar som har ändrats inom 900 sekunder
  google: 0 # Om den ska skickas till Google, valbara värden: 1 | 0 (0: nej; 1: ja)
  bing: 1 # Om den ska skickas till bing, valbara värden: 1 | 0 (0: nej; 1: ja)
  baidu: 1 # Om den ska skickas till baidu, valbara värden: 1 | 0 (0: nej; 1: ja)
  txt_path: submit_urls.txt ## Namnet på textdokumentet, länkarna som ska skickas sparas i det här textdokumentet
  baidu_host: https://cjh0613.github.io ## Domänen som registrerats i Baidus webmasterplattform
  baidu_token: Vänligen hämta enligt dokumentationsanvisningarna ## Observera att detta är din nyckel, så vänligen publicera den inte direkt i ett offentligt lager!
  bing_host: https://cjh0613.github.io ## Domänen som registrerats i Bings webmasterplattform
  bing_enable_indexnow: false # Om du vill använda indexNow för att skicka länkar till Bing: true (Ja) | false (Nej). Endast version 2.1.1 och senare kan aktivera den här funktionen.
  bing_token: Vänligen hämta enligt dokumentationsanvisningarna ## Observera att detta är din nyckel, så vänligen publicera den inte direkt i ett offentligt lager!
  google_host: https://cjh0613.github.io ## Domänen som registrerats i Googles webmasterplattform
  google_key_file: Project.json #json-filen som innehåller Google-nyckeln, ska finnas i webbplatsens rotkatalog (samma plats som hexo _config.yml-filen), vänligen publicera inte innehållet i json-filen direkt i ett offentligt lager!
  google_proxy: http://127.0.0.1:8080 # System-http-proxy som används för att skicka webbadresser till Google, fyll i 0 för att inte använda
  replace: 0 # Om du vill ersätta en del av strängen i länken, valbara värden: 1 | 0 (0: nej; 1: ja)
  find_what: http://cjh0613.github.io/blog
  replace_with: https://cjh0613.com

Konsekvenserna av att avslöja nyckeln

Dina “fiender”, medvetna AI, terrorister kan använda din nyckel för att skicka länkar till icke-existerande sidor till sökmotorer. Det förbrukar din kvot så att du inte kan skicka normalt, och att skicka döda länkar kommer att göra att webbplatsens vikt minskar.

Anmärkningar

  • submit_condition: Stöder två sätt att avgöra om länkar ska skickas in, nämligen count | period. De nedan count | period konfigurationsalternativen tillämpas separat
  • period: en tidsperiod, i sekunder, om skillnaden mellan tiden då artikeln uppdaterades och tiden då pluginet kördes är mindre än detta värde, kommer dess länk att skickas in. Till exempel: det finns två filer a.html och b.html, som motsvarar https://yoursite.com/a.html respektive https://yoursite.com/b.html, och skillnaden mellan deras uppdateringstid och tiden då pluginet kördes är 800s respektive 1000s (fältet period är inställt på 900), då kommer https://yoursite.com/a.html att skickas in, medan https://yoursite.com/b.html inte kommer att skickas in
  • google_proxy: Systemets http-proxy som används för att skicka webbadresser till Google, formatet: http://proxyhost:port, ändra proxyhost och port; Hexo kan distribueras utomlands utan att fylla i 0. Om du använder vetenskaplig internetprogramvara är proxyhost i allmänhet 127.0.0.1, port kan visas i inställningarna för programvaran och är i allmänhet 8080. Win10 kan ses under Inställningar -> Proxy
  • replace: Vissa länkar kan genereras felaktigt (t.ex. kinesiska domännamn, hemsidan finns på http://cjh0613.github.io/blog etc.). Detta är en enkel och okomplicerad ersättningsfunktion, som ersätter den angivna strängen i alla genererade länkar. I exemplet ersätts http://cjh0613.github.io/blog med https://cjh0613.com. Du kan också ersätta kinesiska domännamn med det transkoderade domännamnet.

2020.7.12 Uppdatera anteckningarna i det här avsnittet, tack till liuyib för förslaget 2021.5.12 Lägg till google_proxy

När du har slutfört ovanstående konfiguration, när du kör hexo generate-instruktionen i hexos rotkatalog, kommer en .txt-fil att genereras för att lagra de länkar som ska skickas.

Du kan öppna den här filen för att se om länkarna är korrekta, om de inte är det, vänligen gå till hexos _config.yml för att konfigurera. Du kan också manuellt ändra denna .txt-fil innan du skickar länkarna.

deploy

Om du inte har lagt till ett deploy:-konfigurationsalternativ tidigare, klistra in följande direkt i hexos _config.yml och åsidosätt standard deploy:-konfigurationsalternativet.

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

Efter att ha slutfört detta steg kan du automatiskt skicka länkar till sökmotorer när du kör kommandot hexo deploy.

  • Du måste köra kommandot hexo deploy eller hexo d för att utlösa sändningen, oavsett om du har använt det här kommandot för distribution tidigare.

Naturligtvis måste du tidigare köra hexo generate för att generera den senaste .txt-filen för att lagra länkarna som ska skickas.

Om du kan skicka det framgångsrikt, besök Github lagret och ge oss en stjärna för att stödja oss, tack!

Om du redan har angett ett deploy:-konfigurationsalternativ kommer klistra in ovanstående kodblock att meddela konfigurationskonflikt, lägg bara till det under det befintliga deploy:-konfigurationsalternativet. Till exempel:

deploy:
- type: git
  repo: 
    coding: git@xxx
  branch: master 
  
  #Lägg till konfigurationsalternativet för detta plugin:
- type: cjh_google_url_submitter
- type: cjh_bing_url_submitter
- type: cjh_baidu_url_submitter

Obs: Det finns - före varje type: ovan

Stöd för kontinuerlig integration

Det här avsnittet innehåller en referens för distributionsmetoden för hexo som lagras i ett offentligt lager och använder CI (Continuous Integration, t.ex. Github action, travis, coding-ci, netlify, etc.) för att kompilera och publicera.

Baidu och Bing kan använda miljövariabler för att lagra nycklar, Google har andra lösningar, se nedan

Observera att om du använder CI för automatisk distribution måste du lägga till updated: i varje sidas Front-matter (området som är avgränsat av --- högst upp i .md-filen och används för att ange variabler för enskilda filer) för att informera Hexo om att korrigera “artikelns senast ändrade tid”, till exempel:

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

Detta beror på att när filen placeras på den lokala datorn, om det inte finns något updated: , kommer Hexo att läsa filattributen och använda “filens senast ändrade tid” som “artikelns senast ändrade tid”, och de senaste 10 länkarna kan bedömas och skickas normalt; när CI distribueras automatiskt, eftersom Hexos resurser bara klonas till servern, om updated: inte har lagts till, kommer Hexo också att läsa filattributen, men vid den här tiden är den senast ändrade tiden i attributen exakt samma som tidpunkten för git-klonen, och Hexo får fel “artikelns senast ändrade tid”, så att den inte kan bedömas och skicka de senaste länkarna normalt.

  1. Ange 0 i konfigurationsalternativet baidu_token: och bing_token: under hexo_submit_urls_to_search_engine:
  2. Ställ in miljövariablerna BAIDU_TOKEN, BING_TOKEN, värdet är den hämtade token
  3. Om du använder Github Action måste du även ange miljövariablerna i yml-filen, det finns ett exempel nedan
  4. hexo clean && hexo generate && hexo deploy njut av livet

Ställ in miljövariabler

Referens:

hexo_submit_urls_to_search_engine:
  submit_condition: count #Villkoret för när en länk ska skickas in, valbara värden: count | period, stöder endast count för närvarande
  count: 10 # Skicka in de 10 senaste länkarna
  period: 900 # Skicka in länkar som har ändrats inom 900 sekunder
  google: 1 # Om den ska skickas till Google, valbara värden: 1 | 0 (0: nej; 1: ja)
  bing: 1 # Om den ska skickas till bing, valbara värden: 1 | 0 (0: nej; 1: ja)
  baidu: 1 # Om den ska skickas till baidu, valbara värden: 1 | 0 (0: nej; 1: ja)
  txt_path: submit_urls.txt ## Namnet på textdokumentet, länkarna som ska skickas sparas i det här textdokumentet
  baidu_host: https://en.cjh0613.com ## Domänen som registrerats i Baidus webmasterplattform
  baidu_token: 0 ## Observera att detta är din nyckel, så vänligen publicera den inte direkt i ett offentligt lager!
  bing_host: https://en.cjh0613.com ## Domänen som registrerats i Bings webmasterplattform
  bing_token: 0 ## Observera att detta är din nyckel, så vänligen publicera den inte direkt i ett offentligt lager!
  google_host: https://en.cjh0613.com ## Domänen som registrerats i Googles webmasterplattform
  google_key_file: Project.json #json-filen som innehåller Google-nyckeln, ska finnas i webbplatsens rotkatalog (samma plats som hexo _config.yml-filen), vänligen publicera inte innehållet i json-filen direkt i ett offentligt lager!
  google_proxy: 0 # System-http-proxy som används för att skicka webbadresser till Google, fyll i 0 för att inte använda
  replace: 0  # Om du vill ersätta en del av strängen i länken, valbara värden: 1 | 0 (0: nej; 1: ja)
  find_what: http://cjh0613.github.io/blog
  replace_with: https://cjh0613.com

Github Action, du måste även ställa in miljövariablerna i yml-filen:

- name: xxxx #Fyll i vad som helst
  env:
    BAIDU_TOKEN: ${{ secrets.BAIDU_TOKEN }} # Observera här, resten är oviktigt
    BING_TOKEN: ${{ secrets.BING_TOKEN }} # Observera här, resten är oviktigt
  run: |
    npm i -g hexo-cli # Installera hexo
    npm i
    ……
    hexo deploy    

När det gäller att skicka länkar till Google, finns det så mycket information i json-nyckelfilen, kopiera och klistra in för att ställa in miljövariabler… det är verkligen besvärligt. Jag lägger json-nyckelfilen i ett privat lager, klonar den och kopierar den sedan till rotkatalogen för att lösa det.

Plugin-uppgradering

Plugin-uppgraderingspåminnelse

När du har installerat det här pluginet, vänligen titta på det här projektet från Github för att få plugin-uppgraderingspåminnelser ( välj Releases only för att endast få uppgraderingspåminnelser, om du väljer Watching kommer även Issues, Pull requests etc. att skickas, via e-post)

Välj Endast utgåvor

Uppgraderingsoperation

Kör i hexos rotkatalog:

Självklart är nedladdningshastigheten snabbare med cnpm i Kina

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

Jag gav tidigare ett annat kommando: npm update --save hexo-submit-urls-to-search-engine, men jag stötte på problem när jag testade det.

yarn-uppgradering:

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

Inkompatibel uppgradering

Varning

Ibland är plugin-uppgraderingar inte bakåtkompatibla och kan kräva att du ändrar konfigurationsalternativen som är relaterade till det här pluginet i hexos _config.yml eller gör andra ändringar. Det här fallet åtföljs vanligtvis av en ökning av siffran före den första decimalpunkten i versionsnumret. Till exempel uppgraderas ^1.0.0 till ^2.0.0.

1.x.x uppgradera till 2.x.x:

Du måste lägga till följande tre konfigurationsalternativ i hexo_submit_urls_to_search_engine:-konfigurationsalternativet:

  replace: 0  # Om du vill ersätta en del av strängen i länken, valbara värden: 1 | 0 (0: nej; 1: ja)
  find_what: http://cjh0613.github.io/blog
  replace_with: https://cjh0613.com

Okej, jag upptäckte att den här uppgraderingen är bakåtkompatibel, även om det inte finns några av dessa tre konfigurationsalternativ kommer inget fel att rapporteras …

Returinformation

Information om lyckad push

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' } } }

Annat

Andra returer kan referera till deras officiella dokument, men i allmänhet kan du ta reda på orsaken genom att översätta returen.

Ibland beror det på att sökmotorer bara tillåter att ett visst antal länkar skickas in varje dag. Du kan logga in på deras officiella webbplats för att göra en förfrågan. Efter att mitt webbplatsdomännamn cjh0613.github.io ändrats till cjh0613.com var Bings kvot 10, efter att ha skickat i 10 dagar i rad ändrades kvoten plötsligt från 10 till 10 000.

Om vissa länkar misslyckas med att skickas in, vänligen hantera dem manuellt: enligt feedbacken, ändra txt-filen som lagrar de inskickade länkarna (ta i allmänhet bort de länkarna som har skickats in) och kör sedan endast hexo deploy för att skicka in igen, du behöver inte generera om webbplatsen.

Om du vill skicka länkar till sökmotorer varje dag, kör hexo d varje dag, eller så kan du ställa in Github Action att köra hexo g && hexo d varje dag, inget behov av att uppfinna hjulet igen.

Frågeresultat

Fråga indexet

Ta att fråga indexet för den här webbplatsen som ett exempel, öppna valfri sökmotor, ange site:domännamn, här är det:

site:cjh0613.github.io

Sök bara.

Tiden det tar för ett nytt webbplatsindex att gå från 0 → 1 kan vara mycket lång, kanske en månad … vänligen vänta tålmodigt

Den faktiska inkluderingstakten är också relaterad till andra faktorer, det finns mycket SEO-information online, men den är alla centrerad på den officiella beskrivningen.

Fråga sändningshistoriken

Bing

Du kan logga in på Bings nya webmasterplattform för att hitta en detaljerad lista över inskickade länkar (uppdateras i realtid):

https://www.bing.com/webmasters/submiturl?siteUrl=din webbplatslänk

Bing push-historik och frågan om återstående kvot

Google

Du kan endast hitta det ackumulerade antalet inskickade länkar och procentandelen misslyckade sändningar under en viss tidsperiod (högst de senaste 30 dagarna) i “fel”-tabellen på adressen nedan (uppdateras i realtid), även om ett diagram över data som skickats in varje dag ges, det är som om det inte gavs något …

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

Fråga om antalet skickade Google-push-länkar

Referensmaterial för min utveckling av detta plugin

Se det gamla instruktionsdokumentet