XML-карты сайта и SEO: что вам нужно знать
Опубликовано: 2023-08-16Картам сайта XML в июне исполнилось 18 лет, и в честь их полноценного введения во взрослую жизнь я рассказываю о том, как работают карты сайта XML, как их создать и почему карты сайта XML предлагают множество преимуществ SEO.
Что такое XML-карта сайта?
В двух словах, карта сайта XML — это протокол в формате XML, который сообщает поисковым системам об URL-адресах на веб-сайте, доступных для сканирования.
XML-карты сайта предназначались для обмена информацией о каждом URL-адресе, например:
- Когда он последний раз обновлялся.
- Как часто он меняется.
- Насколько это важно по отношению к другим URL-адресам на вашем веб-сайте.
XML-карты сайта позволяют поисковым системам более эффективно сканировать ваш веб-сайт, если определенные URL-адреса изолированы.
Если вы профессионал в области SEO, вы, вероятно, уже используете XML-карты сайта, встроенные в ваш плагин Yoast WordPress. Но есть много дополнений, которые вам могут не хватать.
Как создать динамическую XML-карту сайта
Если вы используете WordPress, используйте плагины SEO, такие как Yoast и RankMath, для создания динамической карты сайта в формате XML.
Если вы не используете WordPress, выполните следующие действия, чтобы создать динамическую карту сайта в формате XML.
Поймите свою навигационную структуру
Соберите список всех наших URL-адресов на веб-сайте и сгруппируйте их в соответствии со структурой навигации и группами контента.
Сотрудничайте с вашей командой разработчиков
Поделитесь списком URL-адресов, сгруппированных вместе с вашей командой разработчиков, чтобы получить их помощь в создании динамической карты сайта XML с использованием Python, PHP или JavaScript.
Вот пример того, как кодировать динамическую карту сайта XML с помощью Python:
import xml.etree.ElementTree as ET import datetime # List of URLs (replace these with your actual URLs) urls = [ "https://www.example.com/page1", "https://www.example.com/page2", "https://www.example.com/page3", # Add more URLs here ] # Create the root element urlset = ET.Element("urlset") urlset.set("xmlns", "http://www.sitemaps.org/schemas/sitemap/0.9") # Loop through URLs and create URL entries for url in urls: url_elem = ET.SubElement(urlset, "url") loc_elem = ET.SubElement(url_elem, "loc") loc_elem.text = url lastmod_elem = ET.SubElement(url_elem, "lastmod") lastmod_elem.text = datetime.datetime.now().isoformat() changefreq_elem = ET.SubElement(url_elem, "changefreq") changefreq_elem.text = "daily" # You can set this to the desired frequency priority_elem = ET.SubElement(url_elem, "priority") priority_elem.text = "0.5" # You can set this to a value between 0 and 1 # Create the XML tree tree = ET.ElementTree(urlset) # Save the XML to a file tree.write("sitemap.xml", encoding="utf-8", xml_declaration=True)
Работая с разработчиками, я использовал Flask и Python вместе, чтобы создать действительно динамическую карту сайта XML, которая меняется всякий раз, когда изменяется содержимое веб-сайта.
Если мы сможем определить маршрут динамической карты сайта на основе содержимого веб-сайта с помощью такой функции, как get_dynamic_urls()
, мы сможем получить все URL-адреса.
@app.route('/sitemap.xml', methods=['GET']) def sitemap(): urls = get_dynamic_urls() # Replace with your dynamic URL retrieval logic urlset = ET.Element("urlset") urlset.set("xmlns", "http://www.sitemaps.org/schemas/sitemap/0.9") for url in urls: url_elem = ET.SubElement(urlset, "url") loc_elem = ET.SubElement(url_elem, "loc") loc_elem.text = url lastmod_elem = ET.SubElement(url_elem, "lastmod") lastmod_elem.text = datetime.datetime.now().isoformat() changefreq_elem = ET.SubElement(url_elem, "changefreq") changefreq_elem.text = "daily" priority_elem = ET.SubElement(url_elem, "priority") priority_elem.text = "0.5" xml_content = ET.tostring(urlset, encoding="utf-8") return xml_content, {'Content-Type': 'application/xml'}
Если вы используете код для нескольких ресурсов домена, убедитесь, что файлы правильно закодированы на ваших HTML-страницах.
Например, ваши файлы CSS и JavaScript должны быть связаны с помощью тегов <link>
и <script>
.
Прежде чем совместно использовать код в разных доменах, вам необходимо создать централизованный сервер для размещения общих правил XML-карты сайта.
У вас будет несколько этапов динамической XML-карты сайта с вашими разработчиками, пока не будут подтверждены все правила.
Не забудьте проверить, действительно ли динамические URL-адреса извлекаются и интегрируются в логику вашей карты сайта.
Загрузить на свой сервер
Как только ваша XML-карта сайта будет сжата, загрузите динамическую XML-карту сайта в корневой каталог вашего веб-сайта.
Отправить в поисковые системы
Сообщите поисковым системам о ваших XML-картах сайта, отправив их через Google Search Console и Bing Webmaster Tools.
Текущее обслуживание
XML-карта сайта — это не просто тактика SEO «установил и забыл». Крайне важно обновлять XML-карту сайта по мере изменения вашего веб-сайта.
15 советов, о которых следует помнить при создании XML-карты сайта
1. XML-карты сайта не являются фактором ранжирования
На вопрос в X (ранее Twitter), дает ли использование карт сайта XML преимущество в ранжировании, Гэри Иллис из Google ответил:
- — Нет, во всяком случае, не напрямую.
2. Google может найти ваши страницы без карты сайта
«Веб-сайтам не нужна карта сайта, если они небольшие и имеют правильные ссылки», — поделился Дэниел Вайсберг, советник по поиску в Google, в обучающем видео Google Search Console.
Однако далее он сказал, что карта сайта может быть особенно полезна, если:
- Сайт действительно большой.
- Страницы сайта изолированы.
- Сайт новый или быстро меняется.
Кроме того, важно отметить, что Джон Мюллер из Google заявил в X (ранее Twitter), что наличие XML-карты сайта является «минимальной базой для любого серьезного веб-сайта».
3. Перед повторной обработкой Google проверяет, изменилась ли ваша XML-карта сайта.
Google проверяет, изменилась ли ваша XML-карта сайта, прежде чем снова тратить ресурсы на анализ и обработку файла, подтвердил Иллиес.
Он заявил в SEO Office Hours.
- «Как только вы измените что-то в своей карте сайта, будь то элемент URL или последний мод, карта сайта будет снова проанализирована и, как правило, переработана. Это не означает, что URL-адреса обязательно будут просканированы, конечно, они по-прежнему подлежат оценке качества, как и любой другой URL-адрес. Также стоит упомянуть, что если вы удаляете URL-адрес из карты сайта, потому что, возможно, он больше не существует, это не означает, что он будет автоматически удален из индекса или даже получит приоритет для сканирования, чтобы его можно было удалить раньше».
4. XML-карты сайта могут быстрее проиндексировать ваш новый контент.
Мюллер подтвердил, что информирование Google о том, что ваша XML-карта сайта обновлена, может помочь быстрее проиндексировать ваш новый контент.
Он поделился:
- «Пингование карты сайта немного отличается от простого предоставления ее в файле robots.txt — с помощью пинга вы активно отмечаете изменение в файле карты сайта. Если вы заинтересованы в быстрой индексации нового контента, это хорошая практика».
5. Карты сайта XML должны быть в кодировке UTF-8.
Если ваша карта сайта XML не использует UTF-8, поисковые системы не смогут ее прочитать.
6. Размер файла не должен превышать 50 МБ (без сжатия) или 50 000 URL-адресов.
Существуют ограничения на размер ваших файлов Sitemap в формате XML. Держите его не более 50 000 URL-адресов на карту сайта или 50 МБ (без сжатия).
Если у вас файл большего размера или больше URL-адресов, используйте несколько карт сайта XML.
7. У вас может быть несколько XML-карт сайта
Google позволяет отправлять несколько файлов Sitemap. Разделение ваших карт сайта на разные разделы вашего веб-сайта для измерения производительности может быть полезным.
Например, если вы являетесь крупным веб-сайтом электронной коммерции, вы можете сегментировать свои XML-карты сайта по типу продукта (например, женская обувь или мужская обувь).
Или, если у вас несколько языков, вам может понадобиться атрибут hreflang, связанный с вашей картой сайта <loc> XML.
Если у вас есть альтернативные языки, это не учитывается при максимальном количестве URL-адресов в 50 000.
Или, если у вас много видео или изображений, вы можете разделить свои карты сайта XML на карту сайта XML для видео и карту сайта XML для изображений.
Наличие нескольких файлов Sitemap в формате XML не дает преимуществ в ранжировании.
8. Если у вас есть несколько файлов Sitemap в формате XML, не забудьте использовать файл индекса карты сайта.
Если у вас есть несколько файлов Sitemap в формате XML для большого сайта, вы можете отправить файл индекса карты сайта, чтобы отправить сразу несколько файлов Sitemap.
9. Тег lastmod должен быть безупречным
Тег <lastmod>
— одна из самых важных частей вашей XML-карты сайта.
Например, мои структурированные данные используют дату <lastmod> моей карты сайта XML.
Тег <lastmod>
также сообщает поисковым системам, обновили ли вы старый контент или запустили новый.
Мюллер подтвердил это, заявив:
- «…Если вы просто меняете нижний колонтитул с меткой времени, конечно, страница технически тоже изменилась, но если это имеет приоритет — вероятно, нет».
Bing даже сделал официальную позицию по тегу lastmod
в карте сайта XML, заявив:
- «Для карт сайта в формате XML одним из наиболее важных тегов, которые вы можете включить в свою карту сайта, является тег «lastmod».
10. XML-карты сайта должны включать только 200 URL-адресов статуса, которые все являются самоканонизированными.
Не забудьте сохранить только действующие URL-адреса, статус 200, индексируемые и самоканонизированные.
Если вы продолжите показывать страницы с переадресацией 404 или 301, поисковые системы могут полностью прекратить сканирование вашей XML-карты сайта.
Мюллер ответил на комментарий в X (ранее известный как Twitter):
- «Мы перестанем получать файлы карты сайта, если URL-адреса недействительны, но если вы возвращаете контент или перенаправляете (что в некотором роде рекомендуется), мы продолжим пробовать их. Это не должно вызывать проблем, так как общие файлы карты сайта являются лишь крошечной частью всех URL-адресов, полученных с сайта».
11. Поисковые системы могут ежедневно проверять вашу XML-карту сайта
Фабрис Канель из Microsoft рассказал, что Microsoft ежедневно проверяет вашу XML-карту сайта.
В то время как Мюллер поделился, что Google проверяет вашу XML-карту сайта на основе частоты (также известной как ваш тег <lastmod>
).
12. Скорость страницы косвенно влияет на вашу XML-карту сайта
Мы все знаем, насколько важна скорость страницы для наших усилий по SEO. Но как медленно работающий веб-сайт влияет на вашу XML-карту сайта?
Мюллер подтвердил, что скорость страницы не должна влиять на вашу XML-карту сайта, заявив:
- — Пока время не истекло, с тобой все должно быть в порядке. Может быть, кешировать последнюю версию, чтобы предотвратить ненужную нагрузку на сервер?»
Правда в том, что я работал с медленными веб-сайтами, где XML-карта сайта не загружалась, когда поисковые системы сканировали веб-сайт, что вызывало серьезные колебания рейтинга.
Если ваш веб-сайт не загружается должным образом, это оказывает косвенное влияние на вашу XML-карту сайта.
Вот почему важно использовать сжатие Gzip, чтобы уменьшить размер файла и ускорить время загрузки.
13. Удалите тег <priority> из ваших карт сайта XML.
Иллиес сравнил тег <priority>
в картах сайта XML с «мешком шума».
Поэтому, если вы зависите от поисковых систем для сканирования ваших URL-адресов в карте сайта XML на основе приоритета, вам придется долго ждать.
Я рекомендую удалить этот тег из ваших карт сайта XML.
14. Если у вас есть проблемы со структурой навигации, соедините карту сайта XML с картой сайта HTML.
К HTML-картам сайта всегда были смешанные чувства.
Мюллер поделился, что карты сайта в формате HTML «никогда не нужны».
Он продолжил:
- «С годами я изменил свое мнение о картах сайта в формате HTML, они больше никогда не понадобятся. Маленькие и большие сайты всегда должны иметь четкую структуру навигации. Если вы чувствуете потребность в карте сайта в формате HTML, вместо этого потратьте время на улучшение архитектуры вашего сайта. Карты сайта в формате HTML помещаются в ту же корзину, что и счетчики загрузки HTML».
<iframe src="https://mastodon.social/@johnmu/109477617298107922/embed" class="mastodon-embed" width="400" allowfullscreen="allowfullscreen"></iframe><script src="https://mastodon.social/embed.js" async="async"></script>
При работе с крупными веб-сайтами на уровне предприятия в структуре навигации веб-сайта часто присутствует несколько уровней лиц, принимающих решения. И часто учитываются лучшие практики SEO.
Я соединяю свою XML-карту сайта с HTML-картой сайта, пока не буду уверен в навигации по нашему веб-сайту и внутренней иерархии ссылок.
15. Не забудьте включить все свои XML-карты сайта в файл robots.txt.
Не забудьте включить свои XML-карты сайта (все) в качестве ссылок в файл robots.txt.
Вот пример:
Не беспокойтесь о том, где в файле robots.txt они должны находиться. Расположение вашей XML-карты сайта в файле robots.txt никак не повлияет.
Мюллер подтвердил это:
XML-карты сайта — это план вашего сайта для поисковых систем.
Независимо от того, запускаете ли вы новую веб-страницу или просто добавляете канонический тег к дублирующейся странице, ваша XML-карта сайта — это то, что вы должны обновлять круглосуточно и без выходных.
Но делайте это с осторожностью.
Хотя вы не должны быть параноиком, ваша XML-карта сайта — это план вашего дома для поисковых систем.
Поэтому не забудьте отправить свои XML-карты сайта в Google Search Console и Bing Webmaster Tools.
Мнения, выраженные в этой статье, принадлежат приглашенному автору, а не обязательно поисковой системе. Штатные авторы перечислены здесь.