Вступ

Після використання плагіна hexo-submit-urls-to-search-engine у hexo, ви можете активно надсилати нові посилання з вашого блогу Hexo до платформ для веб-майстрів Google, Bing та Baidu, щоб покращити якість та швидкість індексації веб-сайту. Цей плагін дозволяє надсилати запити на індексацію чисті, натуральні до основних пошукових систем раз і назавжди.

Наприклад, одна з моїх статей іноді з’являється в пошуку Bing вже через 5 хвилин після публікації (це найкращий сценарій, і немає гарантії довгострокової стабільності). Бачите, ось у чому сила hexo-submit-urls-to-search-engine. Baidu та Google трохи відстають.

Ці три основні пошукові системи займають 97% світового ринку пошукових систем (включаючи метапошукові системи DuckDuckGo, та інші; Yahoo, Ecosia, які використовують індексацію Bing).

Попередження

Непрофесійне використання іншого подібного коду для надсилання може спричинити небезпечні побічні ефекти, включаючи, але не обмежуючись: дефіцит безпеки, синдром надлишкового коду, винахід велосипеда, синдром читання документації, сумніви у власному існуванні, депресію, головний біль і навіть смерть, розпад душі та знищення.

Адреса Github

Офіційні групи обміну повідомленнями QQ та Telegram припинили свою роботу. Будь ласка, відвідайте сторінку Github issue, щоб взяти участь в обговоренні.

Кроки

Швидкий початок:

  1. Отримайте ключі від кожної платформи для веб-майстрів
  2. Встановіть та налаштуйте плагін hexo-submit-urls-to-search-engine
  3. hexo clean && hexo g && hexo d та перевірте результати надсилання
  4. Якщо надсилання пройшло успішно, перейдіть за адресою Github та натисніть кнопку Star, щоб підтримати проєкт
  5. Також підпишіться на watch Github проєкту, щоб отримувати сповіщення про оновлення плагіна
  6. Ви також можете натиснути тут, щоб зробити пожертву

Отримання ключів платформи для веб-майстрів

Ключі, які потрібно «записати» в цьому розділі, слід ввести у _config.yml файлі hexo, формат наведено нижче.

Щодо підтвердження веб-сайту: деякі теми 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

Отримайте ключ API з нової платформи для веб-майстрів Bing

(Останнім часом платформа для веб-майстрів Bing оновлюється, сервер та макет нестабільні, якщо токен не відображається, ви можете спробувати пізніше) Зараз її вже оновлено до нової платформи для веб-майстрів.

Це схема, як отримати його зі старої платформи для веб-майстрів Bing:

Отримайте ключ API веб-майстра Bing зі старої платформи для веб-майстрів Bing

Google

Якщо ваш сервер розташований у Китаї, зверніть увагу, що ваш сервер повинен мати можливість доступу до міжнародного Інтернету, щоб надсилати запити до Google.

Платформа для веб-майстрів Google також має нову та стару версії, але відносини між двома сайтами не такі гарні, як у Bing. Крім того, Google Indexing API, який ми використовуємо, надається не платформою для веб-майстрів, а належить платформі для розробників Google. Під час процесу ви можете звернутися до офіційної документації (доступна в материковому Китаї) для конфігурації.

Кроки для використання:

  1. Відкрийте офіційну документацію , і створіть проект і обліковий запис служби за підказками. Вам потрібно лише виконати налаштування на веб-сайті відповідно до підказок, і не потрібно виконувати подальші операції, такі як отримання токена доступу.
  2. Якщо ви просто додасте електронну адресу дозволу в новій “Консолі пошуку” Google відповідно до офіційної документації Google, ви все одно отримаєте повідомлення “Немає дозволу”. Будь ласка, перейдіть до старого інструменту для веб-майстрів, натисніть на свій веб-сайт і додайте адресу електронної пошти Тепер ви можете подавати заявки безпосередньо на новій платформі для веб-майстрів.
  3. Помістіть отриманий файл json-ключа в кореневий каталог hexo (той самий, що і файл hexo _config.yml)

Старий інструмент для веб-майстрів Google:

Старий інструмент веб-майстра 1

Старий інструмент веб-майстра 2

Крім того, в офіційній документації є такі підказки, будь ласка, вирішіть, чи вмикати функцію надсилання посилань до Google, залежно від вашої реальної ситуації:

Наразі Indexing API можна використовувати лише для сканування веб-сторінок, які містять JobPosting або BroadcastEvent (вкладені в VideoObject). Для веб-сайтів, що містять багато короткострокових веб-сторінок (таких як інформація про роботу або прямі трансляції відео), Indexing API оновлюватиме вміст у результатах пошуку, окремо надсилаючи оновлення для різного вмісту.

Швидкий початок роботи з Indexing API | Центр пошуку Google | Google для розробників

У будь-якому випадку я подав заявку. Як Google дізнається, що ваша веб-сторінка не містить інформації про роботу чи прямих трансляцій відео, якщо не сканує її? Раз він просканував, навіть якщо він не знайшов інформацію про роботу чи прямих трансляцій відео, чому є якісь причини витрачати ресурси та відмовлятися від вже отриманої інформації? Раз використовує, то наша мета досягнута. У фактичному використанні Google, здається, не знижує пріоритет через це. Можливо, Google забув змінити документ? Наразі я знайшов у цьому документі два серйозні недоліки, які не виправлялися роками.

Налаштування 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, вставте наведений нижче код до _config.yml файлу hexo.

Порада

Звичайно, ви можете використовувати змінні середовища для запису ключів, щоб навіть якщо вихідний код буде розміщено у відкритому репозиторії, ключі не будуть розголошені

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 # Чи надсилати посилання до Bing за допомогою indexNow: true (Так) | false (Ні). Цю функцію можна увімкнути лише з версії 2.1.1 і новішої.
  bing_token: Будь ласка, отримайте ключ згідно з інструкціями в документації ## Будь ласка, зверніть увагу, що це ваш ключ, тому, будь ласка, не публікуйте його безпосередньо у загальнодоступному репозиторії!
  google_host: https://cjh0613.github.io ## Домен, зареєстрований на платформі для веб-майстрів Google
  google_key_file: Project.json #json-файл для зберігання ключа google, розмістіть його в кореневому каталозі веб-сайту (той самий, що і файл hexo _config.yml), будь ласка, не публікуйте вміст json-файлу безпосередньо у загальнодоступному репозиторії!
  google_proxy: http://127.0.0.1:8080 # системний http-проксі, який використовується для надсилання URL-адрес до Google, заповніть 0, щоб не використовувати
  replace: 0  # Чи замінювати частину рядка в посиланні, додаткові значення: 1 | 0 (0: Ні; 1: Так)
  find_what: http://cjh0613.github.io/blog
  replace_with: https://cjh0613.com

Наслідки оприлюднення ключів

Ваші “вороги”, самосвідомий штучний інтелект, терористи можуть використовувати ваш ключ для надсилання посилань на неіснуючі сторінки до пошукових систем. Це не тільки вичерпає вашу квоту і зробить неможливим звичайне надсилання, але й знизить вагу веб-сайту через надсилання мертвих посилань

Коментар

  • submit_condition: підтримує два методи визначення, чи надсилати посилання, а саме count | period. Відповідно, застосуйте наведені нижче елементи налаштування count | period
  • period: період, в секундах, якщо різниця між часом оновлення статті та часом роботи цього плагіна менша за це значення, її посилання буде надіслано. Наприклад: є два файли a.html і b.html, які відповідають 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: системний http-проксі, який використовується для надсилання URL-адрес до Google, формат: 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 generate у кореневому каталозі Hexo, буде створено файл .txt для зберігання посилань, які потрібно надіслати.

Ви можете відкрити цей файл, щоб перевірити, чи правильні посилання. Якщо вони неправильні, відвідайте _config.yml файл hexo для налаштування. Ви також можете вручну змінити цей файл .txt перед надсиланням посилань.

deploy

Якщо ви раніше не додавали елемент налаштування deploy:, просто вставте наведений нижче код до _config.yml файлу hexo, щоб перезаписати налаштування 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 і підтримайте нас зірочкою, дякую!

Якщо ви вже встановили елемент налаштування 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, обов’язково додайте updated: до Front-matter кожної сторінки (область, розділена --- у верхній частині файлу .md, яка використовується для визначення змінних для окремих файлів) , щоб повідомити 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. Спочатку заповніть 0 у параметрах конфігурації baidu_token: та bing_token: в hexo_submit_urls_to_search_engine:
  2. Установіть змінні середовища BAIDU_TOKEN, BING_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 #json-файл для зберігання ключа google, розмістіть його в кореневому каталозі веб-сайту (той самий, що і файл hexo _config.yml), будь ласка, не публікуйте вміст json-файлу безпосередньо у загальнодоступному репозиторії!
  google_proxy: 0 # системний http-проксі, який використовується для надсилання URL-адрес до Google, заповніть 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 , щоб отримувати сповіщення про оновлення плагіна (виберіть 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@версія

Несумісні оновлення

Попередження

Іноді оновлення плагіна є не сумісними вниз, і вам може знадобитися змінити елементи налаштування, пов’язані з цим плагіном у _config.yml файлі hexo, або внести інші зміни. Ця ситуація зазвичай відбувається, коли збільшується перша цифра перед першою десятковою комою в номері версії. Наприклад, з ^1.0.0 оновлено до ^2.0.0.

Оновлення з 1.x.x до 2.x.x:

Вам потрібно додати наступні три елементи налаштування до елемента налаштування hexo_submit_urls_to_search_engine::

  replace: 0  # Чи замінювати частину рядка в посиланні, додаткові значення: 1 | 0 (0: Ні; 1: Так)
  find_what: http://cjh0613.github.io/blog
  replace_with: https://cjh0613.com

Добре, я виявив, що це оновлення сумісне вниз, і навіть якщо цих трьох елементів конфігурації немає, помилки не буде…

Інформація про відповідь

Інформація про успішне надсилання

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

Інше

Інші відповіді можна знайти в їхній офіційній документації, але загалом переклад відповіді пояснить причину.

Іноді це тому, що пошукові системи дозволяють надсилати лише певну кількість посилань щодня. Ви можете увійти на їхній офіційний веб-сайт для запиту. Після того, як домен мого сайту 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, може бути довгим, можливо, місяць… Будьте терплячі

Фактична швидкість індексації також пов’язана з іншими факторами, в Інтернеті багато матеріалів з 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

Довідкові матеріали, які я використовував для розробки цього плагіна

Будь ласка, перегляньте стару документацію