Вступ
Після використання плагіна 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, щоб підтримати проєкт
- Також підпишіться на watch 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. Під час процесу ви можете звернутися до офіційної документації (доступна в материковому Китаї) для конфігурації.
Кроки для використання:
- Відкрийте офіційну документацію , і створіть проект і обліковий запис служби за підказками. Вам потрібно лише виконати налаштування на веб-сайті відповідно до підказок, і не потрібно виконувати подальші операції, такі як отримання токена доступу.
Якщо ви просто додасте електронну адресу дозволу в новій “Консолі пошуку” 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 # Чи надсилати посилання до 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 отримає неправильний “час останньої зміни статті”, і не зможе нормально судити та подавати останні посилання.
- Спочатку заповніть
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 на 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=посилання на ваш веб-сайт
Ви можете перевірити сукупну кількість надісланих посилань та відсоток невдалих надсилань за певний період (не більше 30 днів) лише в таблиці «Помилка» за наведеною нижче адресою (оновлюється в реальному часі), хоча було надано щоденну діаграму даних, але це все одно, що її не надали…
https://console.developers.google.com/apis/api/indexing.googleapis.com/metrics?project=