Создайте простой и базовый индекс Sitemap sitemap.xml
Создание файла sitemap.xml с кодом Python для удобства поиска наших веб-страниц. Приведён пример статического сайта, использующего файлы .html и .php, а также инструкции по его использованию и отправке в Google и Bing через Search Console или ping-запрос.
Карта сайта — это файл, содержащий URL-адреса важных страниц вашего сайта. Он помогает поисковым системам лучше понимать ваши страницы и легче ориентироваться на них, что положительно сказывается на SEO и увеличивает трафик. Вот как создать и отправить карту сайта в Google для максимальной эффективности.
1. Понимание карт сайта и индексов карт сайта
- Карта сайта: Это XML-файл, который сообщает поисковым системам, таким как Google, какие страницы находятся на нашем веб-сайте.
- Индекс карты сайта: это XML-файл, который объединяет несколько подкарт сайта, что упрощает управление большими веб-сайтами.
2. Стандартная структура sitemap.xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://yourdomain.com/</loc>
<lastmod>2025-08-17</lastmod>
<changefreq>weekly</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://yourdomain.com/about</loc>
<lastmod>2025-08-10</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
</urlset>
<loc>
= URL веб-страницы<lastmod>
= Дата последнего обновления (форматГГГГ-ММ-ДД
)<changefreq>
= Ожидаемая частота обновления (всегда, ежечасно, ежедневно, еженедельно, ежемесячно, ежегодно, никогда
)<priority>
= Значение важности (0,0 – 1,0)
3. Пример кода Python для создания sitemap.xml
Этот код прочитает список URL-адресов и запишет для вас файл sitemap.xml.
import datetime
domain = "https://yourdomain.com"
pages = [
"/",
"/about",
"/contact",
"/products",
"/blog"
]
today = datetime.date.today().isoformat()
sitemap_path = "sitemap.xml"
with open(sitemap_path, "w", encoding="utf-8") as f:
f.write('<?xml version="1.0" encoding="UTF-8"?>\n')
f.write('<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\n')
for page in pages:
f.write(" <url>\n")
f.write(f" <loc>{domain}{page}</loc>\n")
f.write(f" <lastmod>{today}</lastmod>\n")
f.write(" <changefreq>weekly</changefreq>\n")
f.write(" <priority>0.8</priority>\n")
f.write(" </url>\n")
f.write("</urlset>\n")
print("Sitemap index created successfully!")
4. Создайте карту сайта для статического веб-сайта
4.1 Для статических страниц (обычных файлов .HTML)
Если ваш сайт Статический веб-сайт (обычный HTML) И есть много страниц, таких как
/index.html
/about.html
/contact.html
/blog.html
/products/product1.html
/products/product2.html
Пример кода Python для создания карты сайта для статического веб-сайта
import os, datetime
domain = "https://yourdomain.com"
web_dir = "./public_html"
today = datetime.date.today().isoformat()
urls = []
for root, dirs, files in os.walk(web_dir):
for file in files:
if file.endswith(".html"):
rel_path = os.path.relpath(os.path.join(root, file), web_dir)
url = "/" + rel_path.replace("\\", "/")
if url.endswith("index.html"):
url = url.replace("index.html", "")
urls.append(url)
sitemap_path = os.path.join(web_dir, "sitemap.xml")
with open(sitemap_path, "w", encoding="utf-8") as f:
f.write('<?xml version="1.0" encoding="UTF-8"?>\n')
f.write('<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\n')
for url in urls:
f.write(" <url>\n")
f.write(f" <loc>{domain}{url}</loc>\n")
f.write(f" <lastmod>{today}</lastmod>\n")
f.write(" <changefreq>monthly</changefreq>\n")
f.write(" <priority>0.5</priority>\n")
f.write(" </url>\n")
f.write("</urlset>\n")
print("Sitemap index created successfully!")
Этот код просканирует все файлы .html в вашей веб-папке и автоматически запишет файл sitemap.xml.
🔹 Использование
- Поместите этот код в папку вашего проекта (например.
generate_sitemap.py
) - Бегать с
python generate_sitemap.py
- Вы получите файл
sitemap.xml
Расположен в корне (public_html/sitemap.xml
) - Открыть в браузере →
https://yourdomain.com/sitemap.xml
- Отправьте в Google и Bing (используйте Search Console или ping URL)
4.2 Для статических веб-сайтов, использующих файлы .php (статические страницы)
Если ваш веб-сайт является статическим и использует файлы .php (например, index.php, about.php, contact.php), метод создания sitemap.xml аналогичен случаю .html, за исключением того, что вместо этого нам нужно извлечь файл .php.
/index.php
/about.php
/contact.php
/blog.php
/products/product1.php
/products/product2.php
Код Python для создания sitemap.xml
Из файла .php
import os, datetime
domain = "https://yourdomain.com"
web_dir = "./public_html"
today = datetime.date.today().isoformat()
urls = []
for root, dirs, files in os.walk(web_dir):
for file in files:
if file.endswith(".php"):
rel_path = os.path.relpath(os.path.join(root, file), web_dir)
url = "/" + rel_path.replace("\\", "/")
if url.endswith("index.php"):
url = url.replace("index.php", "")
urls.append(url)
sitemap_path = os.path.join(web_dir, "sitemap.xml")
with open(sitemap_path, "w", encoding="utf-8") as f:
f.write('<?xml version="1.0" encoding="UTF-8"?>\n')
f.write('<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\n')
for url in urls:
f.write(" <url>\n")
f.write(f" <loc>{domain}{url}</loc>\n")
f.write(f" <lastmod>{today}</lastmod>\n")
f.write(" <changefreq>monthly</changefreq>\n")
f.write(" <priority>0.5</priority>\n")
f.write(" </url>\n")
f.write("</urlset>\n")
print("Sitemap index created successfully!")
🔹 Использование
- Поместите этот файл скрипта в папку вашего проекта (например,
generate_sitemap.py
) - Бегать с
python generate_sitemap.py
- Вы получите файл
sitemap.xml
Расположен в корне (public_html/sitemap.xml
) - Попробуйте открыть его в браузере →
https://
yourdomain
.com/sitemap.xml - Забери это прочь Отправить в Google Search Console / Bing Webmaster
Если вы используете общий хостинг, то его ограничение заключается в том, что вам не разрешено запускать файлы Python непосредственно на общем хостинге.
Итак, есть два варианта автоматического создания sitemap.xml.
🔹 Вариант 1 (самый простой) — используйте свой локальный компьютер для создания и загрузки.
Установите Python на свой компьютер (Windows/Mac)
Запустите скрипт Python → вы получите файл sitemap.xml
Откройте командную строку (Windows) или терминал (Mac/Linux) и введите:
python generate_sitemap.py
Загрузить файл sitemap.xml
Перейти к public_html/
хостинга через Файловый менеджер / FTP
Перейти в браузер →
https://yourdomain.com/sitemap.xml
🔹 Вариант 2 — Используйте PHP для создания карты сайта на вашем хостинге.
Если вы не хотите запускать Python локально, вы можете написать PHP-код для автоматической генерации sitemap.xml.
<?php
$domain = "https://yourdomain.com";
$web_dir = __DIR__; // public_html
$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($web_dir));
$urls = [];
foreach ($files as $file) {
if ($file->isFile() && pathinfo($file, PATHINFO_EXTENSION) === "php") {
$path = str_replace($web_dir, "", $file->getPathname());
$url = str_replace("\\", "/", $path);
if (basename($url) === "index.php") {
$url = str_replace("index.php", "", $url);
}
$urls[] = $url;
}
}
$today = date("Y-m-d");
$sitemap = '<?xml version="1.0" encoding="UTF-8"?>' . "\n";
$sitemap .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\n";
foreach ($urls as $url) {
$sitemap .= " <url>\n";
$sitemap .= " <loc>{$domain}{$url}</loc>\n";
$sitemap .= " <lastmod>{$today}</lastmod>\n";
$sitemap .= " <changefreq>monthly</changefreq>\n";
$sitemap .= " <priority>0.5</priority>\n";
$sitemap .= " </url>\n";
}
$sitemap .= "</urlset>";
file_put_contents($web_dir . "/sitemap.xml", $sitemap);
echo "✅ Sitemap created at {$domain}/sitemap.xml";
?>
🔹 Использование
- Сохранить как файл
generate_sitemap.php
- Загрузить в
public_html/
- Вызов файлов через Интернет, таких как:
https://yourdomain.com/generate_sitemap.php
- Вы получите файл
sitemap.xml
Сразу в корне
6. Появилась новая страница sitemap.xml, которая автоматически обновляется.
Вы хотите дать При добавлении новой страницы (.php) → sitemap.xml
Он обновляется автоматически, поскольку Python нельзя запустить напрямую, мы будем использовать PHP-скрипт для каждой проверки файла .php в public_html и записи нового файла sitemap.xml.
PHP-код: автоматическая генерация карты сайта при каждом запуске
<?php
$domain = "https://yourdomain.com";
$web_dir = __DIR__; // public_html
$today = date("Y-m-d");
$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($web_dir));
$urls = [];
foreach ($files as $file) {
if ($file->isFile() && pathinfo($file, PATHINFO_EXTENSION) === "php") {
$path = str_replace($web_dir, "", $file->getPathname());
$url = str_replace("\\", "/", $path);
if (basename($url) === "index.php") {
$url = str_replace("index.php", "", $url);
}
$urls[] = $url;
}
}
// sitemap.xml
$sitemap = '<?xml version="1.0" encoding="UTF-8"?>' . "\n";
$sitemap .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\n";
foreach ($urls as $url) {
$sitemap .= " <url>\n";
$sitemap .= " <loc>{$domain}{$url}</loc>\n";
$sitemap .= " <lastmod>{$today}</lastmod>\n";
$sitemap .= " <changefreq>monthly</changefreq>\n";
$sitemap .= " <priority>0.5</priority>\n";
$sitemap .= " </url>\n";
}
$sitemap .= "</urlset>";
file_put_contents($web_dir . "/sitemap.xml", $sitemap);
echo "✅ Sitemap updated at {$domain}/sitemap.xml";
?>
🔹 Как использовать
- Загрузите файл generate_sitemap.php в public_html.
- Вызовите файл в браузере:
https://yourdomain.com/generate_sitemap.php
- → Он будет каждый раз заново генерировать (или обновлять) sitemap.xml.
- При добавлении нового .php-файла → просто запустите этот файл еще раз, и он обновит карту сайта.
🔹Сделайте его по-настоящему автоматическим (настройте Cron Job, не нужно нажимать его самостоятельно)
Например, вы можете использовать Cron-задание хостинга для ежедневного/еженедельного запуска generate_sitemap.php.
В хостинге hPanel:
- Перейти к Дополнительно → Задания Cron
- Добавьте задание Cron, например:
php /home/username/public_html/generate_sitemap.php
php /home/username/public_html/generate_sitemap.php
- Затем установите время на Раз в день
Рекомендуется управлять файлами Sitemap с помощью файла индекса Sitemap. Если размер файла Sitemap превышает ограничение, рекомендуется разделить его на несколько файлов и использовать файл индекса для одновременной отправки до 500 файлов для каждого сайта в Search Console. Формат XML файла индекса аналогичен формату обычного файла Sitemap и должен располагаться в том же каталоге или глубже.
Дополнительная информация https://developers.google.com