Предисловие

После использования плагина 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. Кроме того, следите за проектом 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 developers, платформы разработчиков 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 # Использовать ли indexNow для отправки ссылок в Bing: 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 для хранения ссылок, которые нужно отправить.

Если отправка прошла успешно, пожалуйста, поддержите проект, нажав Star в репозитории 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 до 10 000.

Если некоторые ссылки не отправлены, обработайте их вручную: на основе обратной связи измените 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

Справочные материалы для разработки этого плагина

Пожалуйста, обратитесь к старой документации