Inleiding

Na het gebruik van de hexo-submit-urls-to-search-engine plugin in hexo, kunnen nieuwe links van het Hexo-blog proactief worden gepusht naar de webmasterplatforms van Google, Bing en Baidu zoekmachines om de kwaliteit en snelheid van het indexeren van de website te verbeteren. Met deze plugin kun je indexeringsverzoeken naar grote zoekmachines sturen op een volledig natuurlijke en plantaardige manier, waardoor je er in één keer vanaf bent.

Bijvoorbeeld, een van mijn artikelen kan soms binnen 5 minuten na publicatie worden gevonden in Bing (dit is de beste situatie, en een lange-termijn stabiliteit is niet gegarandeerd). Zie je wel, dit is de kracht van hexo-submit-urls-to-search-engine. Baidu en Google zijn iets langzamer.

Deze drie grote zoekmachines hebben al 97% van het wereldwijde zoekmachinemarktaandeel in handen (inclusief meta-zoekmachines zoals Dogpile, Duckduckgo, enz.; Yahoo en Ecosia die de Bing-index gebruiken).

Waarschuwing

Niet-professioneel gebruik van andere soortgelijke push-codes kan gevaarlijke bijwerkingen veroorzaken, waaronder maar niet beperkt tot: veiligheidsgebreken, redundante code, het opnieuw uitvinden van het wiel, het eindeloos lezen van documentatie, twijfelen aan je eigen bestaan, depressie, hoofdpijn, en zelfs de dood, het uiteenvallen van de ziel, en vernietiging.

Github adres

De officiële QQ-groep en Telegram-groep zijn niet meer actief. Ga naar de Github issue-pagina om deel te nemen aan de discussie.

Bedieningsstappen

Snel aan de slag:

  1. Verkrijg de sleutels van elk webmasterplatform
  2. Installeer en configureer de hexo-submit-urls-to-search-engine plugin
  3. hexo clean && hexo g && hexo d, en controleer de push-resultaten
  4. Als het pushen succesvol is, ga dan naar het Github-adres en klik op de Star-knop om het project te ondersteunen
  5. Kijk tegelijkertijd naar het Github-project om herinneringen voor plugin-upgrades te ontvangen
  6. Je kunt ook hier klikken om te doneren

Verkrijg de sleutel van het webmasterplatform

De sleutels die in dit gedeelte “genoteerd” zijn, moeten worden ingevuld in het _config.yml bestand van Hexo, het formaat wordt later gegeven.

Over het verifiëren van de website: sommige Hexo-thema’s ondersteunen het toevoegen van html verificatie-tags van het webmasterplatform, vul de relevante instellingen in en hexo g && hexo d om te verifiëren. Voor algemene gedetailleerde bedieningsstappen, zoek zelf op Google: hexo webmaster platform verificatie

Baidu

Baidu is een Chinese zoekmachine. Tenzij u in China ingewikkelde website-registratieprocedures doorloopt, is het moeilijk voor de website om opgenomen te worden.

Als uw website-server zich buiten China bevindt, is het vrijwel onmogelijk om een website-registratieprocedure te doorlopen.

Bekijk de oude documentatie om te zien hoe je links naar Baidu kunt indienen

Bing

Het Bing webmasterplatform heeft een nieuwe en een oude versie.

  1. Registreer en log in op het nieuwe Bing webmasterplatform Bing Webmaster Tools
  2. Voeg de website toe
  3. Ga naar de websitebeheerpagina, instellingen, API-toegang, API-sleutel en noteer de API-sleutel

Instellingen openen vanuit URL-inzending

API-toegangsinterface

Verkrijg de API-sleutel van het nieuwe Bing webmasterplatform

(Het Bing webmasterplatform is onlangs geüpgraded en de server en lay-out zijn onstabiel. Als de token niet kan worden weergegeven, probeer het dan na een tijdje opnieuw) Het is nu geüpgraded naar het nieuwe webmasterplatform.

Dit is een schematische weergave van het verkrijgen van het van het oude Bing webmasterplatform:

Verkrijg de Bing Webmaster API-sleutel van het oude Bing webmasterplatform

Google

Als uw server zich in China bevindt, zorg er dan voor dat uw server toegang heeft tot het internationale internet om naar Google te kunnen pushen.

Het Google webmasterplatform heeft ook een nieuwe en een oude versie, maar de relatie tussen de twee platforms is niet zo goed geregeld als bij Bing. Bovendien wordt de Google Indexing API die we gebruiken niet geleverd door het webmasterplatform, maar behoort tot het Google Developers platform. Tijdens het proces kunt u de officiële documentatie (beschikbaar in China) raadplegen om te configureren.

Gebruiksstappen:

  1. Open officiële documentatie en volg de aanwijzingen om een project aan te maken, en een service account te maken. U hoeft alleen de configuratiestappen op de website te volgen, u hoeft de vervolgstappen, zoals het verkrijgen van een toegangstoken, niet af te ronden.
  2. Zelfs als u alleen de rechten-e-mail toevoegt in de nieuwe “Search Console” van Google volgens de officiële Google-documentatie, wordt er nog steeds “geen rechten” weergegeven. Ga naar de oude webmastertools, klik op uw website en voeg het e-mailadres toe. U kunt nu rechtstreeks op het nieuwe webmasterplatform indienen.
  3. Plaats het verkregen json-sleutelbestand in de root-directory van Hexo (dezelfde locatie als het _config.yml-bestand van Hexo).

Oude Google Webmaster Tools:

Oude webmaster tools 1

Oude webmaster tools 2

Bovendien staat in de officiële documentatie de volgende herinnering, bepaal zelf of je de functie voor het indienen van links naar Google wilt inschakelen:

Momenteel kan de Indexing API alleen worden gebruikt om webpagina’s met JobPosting of BroadcastEvent (genest in VideoObject) te crawlen. Voor websites met veel kortstondige webpagina’s (zoals vacatures of live video’s), houdt de Indexing API de inhoud in de zoekresultaten up-to-date door afzonderlijke updates voor verschillende inhoud te pushen.

Indexing API Quick Start | Google Zoekcentrum | Google for Developers

Ik heb het in ieder geval ingediend. Hoe weet Google of uw webpagina’s geen vacatures of live video's bevatten, als het de website niet crawlt? Nu het is gecrawld, zelfs als er geen vacatures of live video's zijn gevonden, wat is de reden om middelen te verspillen en de gecrawlde informatie weg te gooien? Omdat we het gebruiken, is ons doel bereikt. Tijdens het daadwerkelijke gebruik lijkt Google hier ook geen downgrading aan te verbinden. Misschien is Google vergeten de documentatie te wijzigen? Ik heb tot nu toe twee ernstige fouten gevonden in dit document die al jaren niet zijn aangepast.

Configureer hexo

Installeer deze plugin

Voer het volgende uit in de rootdirectory van hexo:

Natuurlijk, het gebruik van cnpm in China is sneller om te downloaden

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

Deze plugin ondersteunt ook de yarn installatie:

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

Bewerk de _config.yml van hexo

hexo-submit-urls-to-search-engine

Configureer de hexo-submit-urls-to-search-engine plugin, plak de volgende code in de _config.yml van hexo.

Tip

U kunt natuurlijk omgevingsvariabelen gebruiken om sleutels op te slaan, zodat zelfs als de broncode in een openbare repository wordt geplaatst, de geheime sleutels niet worden gelekt.

hexo_submit_urls_to_search_engine:
  submit_condition: count #De voorwaarde voor het indienen van de link, optionele waarden: count | period Ondersteunt momenteel alleen count
  count: 10 # Dien de 10 meest recente links in
  period: 900 # Dien links in waarvan de wijzigingstijd binnen 900 seconden is
  google: 0 # Of je naar Google wilt indienen, optionele waarden: 1 | 0 (0: Nee; 1: Ja)
  bing: 1 # Of je naar Bing wilt indienen, optionele waarden: 1 | 0 (0: Nee; 1: Ja)
  baidu: 1 # Of je naar Baidu wilt indienen, optionele waarden: 1 | 0 (0: Nee; 1: Ja)
  txt_path: submit_urls.txt ## Naam van het tekstdocument, de links die moeten worden gepusht, worden in dit tekstdocument opgeslagen
  baidu_host: https://cjh0613.github.io ## Het domein dat is geregistreerd op het Baidu webmasterplatform
  baidu_token: Vul in volgens de documentatie ## Let op, dit is uw geheime sleutel, dus publiceer deze niet direct in een publieke repository!
  bing_host: https://cjh0613.github.io ## Het domein dat is geregistreerd op het Bing webmasterplatform
  bing_enable_indexnow: false # Of je links wilt indienen bij Bing met indexNow: true (Ja) | false (Nee). Deze functie kan alleen worden ingeschakeld in versie 2.1.1 en hoger.
  bing_token: Vul in volgens de documentatie ## Let op, dit is uw geheime sleutel, dus publiceer deze niet direct in een publieke repository!
  google_host: https://cjh0613.github.io ## Het domein dat is geregistreerd op het Google webmasterplatform
  google_key_file: Project.json # Het json-bestand dat de Google-sleutel bevat, wordt in de root-directory van de website geplaatst (dezelfde locatie als het _config.yml-bestand van Hexo), publiceer de inhoud van het json-bestand niet direct in een publieke repository!
  google_proxy: http://127.0.0.1:8080 # Het systeem http proxy gebruikt voor het indienen van URL's bij Google, vul 0 in om het niet te gebruiken
  replace: 0  # Of je delen van de link wilt vervangen, optionele waarden: 1 | 0 (0: Nee; 1: Ja)
  find_what: http://cjh0613.github.io/blog
  replace_with: https://cjh0613.com

De gevolgen van het publiceren van de geheime sleutel

Je “vijanden”, zelfbewuste kunstmatige intelligentie en terroristen kunnen je geheime sleutel gebruiken om niet-bestaande pagina links naar zoekmachines te pushen. Dit verbruikt je quotum zodat je niet normaal kunt pushen, en het pushen van dode links leidt tot een daling van het website gewicht.

Opmerkingen

  • submit_condition: Ondersteunt twee manieren om te bepalen of links moeten worden ingediend, namelijk count | period. Pas de onderstaande count | period configuratie-items afzonderlijk toe
  • period: Een bepaalde periode, in seconden. Als het verschil tussen de updatetijd van het artikel en de runtime van deze plugin kleiner is dan deze waarde, wordt de link ingediend. Bijvoorbeeld: er zijn twee bestanden a.html en b.html, die respectievelijk overeenkomen met https://yoursite.com/a.html en https://yoursite.com/b.html. Het verschil tussen hun updatetijd en de runtime van deze plug-in is respectievelijk 800s en 1000s (het veld period is ingesteld op 900), dan wordt https://yoursite.com/a.html ingediend, en https://yoursite.com/b.html niet
  • google_proxy: De systeem http proxy die wordt gebruikt voor het indienen van URL’s bij Google, formaat: http://proxyhost:port, wijzig proxyhost en port; als Hexo is geïmplementeerd in het buitenland, kun je 0 invullen om het niet te gebruiken. Als je een programma voor wetenschappelijke toegang tot het internet gebruikt, is proxyhost over het algemeen 127.0.0.1, en port kan worden bekeken in de software-instellingen, over het algemeen 8080. Win10 kan het bekijken via Instellingen -> Proxy
  • replace: Sommige links worden mogelijk niet correct gegenereerd (zoals Chinese domeinnamen, de homepage bevindt zich in http://cjh0613.github.io/blog, enz.). Dit is een eenvoudige en brute vervangingsfunctie, die de opgegeven tekenreeks in alle gegenereerde links vervangt. In het voorbeeld wordt http://cjh0613.github.io/blog vervangen door https://cjh0613.com. Je kunt ook Chinese domeinnamen vervangen door gecodeerde domeinnamen.

2020.7.12 Update van deze opmerking, met dank aan liuyib voor de suggestie 2021.5.12 Voeg google_proxy toe

Nadat de bovenstaande configuratie is voltooid, wordt bij het uitvoeren van de hexo generate opdracht in de root-directory van Hexo een .txt-bestand gegenereerd om de links op te slaan die moeten worden gepusht.

Je kunt dit bestand openen om te controleren of de links correct zijn. Als dit niet het geval is, bezoek dan de _config.yml van hexo om te configureren. Je kunt dit .txt-bestand ook handmatig wijzigen voordat je de links pusht.

deploy

Als je nog geen deploy: configuratie-item hebt toegevoegd, plak dan de onderstaande code rechtstreeks in de _config.yml van hexo en overschrijf het standaard deploy: configuratie-item.

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

Na het voltooien van deze stap worden links automatisch naar de zoekmachines gepusht wanneer je de opdracht hexo deploy uitvoert.

  • Je moet de opdracht hexo deploy of hexo d uitvoeren om de push te activeren, ongeacht of je deze opdracht eerder hebt gebruikt voor de implementatie.

Natuurlijk moet je eerder hexo generate uitvoeren om het nieuwste .txt-bestand te genereren om de links op te slaan die moeten worden gepusht.

Als het pushen lukt, ga dan naar de Github repository en Star deze om ons te steunen, bedankt!

Als je de deploy: configuratie-item hebt ingesteld, wordt er een configuratieconflict gemeld als je het bovenstaande codeblok direct plakt, voeg het direct toe aan de bestaande deploy: configuratie-item. Bijvoorbeeld:

deploy:
- type: git
  repo: 
    coding: git@xxx
  branch: master 
  
  #Voeg de configuratie-item van deze plugin toe:
- type: cjh_google_url_submitter
- type: cjh_bing_url_submitter
- type: cjh_baidu_url_submitter

Let op: er staat een - voor elke type: hierboven.

Continue integratie ondersteuning

Deze sectie is ter referentie voor implementatiemethoden waarbij hexo wordt opgeslagen in een openbare repository en wordt gecompileerd en gepubliceerd met behulp van CI (continue integratie, zoals Github action, travis, coding-ci, netlify, enz.).

Baidu en Bing kunnen omgevingsvariabelen gebruiken om geheime sleutels op te slaan, Google heeft andere oplossingen, zie hieronder

Let op: als je CI gebruikt voor automatische implementatie, zorg er dan voor dat je updated: toevoegt aan de Front-matter van elke pagina (het gedeelte dat is gescheiden door --- bovenaan het .md-bestand, dat wordt gebruikt om de variabelen van individuele bestanden op te geven) om Hexo te laten weten dat de “laatste wijzigingstijd van het artikel” moet worden gecorrigeerd, bijvoorbeeld:

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

Dit komt omdat wanneer het bestand op de lokale computer staat, als er geen updated: is, Hexo de bestandseigenschappen zal lezen en de “laatste wijzigingstijd van het bestand” zal gebruiken als de “laatste wijzigingstijd van het artikel”. Het kan normaal beoordelen en de 10 meest recente links indienen; en wanneer CI automatisch wordt geïmplementeerd, omdat de Hexo-bronnen zojuist naar de server zijn gekloond, als er geen updated: is toegevoegd, zal Hexo ook de bestandseigenschappen lezen, maar op dit moment is de laatste wijzigingstijd in de eigenschappen exact hetzelfde als de git-kloontijd. Hexo krijgt de verkeerde “laatste wijzigingstijd van het artikel” en kan de meest recente link niet normaal beoordelen en indienen.

  1. Vul eerst 0 in bij de configuratie-items baidu_token: en bing_token: van hexo_submit_urls_to_search_engine:
  2. Stel de omgevingsvariabelen BAIDU_TOKEN en BING_TOKEN in, waarbij de waarde de verkregen token is
  3. Als je Github Action gebruikt, moet je ook omgevingsvariabelen instellen in het yml-bestand, zie het voorbeeld hieronder
  4. hexo clean && hexo generate && hexo deploy en geniet van het leven

Omgevingsvariabelen instellen

Referentie:

hexo_submit_urls_to_search_engine:
  submit_condition: count #De voorwaarde voor het indienen van de link, optionele waarden: count | period Ondersteunt momenteel alleen count
  count: 10 # Dien de 10 meest recente links in
  period: 900 # Dien links in waarvan de wijzigingstijd binnen 900 seconden is
  google: 1 # Of je naar Google wilt indienen, optionele waarden: 1 | 0 (0: Nee; 1: Ja)
  bing: 1 # Of je naar Bing wilt indienen, optionele waarden: 1 | 0 (0: Nee; 1: Ja)
  baidu: 1 # Of je naar Baidu wilt indienen, optionele waarden: 1 | 0 (0: Nee; 1: Ja)
  txt_path: submit_urls.txt ## Naam van het tekstdocument, de links die moeten worden gepusht, worden in dit tekstdocument opgeslagen
  baidu_host: https://en.cjh0613.com ## Het domein dat is geregistreerd op het Baidu webmasterplatform
  baidu_token: 0 ## Let op, dit is uw geheime sleutel, dus publiceer deze niet direct in een publieke repository!
  bing_host: https://en.cjh0613.com ## Het domein dat is geregistreerd op het Bing webmasterplatform
  bing_token: 0 ## Let op, dit is uw geheime sleutel, dus publiceer deze niet direct in een publieke repository!
  google_host: https://en.cjh0613.com ## Het domein dat is geregistreerd op het Google webmasterplatform
  google_key_file: Project.json # Het json-bestand dat de Google-sleutel bevat, wordt in de root-directory van de website geplaatst (dezelfde locatie als het _config.yml-bestand van Hexo), publiceer de inhoud van het json-bestand niet direct in een publieke repository!
  google_proxy: 0 # Het systeem http proxy gebruikt voor het indienen van URL's bij Google, vul 0 in om het niet te gebruiken
  replace: 0  # Of je delen van de link wilt vervangen, optionele waarden: 1 | 0 (0: Nee; 1: Ja)
  find_what: http://cjh0613.github.io/blog
  replace_with: https://cjh0613.com

Github Action, je moet ook omgevingsvariabelen instellen in het yml-bestand:

- name: xxxx #Vul willekeurig in
  env:
    BAIDU_TOKEN: ${{ secrets.BAIDU_TOKEN }} # Let hier op, de rest is onzin
    BING_TOKEN: ${{ secrets.BING_TOKEN }} # Let hier op, de rest is onzin
  run: |
    npm i -g hexo-cli # Installeer hexo
    npm i
    ……
    hexo deploy    

Wat betreft het pushen van links naar Google, er is zoveel informatie in het json geheime sleutelbestand, het kopiëren en plakken van het instellen van omgevingsvariabelen… het is echt te lastig. Ik heb het json geheime sleutelbestand in een privérepository geplaatst en het vervolgens gekloond, en het gekopieerd naar de rootdirectory om het probleem op te lossen.

Plugin upgrade

Herinnering voor plugin upgrades

Nadat je deze plugin hebt geïnstalleerd, ga naar Github en kijk naar dit project om herinneringen voor plugin upgrades te ontvangen (selecteer Releases only om alleen herinneringen voor upgrades te ontvangen, als je Watching selecteert, worden ook Issues en Pull-verzoeken gepusht, verzonden via e-mail)

Selecteer Alleen releases

Upgrade operatie

Voer het volgende uit in de root-directory van hexo:

Natuurlijk, het gebruik van cnpm in China is sneller om te downloaden

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

De vorige opdracht die ik gaf was: npm update --save hexo-submit-urls-to-search-engine, maar ik had problemen tijdens mijn daadwerkelijke test.

yarn upgrade:

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

Niet compatibele upgrade

Waarschuwing

Soms is de plugin upgrade niet achterwaarts compatibel, en moet je mogelijk de configuratie-items met betrekking tot deze plugin in de _config.yml van hexo wijzigen, of andere wijzigingen aanbrengen. Deze situatie gaat over het algemeen gepaard met een verhoging van het getal vóór de eerste punt in het versienummer. Zoals ^1.0.0 upgrade naar ^2.0.0.

1.x.x naar 2.x.x upgrade:

Je moet de volgende drie configuratie-items toevoegen aan het hexo_submit_urls_to_search_engine: configuratie-item:

  replace: 0  # Of je delen van de link wilt vervangen, optionele waarden: 1 | 0 (0: Nee; 1: Ja)
  find_what: http://cjh0613.github.io/blog
  replace_with: https://cjh0613.com

Oké, ik heb ontdekt dat deze upgrade achterwaarts compatibel is, zelfs als deze drie configuratie-items niet aanwezig zijn, zal er geen fout worden gemeld…

Teruginformatie

Succesvolle push-informatie

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

Anders

Andere antwoorden kun je vinden in hun officiële documentatie, maar over het algemeen weet je de reden wel na het vertalen van het antwoord.

Soms is het omdat zoekmachines slechts een bepaald aantal links per dag mogen indienen. Je kunt inloggen op hun officiële website om te informeren. Nadat het domein van mijn site cjh0613.github.io is gewijzigd naar cjh0613.com, was het Bing-quotum 10 items, na 10 dagen continu pushen, veranderde het quotum plotseling van 10 naar 10.000.

Als het pushen van sommige links mislukt, behandel ze dan handmatig: wijzig het txt-bestand waarin de gepushte links zijn opgeslagen op basis van de feedback (in het algemeen verwijder je de links die met succes zijn gepusht) en voer vervolgens alleen hexo deploy uit om opnieuw te pushen, je hoeft de website niet opnieuw te genereren.

Als je dagelijks links naar de zoekmachines wilt pushen, voer dan dagelijks hexo d uit, je kunt ook Github Action instellen om dagelijks hexo g && hexo d uit te voeren, het is niet nodig om het wiel opnieuw uit te vinden.

Controleer de resultaten

Controleer index

Neem het controleren van de index van deze site als voorbeeld, open een zoekmachine en voer site:domein in, in dit geval:

site:cjh0613.github.io

en zoek.

De tijd die een nieuwe site nodig heeft om een index van 0→1 te krijgen kan erg lang zijn, misschien een maand… Wees geduldig.

De werkelijke opnamesnelheid hangt ook af van andere factoren. Er is veel SEO-informatie op het internet, maar deze zijn allemaal gericht op de officiële instructies.

Controleer push-records

Bing

Je kunt de gedetailleerde lijst met gepushte links bekijken (realtime bijgewerkt) op het nieuwe Bing webmasterplatform:

https://www.bing.com/webmasters/submiturl?siteUrl=jouwwebsitelink

Bing push record en resterende quotum query

Google

Je kunt alleen het cumulatieve aantal gepushte links en het percentage mislukte pushes in een bepaalde periode (maximaal de afgelopen 30 dagen) vinden in de tabel “fouten” op het onderstaande adres (realtime bijgewerkt). Hoewel er een grafiek is met de dagelijkse ingediende gegevens, komt het erop neer dat het niet gegeven wordt…

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

Google push push link aantal query

Referentiemateriaal voor de ontwikkeling van deze plugin

Bekijk de oude documentatie