Предисловие
После использования плагина 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).
Предупреждение
Непрофессиональное использование других подобных кодов отправки может привести к опасным побочным эффектам, включая, но не ограничиваясь: дефект безопасности, избыточность кода, изобретение велосипеда, разгрызание документации, сомнения в жизни, депрессию, головную боль и даже смерть, рассеяние души, уничтожение.
Официальные QQ-группы и группы Telegram прекратили свою работу. Пожалуйста, участвуйте в обсуждении на странице Github issue.
Операционные шаги
Краткое руководство:
- Получите ключи от платформ для веб-мастеров
- Установите и настройте плагин
hexo-submit-urls-to-search-engine hexo clean && hexo g && hexo dи проверьте результаты отправки- Если отправка прошла успешно, перейдите по адресу Github и нажмите кнопку Star, чтобы поддержать проект
- Кроме того, следите за проектом Github, чтобы получать уведомления об обновлениях плагина
- Вы также можете нажать здесь, чтобы поблагодарить
Получение ключей платформы веб-мастера
Ключи, которые нужно “запомнить” в этом разделе, следует внести в _config.yml hexo, формат будет приведен позже.
О подтверждении сайта: некоторые темы Hexo поддерживают добавление HTML-тега подтверждения платформы веб-мастера. После заполнения соответствующих настроек hexo g && hexo d можно выполнить проверку. Общие подробные шаги можно найти самостоятельно в Google: hexo платформа веб-мастера проверка
Baidu
Baidu - это поисковая система из Китая. Если не пройти сложную процедуру регистрации веб-сайта в китайских органах, веб-сайт будет сложно проиндексировать.
Если ваш веб-сервер находится за пределами Китая, практически невозможно пройти процедуру регистрации веб-сайта.
Пожалуйста, обратитесь к старой документации, чтобы узнать, как отправлять ссылки в Baidu
Bing
Платформа для веб-мастеров Bing имеет старую и новую версии.
- Зарегистрируйтесь и войдите в новую платформу для веб-мастеров Bing Bing Webmaster Tools
- Добавьте сайт
- Зайдите на страницу управления сайтом, настройки, доступ к API, ключ API, запишите ключ API
(В последнее время платформа для веб-мастеров Bing обновляется, сервер и макет нестабильны, если токен не отображается, можно попробовать позже) Сейчас она уже обновлена до новой платформы для веб-мастеров.
Это схематическое изображение получения с платформы веб-мастеров Bing старой версии:
Если ваш сервер находится на территории Китая, обратите внимание, что ваш сервер должен иметь возможность доступа к международному интернету, чтобы отправлять данные в Google.
Платформа для веб-мастеров Google также имеет старую и новую версии, но отношения между ними не так хорошо налажены, как у 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 для разработчиков
В любом случае, я отправил. Если 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 получает неправильное “время последнего изменения статьи”, поэтому не может нормально определить и отправить последние ссылки.
- Сначала заполните
0в параметрах конфигурацииbaidu_token:иbing_token:вhexo_submit_urls_to_search_engine: - Установите переменные среды
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 #Файл 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 и т.д., по электронной почте)
Шаги по обновлению
Запустите в корневой директории 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 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=ссылка_на_ваш_веб-сайт
Количество отправленных ссылок за определенный период времени (максимум за последние 30 дней) и процент неудачных отправок можно просмотреть только в таблице “ошибки” по следующему адресу (обновляется в реальном времени). Хотя и предоставляется график данных за день, он не имеет большого смысла…
https://console.developers.google.com/apis/api/indexing.googleapis.com/metrics?project=