Анализ сайта https://www.flowfestival.com/
Основное Готовность: 100%
Домен
flowfestival.com
Состояние доменного имени
?
Проверяем корректность доменного имени и наличие технических проблем на уровне домена.
Длина домена велика. Но если вы продвигаете запрос, входящий в название домена, то это хорошо.
Домен второго уровня идеален для продвижения.
Ответ сервера
200 Успешный ответ
HTTP-код ответа и цепочка редиректов
?
Код 200 — страница доступна. Коды 3xx — редиректы (цепочки замедляют загрузку и размывают ссылочный вес). Коды 4xx/5xx — ошибки, поисковик не сможет проиндексировать страницу.
Сервер настроен корректно.
Безопасность
Сайт безопасен
Использование HTTPS и SSL-сертификат
?
HTTPS — обязательный стандарт. Google и Яндекс отдают предпочтение защищённым сайтам. Отсутствие SSL или просроченный сертификат ведут к предупреждениям в браузере и снижению позиций.
Не настроен HSTS (Strict-Transport-Security) — рекомендуется включить.
На сайте работает защищенный протокол ssl и сайт открывается по https.
Ssl-сертификат действителен до 09.01.2027 2:59:59.
Поздравляем! Сайт не содержится в реестре РКН.
Кодировка
UTF-8
Кодировка символов страницы
?
Стандарт — UTF-8. Неправильная кодировка вызывает нечитаемые символы и мешает поисковику корректно распознать текст страницы.
Указана кодировка на странице UTF-8.
Язык
fi
Атрибут lang в HTML-теге
?
Атрибут lang (<html lang="ru">) сообщает поисковикам и браузерам, на каком языке написана страница. Помогает при ранжировании в региональном поиске.
Язык документа указан явно: fi.
Скорость загрузки
~0,48сек
Время отклика сервера (TTFB)
?
Time To First Byte — время до получения первого байта от сервера. Норма до 200 мс. Медленный отклик ухудшает пользовательский опыт и ранжирование: Яндекс и Google учитывают скорость страниц.
Скорость загрузки сайта 0,48сек оптимальна.
Объем документа
81Кб
Размер HTML-кода страницы
?
Слишком большой HTML замедляет парсинг браузером и сканирование поисковым роботом. Рекомендуется не более 200 Кб.
Объем html-документа 81Кб оптимален.
Структура html-документа корректна.
Ресурсы
Ресурсы: 7
Внешние ресурсы страницы (CSS, JS, изображения)
?
Количество и тип подключённых ресурсов влияют на скорость загрузки. Большое число запросов увеличивает время рендеринга страницы.
Кол-во файлов ресурсов 7 достаточно.
Показать полный список ресурсов
| Тип | Название | Значение |
|---|---|---|
| stylesheet | /styles/font.css | |
| stylesheet | /_astro/index.BXT2U_mr.css | |
| stylesheet | /_astro/_slug_.Bd25qH4T.css | |
| js | text/javascript | https://consent.cookiebot.com/uc.js |
| js | https://members-sdk.superstruct.services/sdk.js | |
| js | module | /_astro/MembersScripts.astro_astro_type_script_index_0_lang.BL113AwL.js |
| js | module | /_astro/ClientRouter.astro_astro_type_script_index_0_lang.CDGfc0hd.js |
Серверные заголовки
Кол-во: 8
HTTP-заголовки ответа сервера
?
Заголовки сервера передают браузеру и поисковику служебную информацию: кеширование, безопасность (CSP, HSTS), сжатие (gzip). Правильная настройка ускоряет загрузку и повышает защищённость.
Найдены серверные заголовки 8шт. Подробнее про серверные заголовки.
Показать полный список серверных заголовков
| Ключ | Значение |
|---|---|
| Server | AmazonS3 |
| Date | Fri, 21 Aug 2026 11:59:47 GMT |
| ETag | "32c946bbd0bb5940b034d7177f613705" |
| X-Cache | Hit from cloudfront |
| Via | 1.1 f9ed88582707ec58c61e5c95a41d4ada.cloudfront.net (CloudFront) |
| x-amz-cf-pop | ARN52-P1 |
| x-amz-cf-id | D4uzmi6lPk7eUWI6f_bqz0P1cxCzk7aB-IwxZzil9mQ9P7K4YhPK_A== |
| Age | 68199 |
CMS
Не определена
Система управления сайтом (движок)
?
CMS — это движок, на котором работает сайт (WordPress, 1C-Bitrix, Tilda и др.). Знание CMS помогает понять возможности SEO-оптимизации и подобрать подходящие инструменты. «Не определена» — вероятно, самописный сайт или нестандартная сборка.
CMS не определена. Вероятно, сайт самописный либо движок надёжно скрыт. Это не ошибка.
Веб-сервер
AmazonS3
Программное обеспечение сервера
?
Веб-сервер — это ПО, которое отдаёт страницы посетителям (nginx, Apache, IIS, LiteSpeed и др.). Определяется по серверным заголовкам ответа (Server, X-Powered-By и т.п.). «Не определён» — сервер намеренно скрывает эти заголовки, это нормальная практика безопасности.
В заголовке Server указано: AmazonS3.
Мета-теги Готовность: 48%
Title
Flow Festival - 14.-16.8.2026
Заголовок страницы в браузере и поисковой выдаче
?
Title — главный SEO-заголовок страницы. Влияет на CTR в поиске и ранжирование. Оптимальная длина: 50–70 символов. Ключевые слова — ближе к началу.
Необходимо увеличить число символов в title (текущее значение: 29, оптимально: от 40 до 45)
Дублей словоформ в title не найдено.
Description
Flow Festival on Helsingissä järjestettävä musiikki- ja kaupunkikulttuurifestivaali, jolla on myös laaja taideohjelma, sekä monipuolinen ja laadukas ravintolatarjonta.
Описание страницы в поисковой выдаче (сниппет)
?
Meta Description — текст под заголовком в выдаче. Напрямую на позиции не влияет, но влияет на CTR. Оптимальная длина: 120–160 символов.
Необходимо уменьшить число символов в description (текущее значение: 167, оптимально: от 120 до 130)
Keywords
Список ключевых слов страницы (устаревший тег)
?
Meta Keywords не учитывается Яндексом и Google для ранжирования с 2009–2012 годов. Заполнение не обязательно, но не вредит. Конкурент может использовать содержимое для анализа.
Установите мета-тег keywords!
Канонический Url
https://www.flowfestival.com/
Указывает поисковику основную версию страницы
?
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:title | Flow Festival - 14.-16.8.2026 |
| og:site_name | Flow Festival - 14.-16.8.2026 |
| og:type | website |
| og:description | Flow Festival on Helsingissä järjestettävä musiikki- ja kaupunkikulttuurifestivaali, jolla on myös laaja taideohjelma, sekä monipuolinen ja laadukas ravintolatarjonta. |
| og:url | https://www.flowfestival.com/ |
| og:image | https://www.flowfestival.com/assets/images/fb-share.jpg |
Все мета-теги
Кол-во: 14
Полный список мета-тегов страницы
?
Таблица всех meta-тегов, включая нестандартные. Позволяет найти опечатки, дубли и лишние теги.
Найдены мета-теги 14шт. Мета-теги не видимы для человека и предназначены для обмена информацией между веб-страницей и поисковыми системами, браузерами и другими веб-службами. С ними роботы 🤖 и устройства ведут себя более ожидаемо.
Показать полный список мета-тегов
| Тип | Название | Значение |
|---|---|---|
| name | viewport | width=device-width, initial-scale=1.0 |
| name | description | Flow Festival on Helsingissä järjestettävä musiikki- ja kaupunkikulttuurifestivaali, jolla on myös laaja taideohjelma, sekä monipuolinen ja laadukas ravintolatarjonta. |
| name | twitter:description | Flow Festival on Helsingissä järjestettävä musiikki- ja kaupunkikulttuurifestivaali, jolla on myös laaja taideohjelma, sekä monipuolinen ja laadukas ravintolatarjonta. |
| name | msapplication-TileColor | #ffffff |
| name | theme-color | #ffffff |
| name | facebook-domain-verification | 8xz4ossa5gzhaxl0iq086pspa4hzgd |
| name | astro-view-transitions-enabled | true |
| name | astro-view-transitions-fallback | animate |
| property | og:title | Flow Festival - 14.-16.8.2026 |
| property | og:site_name | Flow Festival - 14.-16.8.2026 |
| property | og:type | website |
| property | og:description | Flow Festival on Helsingissä järjestettävä musiikki- ja kaupunkikulttuurifestivaali, jolla on myös laaja taideohjelma, sekä monipuolinen ja laadukas ravintolatarjonta. |
| property | og:url | https://www.flowfestival.com/ |
| property | og:image | https://www.flowfestival.com/assets/images/fb-share.jpg |
Оптимизация Готовность: 60%
Структура
Ошибок нет
Семантические HTML-элементы страницы
?
Проверяет наличие основных структурных элементов: nav, header, footer, main. Корректная семантическая структура помогает поисковику понять архитектуру страницы.
Структура документа корректна (теги <html> и <body> присутствуют в одном экземпляре).
Контент
Есть ошибки
Объём и качество текстового содержимого
?
Анализирует объём полезного текста на странице. Слишком мало — страница может считаться малополезной. Слишком много — ухудшается читаемость и восприятие.
Абзацев с текстом 4 слишком мало. Добавьте больше абзацев с текстом (тег <p>)!
Среднее число слов в абзаце 3 слишком мало. Сделайте контент более читаемым!
Кол-во слов 495 не очень много. Добавьте побольше текста (хотя бы 800 слов)!
Слова из title 3 встречаются в тексте достаточно.
Кол-во знаков контента 3822 на странице оптимально.
Заголовки
Ошибок нет
Иерархия заголовков H1–H6
?
H1 должен быть один и содержать ключевой запрос. H2–H6 описывают подразделы. Пропуск уровней (H1 → H3) и несколько H1 — типичные ошибки, снижающие понятность страницы для поисковика.
На странице присутствуют заголовки <h2> 3. Это хорошо.
На странице присутствуют заголовки <h3> 27.
Тошнота
2,65
Насколько одно слово доминирует в тексте
?
Классическая тошнота = √(частота самого повторяющегося слова). Норма до 7–8: текст воспринимается естественно. Выше — поисковик может счесть страницу переспамленной.
Тошнота страницы в пределах нормы 3.
Академич. тошнота
643,64%
Насколько текст перенасыщен ключевыми словами
?
Академическая тошнота = (частота слова / общее количество слов) × 100%. Показывает долю конкретного слова в тексте. Норма 5–15%.
Академическая тошнота превышает норму 5-15%. Измените текст страницы!
Семантическое ядро
20
Наиболее часто встречающиеся слова на странице
?
Топ слов по частоте использования. Показывает, какие слова доминируют в тексте с точки зрения поисковика.
Контент страницы содержит осмысленный текст и слова.
Показать список слов
| Слово | Кол-во | Частота |
|---|---|---|
| festival | 7 | 1,41% |
| aikataulu | 5 | 1,01% |
| festivalin | 5 | 1,01% |
| ohjelma | 4 | 0,81% |
| uutiset | 3 | 0,61% |
| festivalille | 3 | 0,61% |
| perhesunnuntai | 2 | 0,40% |
| nordea | 2 | 0,40% |
| platinum | 2 | 0,40% |
| sustainable | 2 | 0,40% |
| yhteystiedot | 2 | 0,40% |
| [facebook] | 2 | 0,40% |
| [instagram] | 2 | 0,40% |
| [spotify] | 2 | 0,40% |
| [youtube] | 2 | 0,40% |
| [flickr] | 2 | 0,40% |
| [tiktok] | 2 | 0,40% |
| -liput | 2 | 0,40% |
| myynnissä | 2 | 0,40% |
| ravintolaohjelma | 2 | 0,40% |
Индексация Готовность: 30%
Индексирование
Ошибок нет
Разрешено ли индексирование страницы
?
Проверяет, не закрыта ли страница от индексации через robots.txt, meta robots или X-Robots-Tag. Страница, закрытая от индексации, не появится в поисковой выдаче.
Анкоров на странице 154 оптимально. Поисковые роботы обязательно проиндексируют сайт.
Robots.txt
Найден корректный robots.txt
Файл управления сканированием сайта роботами
?
Robots.txt указывает поисковым роботам, какие страницы сканировать, а какие — нет. Ошибки в файле могут случайно закрыть важные разделы от индексации.
Robots.txt настроен корректно. Размер файла: 29065 байт. Загружен за: 0сек.
Проверяемая страница не запрещена в robots.txt.
Robots.txt доступен по постоянному адресу
Показать содержимое robots.txt
<!DOCTYPE html><html lang="fi"> <head><meta charset="UTF-8"><title>404 – Page not found / Sivua ei löytynyt – Flow Festival 14.-16.8.2026</title><meta name="viewport" content="width=device-width, initial-scale=1.0"><style>@font-face{font-family:"Flow Foundation-b32cf328cb2e92f0";src:url("/_astro/fonts/1e41224181914633.woff2") format("woff2");font-display:swap;font-weight:400;font-style:normal;}@font-face{font-family:"Flow Foundation-b32cf328cb2e92f0 fallback: Arial";src:local("Arial");font-display:swap;font-weight:400;font-style:normal;size-adjust:76.3417%;ascent-override:98.2425%;descent-override:32.7475%;line-gap-override:0%;}:root{--font-flow-foundation:"Flow Foundation-b32cf328cb2e92f0","Flow Foundation-b32cf328cb2e92f0 fallback: Arial",sans-serif;}</style><link rel="preload" href="/_astro/fonts/1e41224181914633.woff2" as="font" type="font/woff2" crossorigin><style>@font-face{font-family:"Flow Text-41600862ab322ee5";src:url("/_astro/fonts/5e98d196342f392b.woff2") format("woff2");font-display:swap;font-weight:400;font-style:normal;}@font-face{font-family:"Flow Text-41600862ab322ee5 fallback: Arial";src:local("Arial");font-display:swap;font-weight:400;font-style:normal;size-adjust:107.1194%;ascent-override:70.0153%;descent-override:23.3384%;line-gap-override:0%;}:root{--font-flow-text:"Flow Text-41600862ab322ee5","Flow Text-41600862ab322ee5 fallback: Arial",sans-serif;}</style><link rel="preload" href="/_astro/fonts/5e98d196342f392b.woff2" as="font" type="font/woff2" crossorigin><style>@font-face{font-family:"Flow Poster Bold-2d5b1de259f774a4";src:url("/_astro/fonts/356abb84d19b5ffc.woff2") format("woff2");font-display:swap;font-weight:400;font-style:normal;}@font-face{font-family:"Flow Poster Bold-2d5b1de259f774a4 fallback: Arial";src:local("Arial");font-display:swap;font-weight:400;font-style:normal;size-adjust:102.0635%;ascent-override:93.0793%;descent-override:24.4945%;line-gap-override:4.8989%;}:root{--font-flow-poster:"Flow Poster Bold-2d5b1de259f774a4","Flow Poster Bold-2d5b1de259f774a4 fallback: Arial",sans-serif;}</style><style>@font-face{font-family:"Flow Headline-d921df2daf9764e7";src:url("/_astro/fonts/c0538828539aee78.woff2") format("woff2");font-display:swap;font-weight:400;font-style:normal;}@font-face{font-family:"Flow Headline-d921df2daf9764e7 fallback: Arial";src:local("Arial");font-display:swap;font-weight:400;font-style:normal;size-adjust:62.8697%;ascent-override:119.2944%;descent-override:39.7648%;line-gap-override:0%;}:root{--font-flow-headline:"Flow Headline-d921df2daf9764e7","Flow Headline-d921df2daf9764e7 fallback: Arial",sans-serif;}</style><style>@font-face{font-family:"Flow Compressed-7a4331d5293587db";src:url("/_astro/fonts/ef4a6bbf597091af.woff2") format("woff2");font-display:swap;font-weight:400;font-style:normal;}@font-face{font-family:"Flow Compressed-7a4331d5293587db fallback: Arial";src:local("Arial");font-display:swap;font-weight:400;font-style:normal;size-adjust:53.6692%;ascent-override:139.7449%;descent-override:46.5816%;line-gap-override:0%;}:root{--font-flow-compressed:"Flow Compressed-7a4331d5293587db","Flow Compressed-7a4331d5293587db fallback: Arial",sans-serif;}</style><style>@font-face{font-family:"Flow Text Bold-d3ff514a203b78ef";src:url("/_astro/fonts/1b51ce9dc6e0de44.otf") format("opentype");font-display:swap;font-weight:400;font-style:normal;}@font-face{font-family:"Flow Text Bold-d3ff514a203b78ef fallback: Arial";src:local("Arial");font-display:swap;font-weight:400;font-style:normal;size-adjust:108.793%;ascent-override:68.9383%;descent-override:22.9794%;line-gap-override:0%;}:root{--font-flow-text-bold:"Flow Text Bold-d3ff514a203b78ef","Flow Text Bold-d3ff514a203b78ef fallback: Arial",sans-serif;}</style><style>@font-face{font-family:"Flow Text Italic-76edd3f0bf597ed7";src:url("/_astro/fonts/7f6369ca2ca67970.woff2") format("woff2");font-display:swap;font-weight:400;font-style:italic;}@font-face{font-family:"Flow Text Italic-76edd3f0bf597ed7 fallback: Arial";src:local("Arial");font-display:swap;font-weight:400;font-style:italic;size-adjust:118.4386%;ascent-override:63.324%;descent-override:21.108%;line-gap-override:0%;}:root{--font-flow-text-italic:"Flow Text Italic-76edd3f0bf597ed7","Flow Text Italic-76edd3f0bf597ed7 fallback: Arial",sans-serif;}</style><meta property="og:title" content="Flow Festival - 14.-16.8.2026"><meta property="og:site_name" content="Flow Festival - 14.-16.8.2026"><meta property="og:type" content="website"><link rel="stylesheet" href="/styles/font.css"><meta name="description" content="Flow Festival on Helsingissä järjestettävä musiikki- ja kaupunkikulttuurifestivaali, jolla on myös laaja taideohjelma, sekä monipuolinen ja laadukas ravintolatarjonta."><meta property="og:description" content="Flow Festival on Helsingissä järjestettävä musiikki- ja kaupunkikulttuurifestivaali, jolla on myös laaja taideohjelma, sekä monipuolinen ja laadukas ravintolatarjonta."><meta name="twitter:description" content="Flow Festival on Helsingissä järjestettävä musiikki- ja kaupunkikulttuurifestivaali, jolla on myös laaja taideohjelma, sekä monipuolinen ja laadukas ravintolatarjonta."><link rel="canonical" href="https://www.flowfestival.com/"><meta property="og:url" content="https://www.flowfestival.com/"><link rel="alternate" hreflang="fi" href="https://www.flowfestival.com/"><link rel="alternate" hreflang="en" href="https://www.flowfestival.com/en/"><meta property="og:image" content="https://www.flowfestival.com/assets/images/fb-share.jpg"><meta http-equiv="X-UA-Compatible" content="IE=edge"><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><meta name="msapplication-TileColor" content="#ffffff"><meta name="theme-color" content="#ffffff"><meta name="facebook-domain-verification" content="8xz4ossa5gzhaxl0iq086pspa4hzgd"><script>(function(){const lang = "fi";
const brand = "flowfestival";
const apiBase = "https://members-api.superstruct.services/api";
window.flowLang = lang;
window.flowMembers = {
brand,
apiBase,
enabled: true,
accessToken: null,
};
})();</script> <script src="https://members-sdk.superstruct.services/sdk.js" defer></script> <script type="module" src="/_astro/MembersScripts.astro_astro_type_script_index_0_lang.BL113AwL.js"></script><meta name="astro-view-transitions-enabled" content="true"><meta name="astro-view-transitions-fallback" content="animate"><script type="module" src="/_astro/ClientRouter.astro_astro_type_script_index_0_lang.CDGfc0hd.js"></script><style>h2[data-astro-cid-zetdm5md]{text-align:center;font-size:3rem}
</style>
<link rel="stylesheet" href="/_astro/_slug_.Bd25qH4T.css"><style>[data-astro-transition-scope="astro-q7qvgcmy-1"] { view-transition-name: astro-q7qvgcmy-1; }@layer astro { ::view-transition-old(astro-q7qvgcmy-1) {
animation-duration: 0.2s;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }::view-transition-new(astro-q7qvgcmy-1) {
animation-duration: 0.2s;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back]::view-transition-old(astro-q7qvgcmy-1) {
animation-duration: 0.2s;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back]::view-transition-new(astro-q7qvgcmy-1) {
animation-duration: 0.2s;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; } }[data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-q7qvgcmy-1"],
[data-astro-transition-fallback="old"][data-astro-transition-scope="astro-q7qvgcmy-1"] {
animation-duration: 0.2s;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-q7qvgcmy-1"],
[data-astro-transition-fallback="new"][data-astro-transition-scope="astro-q7qvgcmy-1"] {
animation-duration: 0.2s;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back][data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-q7qvgcmy-1"],
[data-astro-transition=back][data-astro-transition-fallback="old"][data-astro-transition-scope="astro-q7qvgcmy-1"] {
animation-duration: 0.2s;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back][data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-q7qvgcmy-1"],
[data-astro-transition=back][data-astro-transition-fallback="new"][data-astro-transition-scope="astro-q7qvgcmy-1"] {
animation-duration: 0.2s;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }</style></head> <body data-astro-transition-scope="astro-q7qvgcmy-1"> <script data-cookieconsent="ignore">
(() => {
/*
Shared artist lineup state helper.
Keep artist filter state in the URL (`date`, `venue`, `view`) and keep
lineup scroll position in `sessionStorage`.
Loaded once from `BaseLayout`, then exposes `window.flowArtistState` for
other inline scripts. It also watches URL changes so subscribers can
resync links/UI after `pushState`, `replaceState`, back/forward, or Astro
page loads.
- `readStateParams()` / `writeStateParams()` for lineup filter state
- `copyStateParamsToUrl(url)` when building artist/back/language links
- `saveScroll()` before leaving the lineup, `restoreScroll()` when returning
- `onUrlChange(fn)` to react when the current URL changes
*/
if (window.flowArtistState && window.flowFoodState && window.flowScheduleState)
return;
const ARTIST_STATE_PARAMS = ["date", "venue", "view"];
const ARTIST_SCROLL_PREFIX = "flow-artist-lineup-scroll:";
const FOOD_STATE_PARAMS = ["food"];
const FOOD_SCROLL_PREFIX = "flow-food-list-scroll:";
const SCHEDULE_STATE_PARAMS = ["day"];
const SCHEDULE_SCROLL_PREFIX = "flow-schedule-scroll:";
const urlListeners = new Set();
function getCurrentUrl() {
return new URL(window.location.href);
}
function normalizePathname(pathname) {
if (!pathname || pathname === "/") return "/";
const hasTrailingSlash = pathname.endsWith("/");
const lastSegment = pathname.split("/").filter(Boolean).pop() || "";
const looksLikeFile = lastSegment.includes(".");
if (hasTrailingSlash || looksLikeFile) return pathname;
return `${pathname}/`;
}
function getRelativeUrl(url) {
return `${normalizePathname(url.pathname)}${url.search}${url.hash}`;
}
function copyParamsToUrl(params, targetUrl, source = getCurrentUrl()) {
const sourceParams =
source instanceof URL ? source.searchParams : source;
params.forEach((param) => {
const value = sourceParams.get(param);
if (value) {
targetUrl.searchParams.set(param, value);
} else {
targetUrl.searchParams.delete(param);
}
});
return targetUrl;
}
function copyStateParamsToUrl(targetUrl, source = getCurrentUrl()) {
return copyParamsToUrl(ARTIST_STATE_PARAMS, targetUrl, source);
}
function copyFoodStateParamsToUrl(targetUrl, source = getCurrentUrl()) {
return copyParamsToUrl(FOOD_STATE_PARAMS, targetUrl, source);
}
function copyScheduleStateParamsToUrl(targetUrl, source = getCurrentUrl()) {
return copyParamsToUrl(SCHEDULE_STATE_PARAMS, targetUrl, source);
}
function readStateParams(source = getCurrentUrl()) {
const sourceParams =
source instanceof URL ? source.searchParams : source;
return {
date: sourceParams.get("date") || "all",
venue: sourceParams.get("venue") || "all",
view: sourceParams.get("view") === "list" ? "list" : "cards",
};
}
function writeStateParams(nextState, targetUrl = getCurrentUrl()) {
const url =
targetUrl instanceof URL
? new URL(targetUrl.href)
: new URL(String(targetUrl), window.location.origin);
const state = {
date: nextState?.date || "all",
venue: nextState?.venue || "all",
view: nextState?.view === "list" ? "list" : "cards",
};
ARTIST_STATE_PARAMS.forEach((param) => {
const value = state[param];
const defaultValue = param === "view" ? "cards" : "all";
if (value === defaultValue) {
url.searchParams.delete(param);
} else {
url.searchParams.set(param, value);
}
});
return url;
}
function readFoodStateParams(source = getCurrentUrl()) {
const sourceParams =
source instanceof URL ? source.searchParams : source;
const rawValue = sourceParams.get("food") || "";
return {
food: rawValue
.split(",")
.map((value) => value.trim())
.filter(Boolean),
};
}
function writeFoodStateParams(nextState, targetUrl = getCurrentUrl()) {
const url =
targetUrl instanceof URL
? new URL(targetUrl.href)
: new URL(String(targetUrl), window.location.origin);
const values = Array.isArray(nextState?.food)
? nextState.food.map((value) => String(value).trim()).filter(Boolean)
: [];
if (values.length === 0) {
url.searchParams.delete("food");
} else {
url.searchParams.set("food", values.join(","));
}
return url;
}
function readScheduleStateParams(source = getCurrentUrl()) {
const sourceParams =
source instanceof URL ? source.searchParams : source;
return { day: sourceParams.get("day") || "all" };
}
function writeScheduleStateParams(nextState, targetUrl = getCurrentUrl()) {
const url =
targetUrl instanceof URL
? new URL(targetUrl.href)
: new URL(String(targetUrl), window.location.origin);
const day = nextState?.day || "all";
if (day === "all") {
url.searchParams.delete("day");
} else {
url.searchParams.set("day", day);
}
return url;
}
function getParentPath(pathname = window.location.pathname) {
const parts = pathname.replace(/\/+$/, "").split("/").filter(Boolean);
if (parts.length <= 1) return "/";
return `/${parts.slice(0, -1).join("/")}`;
}
function getScrollKey(prefix, relativeUrl = getRelativeUrl(getCurrentUrl())) {
return `${prefix}${relativeUrl}`;
}
function saveScrollWithPrefix(prefix, relativeUrl = getRelativeUrl(getCurrentUrl())) {
try {
sessionStorage.setItem(
getScrollKey(prefix, relativeUrl),
JSON.stringify({ scrollY: window.scrollY }),
);
} catch {
// Ignore storage failures.
}
}
function restoreScrollWithPrefix(prefix, relativeUrl = getRelativeUrl(getCurrentUrl())) {
try {
const key = getScrollKey(prefix, relativeUrl);
const rawState = sessionStorage.getItem(key);
if (!rawState) return false;
const state = JSON.parse(rawState);
if (typeof state?.scrollY !== "number") return false;
sessionStorage.removeItem(key);
requestAnimationFrame(() => {
requestAnimationFrame(() => {
window.scrollTo({ top: state.scrollY, behavior: "auto" });
});
});
return true;
} catch {
return false;
}
}
function saveScroll(relativeUrl = getRelativeUrl(getCurrentUrl())) {
saveScrollWithPrefix(ARTIST_SCROLL_PREFIX, relativeUrl);
}
function restoreScroll(relativeUrl = getRelativeUrl(getCurrentUrl())) {
return restoreScrollWithPrefix(ARTIST_SCROLL_PREFIX, relativeUrl);
}
function saveFoodScroll(relativeUrl = getRelativeUrl(getCurrentUrl())) {
saveScrollWithPrefix(FOOD_SCROLL_PREFIX, relativeUrl);
}
function restoreFoodScroll(relativeUrl = getRelativeUrl(getCurrentUrl())) {
return restoreScrollWithPrefix(FOOD_SCROLL_PREFIX, relativeUrl);
}
function saveScheduleScroll(relativeUrl = getRelativeUrl(getCurrentUrl())) {
saveScrollWithPrefix(SCHEDULE_SCROLL_PREFIX, relativeUrl);
}
function restoreScheduleScroll(relativeUrl = getRelativeUrl(getCurrentUrl())) {
return restoreScrollWithPrefix(SCHEDULE_SCROLL_PREFIX, relativeUrl);
}
function notifyUrlChange() {
urlListeners.forEach((listener) => {
try {
listener();
} catch (error) {
console.error("flowArtistState url listener failed", error);
}
});
}
function onUrlChange(listener) {
urlListeners.add(listener);
return () => urlListeners.delete(listener);
}
if (!window.__flowArtistStateUrlBound) {
window.__flowArtistStateUrlBound = true;
const originalPushState = history.pushState.bind(history);
history.pushState = function (...args) {
const result = originalPushState(...args);
notifyUrlChange();
return result;
};
const originalReplaceState = history.replaceState.bind(history);
history.replaceState = function (...args) {
const result = originalReplaceState(...args);
notifyUrlChange();
return result;
};
window.addEventListener("popstate", notifyUrlChange);
window.addEventListener("hashchange", notifyUrlChange);
document.addEventListener("astro:page-load", notifyUrlChange);
}
window.flowArtistState = {
params: [...ARTIST_STATE_PARAMS],
getCurrentUrl,
getRelativeUrl,
copyStateParamsToUrl,
readStateParams,
writeStateParams,
getParentPath,
saveScroll,
restoreScroll,
onUrlChange,
notifyUrlChange,
};
window.flowFoodState = {
params: [...FOOD_STATE_PARAMS],
getCurrentUrl,
getRelativeUrl,
copyStateParamsToUrl: copyFoodStateParamsToUrl,
readStateParams: readFoodStateParams,
writeStateParams: writeFoodStateParams,
getParentPath,
saveScroll: saveFoodScroll,
restoreScroll: restoreFoodScroll,
onUrlChange,
notifyUrlChange,
};
window.flowScheduleState = {
params: [...SCHEDULE_STATE_PARAMS],
getCurrentUrl,
getRelativeUrl,
copyStateParamsToUrl: copyScheduleStateParamsToUrl,
readStateParams: readScheduleStateParams,
writeStateParams: writeScheduleStateParams,
getParentPath,
saveScroll: saveScheduleScroll,
restoreScroll: restoreScheduleScroll,
onUrlChange,
notifyUrlChange,
};
})();
</script> <div id="members-sdk-panel" hidden data-astro-transition-persist="astro-4qoz46n5-2"></div> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-TSK5X9F" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <header> <nav> <a href="/" class="header-svg-wrapper"> <img src="/assets/images/iso-logo-pvm.svg" alt="Flow Festival 2026"> </a> <div class="tabs-nav"> <nav> <ul> <li> <a href="https://shop.flowfestival.com/fi/flow-festival-2027/" target="_blank"> Liput </a> </li> <li> <a href="/info/info-faq"> Info </a> </li><li> <a href="/aikataulu"> Aikataulu </a> </li> </ul> </nav> </div> <div class="lang-and-burger"> <ul class="header-lang-switcher"> <li class="selected-lang"> <a href="/" data-lang-switcher-link data-base-href="/" data-astro-reload>FI</a> </li> <li class> <a href="/en/" data-lang-switcher-link data-base-href="/en/" data-astro-reload>
EN
</a> </li> <li> <a href="/selkokieli">Selkokieli</a> </li> </ul> <script data-cookieconsent="ignore">
function syncLanguageSwitcherLinks() {
const artistState = window.flowArtistState;
if (!artistState) return;
const { hash, origin } = window.location;
document.querySelectorAll("[data-lang-switcher-link]").forEach((link) => {
if (!(link instanceof HTMLAnchorElement)) return;
const baseHref = link.dataset.baseHref || link.getAttribute("href");
if (!baseHref) return;
const url = new URL(baseHref, origin);
artistState.copyStateParamsToUrl(url);
url.hash = hash;
link.href = artistState.getRelativeUrl(url);
});
}
if (!window.__languageSwitcherSyncBound && window.flowArtistState) {
window.__languageSwitcherSyncBound = true;
window.flowArtistState.onUrlChange(syncLanguageSwitcherLinks);
}
syncLanguageSwitcherLinks();
</script> <!-- The toggle button --><button popovertarget="main-menu" class="menu-button" aria-label="Toggle menu"> <svg class="menu-icon" viewBox="0 0 24 24" width="24" height="24" aria-hidden="true"> <line class="menu-icon-line menu-icon-line-top" x1="3" y1="3" x2="21" y2="3"></line> <line class="menu-icon-line menu-icon-line-middle" x1="3" y1="12" x2="21" y2="12"></line> <line class="menu-icon-line menu-icon-line-bottom" x1="3" y1="21" x2="21" y2="21"></line> </svg> </button> <!-- The menu popover --> <nav id="main-menu" popover class="menu-popover"> <div class="menu-title"> <a href="/" class="header-svg-wrapper"> <img src="/assets/images/iso-logo-pvm.svg" alt="Flow Festival 2026"> </a> <button class="menu-close-button" popovertarget="main-menu" popovertargetaction="hide"> <span>X</span> </button> </div> <ul> <li> <a href="https://shop.flowfestival.com/fi/flow-festival-2027/" target="_blank"> Liput </a> </li> <li> <div tabindex="0" class="summary"> <span>Ohjelma</span> <img src="/assets/images/arrow_up_down_thick.svg" alt="" aria-hidden="true" class="menu-summary-icon"> </div> <div class="details"> <ul> <li> <a href="/ohjelma/musiikki"> Musiikki </a> </li><li> <a href="/ohjelma/talks"> Talks </a> </li><li> <a href="/ohjelma/taide"> Taide </a> </li><li> <a href="/ohjelma/perhesunnuntai"> Perhesunnuntai </a> </li> </ul> </div> </li><li> <a href="/aikataulu">AIKATAULU</a> </li><li> <a href="/syo-juo">Syö & Juo</a> </li><li> <div tabindex="0" class="summary"> <span>Kävijäinfo</span> <img src="/assets/images/arrow_up_down_thick.svg" alt="" aria-hidden="true" class="menu-summary-icon"> </div> <div class="details"> <ul> <li> <a href="/info/info-faq"> Info / FAQ </a> </li><li> <a href="/info/esteettomyys"> Esteettömyys </a> </li><li> <a href="/info/rannekkeenvaihto"> Rannekkeenvaihto </a> </li><li> <a href="/info/kartta-festivaalialue"> Kartta & festivaalialue </a> </li><li> <a href="/info/saapuminen"> Saapuminen </a> </li><li> <a href="/info/helsinki-opas"> Helsinki-opas </a> </li><li> <a href="/info/flow-festival-app"> Flow Festival App </a> </li><li> <a href="/info/nordea-platinum-area"> Nordea Platinum Area </a> </li><li> <a href="/info/private-bazaar"> Private Bazaar </a> </li> </ul> </div> </li><li> <a href="/kumppaniaktivoinnit">Kumppaniaktivoinnit</a> </li><li> <div tabindex="0" class="summary"> <span>Flow Festival</span> <img src="/assets/images/arrow_up_down_thick.svg" alt="" aria-hidden="true" class="menu-summary-icon"> </div> <div class="details"> <ul> <li> <a href="/flow-festival/meista"> Meistä </a> </li><li> <a href="/flow-festival/sustainable-flow"> Sustainable Flow </a> </li><li> <a href="/flow-festival/yhteystiedot"> Yhteystiedot </a> </li><li> <a href="/flow-festival/kumppanit"> Kumppanit </a> </li><li> <a href="/flow-festival/media"> Media </a> </li><li> <a href="/flow-festival/historia"> Historia </a> </li> </ul> </div> </li><li> <div tabindex="0" class="summary"> <span>Uutiset</span> <img src="/assets/images/arrow_up_down_thick.svg" alt="" aria-hidden="true" class="menu-summary-icon"> </div> <div class="details"> <ul> <li> <a href="/uutiset/lue-uusimmat"> Lue uusimmat </a> </li><li> <a href="/uutiset/uutiskirje"> Uutiskirje </a> </li><li> <a href="/uutiset/artikkelit"> Artikkelit </a> </li> </ul> </div> </li> </ul> <ul class="external-links"> <li class="logo-font-icon"> <a href="https://www.facebook.com/FlowFestival" target="_blank" rel="noopener noreferrer">
[FACEBOOK]
</a> </li><li class="logo-font-icon"> <a href="http://instagram.com/flowfestivalhelsinki" target="_blank" rel="noopener noreferrer">
[INSTAGRAM]
</a> </li><li class="logo-font-icon"> <a href="https://play.spotify.com/user/flowfestival" target="_blank" rel="noopener noreferrer">
[SPOTIFY]
</a> </li><li class="logo-font-icon"> <a href="https://www.youtube.com/user/flowfestival" target="_blank" rel="noopener noreferrer">
[YOUTUBE]
</a> </li><li class="logo-font-icon"> <a href="https://www.flickr.com/photos/flowfestival" target="_blank" rel="noopener noreferrer">
[FLICKR]
</a> </li><li class="logo-font-icon"> <a href="https://www.tiktok.com/@flowfestival" target="_blank" rel="noopener noreferrer">
[TIKTOK]
</a> </li> </ul> </nav> <script type="module">
document.addEventListener("astro:page-load", () => {
const menu = document.getElementById("main-menu");
menu.addEventListener("keyup", function (event) {
if (event.key === "Enter") {
const el = event.target;
if (el.classList[0] === "summary") {
toggleSubMenu(el);
}
}
});
menu.addEventListener("click", function (event) {
const el = event.target.closest(".summary");
if (el) {
toggleSubMenu(el);
}
});
const toggleSubMenu = (el) => {
const nextDetails = el.nextElementSibling;
if (el.classList.contains("open")) {
el.classList.remove("open");
nextDetails.classList.remove("open");
} else {
el.classList.add("open");
nextDetails.classList.add("open");
}
};
});
</script> </div> </nav> </header> <main data-astro-cid-zetdm5md> <h1 data-astro-cid-zetdm5md>404</h1> <h2 data-astro-cid-zetdm5md>Something went wrong / Jokin meni pieleen</h2> <h2 data-astro-cid-zetdm5md>Page not found / Sivua ei löytynyt</h2> </main> <footer> <section class="footer-contact"> <section class="footer-links"> <ul> <li> <a href="/flow-festival/yhteystiedot"> Yhteystiedot </a> </li><li> <a href="/flow-festival/media"> Media </a> </li> </ul> </section> <section class="footer-address"> <p>Flow Festival Ltd.</p><p>Kaikukatu 2 C</p><p>00530 Helsinki Finland</p> </section> </section> <section class="footer-main"> <h2>FLOW FESTIVAL® HELSINKI 14.-16.8.2026</h2> <section class="footer-socials"> <ul> <li class="logo-font-icon"> <a href="https://www.facebook.com/FlowFestival" target="_blank" rel="noopener noreferrer">
[FACEBOOK]
</a> </li><li class="logo-font-icon"> <a href="http://instagram.com/flowfestivalhelsinki" target="_blank" rel="noopener noreferrer">
[INSTAGRAM]
</a> </li><li class="logo-font-icon"> <a href="https://play.spotify.com/user/flowfestival" target="_blank" rel="noopener noreferrer">
[SPOTIFY]
</a> </li><li class="logo-font-icon"> <a href="https://www.youtube.com/user/flowfestival" target="_blank" rel="noopener noreferrer">
[YOUTUBE]
</a> </li><li class="logo-font-icon"> <a href="https://www.flickr.com/photos/flowfestival" target="_blank" rel="noopener noreferrer">
[FLICKR]
</a> </li><li class="logo-font-icon"> <a href="https://www.tiktok.com/@flowfestival" target="_blank" rel="noopener noreferrer">
[TIKTOK]
</a> </li> </ul> </section> </section> <section class="footer-info"> <ul> <li> <a href="/tietosuojaseloste"> Tietosuojaseloste </a> </li><li> <a href="/sivuston-evasteet"> Sivuston evästeet </a> </li><li> <a href="/yleiset-ehdot"> Yleiset ehdot </a> </li> </ul> <p class="footer-final-text">Pidätämme oikeuden muutoksiin.</p> </section> </footer> </body></html> <script>
const path = window.location.pathname.replace(/\/$/, "");
if (path.includes("/en/artists/")) {
const url = path.replace("/en/artists/", "/en/program/music/");
location.href = url;
} else if (path.includes("/artists/")) {
const url = path.replace("/artists/", "/ohjelma/musiikki/");
location.href = url;
} else if (
path.includes("/en/program/") &&
!path.includes("/en/program/music/") &&
!path.includes("/en/program/arts/") &&
!path.includes("/en/program/talks/")
) {
const url = path.replace("/en/program/", "/en/program/music/");
location.href = url;
} else if (
path.includes("/ohjelma/") &&
!path.includes("/ohjelma/musiikki/") &&
!path.includes("/ohjelma/taide/") &&
!path.includes("/ohjelma/talks/")
) {
const url = path.replace("/ohjelma/", "/ohjelma/musiikki/");
location.href = url;
}
</script>
Sitemap
Кол-во: 0
XML-карта сайта для поисковиков
?
Sitemap.xml помогает поисковику быстрее находить и индексировать страницы. Особенно важен для крупных сайтов и новых страниц, на которые ещё нет входящих ссылок.
Robots.txt не содержит ссылку на карту сайта. Рекомендуется добавить карту сайта и указать ссылку на нее в robots.txt.
Внутренние ссылки
Кол-во: 63
Ссылки на другие страницы своего сайта
?
Внутренние ссылки распределяют ссылочный вес между страницами и помогают поисковику обходить сайт. Пустые анкоры и ссылки на запрещённые robots.txt страницы — типичные ошибки.
Внутренних ссылок на странице 63 оптимально.
Внутренние ссылки не запрещены к индексации в robots.txt.
На странице присутствуют изображения 49.
Показать внутренние ссылки
| Url | Анкор | Состояние | Анализировать |
|---|---|---|---|
| /info/info-faq |
Info
|
|
Анализировать url |
| /aikataulu |
Aikataulu
|
|
Анализировать url |
| / |
FI
|
|
Анализировать url |
| /en/ |
EN
|
|
Анализировать url |
| /selkokieli |
Selkokieli
|
|
Анализировать url |
| /ohjelma/musiikki |
Musiikki
|
|
Анализировать url |
| /ohjelma/talks |
Talks
|
|
Анализировать url |
| /ohjelma/taide |
Taide
|
|
Анализировать url |
| /ohjelma/perhesunnuntai |
Perhesunnuntai
|
|
Анализировать url |
| /aikataulu |
AIKATAULU
|
|
Анализировать url |
| /syo-juo |
Syö & Juo
|
|
Анализировать url |
| /info/info-faq |
Info / FAQ
|
|
Анализировать url |
| /info/esteettomyys |
Esteettömyys
|
|
Анализировать url |
| /info/rannekkeenvaihto |
Rannekkeenvaihto
|
|
Анализировать url |
| /info/kartta-festivaalialue |
Kartta & festivaalialue
|
|
Анализировать url |
| /info/saapuminen |
Saapuminen
|
|
Анализировать url |
| /info/helsinki-opas |
Helsinki-opas
|
|
Анализировать url |
| /info/flow-festival-app |
Flow Festival App
|
|
Анализировать url |
| /info/nordea-platinum-area |
Nordea Platinum Area
|
|
Анализировать url |
| /info/private-bazaar |
Private Bazaar
|
|
Анализировать url |
| /kumppaniaktivoinnit |
Kumppaniaktivoinnit
|
|
Анализировать url |
| /flow-festival/meista |
Meistä
|
|
Анализировать url |
| /flow-festival/sustainable-flow |
Sustainable Flow
|
|
Анализировать url |
| /flow-festival/yhteystiedot |
Yhteystiedot
|
|
Анализировать url |
| /flow-festival/kumppanit |
Kumppanit
|
|
Анализировать url |
| /flow-festival/media |
Media
|
|
Анализировать url |
| /flow-festival/historia |
Historia
|
|
Анализировать url |
| /uutiset/lue-uusimmat |
Lue uusimmat
|
|
Анализировать url |
| /uutiset/uutiskirje |
Uutiskirje
|
|
Анализировать url |
| /uutiset/artikkelit |
Artikkelit
|
|
Анализировать url |
| /info/info-faq |
Info
|
|
Анализировать url |
| /aikataulu |
Aikataulu
|
|
Анализировать url |
| /ohjelma/musiikki/florence-the-machine |
Florence + The Machine
|
|
Анализировать url |
| /ohjelma/musiikki/zara-larsson |
Zara Larsson
|
|
Анализировать url |
| /ohjelma/musiikki/nick-cave-the-bad-seeds |
Nick Cave & the Bad Seeds
|
|
Анализировать url |
| /ohjelma/musiikki/sombr |
SOMBR
|
|
Анализировать url |
| /ohjelma/musiikki/turnstile |
Turnstile
|
|
Анализировать url |
| /ohjelma/musiikki/marina |
MARINA
|
|
Анализировать url |
| /ohjelma/musiikki/disclosure-dj-set |
Disclosure (DJ set)
|
|
Анализировать url |
| /ohjelma/musiikki/clipse |
Clipse
|
|
Анализировать url |
| /ohjelma/musiikki/lykke-li |
Lykke Li
|
|
Анализировать url |
| /ohjelma/musiikki/geese |
Geese
|
|
Анализировать url |
| /ohjelma/musiikki/oklou |
Oklou
|
|
Анализировать url |
| /ohjelma/musiikki/cabaret-voltaire |
Cabaret Voltaire
|
|
Анализировать url |
| /ohjelma/musiikki/lambrini-girls |
Lambrini Girls
|
|
Анализировать url |
| /ohjelma/musiikki/nu-genea-live-band |
Nu Genea Live Band
|
|
Анализировать url |
| /ohjelma/musiikki/kettama |
Kettama
|
|
Анализировать url |
| /ohjelma/musiikki/honey-dijon |
Honey Dijon
|
|
Анализировать url |
| /ohjelma/musiikki/dina-ogon |
Dina Ögon
|
|
Анализировать url |
| /ohjelma/musiikki/ibe |
ibe
|
|
Анализировать url |
| /ohjelma/musiikki/olga |
Olga
|
|
Анализировать url |
| /ohjelma/musiikki/vesta |
Vesta
|
|
Анализировать url |
| /ohjelma/musiikki/j-karjalainen |
J. Karjalainen
|
|
Анализировать url |
| /ohjelma/musiikki/arppa-8-pack |
Arppa 8-pack
|
|
Анализировать url |
| /ohjelma/musiikki/ares |
Ares
|
|
Анализировать url |
| /ohjelma/musiikki/louna0nline |
Louna0nline
|
|
Анализировать url |
| /ohjelma/musiikki |
Katso lisää
|
|
Анализировать url |
| /uutiset/lue-uusimmat |
Uutisarkisto
|
|
Анализировать url |
| /flow-festival/yhteystiedot |
Yhteystiedot
|
|
Анализировать url |
| /flow-festival/media |
Media
|
|
Анализировать url |
| /tietosuojaseloste |
Tietosuojaseloste
|
|
Анализировать url |
| /sivuston-evasteet |
Sivuston evästeet
|
|
Анализировать url |
| /yleiset-ehdot |
Yleiset ehdot
|
|
Анализировать url |
Внешние ссылки
Кол-во: 39
Ссылки на сторонние сайты
?
Исходящие внешние ссылки передают часть ссылочного веса на чужие сайты. Ссылки на авторитетные ресурсы безопасны; ссылки на мусорные сайты могут навредить репутации страницы.
Внешних ссылок на странице 39 слишком много. Спрячьте лишние ссылки в тег noindex или атрибут rel='nofollow'!
Показать внешние ссылки
| Url | Анкор | Анализировать |
|---|---|---|
| shop.flowfestival.com |
Liput
|
Анализировать url |
| shop.flowfestival.com |
Liput
|
Анализировать url |
| facebook.com |
[FACEBOOK]
|
|
| instagram.com |
[INSTAGRAM]
|
|
| play.spotify.com |
[SPOTIFY]
|
Анализировать url |
| youtube.com |
[YOUTUBE]
|
Анализировать url |
| flickr.com |
[FLICKR]
|
Анализировать url |
| tiktok.com |
[TIKTOK]
|
|
| shop.flowfestival.com |
Liput
|
Анализировать url |
| shop.flowfestival.com |
LIPUT
|
Анализировать url |
| flowfestival.com |
LUE LISÄÄ
|
Анализировать url |
| flowfestival.com |
AIKATAULU
|
Анализировать url |
| flowfestival.com |
LUE LISÄÄ
|
Анализировать url |
| beta2.flowfestival.com |
INFO
|
Анализировать url |
| flowfestival.com |
OHJELMA
|
Анализировать url |
| heineken.com |
[HEINEKEN]
|
Анализировать url |
| nordea.fi |
[NORDEA]
|
Анализировать url |
| hartwall.fi |
[NOVELLE]
|
Анализировать url |
| lanson.com |
[LANSON]
|
Анализировать url |
| lyko.com |
[LYKO]
|
Анализировать url |
| scandichotels.fi |
[SCANDIC]
|
Анализировать url |
| tietoevry.com |
[TIETO]
|
Анализировать url |
| vaasan.fi |
[VAASAN]
|
Анализировать url |
| tise.com |
[TISE]
|
Анализировать url |
| google.com |
[GOOGLE]
|
Анализировать url |
| myhelsinki.fi |
[HELSINKI]
|
Анализировать url |
| bauermediaoutdoor.com |
[BAUER]
|
Анализировать url |
| finnkino.fi |
[FINNKINO]
|
Анализировать url |
| hs.fi |
[HELSINGINSANOMAT]
|
Анализировать url |
| radiohelsinki.fi |
[RADIOHELSINKI]
|
Анализировать url |
| ct-group.com |
[CT]
|
Анализировать url |
| stopteltat.fi |
[STOPTELTAT]
|
Анализировать url |
| suneffects.fi |
[SUNEFFECTS]
|
Анализировать url |
| facebook.com |
[FACEBOOK]
|
|
| instagram.com |
[INSTAGRAM]
|
|
| play.spotify.com |
[SPOTIFY]
|
Анализировать url |
| youtube.com |
[YOUTUBE]
|
Анализировать url |
| flickr.com |
[FLICKR]
|
Анализировать url |
| tiktok.com |
[TIKTOK]
|
Конкуренты Готовность: 0%
Конкуренты в Яндексе
Кол-во: 0
Топ сайтов-конкурентов в Яндексе
?
Сайты, чаще всего появляющиеся в ТОПе Яндекса по запросам из семантического ядра этой страницы.
Мы не нашли у вас конкурентов в Яндексе. Сайт или очень молодой или плохо продвигается.
Конкурентов в ТОП-10 Яндекса не нашлось.
Конкуренты в Google
Кол-во: 0
Топ сайтов-конкурентов в Google
?
Сайты, чаще всего появляющиеся в ТОПе Google по запросам из семантического ядра этой страницы.
Конкуренты в Google тоже не найдены. Займитесь продвижением сайта!
Конкурентов в ТОП-10 Google не нашлось.
ЗоЗПП: права потребителей Готовность: 100%
Нарушения
Не выявлены
Признаков дистанционной продажи товаров (интернет-магазина) не обнаружено — требования ЗоЗПП о раскрытии информации продавца к сайту не применяются. Нарушений нет.
ФЗ-149: рекомендательные технологии Готовность: 100%
Нарушения
Не выявлены
Рекомендательные блоки («с этим покупают», «похожие товары» и т.п.) на сайте не обнаружены — требования ст. 10.7 ФЗ-149 к сайту не применяются. Нарушений нет.
ФЗ-38: реклама Готовность: 100%
Нарушения
Не выявлены
Рекламных тематик с обязательными оговорками (медицина, БАД, кредиты и займы, новостройки) на сайте не обнаружено. Нарушений нет.
ФЗ-436: защита детей Готовность: 100%
Нарушения
Не выявлены
Признаков информационной продукции (новости, видео, книги, игры, курсы) не обнаружено — обязательная возрастная маркировка по ФЗ-436 сайту не требуется. Нарушений нет.
Вердикт
Таким сайт https://www.flowfestival.com/ видят поисковые системы. Процент оптимизации невысокий - 60%. Чтобы улучшить сайт и попасть в ТОП необходимо:
Исправьте ошибки в мета-тегах.
Исправьте ошибки оптимизации.
Исправьте ошибки индексации.
Поделитесь с друзьями: