Разное

Generator sitemap: SEO Tools for Google, Bing and other Search Engines — A few small but useful SEO tools for those webmasters interested to optimize their websites for Search Engines

29.06.2023

Содержание

Генерация карты сайта

Ежемесячная рассылка CSSSR

Новости, свежие статьи и многое другое

e-mail

Отправляя данную форму, я подтверждаю своё согласие на получение рекламных и информационных материалов, а также факт своего ознакомления и согласия с Политикой конфиденциальности


Приём-приём! На связи Игорь — JS-разработчик команды «Восток». Представляю вам рассказ о том, как я, работая над задачей по нашему сайту, вынес решение в публичный NPM пакет.

Проблема

Пару месяцев назад мы переписали фронтенд нашего сайта на React. Все страницы также рендерятся на сервере для индексации поисковиками. Для улучшения этого процесса роботам нужно давать подсказки. Одной из таких подсказок является карта сайта — sitemap.xml. Так как у нас периодически добавляются новые страницы, то встал вопрос — можно ли автоматизировать обновление карты сайта при деплое новой версии сайта? И я начал поиски.

Поиски решений

Первым результатом поисков было issue в репозитории react-router, где обсуждали эту же задачу. Но там дали только направление и код, который возвращает список путей из конфигурации React Router. Это позволило понять, что автоматизировать нашу задачу можно!

Самое интересное, что пользователь, который подсказал это решение, создал у себя репозиторий react-router-sitemap, но кроме файла лицензии и Readme там ничего не было. Видимо руки не дошли. 🙂

Далее необходимо было найти решение, которое трансформировало бы пути в XML формат карты сайта. Ну тут долго искать не пришлось, а вот выбирать предстояло. Решений очень много.

Так как сайт мы собираем с помощью Webpack, то было решено использовать плагин, который встраивался бы в нашу систему сборки. API у этого плагина простое. На вход он принимает hostname сайта, массив путей и путь, куда сохранить полученный результат.

Решение для трансформирования путей в XML формат карты сайта выбрано, одной проблемой меньше. Осталось написать парсер конфигурации React Router. Поехали!

Реализация своего решения

У React Router в API есть функция, которая нам поможет — createRoutes. На вход подается конфигурация маршрутов, а на выходе получается массив объектов, которые описывают все возможные пути в вашем приложении. Пути находятся в ключах path.

В итоге, я написал модуль, который рекурсивно обходит массив объектов и сохраняет пути в одноуровневый массив. Ниже представлен код этого модуля:

sitemap/react-router-parser.js

// Формирует строку с путём, включая родительский путь, если он есть.
const generatePath = (base, path = '') => {
  base = base.length && base[base.length - 1] !== '/' ? base + '/' : base
  return base + path
}
// Парсит отдельный объект массива. Записывает путь в результирующий массив,
// если у этого пути есть вложенные пути, то для них вызывается функция parseRoutes.
// И так рекурсивно в глубину.
const processRoute = (store = [], baseRoute = '', route) => { const path = generatePath(baseRoute, route.path) const childRoutes = route.childRoutes if (childRoutes && childRoutes.length) { parseRoutes(store, path, childRoutes) } store.push(path) } // Обходит массивы с объектами и возвращает массив с путями. const parseRoutes = (store = [], baseRoute = '', routes) => { const isArray = Array.isArray(routes) if (!isArray) { store.push(generatePath(baseRoute, routes.path)) } else { routes.forEach(processRoute.bind(null, store, baseRoute)) } return store } export default parseRoutes

Результат, который возвращает этот модуль, можно подавать в Webpack плагин, но есть несколько нюансов.

Во-первых, не все пути должны попадать в карту сайта. Во-вторых, у нас в проекте есть динамические маршруты, следовательно, в результирующем массиве будут примерно такие пути — /project/:projectName.

Это никуда не годится. \/offert/] const result = filterPaths(paths, config) // [‘/’]

С заменой параметров только один вопрос — как получить параметры для динамических путей? Так как сайт статичный и данные для таких путей у нас хранятся в JSON файлах, то проблем с этим не возникло. Была написана такая функция:

sitemap/replace-params.js

const replaceParams = (paths, rules) => {
  const regexRules = Object.keys(rules).map((key) => {
    return new RegExp(':' + rules[key].param)
  })
  return paths.reduce((result, path, index) => {
    let current = [path]
    if (index === 1) {
      result = [result]
    }
    regexRules.forEach((regex) => {
      if (!regex.test(path)) {
        return
      }
      const { values } = rules[path]
      current = values.map((value) => {
        return path.replace(regex, value)
      })
    })
    return result.concat(current)
  })
}

На вход она принимает массив путей и конфигурацию такого вида:

{
  '/project/:projectName': { // путь, в котором нужно заменить параметры
    param: 'projectName', // имя параметра, которое нужно заменить на значение
    values: ['foo', 'bar'], // значения, которые нужно подставить на место параметра
  },
}

Пример работы этой функции:

const paths = ['projects/:projectName']
const config = {
  'projects/:projectName': {
    param: 'projectName',
    values: ['foo', 'bar'],
  },
}
const result = replaceParams(paths, config) // [’projects/foo’, ’projects/bar’]

Нужные функции написаны, осталось объединить их в один модуль и внедрить в сборку.

\/jobs\/.+\/.+/] const paramsConfig = { ‘/jobs/:jobName’: { param: ‘jobName’, values: vacancies, }, } const rawRoutes = createRoutes(routes) const paths = parser([], », rawRoutes) const filteredPaths = filterPaths(paths, filterConfig) const result = replaceParams(filteredPaths, paramsConfig) export default result

Так как мы используем ES2015 синтаксис, то пришлось обернуть этот модуль ещё в один скрипт, чтобы траспайлить его:

sitemap/index.js

// Из-за того, что у нас проекте используются cssModules, при импорте routes,
// по цепочке, начинают импортироваться стили, и node.js кидает ошибки.
// Было решено просто игнорировать эти импорты.
require.extensions['.css'] = function () {
  return null
}
// Включаем транспайлинг и полифил для использования новых методов,
// которых нет в ES5.
require('babel-register')
require('babel-polyfill')
// Экспортируем результат выполнения нашего модуля.
module.exports = require('.
/paths-builder').default

Приступаем к внедрению в сборку. Ниже представлена часть Webpack конфига, которая отвечает за создание карты сайта:

webpack.config.js

import paths from './sitemap';
import SitemapPlugin from 'sitemap-webpack-plugin';
const sitemapDist =  '../../static/sitemap.xml';
const hostname = process.env.BASE_URL;
const config = {
  ...,
  plugins: [
    ...,
    new SitemapPlugin(hostname, paths, sitemapDist),
    ...,
  ]
  ...,
};

Проверив локально работу данного плагина и убедившись, что все работает корректно, я отправил Pull Request.

Первый (и последний) фэйл

После проверки работы модуля в тестовом окружении обнаружилась критичная бага. По непонятным причинам Webpack плагин отказывался создавать файл по указанному ему пути. Ошибка возникала при попытке сохранить файл в директорию, отличную от нахождения Webpack конфига. С правами на запись было всё в порядке.

Разобраться, почему так происходит, у нас не вышло, и я отказался от Webpack плагина в пользу NPM скрипта.

Для генерации карты сайта был выбран самый популярный NPM пакет. Для его использования пришлось немного дополнить наш модуль, примерно так:

sitemap/index.js

require.extensions['.css'] = function () {
  return null
}
require('babel-register')
require('babel-polyfill')
const fs = require('fs')
const sm = require('sitemap')
const paths = require('./paths-builder').default
const sitemap = sm.createSitemap({
  hostname: process.env.BASE_URL,
  urls: paths.map((_path) => ({ url: _path })),
})
fs.writeFileSync('./static/sitemap.xml', sitemap.toString())

Для запуска модуля был объявлен скрипт в package.json:

{
  ...,
  "sitemap": "node ./sitemap",
  ...,
}

После проверки в тестовом окружении ошибок и проблем не возникло, и модуль был включен в ближайший деплой.

А может поделиться?

Модуль написан, внедрён и прекрасно работает. Казалось бы всё, можно отдыхать. Но я не остановился и решил, что надо его оформить в публичный NPM пакет. Всё-таки при поиске был вопрос ещё у одного пользователя по схожей задаче, а решения публичного нет. Заодно код причешу и попрактикуюсь в разработке open source решений (до этого я ничего сам не выпускал).

За пару недель работы по вечерам я справился с поставленной задачей и опубликовал NPM пакет react-router-sitemap.

Итог

За это время я переписал необходимые функции и предоставил возможность использования только необходимых функций из пакета. Покрыл основную часть кода тестами, написал документацию, часть которой генерируется из jsDoc комментариев в коде. Ну и конечно же внедрил в наш сайт.

Призываю не бояться, делиться своими внутренними разработками (если они не засекречены, конечно) и выпускать их в качестве NPM пакетов или просто в публичных репозиториях. Если будет интерес, то я расскажу подробнее о своём пути публикации NPM пакета и вообще про разработку open source библиотеки.

Если есть вопросы, пишите их в комментариях в блоге или твиттере. Готов на всё ответить.

Всем спасибо за внимание и до связи!

Ежемесячная рассылка CSSSR

Новости, свежие статьи и многое другое

e-mail

Отправляя данную форму, я подтверждаю своё согласие на получение рекламных и информационных материалов, а также факт своего ознакомления и согласия с Политикой конфиденциальности

Поделиться

Читайте также

  • Итоги 2022 от CSSSR. Год жизни уездного фронтира

    Максим Вислогуров

  • Итоги 2021 от CSSSR. Год длиной в железнодорожный состав

    Максим Вислогуров

Комментарии

Генератор карты сайта — PowerMapper · Программное обеспечение PowerMapper

Включите питание.


Создать.

Генератор карты сайта, который создает карты сайта в формате XML для поисковых систем, карты сайта в формате HTML для посетителей сайта и визуальные карты сайта для команд разработчиков.

Посмотрите, как это работает

PowerMapper — генератор карты сайта в один клик.
Генератор карты сайта создает карты сайта, которые можно отправить в Google, Bing и другие поисковые системы. двигатели, чтобы помочь им найти ваши веб-страницы.

PowerMapper генерирует:

  • Визуальные карты сайта
  • XML-карты сайта
  • HTML-карты сайта

XML Sitemap Generator

XML-карты сайта (также называемые картами сайта для поисковых систем или картами сайта Google) сообщают поисковым системам, таким как Google какие страницы есть на вашем сайте и как часто они меняются.

Эти карты сайта могут быть прочитаны машиной, но не предназначены для чтения людьми. Вот пример:

 

<ссылка>
https://www.powermapper.com/index.htm
еженедельно

<ссылка>
https://www.powermapper.com/company/contact.htm
ежегодно


 

Дополнительную информацию см. в XML-файлах Sitemap.

HTML Sitemap Generator

HTML-карты сайта помогают посетителям перемещаться по вашему сайту. Файлы Sitemap в формате HTML — это просто веб-страницы, ссылающиеся на другие страницы вашего сайта. Вот пример:

  • PowerMapper
  • Генератор карты сайта
  • XML-карты сайта
  • Визуальные файлы Sitemap
  • О нас
  • Свяжитесь с нами
  • Люди
  • История

Для получения дополнительной информации см. файлы Sitemap в формате HTML.

Visual Sitemap Generator

Визуальные карты сайта показывают структуру сайта и визуальные отношения между страницами. Визуальные карты сайта часто используются в качестве чертежей при управлении сайтом или его изменении. Вот несколько примеров:

Стиль карты Электрум Стиль карты небоскреба Стиль карты облака страниц Стиль карты стека страниц

Дополнительные сведения см. в разделе Визуальные файлы Sitemap.

Работает на простоте

Начать отображение

Введите свой веб-адрес и нажмите «Создать карту». PowerMapper отображает ваш сайт автоматически.

Выберите стиль

После завершения сопоставления выберите стиль карты.

Создать

Используйте наши карты, чтобы помочь создать лучший сайт.

SortSite — очень хороший инструмент для тестирования. Он проверит все страницы, которые найдет на сайте.

Кембриджский университет

Этот простой тест… дает гораздо больше полезных данных, чем просто скриншот. Тест SortSite проверяет доступность, битые ссылки, совместимость кода браузера, поисковая оптимизация и другие вопросы юзабилити…

практическая электронная коммерция.com

Дополнительная информация

  • Бесплатная онлайн-пробная версия
  • Просмотреть примеры стилей карты
  • Загрузить пробную версию для Macintosh или Windows

Узнать больше

9 лучших бесплатных генераторов карт сайта в 2023 году

Карта сайта, файл, в котором перечислены все URL-адреса вашего веб-сайта, является неотъемлемой частью процесса разработки вашего сайта и поисковой оптимизации (SEO). Наличие карты сайта имеет решающее значение для вашего PageRank, потому что она сообщает роботу Googlebot и другим ботам поисковых систем, с чего начать и куда двигаться дальше, когда они сканируют ваши страницы. Без такого файла, обычно создаваемого в формате XML, HTML или CSV, ваш веб-сайт может никогда не привлечь внимание, необходимое для появления на страницах результатов основных поисковых систем (SERP).

Как создать карту сайта

Поскольку для вашего веб-сайта очень важно иметь карту сайта, вы, вероятно, задаетесь вопросом, как ее создать, верно? Ну, есть несколько способов создать карту сайта. Во-первых, вы можете сделать это вручную, о чем мы здесь не будем говорить, или вы можете использовать инструмент для создания карты сайта.

В Интернете есть множество бесплатных конструкторов карт сайта, поэтому вы можете не знать, какой из них выбрать. Мы сделали всю работу за вас и составили список из девяти лучших бесплатных генераторов карт сайта в Интернете для малого бизнеса.

9 лучших бесплатных генераторов карт сайта в 2023 году

  1. XML-Sitemaps.com
  2. Screaming Frog XML Sitemap Generator
  3. Inspyder Sitemap Creator
  4. Flowmapp
  5. S lickplan
  6. GlooMaps
  7. Writemaps
  8. YoastSEO (плагин)
  9. Google XML Sitemaps (плагин)

Примечание: Некоторые системы управления контентом (CMS) автоматически создают карту сайта для вашего нового сайта. Таким образом, может не быть необходимости в использовании бесплатного генератора карты сайта.

Поскольку карта сайта в основном состоит из URL-адресов и кода, ее создание вручную является сложной задачей и подвержено ошибкам, особенно для крупных веб-сайтов. К счастью, некоторые из лучших генераторов карт сайта можно использовать бесплатно. Звучит сомнительно? Не позволяйте слову «бесплатно» помешать вам использовать их для создания файла карты сайта. Даже самые опытные веб-разработчики используют эти генераторы карт сайта для экономии ресурсов и времени.

Вот 10 лучших генераторов карт сайта, которые мы нашли (и использовали), перечисленные в произвольном порядке.

 

1. XML-Sitemaps.com

Этот генератор карт сайта, который имеет бесплатную и платную версии Pro, возможно, является наиболее часто упоминаемым. Бесплатный инструмент можно использовать для бесплатного создания XML-файла карты сайта до 500 URL-адресов. Кроме того, вам нужно будет подписаться на платный план, который стоит 4,19 доллара в месяц. XML-Sitemaps также имеет другие функции SEO, в том числе средство проверки страницы SERP, средство проверки карты сайта, калькулятор плотности ключевых слов и анализ конкурентов. Регистрация не требуется, и вы сразу же получаете карты сайта, готовые к загрузке.

 

2. Генератор XML-карт сайта Screaming Frog

В Screaming Frog есть генератор XML-карт сайта, который можно бесплатно загрузить и использовать для 500 URL-адресов. Если на вашем веб-сайте больше страниц, вам необходимо приобрести лицензию SEO Spider за 259 долларов в год.

 

3. Inspyder Sitemap Creator

Inspyder имеет бесплатную пробную версию, содержащую до 25 страниц. В противном случае вам нужно будет заплатить единовременную плату в размере 39,95 долларов США, чтобы загрузить и установить его на свой рабочий стол. Inspyder также предлагает бесплатные инструменты анализа веб-сайтов, такие как средство просмотра заголовков HTTP, кодировщик HTML/URL и средство проверки карты сайта (для проверки наличия ошибок в карте сайта XML).

 

4. Flowmapp

Этот бесплатный инструмент для карты сайта позволяет создать визуальное представление вашей карты сайта, которую также можно загрузить в формате XML. Кроме того, вы можете пригласить своих товарищей по команде для планирования, совместной работы и организации прямо из приложения. Вы можете быстро вносить изменения в визуальную карту сайта с помощью функции перетаскивания, что очень удобно. Бесплатный инструмент Flowmapp предназначен для одного активного проекта, 50 страниц и 100 МБ места. Его платные опции позволяют сканировать неограниченное количество страниц по цене от 11 до 120 долларов в месяц.

 

5. Slickplan

Slickplan имеет простой в использовании интерфейс перетаскивания для своего бесплатного генератора карт сайта, который ограничен одной картой сайта и одним пользователем. Просто подпишитесь на 14-дневную бесплатную пробную версию на своем веб-сайте, кредитная карта не требуется. Если вам нужен неограниченный доступ ко всем его функциям, включая планировщик контента и средство создания диаграмм, это будет стоить вам от 10,79 до 103,49 долларов в месяц, в зависимости от количества пользователей, активных проектов и места для хранения.

 

6. GlooMaps

Это приложение позволяет бесплатно создавать визуальные карты сайта всего за несколько кликов. Карта, которую вы создаете на своем сайте, будет доступна онлайн в течение 14 дней, если она не будет повторно посещена, что каждый раз продлевает срок ее действия еще на 14 дней. Когда вы закончите, вы можете сохранить карту сайта на свой компьютер в формате XML, PNG или PDF.

 

7. Writemaps

WriteMaps — это визуальный инструмент для создания карт сайта, который позволяет бесплатно создать карту сайта на срок до 50 страниц с ограничением в три карты сайта. Кроме того, вам нужно будет подписаться на его платный план, который начинается с 14,9 долларов США.9 в месяц. Вы можете экспортировать свою визуальную карту сайта и поделиться уникальным URL-адресом со своей командой, чтобы получить информацию.

 

8. Yoast SEO (плагин)

Yoast SEO, вероятно, является самым популярным бесплатным плагином WordPress для базового SEO и предпочтительным инструментом для вставки XML-карты сайта. У него есть премиум-версия, которая стоит 99 долларов в год. Yoast SEO содержит множество функций SEO, таких как автоматические метатеги и канонические URL-адреса, шаблоны для заголовков и метаописаний, а также интеграция с Schema. org (репозиторий языка разметки схемы для веб-мастеров).

 

9. Google XML Sitemaps (плагин)

Пользователи WordPress слишком хорошо знают плагин Google XML Sitemaps не только потому, что карта сайта необходима, но и потому, что этот бесплатный инструмент очень прост в использовании. Он также генерирует карты сайта в формате HTML и имеет более 2000 пятизвездочных отзывов.

 

Есть ли у Google собственный генератор карт сайта?

Раньше у Google был собственный инструмент с открытым исходным кодом под названием Google Sitemap Generator, который был помещен на бета-тестирование где-то в 2009 году.. Он был разработан для создания карт сайта в формате XML, карт сайта для мобильных устройств и карт сайта для поиска по коду. Однако позже компания объявила, что больше не продвигает свои краткосрочные планы. На данный момент владельцы и разработчики веб-сайтов могут использовать любой из лучших генераторов карт сайта, перечисленных выше.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *