Анализ сайта ammap.com
Основное Готовность: 75%
Домен
ammap.com
Состояние доменного имени
?
Проверяем корректность доменного имени и наличие технических проблем на уровне домена.
Домен второго уровня идеален для продвижения.
Отличный запоминающийся домен.
Ответ сервера
200 Успешный ответ
HTTP-код ответа и цепочка редиректов
?
Код 200 — страница доступна. Коды 3xx — редиректы (цепочки замедляют загрузку и размывают ссылочный вес). Коды 4xx/5xx — ошибки, поисковик не сможет проиндексировать страницу.
Сервер настроен корректно.
Цепочка редиректов:
http://ammap.com
301 MovedPermanently
https://www.amcharts.com/javascript-maps/
200 OK
Безопасность
Сайт безопасен
Использование HTTPS и SSL-сертификат
?
HTTPS — обязательный стандарт. Google и Яндекс отдают предпочтение защищённым сайтам. Отсутствие SSL или просроченный сертификат ведут к предупреждениям в браузере и снижению позиций.
На сайте работает защищенный протокол ssl и сайт открывается по https.
Ssl-сертификат действителен до 22.10.2026 14:44:55.
Включён HSTS (Strict-Transport-Security) — защита от подмены на http.
HTTP автоматически перенаправляется на HTTPS.
Поздравляем! Сайт не содержится в реестре РКН.
Кодировка
UTF-8
Кодировка символов страницы
?
Стандарт — UTF-8. Неправильная кодировка вызывает нечитаемые символы и мешает поисковику корректно распознать текст страницы.
Указана кодировка на странице UTF-8.
Язык
en
Атрибут lang в HTML-теге
?
Атрибут lang (<html lang="ru">) сообщает поисковикам и браузерам, на каком языке написана страница. Помогает при ранжировании в региональном поиске.
Язык документа указан явно: en.
Скорость загрузки
~1,14сек
Время отклика сервера (TTFB)
?
Time To First Byte — время до получения первого байта от сервера. Норма до 200 мс. Медленный отклик ухудшает пользовательский опыт и ранжирование: Яндекс и Google учитывают скорость страниц.
Скорость загрузки сайта 1,14сек превышает 1 секунду. Желательно улучшить работу сайта!
Объем документа
51Кб
Размер HTML-кода страницы
?
Слишком большой HTML замедляет парсинг браузером и сканирование поисковым роботом. Рекомендуется не более 200 Кб.
Объем html-документа 51Кб оптимален.
Структура html-документа корректна.
Ресурсы
Ресурсы: 20
Внешние ресурсы страницы (CSS, JS, изображения)
?
Количество и тип подключённых ресурсов влияют на скорость загрузки. Большое число запросов увеличивает время рендеринга страницы.
Кол-во файлов ресурсов 20 много для одной страницы. Приемлемо до 10. Проведите оптимизацию файлов ресурсов!
Показать полный список ресурсов
| Тип | Название | Значение |
|---|---|---|
| stylesheet | ../static/css/variables.css | |
| stylesheet | ../static/css/base.css | |
| stylesheet | ../static/css/nav.css | |
| stylesheet | ../static/css/sections.css | |
| stylesheet | ../static/css/product.css | |
| stylesheet | ../static/css/hero.css | |
| stylesheet | ../static/css/animations.css | |
| stylesheet | ../static/css/footer.css | |
| js | https://www.amcharts.com/tools/consent.js | |
| js | https://cdn.amcharts.com/lib/5/index.js | |
| js | https://cdn.amcharts.com/lib/5/map.js | |
| js | https://cdn.amcharts.com/lib/5/geodata/continentsLow.js | |
| js | https://cdn.amcharts.com/lib/5/geodata/worldLow.js | |
| js | https://cdn.amcharts.com/lib/5/themes/Animated.js | |
| js | https://cdn.amcharts.com/lib/5/themes/Dark.js | |
| js | https://cdn.jsdelivr.net/npm/d3-array@3 | |
| js | https://cdn.jsdelivr.net/npm/d3-geo@3 | |
| js | ../static/js/metrix.js | |
| js | ../static/js/nav.js | |
| js | https://www.googletagmanager.com/gtag/js?id=G-N414QWTXT4 |
Серверные заголовки
Кол-во: 14
HTTP-заголовки ответа сервера
?
Заголовки сервера передают браузеру и поисковику служебную информацию: кеширование, безопасность (CSP, HSTS), сжатие (gzip). Правильная настройка ускоряет загрузку и повышает защищённость.
Найдены серверные заголовки 14шт. Подробнее про серверные заголовки.
Показать полный список серверных заголовков
| Ключ | Значение |
|---|---|
| Date | Sat, 22 Aug 2026 07:43:38 GMT |
| Cache-Control | public, max-age=18000 |
| nel | {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800} |
| Strict-Transport-Security | max-age=31536000; includeSubDomains; preload |
| report-to | {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=I2tAx3EgCXozjss%2BFc%2FI9zYiUdTOJrtrNqGieqnD5v%2FHDarOB5KLQvdY8PKX600kvbu02%2BuLFXmBp2Crlf%2F2o9gPJHngTgR2Xy4l76hab6h8c6mcrRHnaAheGIXQe4MUd5g%3D"}]} |
| Vary | Accept-Encoding |
| Server | cloudflare |
| platform | hostinger |
| panel | hpanel |
| Content-Security-Policy | upgrade-insecure-requests |
| X-Frame-Options | SAMEORIGIN |
| x-turbo-charged-by | LiteSpeed |
| cf-cache-status | DYNAMIC |
| cf-ray | a2f03f682fbc9da7-DME |
CMS
Система управления сайтом (движок)
?
CMS — это движок, на котором работает сайт (WordPress, 1C-Bitrix, Tilda и др.). Знание CMS помогает понять возможности SEO-оптимизации и подобрать подходящие инструменты. «Не определена» — вероятно, самописный сайт или нестандартная сборка.
Сайт работает на CMS PrestaShop.
Веб-сервер
Программное обеспечение сервера
?
Веб-сервер — это ПО, которое отдаёт страницы посетителям (nginx, Apache, IIS, LiteSpeed и др.). Определяется по серверным заголовкам ответа (Server, X-Powered-By и т.п.). «Не определён» — сервер намеренно скрывает эти заголовки, это нормальная практика безопасности.
Сайт работает на веб-сервере LiteSpeed.
Мета-теги Готовность: 70%
Title
amCharts 5: Maps - JavaScript Mapping Library
Заголовок страницы в браузере и поисковой выдаче
?
Title — главный SEO-заголовок страницы. Влияет на CTR в поиске и ранжирование. Оптимальная длина: 50–70 символов. Ключевые слова — ближе к началу.
Дублей словоформ в title не найдено.
Число символов в title 45 оптимально (норма: от 40 до 45).
Description
Interactive JavaScript maps for the web. Hundreds of GeoJSON maps, multiple projections, choropleth and drill-down. Free to use with commercial option.
Описание страницы в поисковой выдаче (сниппет)
?
Meta Description — текст под заголовком в выдаче. Напрямую на позиции не влияет, но влияет на CTR. Оптимальная длина: 120–160 символов.
Необходимо уменьшить число символов в description (текущее значение: 151, оптимально: от 120 до 130)
Keywords
javascript maps, interactive maps, geographic visualization, geojson maps, choropleth map, amcharts maps, world map javascript, svg maps
Список ключевых слов страницы (устаревший тег)
?
Meta Keywords не учитывается Яндексом и Google для ранжирования с 2009–2012 годов. Заполнение не обязательно, но не вредит. Конкурент может использовать содержимое для анализа.
Keywords установлены.
Канонический Url
https://www.amcharts.com/javascript-maps/
Указывает поисковику основную версию страницы
?
Canonical (rel=canonical) предотвращает проблему дублей страниц. Должен точно совпадать с URL проверяемой страницы. Неправильный canonical может передать ссылочный вес на другую страницу.
Канонический Url прописан корректно.
Robots
Ошибок нет
Директивы для поисковых роботов на уровне страницы
?
Meta Robots управляет индексацией конкретной страницы: index/noindex — индексировать ли, follow/nofollow — следовать ли по ссылкам. Noindex полностью исключает страницу из поиска.
Meta-тег robots не указан. Страница свободна для индексации.
Адаптивность
width=device-width, initial-scale=1.0
Настройка масштабирования на мобильных устройствах
?
Тег viewport (<meta name="viewport">) сообщает браузеру, как масштабировать страницу на мобильных. Стандарт: width=device-width, initial-scale=1. Отсутствие — признак отсутствия мобильной версии.
Meta-тег viewport со значением-константой width=device-width задаёт ширину страницы в соответствии с размером экрана.
Meta-тег viewport со значением initial-scale=1.0 определяет масштаб 1:1, т.е. «не масштабировать».
Разметка OpenGraph
Кол-во: 6
Мета-теги для красивых превью в соцсетях
?
OpenGraph (og:title, og:description, og:image) управляет тем, как страница выглядит при репосте в социальных сетях и мессенджерах. Отсутствие OG-тегов — невзрачный превью при шеринге.
Разметка OpenGraph задана. Страница оптимизирована под социальные сети.
Показать полный список og мета-тегов
| Тип | Значение |
|---|---|
| og:type | website |
| og:site_name | amCharts |
| og:url | https://www.amcharts.com/javascript-maps/ |
| og:title | amCharts 5: Maps - JavaScript Mapping Library |
| og:description | Interactive JavaScript maps for the web. Hundreds of GeoJSON maps, multiple projections, choropleth and drill-down. Free to use with commercial option. |
| og:image | https://www.amcharts.com/static/img/amcharts-share.png |
Все мета-теги
Кол-во: 14
Полный список мета-тегов страницы
?
Таблица всех meta-тегов, включая нестандартные. Позволяет найти опечатки, дубли и лишние теги.
Найдены мета-теги 14шт. Мета-теги не видимы для человека и предназначены для обмена информацией между веб-страницей и поисковыми системами, браузерами и другими веб-службами. С ними роботы 🤖 и устройства ведут себя более ожидаемо.
Показать полный список мета-тегов
| Тип | Название | Значение |
|---|---|---|
| name | viewport | width=device-width, initial-scale=1.0 |
| name | description | Interactive JavaScript maps for the web. Hundreds of GeoJSON maps, multiple projections, choropleth and drill-down. Free to use with commercial option. |
| name | keywords | javascript maps, interactive maps, geographic visualization, geojson maps, choropleth map, amcharts maps, world map javascript, svg maps |
| name | twitter:card | summary_large_image |
| name | twitter:site | @amcharts |
| name | twitter:title | amCharts 5: Maps - JavaScript Mapping Library |
| name | twitter:description | Interactive JavaScript maps for the web. Hundreds of GeoJSON maps, multiple projections, choropleth and drill-down. Free to use with commercial option. |
| name | twitter:image | https://www.amcharts.com/static/img/amcharts-share.png |
| property | og:type | website |
| property | og:site_name | amCharts |
| property | og:url | https://www.amcharts.com/javascript-maps/ |
| property | og:title | amCharts 5: Maps - JavaScript Mapping Library |
| property | og:description | Interactive JavaScript maps for the web. Hundreds of GeoJSON maps, multiple projections, choropleth and drill-down. Free to use with commercial option. |
| property | og:image | https://www.amcharts.com/static/img/amcharts-share.png |
Оптимизация Готовность: 80%
Структура
Ошибок нет
Семантические HTML-элементы страницы
?
Проверяет наличие основных структурных элементов: nav, header, footer, main. Корректная семантическая структура помогает поисковику понять архитектуру страницы.
Структура документа корректна (теги <html> и <body> присутствуют по одному на документ).
Контент
Есть ошибки
Объём и качество текстового содержимого
?
Анализирует объём полезного текста на странице. Слишком мало — страница может считаться малополезной. Слишком много — ухудшается читаемость и восприятие.
Кол-во слов 663 не очень много. Добавьте побольше текста (хотя бы 800 слов)!
Слова из title 3 встречаются в тексте достаточно.
Абзацев с текстом 18 достаточно.
Среднее число слов в абзаце 19 достаточно.
Кол-во знаков контента 4355 на странице оптимально.
Заголовки
Ошибок нет
Иерархия заголовков H1–H6
?
H1 должен быть один и содержать ключевой запрос. H2–H6 описывают подразделы. Пропуск уровней (H1 → H3) и несколько H1 — типичные ошибки, снижающие понятность страницы для поисковика.
На странице присутствуют заголовки <h1> 1. Это прекрасно.
На странице присутствуют заголовки <h2> 8. Это хорошо.
На странице присутствуют заголовки <h3> 6.
Тошнота
4,24
Насколько одно слово доминирует в тексте
?
Классическая тошнота = √(частота самого повторяющегося слова). Норма до 7–8: текст воспринимается естественно. Выше — поисковик может счесть страницу переспамленной.
Тошнота превышает норму 3. Измените текст страницы!
Академич. тошнота
17,04%
Насколько текст перенасыщен ключевыми словами
?
Академическая тошнота = (частота слова / общее количество слов) × 100%. Показывает долю конкретного слова в тексте. Норма 5–15%.
Академическая тошнота превышает норму 5-15%. Измените текст страницы!
Семантическое ядро
20
Наиболее часто встречающиеся слова на странице
?
Топ слов по частоте использования. Показывает, какие слова доминируют в тексте с точки зрения поисковика.
Контент страницы содержит осмысленный текст и слова.
Показать список слов
| Слово | Кол-во | Частота |
|---|---|---|
| amcharts | 18 | 2,71% |
| download | 4 | 0,60% |
| geojson | 4 | 0,60% |
| projections | 4 | 0,60% |
| smooth | 4 | 0,60% |
| between | 4 | 0,60% |
| support | 3 | 0,45% |
| interactive | 3 | 0,45% |
| hundreds | 3 | 0,45% |
| mercator | 3 | 0,45% |
| series | 3 | 0,45% |
| values | 3 | 0,45% |
| markers | 3 | 0,45% |
| automatically | 3 | 0,45% |
| switch | 3 | 0,45% |
| explore | 3 | 0,45% |
| countries | 3 | 0,45% |
| products | 2 | 0,30% |
| charts | 2 | 0,30% |
| services | 2 | 0,30% |
Индексация Готовность: 30%
Индексирование
Ошибок нет
Разрешено ли индексирование страницы
?
Проверяет, не закрыта ли страница от индексации через robots.txt, meta robots или X-Robots-Tag. Страница, закрытая от индексации, не появится в поисковой выдаче.
Анкоров на странице 61 оптимально. Поисковые роботы обязательно проиндексируют сайт.
Robots.txt
Найден корректный robots.txt
Файл управления сканированием сайта роботами
?
Robots.txt указывает поисковым роботам, какие страницы сканировать, а какие — нет. Ошибки в файле могут случайно закрыть важные разделы от индексации.
Robots.txt настроен корректно. Размер файла: 52451 байт. Загружен за: 1сек.
Проверяемая страница не запрещена в robots.txt.
Robots.txt доступен по постоянному адресу
Цепочка редиректов для файла robots.txt:
http://ammap.com/robots.txt
301 MovedPermanently
https://www.amcharts.com/javascript-maps/
200 OK
Показать содержимое robots.txt
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>amCharts 5: Maps - JavaScript Mapping Library</title>
<meta name="description" content="Interactive JavaScript maps for the web. Hundreds of GeoJSON maps, multiple projections, choropleth and drill-down. Free to use with commercial option.">
<meta name="keywords" content="javascript maps, interactive maps, geographic visualization, geojson maps, choropleth map, amcharts maps, world map javascript, svg maps">
<link rel="canonical" href="https://www.amcharts.com/javascript-maps/">
<meta property="og:type" content="website">
<meta property="og:site_name" content="amCharts">
<meta property="og:url" content="https://www.amcharts.com/javascript-maps/">
<meta property="og:title" content="amCharts 5: Maps - JavaScript Mapping Library">
<meta property="og:description" content="Interactive JavaScript maps for the web. Hundreds of GeoJSON maps, multiple projections, choropleth and drill-down. Free to use with commercial option.">
<meta property="og:image" content="https://www.amcharts.com/static/img/amcharts-share.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@amcharts">
<meta name="twitter:title" content="amCharts 5: Maps - JavaScript Mapping Library">
<meta name="twitter:description" content="Interactive JavaScript maps for the web. Hundreds of GeoJSON maps, multiple projections, choropleth and drill-down. Free to use with commercial option.">
<meta name="twitter:image" content="https://www.amcharts.com/static/img/amcharts-share.png">
<link rel="stylesheet" href="../static/css/variables.css">
<link rel="stylesheet" href="../static/css/base.css">
<link rel="stylesheet" href="../static/css/nav.css">
<link rel="stylesheet" href="../static/css/sections.css">
<link rel="stylesheet" href="../static/css/product.css">
<link rel="stylesheet" href="../static/css/hero.css">
<link rel="stylesheet" href="../static/css/animations.css">
<link rel="stylesheet" href="../static/css/footer.css">
<style>
/* ── MOBILE RESPONSIVE OVERRIDES ─────────────────────── */
@media (max-width: 768px) {
.nav-hamburger {
margin-left: auto;
}
.strengths-grid {
grid-template-columns: repeat(2, 1fr);
}
.cta-banner {
margin-left: 20px;
margin-right: 20px;
}
.cta-inner {
flex-direction: column;
align-items: flex-start;
padding: 48px 32px;
gap: 32px;
}
.cta-actions {
flex-direction: row;
flex-wrap: wrap;
}
}
@media (max-width: 480px) {
.strengths-grid {
grid-template-columns: 1fr;
}
.cta-inner {
padding: 40px 20px;
}
.cta-banner {
border-radius: 16px;
}
.cta-actions {
width: 100%;
flex-direction: column;
}
}
</style>
<script src="https://www.amcharts.com/tools/consent.js"></script>
</head>
<body>
<!-- SVG icon sprite (inline for cross-origin compatibility) -->
<svg xmlns="http://www.w3.org/2000/svg" style="display:none">
<symbol id="icon-search" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/>
</symbol>
<symbol id="icon-arrow-sm" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<path d="M3 8h10M9 4l4 4-4 4"/>
</symbol>
<symbol id="icon-arrow" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M5 12h14M12 5l7 7-7 7"/>
</symbol>
<symbol id="icon-check" viewBox="0 0 12 12" fill="none" stroke="currentColor" stroke-width="1.5">
<polyline points="2 6 5 9 10 3"/>
</symbol>
<symbol id="icon-facebook" viewBox="0 0 24 24" fill="currentColor">
<path d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"/>
</symbol>
<symbol id="icon-x" viewBox="0 0 24 24" fill="currentColor">
<path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"/>
</symbol>
<symbol id="icon-bluesky" viewBox="0 0 24 24" fill="currentColor">
<path d="M18.231,3.618c-2.312,1.736 -4.785,5.107 -5.948,7.244c-0.123,0.226 -0.444,0.226 -0.567,0c-1.163,-2.137 -3.636,-5.508 -5.948,-7.244c-1.819,-1.366 -4.768,-2.423 -4.768,0.941c0,0.672 0.385,5.643 0.611,6.451c0.606,2.169 2.454,3.089 4.437,3.195c0.19,0.01 0.222,0.261 0.043,0.324c-2.988,1.048 -3.518,3.196 -1.424,5.344c3.826,3.894 5.814,0.647 6.733,-1.514c0.224,-0.525 0.977,-0.525 1.2,0c0.92,2.161 2.907,5.408 6.733,1.514c2.093,-2.148 1.564,-4.296 -1.424,-5.344c-0.179,-0.063 -0.146,-0.313 0.043,-0.324c1.983,-0.106 3.83,-1.026 4.437,-3.195c0.226,-0.807 0.611,-5.779 0.611,-6.451c0,-3.364 -2.949,-2.307 -4.769,-0.941z"/>
</symbol>
<symbol id="icon-substack" viewBox="0 0 24 24" fill="currentColor">
<path d="M22.539 8.242H1.46V5.406h21.08v2.836zM1.46 10.812V24L12 18.11 22.54 24V10.812H1.46zM22.54 0H1.46v2.836h21.08V0z"/>
</symbol>
<symbol id="icon-grid" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<rect x="3" y="3" width="7" height="7"/><rect x="14" y="3" width="7" height="7"/><rect x="3" y="14" width="7" height="7"/><rect x="14" y="14" width="7" height="7"/>
</symbol>
<symbol id="icon-lightbulb" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<path d="M12 2a4 4 0 0 0-4 4c0 2 2 3 2 6H14c0-3 2-4 2-6a4 4 0 0 0-4-4z"/><line x1="10" y1="16" x2="14" y2="16"/><line x1="10" y1="19" x2="14" y2="19"/><path d="M10 22h4"/>
</symbol>
<symbol id="icon-shield" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/>
</symbol>
<symbol id="icon-zap" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<polygon points="13,2 3,14 12,14 11,22 21,10 12,10"/>
</symbol>
<symbol id="icon-globe" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<circle cx="12" cy="12" r="10"/><path d="M2 12h20"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/>
</symbol>
<symbol id="icon-refresh" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<path d="M21 12a9 9 0 1 1-6.219-8.56"/><path d="M21 3v5h-5"/>
</symbol>
<symbol id="icon-edit" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<path d="M12 20h9"/><path d="M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z"/>
</symbol>
<symbol id="icon-map-grid" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<rect x="3" y="3" width="18" height="18" rx="2"/><path d="M3 9h18"/><path d="M3 15h18"/><path d="M9 3v18"/><path d="M15 3v18"/>
</symbol>
<symbol id="icon-cursor" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<path d="M3 3l7.07 16.97 2.51-7.39 7.39-2.51z"/><path d="M13 13l6 6"/>
</symbol>
<symbol id="icon-tree" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<path d="M12 2a5 5 0 0 0-4.5 2.8A4.5 4.5 0 0 0 3 9c0 1.5.7 2.8 1.8 3.7A4.5 4.5 0 0 0 7 18a5 5 0 0 0 5 4"/><path d="M12 2a5 5 0 0 1 4.5 2.8A4.5 4.5 0 0 1 21 9c0 1.5-.7 2.8-1.8 3.7A4.5 4.5 0 0 1 17 18a5 5 0 0 1-5 4"/><path d="M12 2v20"/><path d="M8 8c2 1 2 3 4 3"/><path d="M16 8c-2 1-2 3-4 3"/>
</symbol>
<symbol id="icon-code" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<polyline points="16 18 22 12 16 6"/><polyline points="8 6 2 12 8 18"/>
</symbol>
<symbol id="icon-a11y" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<circle cx="12" cy="4" r="2"/><path d="M5 8l3.5 1L12 10l3.5-1L19 8"/><path d="M12 10v5"/><path d="M8 21l4-6 4 6"/>
</symbol>
<symbol id="icon-sun" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<circle cx="12" cy="12" r="3"/><path d="M12 1v2M12 21v2M4.2 4.2l1.4 1.4M18.4 18.4l1.4 1.4M1 12h2M21 12h2M4.2 19.8l1.4-1.4M18.4 5.6l1.4-1.4"/>
</symbol>
<symbol id="icon-file" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<path d="M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z"/><polyline points="14 2 14 8 20 8"/>
</symbol>
<symbol id="icon-monitor" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<rect x="2" y="3" width="20" height="14" rx="2"/><line x1="8" y1="21" x2="16" y2="21"/><line x1="12" y1="17" x2="12" y2="21"/>
</symbol>
<symbol id="icon-plug" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<path d="M12 22v-5"/><path d="M9 7V2"/><path d="M15 7V2"/><path d="M6 13V9a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v4a6 6 0 0 1-12 0z"/>
</symbol>
<symbol id="icon-compass" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<circle cx="12" cy="12" r="10"/><polygon points="16.24,7.76 14.12,14.12 7.76,16.24 9.88,9.88"/>
</symbol>
<symbol id="icon-thermometer" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<path d="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"/>
</symbol>
<symbol id="icon-layers" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<polygon points="12,2 2,7 12,12 22,7"/><path d="M2 17l10 5 10-5"/><path d="M2 12l10 5 10-5"/>
</symbol>
<symbol id="icon-zoom-in" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<circle cx="11" cy="11" r="8"/><path d="M21 21l-4.35-4.35"/><path d="M11 8v6"/><path d="M8 11h6"/>
</symbol>
</svg>
<!-- ── NAV ─────────────────────────────────────────────── -->
<nav class="site-nav">
<div class="nav-inner">
<a href="../" class="nav-logo">amCharts</a>
<ul class="nav-links">
<li class="has-dropdown">
<a href="../javascript-charts/">Products</a>
<div class="nav-dropdown">
<a href="../javascript-charts/">Charts</a>
<a href="../javascript-maps/">Maps</a>
<a href="../stock-chart/">Stock Chart</a>
<a href="../gantt/">Gantt</a>
<a href="../pro-services/">Pro Services</a>
</div>
</li>
<li><a href="https://www.amcharts.com/demos/">Demos</a></li>
<li><a href="../ai/">amCharts & AI</a></li>
<li><a href="https://www.amcharts.com/download/">Download</a></li>
<li><a href="https://www.amcharts.com/online-store/">Buy</a></li>
<li><a href="https://www.amcharts.com/support/">Support & Licenses</a></li>
<li><a href="https://www.amcharts.com/docs/v5/">Docs</a></li>
</ul>
<div class="nav-search">
<button class="nav-search-btn" aria-label="Search" onclick="this.parentElement.classList.toggle('open')">
<svg viewBox="0 0 24 24"><use href="#icon-search"/></svg>
</button>
<form role="search" method="get" class="search-form" action="https://www.amcharts.com/search/">
<input type="search" class="nav-search-input" placeholder="Search…" name="s">
</form>
</div>
<button class="nav-hamburger" aria-label="Menu">
<span></span><span></span><span></span>
</button>
</div>
</nav>
<!-- ── PRODUCT HERO ────────────────────────────────────── -->
<section class="product-hero">
<div id="introchart"></div>
<div class="product-hero-inner">
<div class="product-hero-content">
<h1 class="product-h1">amCharts 5: <span class="grad-text">Maps</span></h1>
<p class="product-sub">Interactive, stunning geographical maps. Hundreds of bundled GeoJSON maps, multiple projections, and full interactivity.</p>
<div class="product-actions">
<a href="https://www.amcharts.com/demos/#maps" class="btn-primary">
View Map Demos
<svg width="16" height="16" viewBox="0 0 16 16"><use href="#icon-arrow-sm"/></svg>
</a>
<a href="https://www.amcharts.com/docs/v5/charts/map-chart/" class="btn-secondary">Read Docs</a>
<a href="https://www.amcharts.com/download/" class="btn-secondary">Get it</a>
</div>
</div>
</div>
</section>
<!-- ── MAP FEATURES GRID ──────────────────────────────── -->
<section class="section">
<div class="section-inner">
<div class="eyebrow">CAPABILITIES</div>
<h2 class="section-h2" style="margin-bottom:48px;">Maps that <span class="grad-text">work</span> everywhere.</h2>
<div class="strengths-grid">
<div class="strength-card">
<div class="strength-icon">
<svg width="24" height="24" viewBox="0 0 24 24"><use href="#icon-globe"/></svg>
</div>
<h3 class="strength-h3">GeoJSON Standard</h3>
<p class="strength-body">Hundreds of bundled maps — world, continents, US states, US congressional districts (now updated for 120<sup>th</sup> Congress), and almost every country. High and low detail GeoJSON. Bring your own, too.</p>
</div>
<div class="strength-card">
<div class="strength-icon">
<svg width="24" height="24" viewBox="0 0 24 24"><use href="#icon-compass"/></svg>
</div>
<h3 class="strength-h3">Map Projections</h3>
<p class="strength-body">Mercator, Miller, Natural Earth, Orthographic globe — with smooth animated transitions between them. Rotate the globe with touch or mouse.</p>
</div>
<div class="strength-card">
<div class="strength-icon">
<svg width="24" height="24" viewBox="0 0 24 24"><use href="#icon-thermometer"/></svg>
</div>
<h3 class="strength-h3">Heat Maps</h3>
<p class="strength-body">Apply heat rules to any series. Color-code regions by data values. Smooth gradients and custom ranges.</p>
</div>
<div class="strength-card">
<div class="strength-icon">
<svg width="24" height="24" viewBox="0 0 24 24"><use href="#icon-layers"/></svg>
</div>
<h3 class="strength-h3">Series-Based</h3>
<p class="strength-body">Polygon, point, and line series — layer and combine freely. Animate objects along lines to show flight routes, shipping lanes, or migration paths.</p>
</div>
<div class="strength-card">
<div class="strength-icon">
<svg width="24" height="24" viewBox="0 0 24 24"><use href="#icon-zoom-in"/></svg>
</div>
<h3 class="strength-h3">Drill-Down</h3>
<p class="strength-body">Click a country to zoom into regional detail. Multi-level drill-down with smooth animations.</p>
</div>
<div class="strength-card">
<div class="strength-icon">
<svg width="24" height="24" viewBox="0 0 24 24"><use href="#icon-cursor"/></svg>
</div>
<h3 class="strength-h3">Real Interactivity</h3>
<p class="strength-body">Pan, zoom, rotate the globe. Click regions. Hover tooltips. Drag markers to new locations. Everything animates smoothly.</p>
</div>
</div>
</div>
</section>
<!-- ── TARIFFS MAP DEMO ─────────────────────────────── -->
<section class="section section-bg2 section-mid">
<div class="section-inner">
<div class="eyebrow">Heat maps</div>
<h2 class="section-h2">Color-code the world by <span class="grad-text">your data.</span></h2>
<div class="two-col-text">
<p class="section-lead" style="margin-bottom:0;">Apply heat rules to any map polygon series. Data values automatically map to color gradients — from subtle tints to bold saturations. Toggle between datasets, switch projections, and let your users explore.</p>
<p style="font-size:0.9rem;color:var(--muted);line-height:1.7;margin:0;align-self:end;border-left:3px solid #ff6b35;padding-left:20px;">This map visualizes tariff data across 180+ countries. Hover for values, toggle between Mercator and globe projections, or switch datasets with the built-in controls. All interactive, all real-time.</p>
</div>
<div id="demo-tariffs" style="width:100%;height:480px;"></div>
</div>
</section>
<!-- ── CLUSTERED POINTS DEMO ─────────────────────────── -->
<section class="section section-flush">
<div class="section-inner">
<div class="content-grid content-grid-2-3 content-grid-demo">
<div style="padding:64px 0;">
<div class="eyebrow">Point clustering</div>
<h2 class="section-h2">Hundreds of markers. <span class="grad-text">Zero</span> clutter.</h2>
<p class="section-lead">Drop 500 markers on a map — amCharts automatically clusters them into groups. Zoom in and clusters break apart. Click a cluster to zoom. Smooth, smart, and instant.</p>
<p style="font-size:0.9rem;color:var(--muted);line-height:1.7;margin-top:16px;">161 world capitals, automatically clustered by proximity. Zoom in to see individual cities. Click any cluster to zoom to its bounds. All handled by ClusteredPointSeries.</p>
</div>
<div>
<div id="demo-clustered" style="width:100%;height:480px;"></div>
</div>
</div>
</div>
</section>
<!-- ── LICENSING ────────────────────────────────────────── -->
<section class="section section-bg2 section-compact">
<div class="section-inner section-inner-center section-inner-narrow">
<div class="eyebrow eyebrow-center">Licensing</div>
<h2 class="section-h2" style="font-size: clamp(1.5rem, 3vw, 2rem);">Use for free or acquire a license. <span class="grad-text">Your choice.</span></h2>
<p class="section-lead" style="max-width:none;">amCharts 5: Maps is completely free with a small branding link. Need an unbranded version and support? Grab one of the commercial licenses. Each product is licensed independently — buy only what you need.</p>
<div style="margin-top:24px; display:flex; gap:12px; justify-content:center; flex-wrap:wrap;">
<a href="https://www.amcharts.com/online-store/" class="btn-primary">View Pricing</a>
<a href="https://www.amcharts.com/download/" class="btn-secondary">Download</a>
</div>
</div>
</section>
<!-- ── DOJO PROJECTS ─────────────────────────────────── -->
<section class="section">
<div class="section-inner">
<div class="eyebrow">Dojo projects with maps</div>
<h2 class="section-h2">Built with amCharts <span class="grad-text">Maps.</span></h2>
<p class="section-lead" style="max-width:none;">Interactive tools and experiments from the <a href="https://dojo.amcharts.com" target="_blank">DataViz Dojo</a> — all powered by amCharts 5 Maps.</p>
<div class="dojo-grid">
<a href="https://dojo.amcharts.com/svg-map-generator/" target="_blank" class="dojo-card">
<div class="dojo-card-img">
<img src="https://dojo.amcharts.com/thumbs/light/svg-map-generator.jpg" alt="SVG Map Generator" loading="lazy">
</div>
<div class="dojo-card-body">
<div class="dojo-card-title">SVG Map Generator</div>
<div class="dojo-card-desc">Generate SVG maps of any region in any projection — Mercator, Albers, orthographic, and more. Simplify geometries and download a clean, lightweight SVG.</div>
<span class="dojo-card-cta">Generate <svg viewBox="0 0 24 24"><use href="#icon-arrow"/></svg></span>
</div>
</a>
<a href="https://pixelmap.amcharts.com/" target="_blank" class="dojo-card">
<div class="dojo-card-img">
<img src="https://dojo.amcharts.com/thumbs/light/pixel-map-generator.jpg" alt="Pixel Map Generator" loading="lazy">
</div>
<div class="dojo-card-body">
<div class="dojo-card-title">Pixel Map Generator</div>
<div class="dojo-card-desc">Turn any map into pixel art. Pick from 4 tessellation shapes — squares, hexagons, diamonds, and triangles — paint countries, and export as SVG, PNG, or HTML.</div>
<span class="dojo-card-cta">Create <svg viewBox="0 0 24 24"><use href="#icon-arrow"/></svg></span>
</div>
</a>
<a href="https://dojo.amcharts.com/day-and-night-map/" target="_blank" class="dojo-card">
<div class="dojo-card-img">
<img src="https://dojo.amcharts.com/thumbs/light/dayandnight.jpg" alt="Day & Night World Map" loading="lazy">
</div>
<div class="dojo-card-body">
<div class="dojo-card-title">Day & Night World Map</div>
<div class="dojo-card-desc">A real-time world map showing the day/night terminator, live sun & moon positions, and current moon phase. Switch between flat map and globe view.</div>
<span class="dojo-card-cta">Explore <svg viewBox="0 0 24 24"><use href="#icon-arrow"/></svg></span>
</div>
</a>
<a href="https://dojo.amcharts.com/pac-world/" target="_blank" class="dojo-card">
<div class="dojo-card-img">
<img src="https://dojo.amcharts.com/thumbs/light/pacworld.jpg" alt="PAC-WORLD" loading="lazy">
</div>
<div class="dojo-card-body">
<div class="dojo-card-title">PAC-WORLD</div>
<div class="dojo-card-desc">The classic arcade game reimagined on a world map. Navigate Pac-Man across real geography, eat all the dots, and advance through 4 levels.</div>
<span class="dojo-card-cta">Play <svg viewBox="0 0 24 24"><use href="#icon-arrow"/></svg></span>
</div>
</a>
</div>
</div>
</section>
<!-- ── AI TOOLS ───────────────────────────────────────── -->
<section class="section section-bg2">
<div class="section-inner section-inner-center section-inner-narrow">
<div class="eyebrow eyebrow-center">amCharts & AI</div>
<h2 class="section-h2">AI handles the complexity.<br>You keep the <span class="grad-text">control.</span></h2>
<p class="section-lead">amCharts has always been powerful. Now AI eliminates the learning curve. Describe what you want — AI writes correct amCharts code.</p>
<div style="margin-top:32px;display:flex;gap:16px;flex-wrap:wrap;justify-content:center;">
<a href="https://github.com/amcharts/amcharts5-mcp" target="_blank" class="tool-card-link">MCP Server <span>→</span></a>
<a href="https://github.com/amcharts/amcharts5-skill" target="_blank" class="tool-card-link">AI Skill Files <span>→</span></a>
<a href="https://www.amcharts.com/docs/v5/" class="tool-card-link">Docs & API <span>→</span></a>
</div>
</div>
</section>
<!-- ── PRO SERVICES ────────────────────────────────────── -->
<section class="section section-compact">
<div class="section-inner section-inner-center section-inner-narrow">
<div class="eyebrow eyebrow-center">Pro Services</div>
<h2 class="section-h2" style="font-size: clamp(1.5rem, 3vw, 2rem);">Need something custom? <span class="grad-text">We'll build it.</span></h2>
<p class="section-lead">Custom map visualizations, GeoJSON processing, complex spatial dashboards — from the team that wrote amCharts. <a href="../pro-services/" style="font-weight: 600;">Talk to our team →</a></p>
</div>
</section>
<!-- ── CTA BANNER ────────────────────────────────────── -->
<div class="cta-banner">
<div class="cta-inner">
<div class="cta-text">
<h2>Start making your<br>data-viz <span class="grad-text">LEGENDARY.</span></h2>
<div class="code-block">
<span style="color: #6b6b80;">$</span> npm install @amcharts/amcharts5
</div>
<p style="font-size: 0.8125rem; color: #8888a8; margin-top: 10px;">Also available via <a href="https://www.amcharts.com/download/">CDN</a> and <a href="https://www.amcharts.com/download/">direct download</a>.</p>
</div>
<div class="cta-actions">
<a href="https://www.amcharts.com/demos/" class="btn-primary" style="font-size:1rem; padding: 15px 32px;">Explore Demos</a>
<a href="https://www.amcharts.com/online-store/" class="btn-secondary" style="font-size:0.9375rem;">View Pricing</a>
</div>
</div>
</div>
<!-- ── FOOTER ─────────────────────────────────────────── -->
<!-- ── FOOTER ─────────────────────────────────────────── -->
<footer class="site-footer">
<div class="content-col">
<div class="row">
<div class="col-md-4 col-sm-12">
<div>
<a href="https://www.amcharts.com/" id="logo2" rel="home">amCharts</a>
</div>
</div>
<div class="col-md-2 col-sm-4 col-xs-12">
<div role="navigation"><h4>More info</h4><ul class="menu"><li class="menu-item"><a href="https://www.amcharts.com/accessibility/">Accessibility Features</a></li>
<li class="menu-item"><a href="https://www.amcharts.com/about/">About amCharts</a></li>
<li class="menu-item"><a href="https://www.amcharts.com/partners/">Partners</a></li>
<li class="menu-item"><a href="https://www.amcharts.com/about/press-kit/">Press Kit</a></li>
<li class="menu-item"><a href="https://www.amcharts.com/support/support-info/get-support/">Getting support</a></li>
<li class="menu-item"><a href="https://www.amcharts.com/subscribe/">Subscribe to amNews</a></li>
<li class="menu-item"><a href="https://www.amcharts.com/blog/">Blog</a></li>
</ul></div>
</div>
<div class="col-md-2 col-sm-4 col-xs-12">
<div role="navigation"><h4>Products</h4><ul class="menu"><li class="menu-item"><a href="https://www.amcharts.com/javascript-charts/">amCharts 5: Charts</a></li>
<li class="menu-item"><a href="https://www.amcharts.com/javascript-maps/">amCharts 5: Maps</a></li>
<li class="menu-item"><a href="https://www.amcharts.com/stock-chart/">amCharts 5: Stock Chart</a></li>
<li class="menu-item"><a href="https://www.amcharts.com/gantt/">amCharts 5: Gantt</a></li>
<li class="menu-item"><a href="https://wordpress.org/plugins/amcharts-charts-and-maps/">WordPress Plugin</a></li>
<li class="menu-item"><a href="https://www.amcharts.com/versions/">Version information</a></li>
<li class="menu-item"><a href="https://www.amcharts.com/3rd-party/">3rd party software</a></li>
</ul></div>
</div>
<div class="col-md-2 col-sm-4 col-xs-12">
<div role="navigation"><h4>Tools & Resources</h4><ul class="menu"><li class="menu-item"><a href="https://amcharts.com/editor/map/">Online Map Editor</a></li>
<li class="menu-item"><a href="https://visitedplaces.com/">Visited Countries Map</a></li>
<li class="menu-item"><a href="https://visitedplaces.com/states/">Visited States Map</a></li>
<li class="menu-item"><a href="https://www.amcharts.com/svg-maps/">Free SVG Maps</a></li>
<li class="menu-item"><a href="https://www.amcharts.com/online-tools/">More Online Tools</a></li>
<li class="menu-item"><a href="https://dojo.amcharts.com/">DataViz Dojo</a></li>
</ul></div><div role="navigation"><h4>Legal Stuff</h4><ul class="menu"><li class="menu-item"><a href="https://www.amcharts.com/privacy-policy/">Privacy Policy</a></li>
<li class="menu-item"><a href="https://www.amcharts.com/terms-conditions/">Terms & Conditions</a></li>
</ul></div>
</div>
<div class="col-md-2 col-sm-4 col-xs-12">
<div role="navigation"><h4>Contact Us</h4><ul class="menu"><li class="menu-item"><a href="mailto:contact@amcharts.com">contact@amcharts.com</a></li>
<li class="menu-item"><a href="https://www.amcharts.com/support/">Support Center</a></li>
<li class="menu-item"><a href="https://www.amcharts.com/report-vulnerability/">Reporting a vulnerability</a></li>
</ul></div><div role="navigation">
<h4>Address</h4>
</div><div role="navigation">
<p>L. Rezos 14-4<br>Neringa 93101<br>Lithuania</p>
</div><div role="navigation">
<p class="small">VAT ID: LT100003826811<br>DUNS: 498387449</p>
</div>
</div>
</div>
<div class="row">
<div class="col-md-8 col-md-push-4 col-sm-12 subfooter">
<div class="row">
<div class="col-md-6 col-sm-12 col-xs-12" role="navigation">
<ul class="menu"><li class="menu-item"><a href="https://www.facebook.com/amcharts"><i class="icon icon-facebook" title="Facebook"></i></a></li>
<li class="menu-item"><a href="https://www.x.com/amcharts"><i class="icon icon-x" title="X (Twitter)"></i></a></li>
<li class="menu-item"><a href="https://bsky.app/profile/amcharts.com"><i class="icon icon-bluesky" title="Bluesky"></i></a></li>
<li class="menu-item"><a href="https://stack.amcharts.com"><i class="icon icon-substack" title="Substack"></i></a></li>
</ul>
</div>
<div class="col-md-6 col-sm-12 col-xs-12 pull-right" id="copyright" role="contentinfo">
Copyright © 2006-2026, amCharts. All rights reserved.
</div>
</div>
</div>
</div>
</div>
</footer>
<!-- ── SCRIPTS ────────────────────────────────────────── -->
<script src="https://cdn.amcharts.com/lib/5/index.js"></script>
<script src="https://cdn.amcharts.com/lib/5/map.js"></script>
<script src="https://cdn.amcharts.com/lib/5/geodata/continentsLow.js"></script>
<script src="https://cdn.amcharts.com/lib/5/geodata/worldLow.js"></script>
<script src="https://cdn.amcharts.com/lib/5/themes/Animated.js"></script>
<script src="https://cdn.amcharts.com/lib/5/themes/Dark.js"></script>
<script src="https://cdn.jsdelivr.net/npm/d3-array@3"></script>
<script src="https://cdn.jsdelivr.net/npm/d3-geo@3"></script>
<script src="../static/js/metrix.js"></script>
<script>
am5.ready(function() {
var root = am5.Root.new("introchart");
root.setThemes([
am5themes_Animated.new(root), am5themes_Dark.new(root)
]);
var bg = root.container.set("background", am5.Rectangle.new(root, {}));
bg.set("fillPattern", am5.GrainPattern.new(root, {
maxOpacity: 0.03, density: 0.3, colors: [am5.color(0xffffff)]
}));
var orange = am5.color(0xff6b35);
var cityColor = am5.color(0xcc4a1a);
var chart = root.container.children.insertIndex(0, am5map.MapChart.new(root, {
panX: "rotateX", panY: "none", wheelY: "none",
projection: am5map.geoMercator(),
homeZoomLevel: 3,
homeGeoPoint: { latitude: 27, longitude: 0 }
}));
var polygonSeries = chart.series.push(am5map.MapPolygonSeries.new(root, {
geoJSON: am5geodata_continentsLow
}));
polygonSeries.mapPolygons.template.setAll({
strokeOpacity: 0, fillOpacity: 0.8,
fill: am5.color(0x222222), stroke: am5.color(0x777777)
});
polygonSeries.events.on("datavalidated", function() {
chart.goHome();
});
// Route
var cities = [
{ name: "Tokyo", latitude: 35.6762, longitude: 139.6503 },
{ name: "Hong Kong", latitude: 22.3193, longitude: 114.1694 },
{ name: "Dubai", latitude: 25.2048, longitude: 55.2708 },
{ name: "Rome", latitude: 41.9028, longitude: 12.4964 },
{ name: "Panama", latitude: 8.9824, longitude: -79.5199 },
{ name: "Los Angeles", latitude: 34.3, longitude: -118.15 },
{ name: "Tokyo", latitude: 35.6762, longitude: 139.6503 }
];
// Line series (per-segment)
var lineSeries = chart.series.push(am5map.MapLineSeries.new(root, {}));
lineSeries.mapLines.template.setAll({
stroke: orange, strokeOpacity: 0.35, strokeWidth: 1.5, strokeDasharray: [3, 3]
});
// City point series with expand/shrink bullets
var pointSeries = chart.series.push(am5map.MapPointSeries.new(root, {}));
pointSeries.bullets.push(function() {
var container = am5.Container.new(root, { draggable: true, cursorOverStyle: "pointer" });
container.children.push(am5.Circle.new(root, {
radius: 6.5, fill: cityColor, fillOpacity: 0.9,
stroke: orange, strokeWidth: 4, strokeOpacity: 0,
tooltipText: "Drag me!", tooltipY: 0
}));
container.children.push(am5.Label.new(root, {
text: "{name}", fill: am5.color(0xffffff), fillOpacity: 0.5, fontSize: 17,
fontWeight: "600", centerX: am5.p50, centerY: am5.p100,
dy: -25, opacity: 0, populateText: true
}));
container.events.on("dragged", function(event) {
var dataItem = event.target.dataItem;
var geoPoint = chart.invert({ x: container.x(), y: container.y() });
dataItem.setAll({ longitude: geoPoint.longitude, latitude: geoPoint.latitude });
});
return am5.Bullet.new(root, { sprite: container });
});
var pointsToConnect = [];
var numSegments = cities.length - 1;
for (var i = 0; i < cities.length; i++) {
if (i === cities.length - 1) {
pointsToConnect.push(pointsToConnect[0]);
} else {
pointsToConnect.push(pointSeries.pushDataItem({
latitude: cities[i].latitude, longitude: cities[i].longitude, name: cities[i].name
}));
}
}
// Segment lines
var segmentLines = [];
for (var i = 0; i < numSegments; i++) {
segmentLines.push(lineSeries.pushDataItem({
pointsToConnect: [pointsToConnect[i], pointsToConnect[i + 1]]
}));
}
// Plane series - one plane per segment
var planeSeries = chart.series.push(am5map.MapPointSeries.new(root, {}));
planeSeries.bullets.push(function() {
return am5.Bullet.new(root, {
sprite: am5.Graphics.new(root, {
svgPath: "m2,106h28l24,30h72l-44,-133h35l80,132h98c21,0 21,34 0,34l-98,0 -80,134h-35l43,-133h-71l-24,30h-28l15,-47",
scale: 0.06, centerY: am5.p50, centerX: am5.p50, fill: orange, forceHidden: true
})
});
});
var planes = [];
for (var i = 0; i < numSegments; i++) {
planes.push(planeSeries.pushDataItem({
lineDataItem: segmentLines[i], positionOnLine: 0, autoRotate: true
}));
}
var baseScale = 0.04;
var peakScale = 0.07;
// Haversine distance (km)
function haversine(lat1, lon1, lat2, lon2) {
var R = 6371;
var dLat = (lat2 - lat1) * Math.PI / 180;
var dLon = (lon2 - lon1) * Math.PI / 180;
var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
Math.cos(lat1 * Math.PI / 180) * Math.cos(lat2 * Math.PI / 180) *
Math.sin(dLon / 2) * Math.sin(dLon / 2);
return R * 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
}
var msPerKm = 0.4;
var segDurations = [];
for (var i = 0; i < numSegments; i++) {
var d = haversine(cities[i].latitude, cities[i].longitude, cities[i + 1].latitude, cities[i + 1].longitude);
segDurations.push(Math.max(800, Math.round(d * msPerKm)));
}
var activeCityIdx = -1;
function expandCity(idx) {
var di = pointsToConnect[idx];
if (!di || !di.bullets || !di.bullets[0]) return;
var container = di.bullets[0].get("sprite");
var dot = container.children.getIndex(0);
var label = container.children.getIndex(1);
activeCityIdx = idx;
dot.animate({ key: "radius", to: 14, duration: 400, easing: am5.ease.out(am5.ease.cubic) });
dot.animate({ key: "fillOpacity", to: 0, duration: 400, easing: am5.ease.out(am5.ease.cubic) });
dot.animate({ key: "strokeOpacity", to: 1, duration: 400, easing: am5.ease.out(am5.ease.cubic) });
label.setAll({ opacity: 0, dy: 0 });
label.animate({ key: "opacity", to: 1, duration: 300, easing: am5.ease.out(am5.ease.cubic) });
label.animate({ key: "dy", to: -10, duration: 300, easing: am5.ease.out(am5.ease.cubic) });
}
function shrinkCity(idx) {
var di = pointsToConnect[idx];
if (!di || !di.bullets || !di.bullets[0]) return;
var container = di.bullets[0].get("sprite");
var dot = container.children.getIndex(0);
var label = container.children.getIndex(1);
dot.animate({ key: "radius", to: 6.5, duration: 500, easing: am5.ease.cubic });
dot.animate({ key: "fillOpacity", to: 0.9, duration: 500, easing: am5.ease.cubic });
dot.animate({ key: "strokeOpacity", to: 0, duration: 500, easing: am5.ease.cubic });
label.animate({ key: "opacity", to: 0, duration: 400, easing: am5.ease.cubic });
label.animate({ key: "dy", to: -18, duration: 400, easing: am5.ease.cubic });
activeCityIdx = -1;
}
var lastRotation = null;
var activeFlightDisposer = null;
function startFlight(plane, sprite, idx) {
if (activeCityIdx >= 0) shrinkCity(activeCityIdx);
var nextIdx = (idx + 1) % numSegments;
var expanded = false;
if (activeFlightDisposer) {
activeFlightDisposer.dispose();
activeFlightDisposer = null;
}
activeFlightDisposer = plane.on("positionOnLine", function(pos) {
var s = baseScale + (peakScale - baseScale) * Math.sin(pos * Math.PI);
if (plane.bullets && plane.bullets[0]) {
plane.bullets[0].get("sprite").set("scale", s);
}
if (!expanded && pos >= 0.85) {
expanded = true;
expandCity(nextIdx);
}
});
var anim = plane.animate({
key: "positionOnLine", to: 1, duration: segDurations[idx],
easing: am5.ease.inOut(am5.ease.cubic)
});
anim.events.on("stopped", function() {
lastRotation = sprite.get("rotation", 0);
sprite.set("forceHidden", true);
flySegment(nextIdx);
});
}
function flySegment(idx) {
var plane = planes[idx];
var sprite = plane.bullets[0].get("sprite");
plane.set("positionOnLine", 0);
sprite.set("forceHidden", false);
sprite.set("scale", baseScale);
if (lastRotation === null) {
sprite.set("opacity", 0);
sprite.animate({ key: "opacity", to: 1, duration: 400, easing: am5.ease.out(am5.ease.cubic) });
}
if (lastRotation !== null) {
var targetRotation = sprite.get("rotation", 0);
plane.set("autoRotate", false);
sprite.set("rotation", lastRotation);
var diff = targetRotation - lastRotation;
while (diff > 180) diff -= 360;
while (diff < -180) diff += 360;
var rotAnim = sprite.animate({
key: "rotation", to: lastRotation + diff, duration: 500,
easing: am5.ease.out(am5.ease.cubic)
});
rotAnim.events.on("stopped", function() {
plane.set("autoRotate", true);
startFlight(plane, sprite, idx);
});
} else {
startFlight(plane, sprite, idx);
}
}
chart.goHome(0);
var observer = new IntersectionObserver(function(entries) {
if (entries[0].isIntersecting) {
observer.disconnect();
chart.appear(1000, 100);
setTimeout(function() { expandCity(0); }, 100);
setTimeout(function() { flySegment(0); }, 400);
}
}, { threshold: 0.3 });
observer.observe(document.getElementById("introchart"));
});
</script>
<!-- Tariffs Map Demo -->
<script>
am5.ready(function() {
var root = am5.Root.new("demo-tariffs");
var myTheme = am5.Theme.new(root);
myTheme.rule("Label").set("fontSize", "0.8em");
root.setThemes([am5themes_Animated.new(root), myTheme]);
var chart = root.container.children.push(am5map.MapChart.new(root, {
projection: am5map.geoNaturalEarth1()
}));
var graticuleSeries = chart.series.unshift(am5map.GraticuleSeries.new(root, { step: 10 }));
graticuleSeries.mapLines.template.set("strokeOpacity", 0.05);
var cont = chart.children.push(am5.Container.new(root, {
layout: root.horizontalLayout, x: -10, y: 10, dy: 15
}));
cont.children.push(am5.Label.new(root, { centerY: am5.p50, text: "Map" }));
var switchButton = cont.children.push(am5.Button.new(root, {
themeTags: ["switch"], centerY: am5.p50, icon: am5.Circle.new(root, { themeTags: ["icon"] })
}));
switchButton.get("background").setAll({ fill: am5.color(0xff6b35), fillOpacity: 1 });
switchButton.on("active", function() {
if (!switchButton.get("active")) {
chart.set("panY", "translateY");
chart.set("rotationY", 0);
chart.animateProjection(
d3.geoNaturalEarth1(),
d3.geoNaturalEarth1Raw,
1500,
am5.ease.inOut(am5.ease.cubic),
d3.geoOrthographicRaw
);
} else {
chart.set("panY", "rotateY");
chart.set("panX", "rotateX");
chart.animateProjection(
d3.geoOrthographic(),
d3.geoOrthographicRaw,
1500,
am5.ease.inOut(am5.ease.cubic),
d3.geoNaturalEarth1Raw
);
}
});
cont.children.push(am5.Label.new(root, { centerY: am5.p50, text: "Globe" }));
var data = [
{ id: "CN", threatened: 34, updated: 125 },
{ id: "AT", threatened: 20, updated: 10 }, { id: "BE", threatened: 20, updated: 10 },
{ id: "BG", threatened: 20, updated: 10 }, { id: "HR", threatened: 20, updated: 10 },
{ id: "CZ", threatened: 20, updated: 10 }, { id: "DK", threatened: 20, updated: 10 },
{ id: "FI", threatened: 20, updated: 10 }, { id: "FR", threatened: 20, updated: 10 },
{ id: "DE", threatened: 20, updated: 10 }, { id: "GR", threatened: 20, updated: 10 },
{ id: "HU", threatened: 20, updated: 10 }, { id: "IE", threatened: 20, updated: 10 },
{ id: "IT", threatened: 20, updated: 10 }, { id: "NL", threatened: 20, updated: 10 },
{ id: "PL", threatened: 20, updated: 10 }, { id: "PT", threatened: 20, updated: 10 },
{ id: "RO", threatened: 20, updated: 10 }, { id: "ES", threatened: 20, updated: 10 },
{ id: "SE", threatened: 20, updated: 10 }, { id: "VN", threatened: 46, updated: 10 },
{ id: "TW", threatened: 32, updated: 10 }, { id: "JP", threatened: 24, updated: 10 },
{ id: "IN", threatened: 26, updated: 10 }, { id: "TH", threatened: 36, updated: 10 },
{ id: "CH", threatened: 31, updated: 10 }, { id: "ID", threatened: 32, updated: 10 },
{ id: "MY", threatened: 24, updated: 10 }, { id: "KH", threatened: 49, updated: 10 },
{ id: "GB", threatened: 10, updated: 10 }, { id: "ZA", threatened: 30, updated: 10 },
{ id: "BR", threatened: 10, updated: 10 }, { id: "BD", threatened: 37, updated: 10 },
{ id: "IL", threatened: 17, updated: 10 }, { id: "PH", threatened: 17, updated: 10 },
{ id: "AU", threatened: 10, updated: 10 }, { id: "PK", threatened: 29, updated: 10 },
{ id: "TR", threatened: 10, updated: 10 }, { id: "LK", threatened: 44, updated: 10 },
{ id: "KZ", threatened: 27, updated: 10 }, { id: "RS", threatened: 37, updated: 10 },
{ id: "EG", threatened: 10, updated: 10 }, { id: "SA", threatened: 10, updated: 10 },
{ id: "IQ", threatened: 39, updated: 10 }, { id: "NG", threatened: 14, updated: 10 },
{ id: "KE", threatened: 10, updated: 10 }, { id: "MX", threatened: 25, updated: 10 },
{ id: "RU", threatened: 10, updated: 10 }, { id: "KR", threatened: 25, updated: 10 },
{ id: "AR", threatened: 10, updated: 10 }, { id: "CO", threatened: 10, updated: 10 },
{ id: "PE", threatened: 10, updated: 10 }, { id: "UA", threatened: 10, updated: 10 },
{ id: "NZ", threatened: 10, updated: 10 }, { id: "NO", threatened: 15, updated: 10 }
];
var polygonSeries = chart.series.push(am5map.MapPolygonSeries.new(root, {
geoJSON: am5geodata_worldLow, valueField: "threatened",
calculateAggregates: true
}));
polygonSeries.mapPolygons.template.setAll({
tooltipText: "{name}: {value}%", fill: am5.color(0xd9cec8), stroke: am5.color(0xffffff)
});
polygonSeries.set("heatRules", [{
target: polygonSeries.mapPolygons.template, dataField: "value",
min: am5.color(0xf5d6b0), max: am5.color(0xcc4400), key: "fill"
}]);
polygonSeries.mapPolygons.template.adapters.add("tooltipText", function(text, target) {
var value = target.dataItem.get("value");
return (value != null && value > 0) ? text : "";
});
polygonSeries.data.setAll(data);
var heatLegend = chart.children.push(am5.HeatLegend.new(root, {
orientation: "vertical", startColor: am5.color(0xf5d6b0), endColor: am5.color(0xcc4400),
startText: "Lowest", endText: "Highest", stepCount: 8,
x: am5.p100, centerX: am5.p100, paddingRight: 20, paddingTop: 20, paddingBottom: 20
}));
heatLegend.startLabel.setAll({ fontSize: 12, fill: heatLegend.get("startColor") });
heatLegend.endLabel.setAll({ fontSize: 12, fill: heatLegend.get("endColor") });
polygonSeries.mapPolygons.template.events.on("pointerover", function(ev) {
heatLegend.showValue(ev.target.dataItem.get("value"));
});
polygonSeries.events.on("datavalidated", function() {
heatLegend.set("startValue", polygonSeries.getPrivate("valueLow"));
heatLegend.set("endValue", polygonSeries.getPrivate("valueHigh"));
});
chart.appear(1000, 100);
});
</script>
<!-- Clustered Points Demo -->
<script>
am5.ready(function() {
var root = am5.Root.new("demo-clustered");
var myTheme = am5.Theme.new(root);
myTheme.rule("Label").set("fontSize", "0.8em");
root.setThemes([am5themes_Animated.new(root), myTheme]);
var chart = root.container.children.push(am5map.MapChart.new(root, {
panX: "rotateX", panY: "translateY", projection: am5map.geoMercator()
}));
var zoomControl = chart.set("zoomControl", am5map.ZoomControl.new(root, { x: 10, centerX: am5.p0 }));
zoomControl.homeButton.set("visible", true);
zoomControl.plusButton.get("background").setAll({ fill: am5.color(0xff6b35), fillOpacity: 1 });
zoomControl.minusButton.get("background").setAll({ fill: am5.color(0xff6b35), fillOpacity: 1 });
zoomControl.homeButton.get("background").setAll({ fill: am5.color(0xff6b35), fillOpacity: 1 });
var polygonSeries = chart.series.push(am5map.MapPolygonSeries.new(root, {
geoJSON: am5geodata_worldLow, exclude: ["AQ"]
}));
polygonSeries.mapPolygons.template.set("fill", am5.color(0xdadada));
var pointSeries = chart.series.push(am5map.ClusteredPointSeries.new(root, {}));
pointSeries.set("clusteredBullet", function(root) {
var container = am5.Container.new(root, { cursorOverStyle: "pointer" });
container.children.push(am5.Circle.new(root, { radius: 8, tooltipY: 0, fill: am5.color(0xff8c00) }));
container.children.push(am5.Circle.new(root, { radius: 12, fillOpacity: 0.3, tooltipY: 0, fill: am5.color(0xff8c00) }));
container.children.push(am5.Circle.new(root, { radius: 16, fillOpacity: 0.3, tooltipY: 0, fill: am5.color(0xff8c00) }));
container.children.push(am5.Label.new(root, {
centerX: am5.p50, centerY: am5.p50, fill: am5.color(0xffffff),
populateText: true, fontSize: "8", text: "{value}"
}));
container.events.on("click", function(e) { pointSeries.zoomToCluster(e.target.dataItem); });
return am5.Bullet.new(root, { sprite: container });
});
pointSeries.bullets.push(function() {
return am5.Bullet.new(root, {
sprite: am5.Circle.new(root, { radius: 6, tooltipY: 0, fill: am5.color(0xff8c00), tooltipText: "{title}" })
});
});
var cities = [
{ title: "Vienna", latitude: 48.2092, longitude: 16.3728 },
{ title: "Brussels", latitude: 50.8371, longitude: 4.3676 },
{ title: "Prague", latitude: 50.0878, longitude: 14.4205 },
{ title: "Copenhagen", latitude: 55.6763, longitude: 12.5681 },
{ title: "Helsinki", latitude: 60.1699, longitude: 24.9384 },
{ title: "Paris", latitude: 48.8567, longitude: 2.351 },
{ title: "Berlin", latitude: 52.5235, longitude: 13.4115 },
{ title: "Athens", latitude: 37.9792, longitude: 23.7166 },
{ title: "Budapest", latitude: 47.4984, longitude: 19.0408 },
{ title: "Dublin", latitude: 53.3441, longitude: -6.2675 },
{ title: "Rome", latitude: 41.8955, longitude: 12.4823 },
{ title: "Amsterdam", latitude: 52.3738, longitude: 4.891 },
{ title: "Oslo", latitude: 59.9138, longitude: 10.7387 },
{ title: "Warsaw", latitude: 52.2297, longitude: 21.0122 },
{ title: "Lisbon", latitude: 38.7072, longitude: -9.1355 },
{ title: "Madrid", latitude: 40.4167, longitude: -3.7033 },
{ title: "Stockholm", latitude: 59.3328, longitude: 18.0645 },
{ title: "London", latitude: 51.5002, longitude: -0.1262 },
{ title: "Moscow", latitude: 55.7558, longitude: 37.6176 },
{ title: "Ankara", latitude: 39.9439, longitude: 32.856 },
{ title: "Tokyo", latitude: 35.6785, longitude: 139.6823 },
{ title: "New Delhi", latitude: 28.6353, longitude: 77.225 },
{ title: "Peking", latitude: 39.9056, longitude: 116.3958 },
{ title: "Seoul", latitude: 37.5139, longitude: 126.9828 },
{ title: "Bangkok", latitude: 13.7573, longitude: 100.502 },
{ title: "Jakarta", latitude: -6.1862, longitude: 106.8063 },
{ title: "Singapore", latitude: 1.2894, longitude: 103.85 },
{ title: "Manila", latitude: 14.579, longitude: 120.9726 },
{ title: "Hanoi", latitude: 21.0341, longitude: 105.8372 },
{ title: "Kuala Lumpur", latitude: 3.1502, longitude: 101.7077 },
{ title: "Washington D.C.", latitude: 38.8921, longitude: -77.0241 },
{ title: "Ottawa", latitude: 45.4235, longitude: -75.6979 },
{ title: "Ciudad de Mexico", latitude: 19.4271, longitude: -99.1276 },
{ title: "Brasilia", latitude: -15.7801, longitude: -47.9292 },
{ title: "Buenos Aires", latitude: -34.6118, longitude: -58.4173 },
{ title: "Santiago", latitude: -33.4691, longitude: -70.642 },
{ title: "Bogota", latitude: 4.6473, longitude: -74.0962 },
{ title: "Lima", latitude: -12.0931, longitude: -77.0465 },
{ title: "Cairo", latitude: 30.0571, longitude: 31.2272 },
{ title: "Nairobi", latitude: -1.2762, longitude: 36.7965 },
{ title: "Pretoria", latitude: -25.7463, longitude: 28.1876 },
{ title: "Algiers", latitude: 36.7755, longitude: 3.0597 },
{ title: "Abuja", latitude: 9.058, longitude: 7.4891 },
{ title: "Canberra", latitude: -35.2820, longitude: 149.1287 },
{ title: "Wellington", latitude: -41.2866, longitude: 174.7756 },
{ title: "Riyadh", latitude: 24.6748, longitude: 46.6977 },
{ title: "Teheran", latitude: 35.7061, longitude: 51.4358 },
{ title: "Baghdad", latitude: 33.3157, longitude: 44.3922 },
{ title: "Kabul", latitude: 34.5155, longitude: 69.1952 },
{ title: "Islamabad", latitude: 33.6751, longitude: 73.0946 }
];
for (var i = 0; i < cities.length; i++) {
pointSeries.data.push({
geometry: { type: "Point", coordinates: [cities[i].longitude, cities[i].latitude] },
title: cities[i].title
});
}
chart.appear(1000, 100);
});
</script>
<script src="../static/js/nav.js"></script>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-N414QWTXT4"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('consent', 'default', {
'ad_user_data': 'denied',
'ad_personalization': 'denied',
'ad_storage': 'denied',
'analytics_storage': 'denied',
'wait_for_update': 2000
});
gtag('js', new Date());
gtag('config', 'G-N414QWTXT4');
amcharts2.ready(function() {
amutils.registerConsent(function() {
function gtag(){dataLayer.push(arguments);}
gtag('consent', 'update', {
ad_user_data: 'granted',
ad_personalization: 'granted',
ad_storage: 'granted',
analytics_storage: 'granted'
});
});
});
</script>
<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a2f03f67f8fbec59',t:'MTc4NzM4NDYxOA=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body>
</html>
Sitemap
Кол-во: 0
XML-карта сайта для поисковиков
?
Sitemap.xml помогает поисковику быстрее находить и индексировать страницы. Особенно важен для крупных сайтов и новых страниц, на которые ещё нет входящих ссылок.
Robots.txt не содержит ссылку на карту сайта. Рекомендуется добавить карту сайта и указать ссылку на нее в robots.txt.
Внутренние ссылки
Кол-во: 9
Ссылки на другие страницы своего сайта
?
Внутренние ссылки распределяют ссылочный вес между страницами и помогают поисковику обходить сайт. Пустые анкоры и ссылки на запрещённые robots.txt страницы — типичные ошибки.
Внутренних ссылок на странице 9 оптимально.
Внутренние ссылки не запрещены к индексации в robots.txt.
Показать внутренние ссылки
| Url | Анкор | Состояние | Анализировать |
|---|---|---|---|
| /../ |
amCharts
|
|
Анализировать url |
| /../javascript-charts/ |
Products
|
|
Анализировать url |
| /../javascript-charts/ |
Charts
|
|
Анализировать url |
| /../javascript-maps/ |
Maps
|
|
Анализировать url |
| /../stock-chart/ |
Stock Chart
|
|
Анализировать url |
| /../gantt/ |
Gantt
|
|
Анализировать url |
| /../pro-services/ |
Pro Services
|
|
Анализировать url |
| /../ai/ |
amCharts & AI
|
|
Анализировать url |
| /../pro-services/ |
Talk to our team →
|
|
Анализировать url |
Внешние ссылки
Кол-во: 47
Ссылки на сторонние сайты
?
Исходящие внешние ссылки передают часть ссылочного веса на чужие сайты. Ссылки на авторитетные ресурсы безопасны; ссылки на мусорные сайты могут навредить репутации страницы.
Внешних ссылок на странице 47 слишком много. Спрячьте лишние ссылки в тег noindex или атрибут rel='nofollow'!
Показать внешние ссылки
| Url | Анкор | Анализировать |
|---|---|---|
| amcharts.com |
Demos
|
Анализировать url |
| amcharts.com |
Download
|
Анализировать url |
| amcharts.com |
Buy
|
Анализировать url |
| amcharts.com |
Support & Licenses
|
Анализировать url |
| amcharts.com |
Docs
|
Анализировать url |
| amcharts.com |
View Map Demos
<svg width="16" height="16" viewbox="0 0 16 16"><use href="#icon-arrow-sm"></use></svg>
|
Анализировать url |
| amcharts.com |
Read Docs
|
Анализировать url |
| amcharts.com |
Get it
|
Анализировать url |
| amcharts.com |
View Pricing
|
Анализировать url |
| amcharts.com |
Download
|
Анализировать url |
| dojo.amcharts.com |
DataViz Dojo
|
Анализировать url |
| github.com |
MCP Server <span>→</span>
|
Анализировать url |
| github.com |
AI Skill Files <span>→</span>
|
Анализировать url |
| amcharts.com |
Docs & API <span>→</span>
|
Анализировать url |
| amcharts.com |
CDN
|
Анализировать url |
| amcharts.com |
direct download
|
Анализировать url |
| amcharts.com |
Explore Demos
|
Анализировать url |
| amcharts.com |
View Pricing
|
Анализировать url |
| amcharts.com |
amCharts
|
Анализировать url |
| amcharts.com |
Accessibility Features
|
Анализировать url |
| amcharts.com |
About amCharts
|
Анализировать url |
| amcharts.com |
Partners
|
Анализировать url |
| amcharts.com |
Press Kit
|
Анализировать url |
| amcharts.com |
Getting support
|
Анализировать url |
| amcharts.com |
Subscribe to amNews
|
Анализировать url |
| amcharts.com |
Blog
|
Анализировать url |
| amcharts.com |
amCharts 5: Charts
|
Анализировать url |
| amcharts.com |
amCharts 5: Maps
|
Анализировать url |
| amcharts.com |
amCharts 5: Stock Chart
|
Анализировать url |
| amcharts.com |
amCharts 5: Gantt
|
Анализировать url |
| wordpress.org |
WordPress Plugin
|
Анализировать url |
| amcharts.com |
Version information
|
Анализировать url |
| amcharts.com |
3rd party software
|
Анализировать url |
| amcharts.com |
Online Map Editor
|
Анализировать url |
| visitedplaces.com |
Visited Countries Map
|
Анализировать url |
| visitedplaces.com |
Visited States Map
|
Анализировать url |
| amcharts.com |
Free SVG Maps
|
Анализировать url |
| amcharts.com |
More Online Tools
|
Анализировать url |
| dojo.amcharts.com |
DataViz Dojo
|
Анализировать url |
| amcharts.com |
Privacy Policy
|
Анализировать url |
| amcharts.com |
Terms & Conditions
|
Анализировать url |
| amcharts.com |
Support Center
|
Анализировать url |
| amcharts.com |
Reporting a vulnerability
|
Анализировать url |
| facebook.com |
<i class="icon icon-facebook" title="Facebook"></i>
|
|
| x.com |
<i class="icon icon-x" title="X (Twitter)"></i>
|
Анализировать url |
| bsky.app |
<i class="icon icon-bluesky" title="Bluesky"></i>
|
Анализировать url |
| stack.amcharts.com |
<i class="icon icon-substack" title="Substack"></i>
|
Анализировать url |
Конкуренты Готовность: 0%
Конкуренты в Яндексе
Кол-во: 0
Топ сайтов-конкурентов в Яндексе
?
Сайты, чаще всего появляющиеся в ТОПе Яндекса по запросам из семантического ядра этой страницы.
Мы не нашли у вас конкурентов в Яндексе. Сайт или очень молодой или плохо продвигается.
Конкурентов в ТОП-10 Яндекса не нашлось.
Конкуренты в Google
Кол-во: 0
Топ сайтов-конкурентов в Google
?
Сайты, чаще всего появляющиеся в ТОПе Google по запросам из семантического ядра этой страницы.
Конкуренты в Google тоже не найдены. Займитесь продвижением сайта!
Конкурентов в ТОП-10 Google не нашлось.
ЗоЗПП: права потребителей Готовность: 100%
Нарушения
Не выявлены
Признаков дистанционной продажи товаров (интернет-магазина) не обнаружено — требования ЗоЗПП о раскрытии информации продавца к сайту не применяются. Нарушений нет.
ФЗ-149: рекомендательные технологии Готовность: 100%
Нарушения
Не выявлены
Рекомендательные блоки («с этим покупают», «похожие товары» и т.п.) на сайте не обнаружены — требования ст. 10.7 ФЗ-149 к сайту не применяются. Нарушений нет.
ФЗ-38: реклама Готовность: 100%
Нарушения
Не выявлены
Рекламных тематик с обязательными оговорками (медицина, БАД, кредиты и займы, новостройки) на сайте не обнаружено. Нарушений нет.
ФЗ-436: защита детей Готовность: 100%
Нарушения
Не выявлены
Признаков информационной продукции (новости, видео, книги, игры, курсы) не обнаружено — обязательная возрастная маркировка по ФЗ-436 сайту не требуется. Нарушений нет.
Вердикт
Анализ сайта ammap.com, слабо оптимизирован на 64%. Для хорошей оптимизации и выхода на первые места в поиске требуется:
Исправьте ошибки индексации.
Поделитесь с друзьями: