Back to ArticlesWolisz tego nie robić samodzielnie? Zgłosimy Twoją stronę do Baidu za stałą cenę.Zobacz usługę zgłoszenia do Baidu

Weryfikacja witryny w Baidu: plik HTML, metatag i rekord CNAME

Beijing central business district skyline at dusk

Ktoś zlecił Ci zadanie związane z Baidu i pierwszą przeszkodą okazuje się ekran weryfikacji. Baidu nie przyjmie mapy witryny, nie otworzy raportów indeksowania i nie pozwoli przesłać ani jednego adresu URL, dopóki nie upewni się, że domena należy do Ciebie. Udowodnić to można na trzy sposoby, każdy zachowuje się inaczej, a błędy wyglądają zupełnie inaczej niż te znane z Google Search Console.

Poniżej szczegóły wdrożenia każdej z metod, powody, dla których weryfikacja zwykle się nie udaje, i sposób na sprawdzenie każdej z nich z poziomu terminala.

Gdzie znajduje się weryfikacja

Narzędzie Baidu dla webmasterów to Baidu Search Resource Platform (百度搜索资源平台) pod adresem ziyuan.baidu.com, wciąż powszechnie nazywane Baidu Zhanzhang. Dodajesz witrynę, wybierasz metodę weryfikacji, a Baidu pobiera coś z Twojej domeny, żeby potwierdzić kontrolę nad nią. Dopiero wtedy odblokowują się zgłaszanie linków, przesyłanie mapy witryny i diagnostyka indeksowania.

Dwie rzeczy w modelu witryn zaskakują ludzi, zanim jeszcze wybiorą metodę:

  • Protokół i host są częścią tożsamości. https://example.com i https://www.example.com to dla Baidu dwie różne witryny, podobnie jak ich wersje http://. Dodaj dokładnie ten origin, którego używają Twoje kanoniczne adresy URL. Weryfikacja niewłaściwego oznacza, że wszystko, co potem zgłosisz, dotyczy witryny, przez którą nie przechodzi żaden Twój ruch.
  • Pobranie następuje z Chin kontynentalnych. Cokolwiek ma potwierdzać własność, musi być stamtąd dostępne, przez publiczny internet, bez strony zabezpieczającej po drodze. Ten jeden fakt tłumaczy większość błędów opisanych na końcu artykułu.

Zanim jednak dojdzie do czegokolwiek, potrzebne jest konto. Bez konta Baidu w ogóle nie dotrzesz do ekranu weryfikacji, a rejestrację potwierdza SMS na numer komórkowy z Chin kontynentalnych. Dla firmy w Europie czy Wielkiej Brytanii to realna ściana i warto o niej wiedzieć, zanim poświęcisz całe popołudnie na DNS. Więcej o tym na końcu.

Metoda 1: plik weryfikacyjny HTML

Najczęściej stosowana i ta, po którą warto sięgnąć, jeśli możesz wdrożyć plik statyczny.

Baidu generuje plik dla Twojej witryny i udostępnia go do pobrania. Nazwa wygląda tak:

baidu_verify_codeva-XXXXXXXXXX.html

Starsze witryny dostawały nazwy w formie baidu_verify_XXXXXXXXXX.html, a niektóre panele pokazują przedrostek code- zamiast codeva-. Nie próbuj odtwarzać nazwy ani tokenu na podstawie wpisu na blogu: pobierz plik, który daje Ci Baidu, albo skopiuj ciąg z panelu znak po znaku. Treść pliku jest krótka, zwykle sam token i nic poza tym.

Plik musi być serwowany z katalogu głównego zarejestrowanego origin:

https://example.com/baidu_verify_codeva-XXXXXXXXXX.html

Nie w podkatalogu, nie za prefiksem językowym, nie na innym hoście.

Gdzie trafia plik, zależnie od stacku

| Stack | Lokalizacja | | --- | --- | | Vite, Create React App, SvelteKit (static), Nuxt | public/ lub static/ w katalogu głównym projektu | | Next.js (oba routery) | public/ | | Hugo, Astro | odpowiednio static/ i public/ | | Laravel | public/ | | Django | katalog static/ zbierany przez collectstatic albo serwowany bezpośrednio przez nginx | | ASP.NET Core | wwwroot/ | | WordPress | katalog główny obok wp-config.php, przez SFTP | | Zwykły nginx lub Apache | katalog dokumentów |

Sprawdź to tak, jak zrobi to Baidu

curl -sSI https://example.com/baidu_verify_codeva-XXXXXXXXXX.html
curl -sS  https://example.com/baidu_verify_codeva-XXXXXXXXXX.html

Oczekujesz HTTP/2 200, nagłówka content-type o wartości text/html, braku nagłówka location i treści, która jest dokładnie tokenem. Trzy wyniki oznaczają, że praca nie jest skończona:

  • Kod 301 lub 302. Coś normalizuje ścieżkę, najczęściej reguła ukośnika na końcu albo przekierowanie językowe, które wysyła każdą niedopasowaną ścieżkę do /en/.... Dodaj wyjątek przed regułą łapiącą wszystko.
  • Kod 200 zwracający powłokę aplikacji. To najczęstszy fałszywy sukces. Aplikacja jednostronicowa z trasą łapiącą wszystko odpowiada na każdą ścieżkę plikiem index.html i statusem 200, więc plik „istnieje”, tylko jego treścią jest Twój kod React. Baidu czyta treść, nie znajduje tokenu i odrzuca weryfikację. Serwuj plik statyczny przed fallbackiem SPA.
  • Kod 404 utrzymujący się po wdrożeniu. Zwykle winny jest CDN, który zapisał w pamięci podręcznej odpowiedź negatywną. Wyczyść dokładnie tę ścieżkę, a potem sprawdź ponownie przez curl -H 'Cache-Control: no-cache'.

Zostaw plik w repozytorium. Baidu okresowo sprawdza własność ponownie, a witryna, która straci plik weryfikacyjny, po cichu znika z panelu.

Metoda 2: metatag HTML

Wybierz ją, gdy możesz edytować szablony, ale nie możesz wrzucać plików do katalogu głównego, czyli w typowej sytuacji na zarządzanym CMS-ie albo hostingu platformowym.

Baidu daje tag o takim kształcie, do umieszczenia w sekcji <head> strony głównej:

<meta name="baidu-site-verification" content="codeva-XXXXXXXXXX" />

Atrybut name to zawsze baidu-site-verification, zapisane dokładnie tak, z myślnikami. Wartość content to token z panelu.

O tym, czy zadziała, decydują trzy zasady:

  1. Musi być wewnątrz <head>. Parser, który znajdzie go w <body>, uznaje sekcję head za już zamkniętą. Wszystko wstrzyknięte po pierwszym elemencie spoza head przychodzi za późno.
  2. Musi być w kodzie HTML wysyłanym przez serwer. Otwórz view-source: albo, lepiej, curl -sS https://example.com | grep baidu-site-verification. Jeśli tag pojawia się wyłącznie w inspektorze elementów w DevTools, dodał go JavaScript po hydracji i nie liczy się. To właśnie psuje sprawę w aplikacjach React i Vue renderowanych po stronie klienta i dlatego w SPA prościej jest użyć metody z plikiem.
  3. Musi przetrwać framework. Menedżery sekcji head deduplikują i czyszczą tagi. Next.js oczekuje go w eksporcie metadata, a nie jako luźnego <meta> w komponencie. React Helmet usuwa tagi renderowane poza swoim providerem. Niektóre wtyczki bezpieczeństwa w CMS-ach wycinają metatagi o nieznanych nazwach. Menedżer tagów go nie umieści, bo działa po stronie klienta.

Umiejscowienie w konkretnych frameworkach:

// Next.js App Router, app/layout.js
export const metadata = {
  other: { 'baidu-site-verification': 'codeva-XXXXXXXXXX' },
}
// WordPress, functions.php motywu potomnego
add_action('wp_head', function () {
  echo '<meta name="baidu-site-verification" content="codeva-XXXXXXXXXX" />' . "\n";
}, 1);

Na stronie renderowanej po stronie serwera wstaw go do szablonu bazowego, obok tagów charset i viewport, i zapomnij o nim. W Hugo to layouts/_default/baseof.html, w Django szablon bazowy, który rozszerzają wszystkie strony.

Metoda 3: rekord CNAME

Po metodę DNS sięga się wtedy, gdy nie możesz nic wdrożyć, gdy witryna stoi za urządzeniem, nad którym nie masz kontroli, albo gdy chcesz, żeby weryfikacja przetrwała każde kolejne wdrożenie. Potwierdza też kontrolę nad całą domeną, a nie nad jednym dokumentem.

Baidu pokazuje losową etykietę hosta do utworzenia w Twojej domenie, wskazującą na Baidu:

abcdef123456.example.com.  3600  IN  CNAME  ziyuan.baidu.com.

W większości paneli DNS wpisuje się tylko lewą etykietę, bo strefa jest domyślna:

| Pole | Wartość | | --- | --- | | Typ | CNAME | | Nazwa / Host | abcdef123456 | | Wartość / Cel | ziyuan.baidu.com | | TTL | 3600 albo najniższy, na jaki pozwala panel podczas testów |

Cztery rzeczy psują się tu raz za razem:

  • Domena zostaje doklejona dwa razy. Wpisanie abcdef123456.example.com w panelu, który strefę już dodaje, tworzy abcdef123456.example.com.example.com. Jeśli panel po zapisaniu pokazuje pełną nazwę, przeczytaj ją.
  • Kropka na końcu celu. W surowym pliku strefy ziyuan.baidu.com bez końcowej kropki jest interpretowane względem strefy i staje się ziyuan.baidu.com.example.com. Panele załatwiają to za Ciebie, pliki named i Terraform nie.
  • Proxy przed rekordem. W Cloudflare rekord z włączonym proxy (pomarańczowa chmurka) nie rozwiązuje się już z zewnątrz jako CNAME: autorytatywną odpowiedzią stają się rekordy A Cloudflare. Ustaw rekord weryfikacyjny na DNS only.
  • Krótsze czekanie niż TTL. Jeśli resolver ma już zapisaną negatywną odpowiedź dla tej nazwy, obowiązuje stary TTL. Sprawdź, co widzi świat, a nie co pokazuje Twój panel.
dig +short abcdef123456.example.com CNAME
# ziyuan.baidu.com.

dig +short @8.8.8.8 abcdef123456.example.com CNAME

Zostaw rekord na miejscu. Usunięcie go po udanej weryfikacji to proszenie się o błąd przy późniejszym ponownym sprawdzeniu.

Dlaczego weryfikacja się nie udaje, choć konfiguracja wygląda poprawnie

Plik sprawdzony curlem, zwraca 200, a Baidu nadal mówi nie. Przejdź po tej liście:

  • Test botowy albo reguła WAF. Cloudflare Bot Fight Mode, zarządzane reguły AWS WAF i większość trybów „pod atakiem” zwracają stronę pośrednią z JavaScriptem i kodem 403 lub 503 każdemu klientowi, który nie wykonuje skryptów. Pobieracz Baidu ich nie wykonuje. Dodaj wyjątek dla ścieżki weryfikacyjnej albo dla samego robota.
  • Blokada geograficzna. Sporo europejskich witryn blokuje albo ogranicza ruch z Chin kontynentalnych, żeby ukrócić scraping. Pobranie weryfikacyjne przychodzi dokładnie z tego zakresu. Upewnij się, że nic na brzegu sieci go nie odrzuca.
  • Filtrowany user agent. Robot przedstawia się jako Baiduspider. Niektóre systemy bezpieczeństwa traktują nieznane ciągi robotów jak scrapery. Jeśli chcesz potwierdzić autentyczność żądania przed dodaniem wyjątku: odwrotny DNS na adresie źródłowym rozwiązuje się do *.baidu.com lub *.baidu.jp, a zapytanie w przód musi się zgadzać.
  • Blokada w robots.txt. Disallow: / pod user-agentem z gwiazdką albo zostawiony przez kogoś jawny blok User-agent: Baiduspider zatrzymuje pobranie, zanim się ono zacznie.
  • Problem z TLS, którego przeglądarki nie pokazują. Brakujący certyfikat pośredni przeglądarki na komputerze naprawiają po cichu, a proste klienty HTTP nie. Przepuść domenę przez zewnętrzny tester TLS zamiast ufać zielonej kłódce.
  • Weryfikacja niewłaściwego origin. Plik leży na www.example.com, a witryna w Baidu to example.com. Komunikat o błędzie nie powie Ci o tym ani słowa.
  • Wolny czas do pierwszego bajtu. Serwery w Europie bez obecności w Chinach odpowiadają na żądanie z Pekinu powoli, a zimny start funkcji serverless może do tego przekroczyć limit czasu pobrania. Ponowna próba o innej porze naprawdę pomaga.

Którą metodę wybrać

Wdróż plik statyczny, jeśli masz pipeline budowania: najtrudniej go zepsuć i najłatwiej przetestować. Weź metatag, jeśli żyjesz w CMS-ie, a strony są renderowane po stronie serwera. Weź CNAME, jeśli w ogóle nie możesz ruszyć witryny albo chcesz raz udowodnić własność na poziomie domeny i nigdy do tego nie wracać.

Cokolwiek wybierzesz, zostaw to na stałe i zapisz w dokumentacji infrastruktury, obok pozostałych rekordów DNS. Osobą, która za półtora roku usunie tajemniczy plik, będziesz Ty.

Czego te metody nie rozwiązują

Każda z tych trzech metod zakłada, że jesteś już zalogowany na konto Baidu. Rejestrację potwierdza SMS na numer komórkowy z Chin kontynentalnych, a przy wielu witrynach Baidu prosi dodatkowo o weryfikację tożsamości (实名认证) chińskim dowodem osobistym albo chińską licencją firmową. Firma we Frankfurcie czy Manchesterze z bezbłędnie skonfigurowaną strefą DNS i tak nie dotrze do ekranu weryfikacji.

I tu wchodzi nasza usługa zgłoszenia do Baidu. Wskazujesz nam domenę, po swojej stronie przechodzisz jedno potwierdzenie własności domeny, a my przeprowadzamy zgłoszenie i raportujemy, co Baidu faktycznie zaindeksowało, za stałą cenę od domeny. Bez chińskiego numeru telefonu, bez chińskiej spółki, bez własnego konta Baidu.

Jeśli wolisz najpierw szerszy obraz, pełny przewodnik po zgłaszaniu do Baidu omawia mapy witryn, API push i to, co ranking Baidu naprawdę nagradza. A jeśli wolisz o tym porozmawiać, umów rozmowę.

Usługa

Możemy zrobić to wszystko za Ciebie

Potwierdzenie własności domeny, przesłanie mapy witryny i adresów URL oraz raport indeksowania po dwóch tygodniach. Jedna domena, stała cena, bez chińskiego numeru telefonu, bez chińskiej spółki i bez własnego konta Baidu.

Zobacz usługę zgłoszenia do Baidu