Анализ сайта mapaliterari.cat
Основное Готовность: 40%
Домен
mapaliterari.cat
Состояние доменного имени
?
Проверяем корректность доменного имени и наличие технических проблем на уровне домена.
Длина домена велика. Но если вы продвигаете запрос, входящий в название домена, то это хорошо.
Домен второго уровня идеален для продвижения.
Ответ сервера
200 Успешный ответ
HTTP-код ответа и цепочка редиректов
?
Код 200 — страница доступна. Коды 3xx — редиректы (цепочки замедляют загрузку и размывают ссылочный вес). Коды 4xx/5xx — ошибки, поисковик не сможет проиндексировать страницу.
Кол-во редиректов 3 слишком большое! Проверьте настройки сайта и веб-сервера!
Цепочка редиректов:
http://mapaliterari.cat
301 MovedPermanently
https://mapaliterari.cat/
301 MovedPermanently
https://www.mapaliterari.cat/
200 OK
Безопасность
Сайт безопасен
Использование HTTPS и SSL-сертификат
?
HTTPS — обязательный стандарт. Google и Яндекс отдают предпочтение защищённым сайтам. Отсутствие SSL или просроченный сертификат ведут к предупреждениям в браузере и снижению позиций.
Не настроен HSTS (Strict-Transport-Security) — рекомендуется включить.
На сайте работает защищенный протокол ssl и сайт открывается по https.
Ssl-сертификат действителен до 28.10.2026 23:43:40.
HTTP автоматически перенаправляется на HTTPS.
Поздравляем! Сайт не содержится в реестре РКН.
Кодировка
utf-8
Кодировка символов страницы
?
Стандарт — UTF-8. Неправильная кодировка вызывает нечитаемые символы и мешает поисковику корректно распознать текст страницы.
Указана кодировка на странице utf-8.
Язык
en
Атрибут lang в HTML-теге
?
Атрибут lang (<html lang="ru">) сообщает поисковикам и браузерам, на каком языке написана страница. Помогает при ранжировании в региональном поиске.
Язык документа указан явно: en.
Скорость загрузки
~1,78сек
Время отклика сервера (TTFB)
?
Time To First Byte — время до получения первого байта от сервера. Норма до 200 мс. Медленный отклик ухудшает пользовательский опыт и ранжирование: Яндекс и Google учитывают скорость страниц.
Скорость загрузки сайта 1,78сек превышает 1 секунду. Желательно улучшить работу сайта!
Объем документа
37Кб
Размер HTML-кода страницы
?
Слишком большой HTML замедляет парсинг браузером и сканирование поисковым роботом. Рекомендуется не более 200 Кб.
Объем html-документа 37Кб оптимален.
Структура html-документа корректна.
Ресурсы
Ресурсы: 18
Внешние ресурсы страницы (CSS, JS, изображения)
?
Количество и тип подключённых ресурсов влияют на скорость загрузки. Большое число запросов увеличивает время рендеринга страницы.
Кол-во файлов ресурсов 18 много для одной страницы. Приемлемо до 10. Проведите оптимизацию файлов ресурсов!
Показать полный список ресурсов
| Тип | Название | Значение |
|---|---|---|
| stylesheet | https://use.fontawesome.com/releases/v5.2.0/css/all.css | |
| stylesheet | /static/css/main.css?v=1.4 | |
| stylesheet | text/css | /static/css/loading-bar.css |
| js | text/javascript | https://unpkg.com/@google/markerclustererplus@4.0.1/dist/markerclustererplus.min.js |
| js | text/javascript | //www.freeprivacypolicy.com/public/cookie-consent/3.1.0/cookie-consent.js |
| js | https://www.googletagmanager.com/gtag/js?id=G-BBDYYDB20G | |
| js | text/javascript | https://code.jquery.com/jquery-3.1.1.min.js |
| js | text/javascript | /static/js/vendor/swiper.js |
| js | https://maps.googleapis.com/maps/api/js?key=AIzaSyDVbPEjlBGjTU50nsEl17eMWkjOqOCinAE&libraries=places&sensor=false&language=ca | |
| js | text/javascript | https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js |
| js | text/javascript | https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular-route.min.js |
| js | text/javascript | https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular-animate.min.js |
| js | text/javascript | //ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular-sanitize.min.js |
| js | text/javascript | /static/js/angular-upload.min.js |
| js | text/javascript | /static/js/angular-socialshare.min.js |
| js | text/javascript | /static/js/loading-bar.min.js |
| js | text/javascript | /static/js/main.js?s=1.0.4 |
| js | text/javascript | /static/js/app.min.js?s=1.0.5 |
Серверные заголовки
Кол-во: 5
HTTP-заголовки ответа сервера
?
Заголовки сервера передают браузеру и поисковику служебную информацию: кеширование, безопасность (CSP, HSTS), сжатие (gzip). Правильная настройка ускоряет загрузку и повышает защищённость.
Найдены серверные заголовки 5шт. Подробнее про серверные заголовки.
Показать полный список серверных заголовков
| Ключ | Значение |
|---|---|
| Date | Fri, 21 Aug 2026 08:47:27 GMT |
| Server | Apache/2.4.29 |
| Vary | Cookie |
| X-Frame-Options | SAMEORIGIN |
| Set-Cookie | csrftoken=3aD4jtbOIw3deddntuVRqD8caEFNpA7lz1u2mJcse9ppmWjWKU45UzSADH7jj8wu; expires=Fri, 20 Aug 2027 08:47:28 GMT; Max-Age=31449600; Path=/; SameSite=Lax |
CMS
Не определена
Система управления сайтом (движок)
?
CMS — это движок, на котором работает сайт (WordPress, 1C-Bitrix, Tilda и др.). Знание CMS помогает понять возможности SEO-оптимизации и подобрать подходящие инструменты. «Не определена» — вероятно, самописный сайт или нестандартная сборка.
CMS не определена. Вероятно, сайт самописный либо движок надёжно скрыт. Это не ошибка.
Веб-сервер
Программное обеспечение сервера
?
Веб-сервер — это ПО, которое отдаёт страницы посетителям (nginx, Apache, IIS, LiteSpeed и др.). Определяется по серверным заголовкам ответа (Server, X-Powered-By и т.п.). «Не определён» — сервер намеренно скрывает эти заголовки, это нормальная практика безопасности.
Сайт работает на веб-сервере Apache.
Мета-теги Готовность: 48%
Title
Espais Escrits - Mapa Literari
Заголовок страницы в браузере и поисковой выдаче
?
Title — главный SEO-заголовок страницы. Влияет на CTR в поиске и ранжирование. Оптимальная длина: 50–70 символов. Ключевые слова — ближе к началу.
Необходимо увеличить число символов в title (текущее значение: 30, оптимально: от 40 до 45)
Дублей словоформ в title не найдено.
Description
Описание страницы в поисковой выдаче (сниппет)
?
Meta Description — текст под заголовком в выдаче. Напрямую на позиции не влияет, но влияет на CTR. Оптимальная длина: 120–160 символов.
Установите мета-тег description!
Keywords
Список ключевых слов страницы (устаревший тег)
?
Meta Keywords не учитывается Яндексом и Google для ранжирования с 2009–2012 годов. Заполнение не обязательно, но не вредит. Конкурент может использовать содержимое для анализа.
Установите мета-тег keywords!
Канонический Url
Указывает поисковику основную версию страницы
?
Canonical (rel=canonical) предотвращает проблему дублей страниц. Должен точно совпадать с URL проверяемой страницы. Неправильный canonical может передать ссылочный вес на другую страницу.
Рекомендуем прописать канонический Url.
Robots
Ошибок нет
Директивы для поисковых роботов на уровне страницы
?
Meta Robots управляет индексацией конкретной страницы: index/noindex — индексировать ли, follow/nofollow — следовать ли по ссылкам. Noindex полностью исключает страницу из поиска.
Meta-тег robots не указан. Страница свободна для индексации.
Адаптивность
width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no
Настройка масштабирования на мобильных устройствах
?
Тег viewport (<meta name="viewport">) сообщает браузеру, как масштабировать страницу на мобильных. Стандарт: width=device-width, initial-scale=1. Отсутствие — признак отсутствия мобильной версии.
Meta-тег viewport со значением-константой width=device-width задаёт ширину страницы в соответствии с размером экрана.
Meta-тег viewport со значением initial-scale=1.0 определяет масштаб 1:1, т.е. «не масштабировать».
Meta-тег viewport со значением user-scalable определяет доступность масштабирования страницы пользователем.
Meta-тег viewport со значением maximum-scale определяет максимальный масштаб области просмотра.
Разметка OpenGraph
Кол-во: 5
Мета-теги для красивых превью в соцсетях
?
OpenGraph (og:title, og:description, og:image) управляет тем, как страница выглядит при репосте в социальных сетях и мессенджерах. Отсутствие OG-тегов — невзрачный превью при шеринге.
Разметка OpenGraph задана. Страница оптимизирована под социальные сети.
Показать полный список og мета-тегов
| Тип | Значение |
|---|---|
| og:url | https://www.mapaliterari.cat/ |
| og:type | article |
| og:title | Jacint Verdaguer - L'alzina del passeig de Gràcia |
| og:description | Filla de les muntanyes, qui t’ha plantada aquí a la vora d’un passeig i enmig de l’eixamplament de la ciutat? Ben segur que ningú. Ets un reco |
| og:image | https://www.mapaliterari.cat/media/social/autors.jpg |
Все мета-теги
Кол-во: 7
Полный список мета-тегов страницы
?
Таблица всех meta-тегов, включая нестандартные. Позволяет найти опечатки, дубли и лишние теги.
Найдены мета-теги 7шт. Мета-теги не видимы для человека и предназначены для обмена информацией между веб-страницей и поисковыми системами, браузерами и другими веб-службами. С ними роботы 🤖 и устройства ведут себя более ожидаемо.
Показать полный список мета-тегов
| Тип | Название | Значение |
|---|---|---|
| name | viewport | width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no |
| name | twitter:card | summary |
| property | og:url | https://www.mapaliterari.cat/ |
| property | og:type | article |
| property | og:title | Jacint Verdaguer - L'alzina del passeig de Gràcia |
| property | og:description | Filla de les muntanyes, qui t’ha plantada aquí a la vora d’un passeig i enmig de l’eixamplament de la ciutat? Ben segur que ningú. Ets un reco |
| property | og:image | https://www.mapaliterari.cat/media/social/autors.jpg |
Оптимизация Готовность: 65%
Структура
Ошибок нет
Семантические HTML-элементы страницы
?
Проверяет наличие основных структурных элементов: nav, header, footer, main. Корректная семантическая структура помогает поисковику понять архитектуру страницы.
Структура документа корректна (теги <html> и <body> присутствуют в единственном экземпляре).
Контент
Есть ошибки
Объём и качество текстового содержимого
?
Анализирует объём полезного текста на странице. Слишком мало — страница может считаться малополезной. Слишком много — ухудшается читаемость и восприятие.
Абзацев с текстом 2 слишком мало. Добавьте больше абзацев с текстом (тег <p>)!
Среднее число слов в абзаце 9 слишком мало. Сделайте контент более читаемым!
Кол-во слов 153 слишком мало. Добавьте больше текста (минимум 400 слов)!
Слова из title 4 встречаются в тексте достаточно.
Кол-во знаков контента 1063 на странице оптимально.
Заголовки
Ошибок нет
Иерархия заголовков H1–H6
?
H1 должен быть один и содержать ключевой запрос. H2–H6 описывают подразделы. Пропуск уровней (H1 → H3) и несколько H1 — типичные ошибки, снижающие понятность страницы для поисковика.
На странице присутствуют заголовки <h1> 5. Это прекрасно.
Тошнота
2,65
Насколько одно слово доминирует в тексте
?
Классическая тошнота = √(частота самого повторяющегося слова). Норма до 7–8: текст воспринимается естественно. Выше — поисковик может счесть страницу переспамленной.
Тошнота страницы в пределах нормы 3.
Академич. тошнота
23,53%
Насколько текст перенасыщен ключевыми словами
?
Академическая тошнота = (частота слова / общее количество слов) × 100%. Показывает долю конкретного слова в тексте. Норма 5–15%.
Академическая тошнота превышает норму 5-15%. Измените текст страницы!
Семантическое ядро
20
Наиболее часто встречающиеся слова на странице
?
Топ слов по частоте использования. Показывает, какие слова доминируют в тексте с точки зрения поисковика.
Контент страницы содержит осмысленный текст и слова.
Показать список слов
| Слово | Кол-во | Частота |
|---|---|---|
| selecciona | 7 | 4,58% |
| autors | 5 | 3,27% |
| favorits | 4 | 2,61% |
| compartir | 4 | 2,61% |
| literari | 3 | 1,96% |
| espais | 3 | 1,96% |
| {{appvm | 3 | 1,96% |
| imprimir | 3 | 1,96% |
| selecció | 3 | 1,96% |
| recursos | 2 | 1,31% |
| sessió | 2 | 1,31% |
| projecte | 2 | 1,31% |
| contacte | 2 | 1,31% |
| d'autor" | 2 | 1,31% |
| translate}} | 2 | 1,31% |
| català | 2 | 1,31% |
| escrits | 2 | 1,31% |
| seleccionar | 2 | 1,31% |
| seleccio | 2 | 1,31% |
| iniciar | 1 | 0,65% |
Индексация Готовность: 0%
Индексирование
Ошибок нет
Разрешено ли индексирование страницы
?
Проверяет, не закрыта ли страница от индексации через robots.txt, meta robots или X-Robots-Tag. Страница, закрытая от индексации, не появится в поисковой выдаче.
Анкоров на странице 85 оптимально. Поисковые роботы обязательно проиндексируют сайт.
Robots.txt
Найден корректный robots.txt
Файл управления сканированием сайта роботами
?
Robots.txt указывает поисковым роботам, какие страницы сканировать, а какие — нет. Ошибки в файле могут случайно закрыть важные разделы от индексации.
Кол-во редиректов для файла robots.txt 3 слишком большое! Это может вызывать затруднение при индексации поисковыми роботами!
Проверяемая страница не запрещена в robots.txt.
Robots.txt доступен по постоянному адресу
Цепочка редиректов для файла robots.txt:
http://mapaliterari.cat/robots.txt
301 MovedPermanently
https://mapaliterari.cat/robots.txt
301 MovedPermanently
https://www.mapaliterari.cat/robots.txt
200 OK
Показать содержимое robots.txt
<!DOCTYPE html>
<html lang="en" ng-app="app">
<head>
<base href="/">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no">
<meta property="og:url" content="https://www.mapaliterari.cat/robots.txt" />
<meta property="og:type" content="article" />
<meta property="og:title" content="Jacint Verdaguer - L'alzina del passeig de Gràcia" />
<meta property="og:description" content="Filla de les muntanyes, qui t’ha plantada aquí a la vora d’un passeig i enmig de l’eixamplament de la ciutat? Ben segur que ningú. Ets un reco" />
<meta property="og:image" content="https://www.mapaliterari.cat/media/social/autors.jpg" />
<meta name="twitter:card" content="summary" />
<title>Espais Escrits - Mapa Literari</title>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.2.0/css/all.css" integrity="sha384-hWVjflwFxL6sNzntih27bfxkr27PmbbK/iSvJ+a4+0owXq79v+lsFkW54bOGbiDQ" crossorigin="anonymous">
<link href="/static/css/main.css?v=1.4" rel="stylesheet">
<!-- Cookie Consent by https://www.FreePrivacyPolicy.com -->
<script type="text/javascript" src="https://unpkg.com/@google/markerclustererplus@4.0.1/dist/markerclustererplus.min.js"></script>
<script type="text/javascript" src="//www.freeprivacypolicy.com/public/cookie-consent/3.1.0/cookie-consent.js"></script>
<script type="text/javascript">
document.addEventListener('DOMContentLoaded', function () {
cookieconsent.run({"notice_banner_type":"headline","consent_type":"express","palette":"dark","language":"ca_es","website_name":"Mapa Literari","cookies_policy_url":"http://mapaliterari.cat/ca/avis-legal"});
});
</script>
<noscript>Cookie Consent by <a href="https://www.FreePrivacyPolicy.com/free-cookie-consent/" rel="nofollow noopener">FreePrivacyPolicy.com</a></noscript>
<!-- End Cookie Consent -->
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
<style type="text/css">
[ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak {
display: none !important;
}
.fullscreen__nav li a.active{
color:#b5b92d!important;
}
.autor a.active{
color:#b5b92d!important;
}
.autor .menu a{
color:#4a4129 ;
}
.autor .menu a:hover {
color:#b5b92d!important;
}
.menu ul.has-child li a
{
color:#4a4129 ;
}
.texto span
{
width: auto !important;
}
.modal .modal__content .texto.text__quote .spanfilt:after
{
display: none;
}
.modal .modal__content .texto.text__quote .spanfilt:before
{
top:-15px;
}
.mygreen{
color : #b5b92d!important;
}
.texto a {
color : #4a4129!important;
}
.ruta .ci-texto{
margin:15px auto!important;
}
</style>
<link rel='stylesheet' href='/static/css/loading-bar.css' type='text/css' media='all' />
<script type="text/javascript">
var mobile = ( ''=='True' );
var url = 'https://www.mapaliterari.cat/robots.txt';
var domain = 'https://www.mapaliterari.cat';
var language = 'ca';
var translations =
{
};
</script>
<!-- Google Analytics -->
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-BBDYYDB20G"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-BBDYYDB20G');
</script>
<!-- End Google Analytics -->
</head>
<body class="" ng-controller="AppController as appVm" ng-class="{'viewing':appVm.mobile.get('autor',false),'viewing-menu':appVm.mobileMenu,'viewing':appVm.fullScreen,'ohidden':appVm.openFilt }" ng-init="appVm.mobileMenu = false;appVm.openFilt = false" > <!-- incluir clase viewing para mostrar menu__mobile-->
<div class="container">
<div class="header" ng-class="{'openFilter':appVm.openFilt}">
<div class="header__top">
<a href="/" class="brand" ng-click="appVm.espais.experiencies=true;appVm.init();appVm.mapa.benvinguts=true;" >
<img src="/static/images/logo.svg" width="100%" />
</a>
<style type="text/css">
.language-li
{
display:inline-block;
padding:0 10px 0 10px;
color:white;
font-weight: bold;
font-size:12px;
cursor: pointer;
}
.selectedo
{
color:#4a4129!important;
}
</style>
<ul class="mainnav">
<li class="language-li" ng-class="{'selectedo':appVm.language=='ca'}" ng-click="appVm.changeLang('ca')" style="border-right:2px solid white;">CA</li>
<li class="language-li" ng-class="{'selectedo':appVm.language=='es'}" ng-click="appVm.changeLang('es')" style="border-right:2px solid white;">ES</li>
<li class="language-li" ng-class="{'selectedo':appVm.language=='en'}" ng-click="appVm.changeLang('en')" >EN</li>
<li ng-class="{active:appVm.activeItemMenu('/'+appVm.language)}"><a ng-href="{{appVm.language}}/" ng-click="appVm.espais.experiencies=true;appVm.init();">Mapa literari</a></li>
<li ng-class="{active:appVm.activeItemMenu('/'+appVm.language+'/recursos')}"><a ng-href="{{appVm.language}}/recursos">Recursos</a></li>
</ul>
<div class="header__login ng-cloak" ng-if="!appVm.user.islogged()" >
<a ng-href="{{appVm.language}}/accedir">Iniciar sessió</a>
</div>
<div class="header__login account ng-cloak" ng-if="appVm.user.islogged()">
<div class="dropdown">
<button class="dropbtn">
<div class="image">
<div>
<img ng-src="{{appVm.user.info.imatge}}" width="100%" height="100%" >
</div>
</div>
<span class="name" ng-bind="appVm.user.info.name | ucwords"></span> <i class="icon icon-triarrow-desplegar"></i></span></button>
<div class="dropdown-content">
<a ng-href="{{appVm.language}}/favorits">Els meus favorits</a>
<!--<a href="historial.html">El meu historial</a>-->
<a ng-href="{{appVm.language}}/usuari">Configuració d'usuari</a>
<a ng-href="{{appVm.language}}/logout">Tancar sessió</a>
</div>
</div>
</div>
</div>
<div class="header__bottom mobile">
<a href="#" class="open__menu" ng-click="appVm.mobileMenu = !appVm.mobileMenu;appVm.openFilt=false;">
<i class="icon icon-menu menu"></i>
</a>
<ul class="mainnav" ng-init="appVm.mobileTab=true;" ng-show="!appVm.activeItemMenu('/recursos')">
<li ng-class="{'active':appVm.mobileTab }">
<a ng-click="appVm.mobileTab=true;appVm.openFilt=false;" ng-href="{{appVm.language}}/">Mapa</a>
</li>
<li ng-class="{'active':!appVm.mobileTab }">
<a ng-click="appVm.mobileTab=false;appVm.openFilt=false;" ng-href="{{appVm.language}}/">Autors</a>
</li>
</ul>
<ul class="mainnav" ng-show="appVm.activeItemMenu('/recursos')">
<li ng-class="{active:appVm.activeItemMenu('/')}"><a ng-href="{{appVm.language}}/" ng-click="appVm.espais.experiencies=true;appVm.init();">Mapa</a></li>
<li ng-class="{active:appVm.activeItemMenu('/recursos')}"><a ng-href="{{appVm.language}}/experiencies">Experiències</a></li>
</ul>
</div>
<div class="menu__mobile">
<a href="#" class="close__menu" ng-click="appVm.mobileMenu = false;">
<i class="icon icon-close close"></i>
</a>
<ul class="mainnav">
<li ng-class="{active:appVm.activeItemMenu('/')}"><a ng-href="{{appVm.language}}/" ng-click="appVm.espais.experiencies=true;appVm.init();appVm.mobileMenu = false;">Mapa literari</a></li>
<li ng-class="{active:appVm.activeItemMenu('/recursos')}" ><a ng-href="{{appVm.language}}/recursos" ng-click="appVm.mobileMenu = false;">Recursos</a></li>
</ul>
<ul class="secondarynav">
<li><a ng-href="{{appVm.language}}/projecte" ng-class="{active:appVm.activeItemMenu('/projecte')}">Projecte</a></li>
<li><a ng-href="{{appVm.language}}/contacte" ng-class="{active:appVm.activeItemMenu('/contacte')}">Contacte</a></li>
<li><a ng-href="{{appVm.language}}/avis-legal" ng-class="{active:appVm.activeItemMenu('/avis-legal')}">Avís legal</a></li>
</ul>
<ul class="social">
<li><a href="https://www.facebook.com/mapaliterari/" target="_blank" title="Facebook"><i class="icon icon-facebook"></i></a></li>
<li><a href="https://twitter.com/mapaliteraricat" target="_blank" title="Twitter"><i class="icon icon-twitter"></i></a></li>
<li><a href="https://vimeo.com/user4486993" target="_blank" title="Vimeo"><i class="icon icon-vimeo"></i></a></li>
<li><a href="https://get.google.com/albumarchive/118255952851923509063?source=pwa" target="_blank" title="Picassa"><i class="icon icon-picassa"></i></a></li>
<li><a href="https://www.youtube.com/user/espaisescrits?feature=mhum" target="_blank" title="Youtube"><i class="icon icon-youtube"></i></a></li>
</ul>
</div>
<div class="header__bottom" ng-if="appVm.espais.experiencies" ng-click="appVm.begin()">
<div class="filter">
<div class="filter--options">
<a class="filter--search">
<i class="icon icon-lupa-barra-filtros"></i>
</a>
<div style="display:inline-block;margin:4px 0;vertical-align:top">
<div class="dropdown">
<input type="text" ng-model="appVm.territori" placeholder="Territori" id="territori">
</div>
<div class="dropdown">
<button class="dropbtn" ng-click="appVm.llistatAutors=true"><span>Autor</span> <i class="icon icon-arrow-desplegar"></i></span></button>
</div>
<div class="d-inlineblock">
<div class="dropdown form-group">
<input class="form-control" type="text" id="paraules" placeholder="Paraula" ng-model="appVm.paraules" ng-keyup="$event.keyCode == 13 && appVm.perParaules(appVm.paraules)">
</div>
<i class="icon icon-layout"></i>
</div>
<div class="dropdown">
<button class="dropbtn ng-cloak" ng-click="appVm.llistatCentres=true"><span>{{"Casa d'autor"|translate}}</span> <i class="icon icon-arrow-desplegar"></i></span></button>
</div>
<div class="dropdown">
<button class="dropbtn" ng-click="appVm.llistatRutes=true"><span>Rutes</span> <i class="icon icon-arrow-desplegar"></i></span></button>
</div>
<div class="dropdown" ng-init="lang='Català'">
<button class="dropbtn"><span ng-bind="lang"></span> <i class="icon icon-arrow-desplegar"></i></span></button>
<div class="dropdown-content">
<a href="#" data-id="5" data-code="de-DE" ng-click="appVm.setLanguage(5);lang='Alemany'">Alemany</a>
<a href="#" data-id="3" data-code="en-US" ng-click="appVm.setLanguage(3);lang='Anglès'">Anglès</a>
<a href="#" data-id="2" data-code="es-ES" ng-click="appVm.setLanguage(2);lang='Castellà'">Castellà</a>
<a href="#" data-id="1" data-code="ca-ES" ng-click="appVm.setLanguage(1);lang='Català'">Català</a>
<a href="#" data-id="7" data-code="fr-FR" ng-click="appVm.setLanguage(7);lang='Francès'">Francès</a>
<a href="#" data-id="6" data-code="it-IT" ng-click="appVm.setLanguage(6);lang='Italià'">Italià</a>
<a href="#" data-id="4" data-code="pt-PT" ng-click="appVm.setLanguage(4);lang='Portuguès'">Portuguès</a>
</div>
</div>
<button class="btn search" ng-click="appVm.perParaules(appVm.paraules)">Buscar</button>
</div>
</div>
</div>
<div id="loading-bar-container" class="like ng-cloak"></div>
<!--div class="like ng-cloak" ng-show="appVm.user.islogged()">
<i class="icon fas icon-favorito-corazon"></i>
</div-->
</div>
</div>
<div class="content col-2 ng-cloak" ng-if="appVm.espais.experiencies">
<div class="sidebar" ng-class="{'hidden-xs': appVm.mobileTab }" ng-if="appVm.espais.experiencies">
<div class="benvinguts" ng-if="appVm.mapa.benvinguts">
<button class="btn-icon" ng-click="appVm.begin()"><i class="icon icon-cerrar"></i></button>
<h1>Benvinguts al Mapa Literari Català d’Espais Escrits.</h1>
<div class="situacion">
<i class="icon fas fa-user"></i>
<strong class="text">119 autors</strong>
<i class="icon icon-favorito-spaisescrits"></i>
<strong class="text">3051 espais escrits</strong>
<i class="icon icon-favorito-rutes"></i>
<strong class="text">110 rutes literàries</strong>
</div>
<button class="btn" ng-click="appVm.begin()">Navega!</button>
</div>
<div class="resultado ng-cloak" ng-show="!appVm.mapa.benvinguts;" ng-if="appVm.espais.data.length ;" >
<div class="ordenar">
<button type="button" class="filterBut" ng-click="appVm.openFilt = !appVm.openFilt">
<i class="icon icon-filtros-mobile"></i>
</button>
<div class="option-ordre" ng-init="appVm.orderAutor='data.cognom_slug';appVm.orderLabel='Per cognom alfabètic'">
<strong class="alignleft"><span ng-bind="(appVm.autors | filter:{visible:true}).length"></span> autors</strong>
</div>
</div>
<div class="orden col-2">
<div class="autores scrollbar">
<div class="autor" ng-repeat="(key, autor) in appVm.autors | filter:{visible:true} | orderBy:appVm.orderAutor:false" data-slug="{{autor.data.slug}}" data-cslug="{{autor.data.cognom_slug}}" ng-if="autor.data.visible_col">
<div class="foto"><img my-src mediafile="appVm.getMediaUrl(autor.data.imatge)" /></div>
<div class="info">
<a class="nombre" ng-show="!appVm.espais.getBiography(autor.id).length" ng-bind="autor.data.cognoms+', '+autor.data.nom" ></a>
<a class="nombre" ng-show="appVm.espais.getBiography(autor.id).length" ng-bind="autor.data.cognoms+', '+autor.data.nom" ng-href="{{appVm.language}}/autor/{{autor.data.nom+' '+autor.data.cognoms | slugify}}" ></a>
<span class="profesion" ng-bind="autor.data.professio"></span>
<span class="fecha" ng-bind="autor.data.data_neixement"></span>
</div>
<ul class="menu">
<li class="has-child" ng-class="{'open':autor.menu.espais}" ng-init="espais = appVm.espais.getByAutor(autor.id)" ng-if="appVm.espais.getByAutor(autor.id).length">
<span class="num" ng-bind="appVm.espais.getByAutor(autor.id).length"></span><a href="#" ng-click="autor.menu.espais=!autor.menu.espais" ng-class="{'active':autor.menu.espais}" >Espais <i class="icon icon-dash"></i></a>
<ul ng-show="autor.menu.espais">
<ul class="">
<li ng-repeat="(keye, espai) in appVm.espais.getByAutor(autor.id) | orderBy:'data.ordre':false" ng-hide="appVm.espais.isSearch && !espai.search">
<a ng-href="{{appVm.language}}/espai/{{espai.data.nom_ca | slugify}}/{{appVm.autor.getAutorByID(espai.data.autor).data.nom | slugify}}-{{appVm.autor.getAutorByID(espai.data.autor).data.cognoms | slugify}}" ng-class="{'active':appVm.activeSlug('/espai/{{espai.data.nom_ca | slugify}}/{{appVm.autor.getAutorByID(espai.data.autor).data.nom | slugify}}-{{appVm.autor.getAutorByID(espai.data.autor).data.cognoms | slugify}}')}" >
<i class="fas fa-search" ng-if="espai.search"></i>
<i class="icon icon-monument" ng-if="espai.data.monument!=''"></i>
<i class="fas fa-video" ng-if="espai.data.multimedia==2"></i>
<i class="fas fa-headphones-alt" ng-if="espai.data.multimedia==1"></i>
<i class="fas fa-video" ng-if="espai.data.multimedia==3"></i>
<i class="fas fa-headphones-alt" ng-if="espai.data.multimedia==3"></i>
<span ng-bind="espai.data.nom_ca"></span>
</a>
</li>
</ul>
</ul>
</li>
<li class="has-child" ng-class="{'open':autor.menu.rutas}" ng-if="appVm.ruta.getRutasByAutor(autor.id).length" ng-init="rutasAutor= appVm.ruta.getRutasByAutor(autor.id)">
<span class="num" ng-bind="rutasAutor.length" ></span>
<a href="#" ng-click="autor.menu.rutas=!autor.menu.rutas" ng-class="{'active':autor.menu.rutas}">Rutes <i class="icon icon-dash"></i></a>
<ul ng-show="autor.menu.rutas">
<ul class="has-child">
<li ng-repeat="ruta in rutasAutor" ng-class="{'open':autor.menu[rutaSlug]}" ng-init="rutaSlug =appVm.autor.getSlugify( ruta.data.nom_ca );autor.menu[rutaSlug] = false;">
<a ng-href="{{appVm.language}}/espai/{{ appVm.espais.getEspaiByID(ruta.espais[0].espai_id).data.nom_ca | slugify }}/{{appVm.autor.getAutorByID(ruta.data.autor).data.nom | slugify}}-{{appVm.autor.getAutorByID(ruta.data.autor).data.cognoms | slugify}}" ng-bind="ruta.data.nom_ca" ng-click="autor.menu[rutaSlug]=!autor.menu[rutaSlug]" ng-class="{'active':autor.menu[rutaSlug]}"></a>
<ul class="has-child" ng-if="ruta.espais.length" ng-show="autor.menu[rutaSlug]">
<li ng-repeat="es in ruta.espais" ng-hide="appVm.espais.isSearch && !appVm.espais.getEspaiByID(es.espai_id).search" espai-id="{{es.espai_id}}" ng-if="appVm.espais.getEspaiByID(es.espai_id)">
<a ng-href="{{appVm.language}}/espai/{{appVm.espais.getEspaiByID(es.espai_id).data.nom_ca | slugify}}/{{appVm.autor.getAutorByID(ruta.data.autor).data.nom | slugify}}-{{appVm.autor.getAutorByID(ruta.data.autor).data.cognoms | slugify}}" ng-class="{'active':appVm.activeSlug('/espai/{{appVm.espais.getEspaiByID(es.espai_id).data.nom_ca | slugify}}/{{appVm.autor.getAutorByID(ruta.data.autor).data.nom | slugify}}-{{appVm.autor.getAutorByID(ruta.data.autor).data.cognoms | slugify}}')}">
<i class="fas fa-search" ng-if="appVm.espais.getEspaiByID(es.espai_id).search"></i>
<i class="icon icon-monument" ng-if="appVm.espais.getEspaiByID(es.espai_id).data.monument!=''"></i>
<i class="fas fa-video" ng-if="appVm.espais.getEspaiByID(es.espai_id).data.multimedia==2"></i>
<i class="fas fa-headphones-alt" ng-if="appVm.espais.getEspaiByID(es.espai_id).data.multimedia==1"></i>
<i class="fas fa-video" ng-if="appVm.espais.getEspaiByID(es.espai_id).data.multimedia==3"></i>
<i class="fas fas fa-headphones-alt" ng-if="appVm.espais.getEspaiByID(es.espai_id).data.multimedia==3"></i>
{{appVm.espais.getEspaiByID(es.espai_id).data.nom_ca}}</a>
</li>
</ul>
</li>
</ul>
</ul>
</li>
<li class="has-child" ng-class="{'open':autor.menu.centre}" ng-if="appVm.espais.getCentresByAutor(autor.id).length">
<span class="num" ng-bind="appVm.espais.getCentresByAutor(autor.id).length"></span><a ng-click="autor.menu.centre=!autor.menu.centre" href="#" ng-class="{'active':autor.menu.centre}">Centres <i class="icon icon-dash"></i></a>
<ul ng-show="autor.menu.centre">
<li ng-repeat="(keyc, centre) in appVm.espais.getCentresByAutor(autor.id) | orderBy:'data.ordre':false">
<a ng-href="{{appVm.language}}/centre/{{centre.data.nom_ca | slugify}}" ng-class="{'active':appVm.activeSlug('/centre/{{centre.data.nom_ca | slugify}}')}">
<i class="fas fa-search" ng-if="centre.search"></i>
<span ng-bind="centre.data.nom_ca"></span>
</a>
</li>
</ul>
</li>
</ul>
<div class="opciones">
<div ng-class="{'like':appVm.user.likeAutor(autor.id)}" ng-show="appVm.user.islogged()">
<i class="icon fas icon-favorito-corazon" ng-click="appVm.favorit(null,null,autor.id)"></i>
</div>
<div class="like">
<!--i class="icon icon-autor-aislar-en-mapa"></i>
<i class="icon icon-autor-visible-en-mapa"></i-->
</div>
<div class="like">
<ng-share> </ng-share>
<!--a href="#"><i class="icon icon-compartir-contenido"></i> <span>Compartir</span></a-->
</div>
</div>
</div>
</div>
<ul class="alfabeto scrollbar hidden-xs">
<li ng-class="{'active':appVm.letter=='a'}" ng-show="appVm.activeLetter('a')" ><a href="#" ng-click="appVm.scrollToLetter('a')">a</a></li>
<li ng-class="{'active':appVm.letter=='b'}" ng-show="appVm.activeLetter('b')" ><a href="#" ng-click="appVm.scrollToLetter('b')">b</a></li>
<li ng-class="{'active':appVm.letter=='c'}" ng-show="appVm.activeLetter('c')" ><a href="#" ng-click="appVm.scrollToLetter('c')">c</a></li>
<li ng-class="{'active':appVm.letter=='d'}" ng-show="appVm.activeLetter('d')" ><a href="#" ng-click="appVm.scrollToLetter('d')">d</a></li>
<li ng-class="{'active':appVm.letter=='e'}" ng-show="appVm.activeLetter('e')" ><a href="#" ng-click="appVm.scrollToLetter('e')">e</a></li>
<li ng-class="{'active':appVm.letter=='f'}" ng-show="appVm.activeLetter('f')" ><a href="#" ng-click="appVm.scrollToLetter('f')">f</a></li>
<li ng-class="{'active':appVm.letter=='g'}" ng-show="appVm.activeLetter('g')" ><a href="#" ng-click="appVm.scrollToLetter('g')">g</a></li>
<li ng-class="{'active':appVm.letter=='h'}" ng-show="appVm.activeLetter('h')" ><a href="#" ng-click="appVm.scrollToLetter('h')">h</a></li>
<li ng-class="{'active':appVm.letter=='i'}" ng-show="appVm.activeLetter('i')" ><a href="#" ng-click="appVm.scrollToLetter('i')">i</a></li>
<li ng-class="{'active':appVm.letter=='j'}" ng-show="appVm.activeLetter('j')" ><a href="#" ng-click="appVm.scrollToLetter('j')">j</a></li>
<li ng-class="{'active':appVm.letter=='k'}" ng-show="appVm.activeLetter('k')" ><a href="#" ng-click="appVm.scrollToLetter('k')">k</a></li>
<li ng-class="{'active':appVm.letter=='l'}" ng-show="appVm.activeLetter('l')" ><a href="#" ng-click="appVm.scrollToLetter('l')">l</a></li>
<li ng-class="{'active':appVm.letter=='m'}" ng-show="appVm.activeLetter('m')" ><a href="#" ng-click="appVm.scrollToLetter('m')">m</a></li>
<li ng-class="{'active':appVm.letter=='n'}" ng-show="appVm.activeLetter('n')" ><a href="#" ng-click="appVm.scrollToLetter('n')">n</a></li>
<li ng-class="{'active':appVm.letter=='ñ'}" ng-show="appVm.activeLetter('ñ')" ><a href="#" ng-click="appVm.scrollToLetter('ñ')">ñ</a></li>
<li ng-class="{'active':appVm.letter=='o'}" ng-show="appVm.activeLetter('o')" ><a href="#" ng-click="appVm.scrollToLetter('o')">o</a></li>
<li ng-class="{'active':appVm.letter=='p'}" ng-show="appVm.activeLetter('p')" ><a href="#" ng-click="appVm.scrollToLetter('p')">p</a></li>
<li ng-class="{'active':appVm.letter=='q'}" ng-show="appVm.activeLetter('q')" ><a href="#" ng-click="appVm.scrollToLetter('q')">q</a></li>
<li ng-class="{'active':appVm.letter=='r'}" ng-show="appVm.activeLetter('r')" ><a href="#" ng-click="appVm.scrollToLetter('r')">r</a></li>
<li ng-class="{'active':appVm.letter=='s'}" ng-show="appVm.activeLetter('s')" ><a href="#" ng-click="appVm.scrollToLetter('s')">s</a></li>
<li ng-class="{'active':appVm.letter=='t'}" ng-show="appVm.activeLetter('t')" ><a href="#" ng-click="appVm.scrollToLetter('t')">t</a></li>
<li ng-class="{'active':appVm.letter=='u'}" ng-show="appVm.activeLetter('u')" ><a href="#" ng-click="appVm.scrollToLetter('u')">u</a></li>
<li ng-class="{'active':appVm.letter=='v'}" ng-show="appVm.activeLetter('v')" ><a href="#" ng-click="appVm.scrollToLetter('v')">v</a></li>
<li ng-class="{'active':appVm.letter=='w'}" ng-show="appVm.activeLetter('w')" ><a href="#" ng-click="appVm.scrollToLetter('w')">w</a></li>
<li ng-class="{'active':appVm.letter=='x'}" ng-show="appVm.activeLetter('x')" ><a href="#" ng-click="appVm.scrollToLetter('x')">x</a></li>
<li ng-class="{'active':appVm.letter=='y'}" ng-show="appVm.activeLetter('y')" ><a href="#" ng-click="appVm.scrollToLetter('y')">y</a></li>
<li ng-class="{'active':appVm.letter=='z'}" ng-show="appVm.activeLetter('z')" ><a href="#" ng-click="appVm.scrollToLetter('z')">z</a></li>
</ul>
</div>
</div>
</div>
<div class="map" id="map" g-maps ng-if="appVm.espais.experiencies" ng-class="{'hidden-xs': !appVm.mobileTab }"></div>
<div class="fullscreen seleccio-autors ng-cloak" ng-if="appVm.llistatAutors">
<div class="fullscreen__header">
<div class="opciones">
<div>
<a href="#" class="ng-hide"><i class="icon icon-compartir-contenido"></i> <span>Compartir</span></a>
<a href="#" class="ng-hide"><i class="icon icon-imprimir-pantalla"></i> <span>Imprimir</span></a>
</div>
<div class="fullscreen__close">
<a href="#" ng-click="appVm.llistatAutors=false;appVm.aplicarFiltres();">
<i class="icon icon-cerrar"></i>
</a>
</div>
</div>
<h1 class="title">Selecció d'autors</h1>
<ul class="fullscreen__nav">
<li><a href="#" ng-click="appVm.autor.visibleAll();appVm.llistatAutors=false;appVm.aplicarFiltres();" style="color:#b5b92d!important;">Seleccionar tots</a></li>
<li><a href="#" ng-click="appVm.autor.invisibleAll();appVm.llistatAutors=false;appVm.aplicarFiltres();" >Cap selecció</a></li>
<!--li><a href="#">selecciona favorits</a></li-->
</ul>
</div>
<div class="fullscreen__content">
<p style="font-size:14px;color:#999999; margin-left:30px; margin-bottom:0">Per escollir un o varis autors, primer clica "cap selecció" i després escull els autors a seleccionar</p>
<div class="autores">
<ul style="overflow: hidden;" >
<li ng-repeat="(key, autor) in appVm.autors | orderBy:appVm.orderAutor:false" ng-click="appVm.autor.switchVisible(autor);" style="cursor: pointer;">
<a href="#" ng-bind="autor.data.cognoms+', '+autor.data.nom" ng-class="{'active':(autor.visible && !appVm.autor.isVisibleAll() ) }"></a>
<!-- <span ng-bind="autor.data.nom+' '+autor.data.cognoms" ng-show="!autor.visible" ng-click="autor.visible=!autor.visible"></span> -->
</li>
</ul>
<div style="margin-top:15px;clear:both;">
<button class="btn" ng-click="appVm.llistatAutors=false;appVm.aplicarFiltres();">Filtra</button>
</div>
</div>
</div>
</div>
<div class="fullscreen seleccio-autors ng-cloak" ng-init="centres = appVm.espais.getCentres()" ng-if="appVm.llistatCentres">
<div class="fullscreen__header">
<div class="opciones">
<div>
<a href="#" class="ng-hide"><i class="icon icon-compartir-contenido"></i> <span>Compartir</span></a>
<a href="#" class="ng-hide"><i class="icon icon-imprimir-pantalla"></i> <span>Imprimir</span></a>
</div>
<div class="fullscreen__close">
<a href="#" ng-click="appVm.llistatCentres=false;appVm.aplicarFiltres()">
<i class="icon icon-cerrar"></i>
</a>
</div>
</div>
<h1 class="title">{{"Selecció de casa d'autor"|translate}}</h1>
<!--ul class="fullscreen__nav">
<li><a href="#" ng-click="appVm.espais.visibleAll()" style="color:#b5b92d!important;">selecciona tots</a></li>
<li><a href="#" ng-click="appVm.espais.invisibleAll()" style="color:#b5b92d!important;">cap seleccio</a></li>
<li><a href="#">selecciona favorits</a></li>
</ul-->
</div>
<div class="fullscreen__content">
<div class="autores">
<ul>
<li ng-repeat="(key, centre) in centres | orderBy:'data.nom_ca':false" ng-if="centre.data.visible_cer" style="cursor: pointer;" >
<a ng-href="{{appVm.language}}/espai/{{centre.data.nom_ca | slugify}}" ng-bind="centre.data.nom_ca" ng-click="appVm.llistatCentres=false;appVm.mapa.eventPan = false;appVm.paraules ='';appVm.territori ='';"></a>
<!--<span ng-bind="centre.data.nom_ca" ng-click="appVm.espais.setVisible(centre.data.nom_ca,true)" ng-show="!appVm.espais.isVisible(centre.data.nom_ca)"></span>-->
</li>
</ul>
<!--div style="margin-top:15px;clear:both;">
<button class="btn" ng-click="appVm.llistatCentres=false;">Selecciona</button>
</div-->
</div>
</div>
</div>
<div class="fullscreen seleccio-autors ng-cloak" ng-if="appVm.llistatRutes">
<div class="fullscreen__header">
<div class="opciones">
<div>
<a href="#" class="ng-hide"><i class="icon icon-compartir-contenido"></i> <span>Compartir</span></a>
<a href="#" class="ng-hide"><i class="icon icon-imprimir-pantalla"></i> <span>Imprimir</span></a>
</div>
<div class="fullscreen__close">
<a href="#" ng-click="appVm.llistatRutes=false;">
<i class="icon icon-cerrar"></i>
</a>
</div>
</div>
<h1 class="title">Selecció de rutes</h1>
<ul class="fullscreen__nav">
<!--li><a href="#" ng-click="appVm.ruta.visibleAll()">selecciona tots</a></li>
<li><a href="#" ng-click="appVm.ruta.invisibleAll()">cap seleccio</a></li-->
<!--li><a href="#">selecciona favorits</a></li-->
</ul>
</div>
<div class="fullscreen__content">
<div class="autores">
<ul>
<li ng-repeat="(key, ruta) in appVm.ruta.data | orderBy:['data.ordre','autor_name.data.cognoms']:false" style="cursor: pointer" >
<a href="/{{appVm.language}}/espai/{{appVm.espais.getEspaiByID(ruta.espais[0].espai_id).data.nom_ca | slugify}}/{{appVm.autor.getAutorByID(ruta.data.autor).data.nom | slugify}}-{{appVm.autor.getAutorByID(ruta.data.autor).data.cognoms | slugify}}" ng-bind="ruta.data.nom_ca" ng-click="appVm.llistatRutes=false;appVm.aplicarFiltresRutes(ruta);appVm.paraules ='';appVm.territori ='';"></a>
<!--<span ng-bind="ruta.data.nom_ca" ng-click="ruta.visible=!ruta.visible;appVm.mapa.setVisiblePolylineRuta(ruta.id,ruta.visible);" ng-show="!ruta.visible"></span>-->
</li>
</ul>
<!--div style="margin-top:15px;clear:both;">
<button class="btn" ng-click="appVm.llistatRutes=false;">Selecciona</button>
</div-->
</div>
</div>
</div>
</div>
<div ng-view class="view-animate fade"></div>
<div class="footer">
<ul class="secondarynav">
<li><a ng-href="{{appVm.language}}/projecte" ng-class="{active:appVm.activeItemMenu('/projecte')}">Projecte</a></li>
<li><a ng-href="{{appVm.language}}/contacte" ng-class="{active:appVm.activeItemMenu('/contacte')}">Contacte</a></li>
<li><a ng-href="{{appVm.language}}/avis-legal" ng-class="{active:appVm.activeItemMenu('/avis-legal')}">Avís legal</a></li>
</ul>
<ul class="social ng-cloak">
<li ng-init="itemsrc='/static/images/facebook_black.png'" ng-mouseover="itemsrc='/static/images/facebook.png'" ng-mouseout="itemsrc='/static/images/facebook_black.png'">
<a href="https://www.facebook.com/mapaliterari/" target="_blank" title="Facebook">
<img ng-src="{{itemsrc}}" />
</a>
</li>
<li ng-init="itemsrc1='/static/images/twitter_black.png'" ng-mouseover="itemsrc1='/static/images/twitter.png'" ng-mouseout="itemsrc1='/static/images/twitter_black.png'">
<a href="https://twitter.com/mapaliteraricat" target="_blank" title="Twitter">
<img ng-src="{{itemsrc1}}" />
</a>
</li>
<li ng-init="itemsrc2='/static/images/vimeo_black.png'" ng-mouseover="itemsrc2='/static/images/vimeo.png'" ng-mouseout="itemsrc2='/static/images/vimeo_black.png'">
<a href="https://vimeo.com/user4486993" target="_blank" title="Vimeo">
<img ng-src="{{itemsrc2}}" />
</a>
</li>
<li ng-init="itemsrc3='/static/images/youtube_black.png'" ng-mouseover="itemsrc3='/static/images/youtube.png'" ng-mouseout="itemsrc3='/static/images/youtube_black.png'">
<a href="https://www.youtube.com/user/espaisescrits?feature=mhum" target="_blank" title="Youtube">
<img ng-src="{{itemsrc3}}" />
</a>
</li>
<li ng-init="itemsrc4='/static/images/googlephoto_black.png'" ng-mouseover="itemsrc4='/static/images/googlephoto.png'" ng-mouseout="itemsrc4='/static/images/googlephoto_black.png'">
<a href="https://get.google.com/albumarchive/118255952851923509063?source=pwa" target="_blank" title="Google Photo">
<img ng-src="{{itemsrc4}}" />
</a>
</li>
</ul>
</div>
</div>
<div class="modal login ng-cloak" ng-show="appVm.modal.visible">
<div class="login__container">
<div class="close" style="cursor: pointer">
<a ng-click="appVm.modal.close();"><i class="icon icon-cerrar alignright"></i></a>
</div>
<h1>{{appVm.modal.title}}</h1>
<p>{{appVm.modal.msg}}</p>
</div>
</div>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.1.1.min.js" integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" crossorigin="anonymous"></script>
<script type="text/javascript" src="/static/js/vendor/swiper.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDVbPEjlBGjTU50nsEl17eMWkjOqOCinAE&libraries=places&sensor=false&language=ca" ></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular-route.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular-animate.min.js"></script>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular-sanitize.min.js"></script>
<script type="text/javascript" src="/static/js/angular-upload.min.js"></script>
<script type="text/javascript" src="/static/js/angular-socialshare.min.js"></script>
<script type='text/javascript' src='/static/js/loading-bar.min.js'></script>
<script type="text/javascript" src="/static/js/main.js?s=1.0.4"></script>
<script type="text/javascript" src="/static/js/app.min.js?s=1.0.5"></script>
</body>
</html>
Sitemap
Кол-во: 0
XML-карта сайта для поисковиков
?
Sitemap.xml помогает поисковику быстрее находить и индексировать страницы. Особенно важен для крупных сайтов и новых страниц, на которые ещё нет входящих ссылок.
Robots.txt не содержит ссылку на карту сайта. Рекомендуется добавить карту сайта и указать ссылку на нее в robots.txt.
Внутренние ссылки
Кол-во: 1
Ссылки на другие страницы своего сайта
?
Внутренние ссылки распределяют ссылочный вес между страницами и помогают поисковику обходить сайт. Пустые анкоры и ссылки на запрещённые robots.txt страницы — типичные ошибки.
На странице присутствуют внутренние ссылки с пустым анкором: 1!
Внутренних ссылок на странице 1 оптимально.
Внутренние ссылки не запрещены к индексации в robots.txt.
На странице присутствуют изображения 1.
Показать внутренние ссылки
| Url | Анкор | Состояние | Анализировать |
|---|---|---|---|
| /{{appVm.language}}/espai/{{appVm.espais.getEspaiByID(ruta.espais[0].espai_id).data.nom_ca | slugify}}/{{appVm.autor.getAutorByID(ruta.data.autor).data.nom | slugify}}-{{appVm.autor.getAutorByID(ruta.data.autor).data.cognoms | slugify}} |
Пустой анкор
|
|
Внешние ссылки
Кол-во: 11
Ссылки на сторонние сайты
?
Исходящие внешние ссылки передают часть ссылочного веса на чужие сайты. Ссылки на авторитетные ресурсы безопасны; ссылки на мусорные сайты могут навредить репутации страницы.
Внешних ссылок на странице 11 слишком много. Спрячьте лишние ссылки в тег noindex или атрибут rel='nofollow'!
На странице ссылки с атрибутом rel='nofollow' 1.
Показать внешние ссылки
| Url | Анкор | Анализировать |
|---|---|---|
| freeprivacypolicy.com |
FreePrivacyPolicy.com
|
Анализировать url |
| facebook.com |
<i class="icon icon-facebook"></i>
|
|
| twitter.com |
<i class="icon icon-twitter"></i>
|
|
| vimeo.com |
<i class="icon icon-vimeo"></i>
|
Анализировать url |
| get.google.com |
<i class="icon icon-picassa"></i>
|
Анализировать url |
| youtube.com |
<i class="icon icon-youtube"></i>
|
Анализировать url |
| facebook.com |
<img ng-src="{{itemsrc}}">
|
|
| twitter.com |
<img ng-src="{{itemsrc1}}">
|
|
| vimeo.com |
<img ng-src="{{itemsrc2}}">
|
Анализировать url |
| youtube.com |
<img ng-src="{{itemsrc3}}">
|
Анализировать url |
| get.google.com |
<img ng-src="{{itemsrc4}}">
|
Анализировать url |
Конкуренты Готовность: 0%
Конкуренты в Яндексе
Кол-во: 0
Топ сайтов-конкурентов в Яндексе
?
Сайты, чаще всего появляющиеся в ТОПе Яндекса по запросам из семантического ядра этой страницы.
Мы не нашли у вас конкурентов в Яндексе. Сайт или очень молодой или плохо продвигается.
Конкурентов в ТОП-10 Яндекса не нашлось.
Конкуренты в Google
Кол-во: 0
Топ сайтов-конкурентов в Google
?
Сайты, чаще всего появляющиеся в ТОПе Google по запросам из семантического ядра этой страницы.
Конкуренты в Google тоже не найдены. Займитесь продвижением сайта!
Конкурентов в ТОП-10 Google не нашлось.
ЗоЗПП: права потребителей Готовность: 100%
Нарушения
Не выявлены
Признаков дистанционной продажи товаров (интернет-магазина) не обнаружено — требования ЗоЗПП о раскрытии информации продавца к сайту не применяются. Нарушений нет.
ФЗ-149: рекомендательные технологии Готовность: 100%
Нарушения
Не выявлены
Рекомендательные блоки («с этим покупают», «похожие товары» и т.п.) на сайте не обнаружены — требования ст. 10.7 ФЗ-149 к сайту не применяются. Нарушений нет.
ФЗ-38: реклама Готовность: 100%
Нарушения
Не выявлены
Рекламных тематик с обязательными оговорками (медицина, БАД, кредиты и займы, новостройки) на сайте не обнаружено. Нарушений нет.
ФЗ-436: защита детей Готовность: 100%
Нарушения
Не выявлены
Признаков информационной продукции (новости, видео, книги, игры, курсы) не обнаружено — обязательная возрастная маркировка по ФЗ-436 сайту не требуется. Нарушений нет.
Вердикт
Оптимизация сайта mapaliterari.cat выполнена всего на 38%. Чтобы исправить ситуацию и попасть в ТОП необходимо:
Постарайтесь исправить общие ошибки.
Исправьте ошибки в мета-тегах.
Исправьте ошибки оптимизации.
Исправьте ошибки индексации.
Поделитесь с друзьями: