Модул 1 · 1.2
Обхождане (crawling): как търсачката намира Вашия сайт
Модул 1: Как работят търсачките · Време за четене: 11 минути
Цел на урока: След този урок ще можете да опишете как crawler открива нови страници, на какви кодове за състояние попада и какво означават те, както и какво спира един crawler.
Основни понятия: crawler (Googlebot, Bingbot), следване на връзки, карта на сайта (sitemap), HTTP код за състояние (200, 301, 302, 404, 410, 429, 5xx), пренасочване, бюджет за обхождане (crawl budget), JavaScript и рендиране, страница сираче, robots.txt
Какво е crawler
Crawler (наричан още spider или бот) е програма, която изтегля уеб страници точно както прави Вашият браузър, но автоматично и в огромен мащаб. Google има Googlebot, Bing има Bingbot. Те заявяват даден адрес, получават обратно HTML кода, прочитат какви връзки има в него и добавят тези нови адреси в списъка си, за да ги изтеглят по-късно.
Google посочва, че Googlebot средно посещава даден сайт не по-често от веднъж на няколко секунди и че повечето заявки идват от версията на Googlebot за смартфони. Следователно Google разглежда Вашия сайт най-вече така, както го вижда един телефон. Урок 4.2 се връща на тази тема.
Един crawler може и да се представя за Googlebot: името (user-agent) лесно се подправя. Google препоръчва да проверите подозрително посещение чрез обратна DNS заявка (reverse DNS lookup) за IP адреса. Това е полезно, ако в сървърния си журнал видите „Googlebot“, който прави странни неща.
Как crawler намира нови страници
Google посочва три начина:
- Повторно посещение на страници, които вече познава. Там той вижда промени и нови връзки.
- Следване на връзки. Връзка от страница, която Google вече познава, към нова страница е най-важният начин да бъдете намерени. Това важи за връзките в собствения Ви сайт (менюто, връзка в текст) и за връзките от други сайтове.
- Списък, който Вие предоставяте: картата на сайта (sitemap). Картата на сайта е файл с адресите на Вашите страници. Можете да я подадете в Search Console или да я посочите в robots.txt (урок 3.4). Според Google картата на сайта не е задължителна, но е полезна, особено за нови сайтове с все още малко връзки, за големи сайтове и за страници, разположени дълбоко в структурата на сайта.
Връзките трябва да са истински връзки
Google може да следва връзка само ако тя е обикновен елемент <a> с атрибут href:
<a href="/bulchinski-buketi">Булчински букети</a> <!-- добре -->
<span onclick="ga('/bulchinski-buketi')">Булчински букети</span> <!-- не е връзка за Google -->Бутон, който води към друга страница само чрез JavaScript, не е връзка за crawler. Страница, към която не сочи нито една връзка, се нарича страница сираче (orphan page). Crawler я намира само чрез картата на сайта, а и посетителите трудно я откриват. Затова всяка нова страница трябва винаги да има връзка от някъде в менюто или в текст.
JavaScript: първо изтегляне, после изпълнение
Много съвременни сайтове изграждат страницата с JavaScript в браузъра. Google се справя с това: той изпълнява JavaScript с актуална версия на Chromium, основата на браузъра Chrome. Това се нарича рендиране. Google описва три фази за такива страници: обхождане, рендиране и индексиране. Страниците с код 200 се нареждат в опашка за рендиране.
Две последици:
- Това, което се появява на страницата едва след JavaScript, Google вижда по-късно от това, което е директно в HTML.
- Не всеки crawler изпълнява JavaScript. Google сам го казва. Затова текст, заглавия и връзки, които са директно в HTML, са най-сигурният вариант за всички търсачки. Google нарича HTML, генериран на сървъра, „все още добра идея“.
Автоматичните проверки в този курс четат HTML кода така, както го изпраща сървърът, без JavaScript. Това, което виждате в браузъра си, може да се различава.
Кодове за състояние: какво отговаря сървърът
С всяка страница сървърът изпраща и код за състояние. Не го виждате на екрана, но crawler го прочита първи:
| Код | Значение | Какво прави Google с него |
|---|---|---|
| 200 | OK, ето страницата | Съдържанието продължава към индексиране (включването не е гарантирано) |
| 301 / 308 | Окончателно преместена на друг адрес | Силен сигнал, че новият адрес е правилният |
| 302 / 307 | Временно на друго място | Слаб сигнал; старият адрес често остава основен |
| 404 / 410 | Не съществува (вече) | Вече включен адрес отпада от индекса; Google го посещава все по-рядко |
| 429 | Твърде много заявки | Google временно забавя обхождането |
| 5xx | Грешка на сървъра | Google временно забавя обхождането; ако даден адрес постоянно връща сървърна грешка, в крайна сметка отпада от индекса |
Внимавайте за soft 404: страница, която показва „не е намерена“, но връща код 200. За crawler тя изглежда като истинска страница, а за посетителя не е. Search Console отчита такива страници отделно. Затова изтрита страница трябва да връща истински 404 или 410 или да пренасочва с 301 към заместваща страница.
Верига от пренасочвания (http към https към www към новата страница) Google проследява до около десет стъпки, но всяка стъпка отнема време. Урок 4.1 показва как да направите това с една стъпка.
Какво спира един crawler
Като причини една страница да не бъде обходена Google посочва: проблеми със сървъра, мрежови проблеми и правила в robots.txt, които забраняват достъпа на Googlebot. На практика ще срещнете и:
- сайт, който все още е в „режим на поддръжка“ или е защитен с парола;
- в WordPress отметката „Discourage search engines from indexing this site“ (Обезкуражаване на търсачките), която добавя noindex (това е стъпка 2, но ефектът е същият: сайтът не може да бъде намерен);
- защита или firewall, която отказва достъп на непознати ботове с 403 или 429;
- сайт, в който може да се навигира само чрез бутони с JavaScript.
На robots.txt е посветен отделен урок (3.3). Засега е достатъчно да знаете: това е текстов файл на https://www.example.com/robots.txt, който посочва кои части от Вашия сайт crawler няма право да изтегля.
Бюджет за обхождане: за повечето сайтове не е проблем
В интернет ще прочетете много за бюджета за обхождане (crawl budget): колко страници от Вашия сайт Google иска и може да изтегли. Google посочва, че ръководството по темата е предназначено за големи сайтове, с груба оценка над един милион страници или над десет хиляди страници, които се променят ежедневно. Ако новите Ви страници се изтеглят още в деня на публикуването, не е нужно да се занимавате с това. За сайт като този на Флорално ателие „Виктория“ с трийсет страници това не е тема. Актуална карта на сайта и поглед от време на време в отчета Page indexing са достатъчни.
На практика: Вашият сървърен журнал
В DirectAdmin и подобни панели можете да прегледате журнала за достъп (access log) на сайта си. Потърсете „Googlebot“ или „bingbot“ и ще видите кои страници са заявили и какъв код за състояние са получили. Ако там виждате много грешки 404 или 5xx, знаете откъде да започнете. При други доставчици журналите обикновено се намират под подобно име в клиентския панел.
Обобщение
- Crawler изтегля страници и намира нови адреси чрез връзки и чрез Вашата карта на сайта.
- Следват се само истински връзки
<a href>; страница без връзки към нея е сираче. - Google изпълнява JavaScript, но по-късно; другите crawler-и често не го правят. Важното съдържание трябва да е в HTML.
- Кодът за състояние определя какво прави crawler: 200 обработване, 301 преместване, 404/410 премахване, 5xx и 429 по-бавно обхождане.
- Бюджетът за обхождане има значение само за много големи или много бързо променящи се сайтове.
Тест
Задача
Задача A1.2: Какво вижда един crawler на Вашата начална страница? Въведете адреса на сайта си (или www.wikipedia.org, ако нямате собствен сайт). След това въведете какво очаквате: кода за състояние на крайната страница, адреса, на който се озовавате след пренасочването, и дали има noindex. Програмата изтегля началната страница като crawler, без JavaScript, и показва веригата от пренасочвания, кода за състояние, броя на истинските връзки към собствения Ви сайт в HTML и дали текстът на страницата се чете без JavaScript.
Прочетете още
Стъпките в тези статии се отнасят за панелите на WebOké; при други доставчици процесът е подобен.
- Ръководство за DirectAdmin 4.7: Site Redirects: пренасочване на домейн или страница
- Ръководство за DirectAdmin 17.2: Site summary & logs: лог файлът за грешки и лог файлът за достъп
- Задължително пренасочване на посетителите към https
- Google, Как HTTP кодовете за състояние и мрежовите грешки влияят на Google Search: https://developers.google.com/search/docs/crawling-indexing/http-network-errors
- Google, Основи на JavaScript SEO: https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics
- Google, Бюджет за обхождане за големи сайтове: https://developers.google.com/crawling/docs/crawl-budget
- Безплатен курс по WordPress 3.2: www, пренасочване и смесено съдържание
