Анализ сайта polymer-project.org
Основное Готовность: 75%
Домен
polymer-project.org
Состояние доменного имени
?
Проверяем корректность доменного имени и наличие технических проблем на уровне домена.
Длина домена велика. Но если вы продвигаете запрос, входящий в название домена, то это хорошо.
Домен второго уровня идеален для продвижения.
Ответ сервера
200 Успешный ответ
HTTP-код ответа и цепочка редиректов
?
Код 200 — страница доступна. Коды 3xx — редиректы (цепочки замедляют загрузку и размывают ссылочный вес). Коды 4xx/5xx — ошибки, поисковик не сможет проиндексировать страницу.
Кол-во редиректов 4 слишком большое! Проверьте настройки сайта и веб-сервера!
Цепочка редиректов:
http://polymer-project.org
301 MovedPermanently
http://www.polymer-project.org/
302 Found
https://www.polymer-project.org/
301 MovedPermanently
https://polymer-library.polymer-project.org/3.0/docs/devguide/feature-overview
200 OK
Безопасность
Сайт безопасен
Использование HTTPS и SSL-сертификат
?
HTTPS — обязательный стандарт. Google и Яндекс отдают предпочтение защищённым сайтам. Отсутствие SSL или просроченный сертификат ведут к предупреждениям в браузере и снижению позиций.
Не настроен HSTS (Strict-Transport-Security) — рекомендуется включить.
На сайте работает защищенный протокол ssl и сайт открывается по https.
Ssl-сертификат действителен до 09.01.2027 2:59:59.
HTTP автоматически перенаправляется на HTTPS.
Поздравляем! Сайт не содержится в реестре РКН.
Кодировка
utf-8
Кодировка символов страницы
?
Стандарт — UTF-8. Неправильная кодировка вызывает нечитаемые символы и мешает поисковику корректно распознать текст страницы.
Указана кодировка на странице utf-8.
Язык
en
Атрибут lang в HTML-теге
?
Атрибут lang (<html lang="ru">) сообщает поисковикам и браузерам, на каком языке написана страница. Помогает при ранжировании в региональном поиске.
Язык документа указан явно: en.
Скорость загрузки
~0,88сек
Время отклика сервера (TTFB)
?
Time To First Byte — время до получения первого байта от сервера. Норма до 200 мс. Медленный отклик ухудшает пользовательский опыт и ранжирование: Яндекс и Google учитывают скорость страниц.
Скорость загрузки сайта 0,88сек оптимальна.
Объем документа
52Кб
Размер HTML-кода страницы
?
Слишком большой HTML замедляет парсинг браузером и сканирование поисковым роботом. Рекомендуется не более 200 Кб.
Объем html-документа 52Кб оптимален.
Структура html-документа корректна.
Ресурсы
Ресурсы: 5
Внешние ресурсы страницы (CSS, JS, изображения)
?
Количество и тип подключённых ресурсов влияют на скорость загрузки. Большое число запросов увеличивает время рендеринга страницы.
Кол-во файлов ресурсов 5 достаточно.
Показать полный список ресурсов
| Тип | Название | Значение |
|---|---|---|
| stylesheet | //fonts.googleapis.com/css?family=Source+Code+Pro:400,700|Roboto+Slab:300,500 | |
| stylesheet | /css/site.css | |
| js | /webcomponentsjs/custom-elements-es5-adapter.js | |
| js | /webcomponentsjs/webcomponents-loader.js | |
| js | /js/app.js |
Серверные заголовки
Кол-во: 4
HTTP-заголовки ответа сервера
?
Заголовки сервера передают браузеру и поисковику служебную информацию: кеширование, безопасность (CSP, HSTS), сжатие (gzip). Правильная настройка ускоряет загрузку и повышает защищённость.
Найдены серверные заголовки 4шт. Подробнее про серверные заголовки.
Показать полный список серверных заголовков
| Ключ | Значение |
|---|---|
| Cache-Control | no-cache |
| x-cloud-trace-context | f0b2468ee414bdabd3d016837084b9f1;o=1 |
| Date | Fri, 21 Aug 2026 14:33:54 GMT |
| Server |
CMS
Не определена
Система управления сайтом (движок)
?
CMS — это движок, на котором работает сайт (WordPress, 1C-Bitrix, Tilda и др.). Знание CMS помогает понять возможности SEO-оптимизации и подобрать подходящие инструменты. «Не определена» — вероятно, самописный сайт или нестандартная сборка.
CMS не определена. Вероятно, сайт самописный либо движок надёжно скрыт. Это не ошибка.
Веб-сервер
Google
Программное обеспечение сервера
?
Веб-сервер — это ПО, которое отдаёт страницы посетителям (nginx, Apache, IIS, LiteSpeed и др.). Определяется по серверным заголовкам ответа (Server, X-Powered-By и т.п.). «Не определён» — сервер намеренно скрывает эти заголовки, это нормальная практика безопасности.
В заголовке Server указано: Google.
Мета-теги Готовность: 22%
Title
Polymer library - Polymer Project
Заголовок страницы в браузере и поисковой выдаче
?
Title — главный SEO-заголовок страницы. Влияет на CTR в поиске и ранжирование. Оптимальная длина: 50–70 символов. Ключевые слова — ближе к началу.
Устраните дубли в title: polymer(2)
Необходимо увеличить число символов в title (текущее значение: 33, оптимально: от 40 до 45)
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.0, minimum-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, т.е. «не масштабировать».
Meta-тег viewport со значением minimum-scale определяет минимальный масштаб области просмотра.
Разметка OpenGraph
Не найдено
Мета-теги для красивых превью в соцсетях
?
OpenGraph (og:title, og:description, og:image) управляет тем, как страница выглядит при репосте в социальных сетях и мессенджерах. Отсутствие OG-тегов — невзрачный превью при шеринге.
Разметка OpenGraph не задана. Страница не оптимизирована под социальные сети. Мета-теги с разметкой Og помогают социальным роботам лучше структурировать Ваш сайт.
Все мета-теги
Кол-во: 4
Полный список мета-тегов страницы
?
Таблица всех meta-тегов, включая нестандартные. Позволяет найти опечатки, дубли и лишние теги.
Найдены мета-теги 4шт. Мета-теги не видимы для человека и предназначены для обмена информацией между веб-страницей и поисковыми системами, браузерами и другими веб-службами. С ними роботы 🤖 и устройства ведут себя более ожидаемо.
Показать полный список мета-тегов
| Тип | Название | Значение |
|---|---|---|
| name | viewport | width=device-width, initial-scale=1.0, minimum-scale=1.0 |
| name | google-site-verification | k0e8DrbD40s54xHNBqwIsRrSSAkZoprwtEYDnNY06bU |
| name | google-site-verification | pnjjbQFvjPwaWhEXY6nSyaS9iyghmH-M_yLHBveDX2M |
| name | theme-color | #1e88e5 |
Оптимизация Готовность: 68%
Структура
Ошибок нет
Семантические HTML-элементы страницы
?
Проверяет наличие основных структурных элементов: nav, header, footer, main. Корректная семантическая структура помогает поисковику понять архитектуру страницы.
Структура документа корректна (теги <html> и <body> присутствуют в единственном экземпляре).
Контент
Есть ошибки
Объём и качество текстового содержимого
?
Анализирует объём полезного текста на странице. Слишком мало — страница может считаться малополезной. Слишком много — ухудшается читаемость и восприятие.
Кол-во слов 731 не очень много. Добавьте побольше текста (хотя бы 800 слов)!
Слова из title 3 встречаются в тексте достаточно.
Абзацев с текстом 11 достаточно.
Среднее число слов в абзаце 23 достаточно.
Кол-во знаков контента 5177 на странице оптимально.
Заголовки
Ошибок нет
Иерархия заголовков H1–H6
?
H1 должен быть один и содержать ключевой запрос. H2–H6 описывают подразделы. Пропуск уровней (H1 → H3) и несколько H1 — типичные ошибки, снижающие понятность страницы для поисковика.
На странице присутствуют заголовки <h1> 1. Это прекрасно.
Тошнота
4,36
Насколько одно слово доминирует в тексте
?
Классическая тошнота = √(частота самого повторяющегося слова). Норма до 7–8: текст воспринимается естественно. Выше — поисковик может счесть страницу переспамленной.
Тошнота превышает норму 3. Измените текст страницы!
Академич. тошнота
28,18%
Насколько текст перенасыщен ключевыми словами
?
Академическая тошнота = (частота слова / общее количество слов) × 100%. Показывает долю конкретного слова в тексте. Норма 5–15%.
Академическая тошнота превышает норму 5-15%. Измените текст страницы!
Семантическое ядро
20
Наиболее часто встречающиеся слова на странице
?
Топ слов по частоте использования. Показывает, какие слова доминируют в тексте с точки зрения поисковика.
Контент страницы содержит осмысленный текст и слова.
Показать список слов
| Слово | Кол-во | Частота |
|---|---|---|
| polymer | 19 | 2,60% |
| element | 18 | 2,46% |
| elements | 17 | 2,33% |
| properties | 16 | 2,19% |
| shadow | 15 | 2,05% |
| custom | 12 | 1,64% |
| overview | 9 | 1,23% |
| events | 8 | 1,09% |
| system | 7 | 0,96% |
| release | 6 | 0,82% |
| concepts | 6 | 0,82% |
| provides | 6 | 0,82% |
| binding | 5 | 0,68% |
| define | 5 | 0,68% |
| create | 5 | 0,68% |
| declare | 4 | 0,55% |
| support | 4 | 0,55% |
| project | 4 | 0,55% |
| library | 4 | 0,55% |
| element's | 4 | 0,55% |
Индексация Готовность: 50%
Индексирование
Ошибок нет
Разрешено ли индексирование страницы
?
Проверяет, не закрыта ли страница от индексации через robots.txt, meta robots или X-Robots-Tag. Страница, закрытая от индексации, не появится в поисковой выдаче.
Анкоров на странице 159 оптимально. Поисковые роботы обязательно проиндексируют сайт.
Robots.txt
Найден корректный robots.txt
Файл управления сканированием сайта роботами
?
Robots.txt указывает поисковым роботам, какие страницы сканировать, а какие — нет. Ошибки в файле могут случайно закрыть важные разделы от индексации.
Кол-во редиректов для файла robots.txt 4 слишком большое! Это может вызывать затруднение при индексации поисковыми роботами!
Проверяемая страница не запрещена в robots.txt.
Robots.txt доступен по постоянному адресу
Цепочка редиректов для файла robots.txt:
http://polymer-project.org/robots.txt
301 MovedPermanently
http://www.polymer-project.org/
302 Found
https://www.polymer-project.org/
301 MovedPermanently
https://polymer-library.polymer-project.org/3.0/docs/devguide/feature-overview
200 OK
Показать содержимое robots.txt
<!--
@license
Copyright (c) 2016 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
-->
<!DOCTYPE html>
<html itemscope itemtype="http://schema.org/Organization" lang="en">
<head>
<title>Polymer library - Polymer Project</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="chrome=1" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0">
<meta name="google-site-verification" content="k0e8DrbD40s54xHNBqwIsRrSSAkZoprwtEYDnNY06bU" />
<meta name="google-site-verification" content="pnjjbQFvjPwaWhEXY6nSyaS9iyghmH-M_yLHBveDX2M">
<meta itemprop="image" content="https://www.polymer-project.org/images/logos/favicon.png">
<meta itemprop="description" content="The Polymer library uses the latest web technologies to let you create custom HTML elements.">
<meta name="theme-color" content="#1e88e5">
<link rel="manifest" href="/manifest.json">
<link rel="publisher" href="https://plus.google.com/107187849809354688692">
<link rel="shortcut icon" href="/images/logos/favicon.png">
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Source+Code+Pro:400,700|Roboto+Slab:300,500">
<link rel="stylesheet" href="/css/site.css">
<script>if (!window.customElements) { document.write('<!--'); }</script>
<script src="/webcomponentsjs/custom-elements-es5-adapter.js"></script>
<!--! do not remove -->
<script src="/webcomponentsjs/webcomponents-loader.js"></script></head>
<body>
<pw-shell server-rendered>
<div class="site-nav" slot="site-nav">
<img src="/images/logos/p-logo.png" alt="Polymer Logo">
<pw-version-selector
active-docs-version="3.0"
v1-page-link="/1.0/docs/devguide/feature-overview"
v2-page-link="/2.0/docs/devguide/feature-overview"
v3-page-link="/3.0/docs/devguide/feature-overview"></pw-version-selector>
<a class="level-1"
href="/"
name="/"
data-version="3.0">
<span>Home</span>
</a>
<a class="level-1"
href="/3.0/docs/devguide/feature-overview"
name="/3.0/docs/devguide/feature-overview"
data-version="3.0">
<span>Guides</span>
<paper-icon-button icon="icons:expand-more"
onclick="_expandClicked(event)">
</paper-icon-button>
</a>
<iron-collapse class="">
<a class="level-2 "
href="/3.0/docs/devguide/feature-overview"
name="/3.0/docs/devguide/feature-overview">
<span>Feature overview</span>
</a>
<a class="level-2 "
href="/3.0/docs/quick-tour"
name="/3.0/docs/quick-tour">
<span>Try Polymer</span>
</a>
<a class="level-2 "
href="/3.0/docs/install-3-0"
name="/3.0/docs/install-3-0">
<span>Install Polymer 3.x</span>
</a>
<a class="level-2" onclick="_expandClicked(event)">
<span>Tutorial: Build an element</span>
<paper-icon-button icon="icons:expand-more"></paper-icon-button>
</a>
<iron-collapse>
<a class="level-2 indent"
href="/3.0/docs/first-element/intro"
name="/3.0/docs/first-element/intro">
<span>1. Get set up</span>
</a>
<a class="level-2 indent"
href="/3.0/docs/first-element/step-2"
name="/3.0/docs/first-element/step-2">
<span>2. Add shadow DOM</span>
</a>
<a class="level-2 indent"
href="/3.0/docs/first-element/step-3"
name="/3.0/docs/first-element/step-3">
<span>3. Data binding & properties</span>
</a>
<a class="level-2 indent"
href="/3.0/docs/first-element/step-4"
name="/3.0/docs/first-element/step-4">
<span>4. React to input</span>
</a>
<a class="level-2 indent"
href="/3.0/docs/first-element/step-5"
name="/3.0/docs/first-element/step-5">
<span>5. Theming with custom properties</span>
</a>
</iron-collapse>
<a class="level-2" onclick="_expandClicked(event)">
<span>About this release</span>
<paper-icon-button icon="icons:expand-more"></paper-icon-button>
</a>
<iron-collapse>
<a class="level-2 indent"
href="/3.0/docs/about_30"
name="/3.0/docs/about_30">
<span>What's new in 3.0</span>
</a>
<a class="level-2 indent"
href="/3.0/docs/upgrade"
name="/3.0/docs/upgrade">
<span>Upgrade guide</span>
</a>
<a class="level-2 indent"
href="/3.0/docs/release-notes"
name="/3.0/docs/release-notes">
<span>Release notes</span>
</a>
</iron-collapse>
<a class="level-2" onclick="_expandClicked(event)">
<span>Custom elements</span>
<paper-icon-button icon="icons:expand-more"></paper-icon-button>
</a>
<iron-collapse>
<a class="level-2 indent"
href="/3.0/docs/devguide/custom-elements"
name="/3.0/docs/devguide/custom-elements">
<span>Custom element concepts</span>
</a>
<a class="level-2 indent"
href="/3.0/docs/devguide/registering-elements"
name="/3.0/docs/devguide/registering-elements">
<span>Define an element</span>
</a>
<a class="level-2 indent"
href="/3.0/docs/devguide/properties"
name="/3.0/docs/devguide/properties">
<span>Declare properties</span>
</a>
<a class="level-2 "
href="/3.0/docs/devguide/legacy-elements"
name="/3.0/docs/devguide/legacy-elements">
<span>Working with legacy elements</span>
</a>
</iron-collapse>
<a class="level-2" onclick="_expandClicked(event)">
<span>Shadow DOM & styling</span>
<paper-icon-button icon="icons:expand-more"></paper-icon-button>
</a>
<iron-collapse>
<a class="level-2 indent"
href="/3.0/docs/devguide/shadow-dom"
name="/3.0/docs/devguide/shadow-dom">
<span>Shadow DOM concepts</span>
</a>
<a class="level-2 indent"
href="/3.0/docs/devguide/dom-template"
name="/3.0/docs/devguide/dom-template">
<span>DOM templating</span>
</a>
<a class="level-2 indent"
href="/3.0/docs/devguide/style-shadow-dom"
name="/3.0/docs/devguide/style-shadow-dom">
<span>Style shadow DOM</span>
</a>
<a class="level-2 indent"
href="/3.0/docs/devguide/custom-css-properties"
name="/3.0/docs/devguide/custom-css-properties">
<span>Custom CSS properties</span>
</a>
</iron-collapse>
<a class="level-2" onclick="_expandClicked(event)">
<span>Events</span>
<paper-icon-button icon="icons:expand-more"></paper-icon-button>
</a>
<iron-collapse>
<a class="level-2 indent"
href="/3.0/docs/devguide/events"
name="/3.0/docs/devguide/events">
<span>Handle and fire events</span>
</a>
<a class="level-2 indent"
href="/3.0/docs/devguide/gesture-events"
name="/3.0/docs/devguide/gesture-events">
<span>Gesture events</span>
</a>
</iron-collapse>
<a class="level-2" onclick="_expandClicked(event)">
<span>Data system</span>
<paper-icon-button icon="icons:expand-more"></paper-icon-button>
</a>
<iron-collapse>
<a class="level-2 indent"
href="/3.0/docs/devguide/data-system"
name="/3.0/docs/devguide/data-system">
<span>Data system concepts</span>
</a>
<a class="level-2 indent"
href="/3.0/docs/devguide/model-data"
name="/3.0/docs/devguide/model-data">
<span>Work with object and array data</span>
</a>
<a class="level-2 indent"
href="/3.0/docs/devguide/observers"
name="/3.0/docs/devguide/observers">
<span>Observers and computed properties</span>
</a>
<a class="level-2 indent"
href="/3.0/docs/devguide/data-binding"
name="/3.0/docs/devguide/data-binding">
<span>Data binding</span>
</a>
<a class="level-2 indent"
href="/3.0/docs/devguide/templates"
name="/3.0/docs/devguide/templates">
<span>Helper elements</span>
</a>
</iron-collapse>
<a class="level-2" onclick="_expandClicked(event)">
<span>Browser support</span>
<paper-icon-button icon="icons:expand-more"></paper-icon-button>
</a>
<iron-collapse>
<a class="level-2 indent"
href="/3.0/docs/browsers"
name="/3.0/docs/browsers">
<span>Overview</span>
</a>
<a class="level-2 indent"
href="/3.0/docs/polyfills"
name="/3.0/docs/polyfills">
<span>Polyfills</span>
</a>
<a class="level-2 indent"
href="/3.0/docs/es6"
name="/3.0/docs/es6">
<span>ES6 and modules</span>
</a>
</iron-collapse>
<a class="level-2" onclick="_expandClicked(event)">
<span>Tools</span>
<paper-icon-button icon="icons:expand-more"></paper-icon-button>
</a>
<iron-collapse>
<a class="level-2 indent"
href="/3.0/docs/tools/overview"
name="/3.0/docs/tools/overview">
<span>Tools overview</span>
</a>
<a class="level-2 indent"
href="/3.0/docs/tools/polymer-cli"
name="/3.0/docs/tools/polymer-cli">
<span>Polymer CLI</span>
</a>
<a class="level-2 indent"
href="/3.0/docs/tools/polymer-cli-commands"
name="/3.0/docs/tools/polymer-cli-commands">
<span>CLI commands</span>
</a>
<a class="level-2 indent"
href="/3.0/docs/tools/create-element-polymer-cli"
name="/3.0/docs/tools/create-element-polymer-cli">
<span>Create an element project</span>
</a>
<a class="level-2 indent"
href="/3.0/docs/tools/create-app-polymer-cli"
name="/3.0/docs/tools/create-app-polymer-cli">
<span>Create an application project</span>
</a>
<a class="level-2 indent"
href="/3.0/docs/tools/documentation"
name="/3.0/docs/tools/documentation">
<span>Document your elements</span>
</a>
<a class="level-2 indent"
href="/3.0/docs/tools/tests"
name="/3.0/docs/tools/tests">
<span>Test your elements</span>
</a>
<a class="level-2 indent"
href="/3.0/docs/tools/polymer-json"
name="/3.0/docs/tools/polymer-json">
<span>polymer.json specification</span>
</a>
<a class="level-2 indent"
href="/3.0/docs/tools/node-support"
name="/3.0/docs/tools/node-support">
<span>Node support</span>
</a>
</iron-collapse>
<a class="level-2" onclick="_expandClicked(event)">
<span>Build apps</span>
<paper-icon-button icon="icons:expand-more"></paper-icon-button>
</a>
<iron-collapse>
<a class="level-2 "
href="/3.0/docs/apps/"
name="/3.0/docs/apps/">
<span>Overview</span>
</a>
<a class="level-2 indent"
href="/3.0/docs/apps/templates"
name="/3.0/docs/apps/templates">
<span>App templates</span>
</a>
<a class="level-2 indent"
href="/3.0/docs/apps/build-for-production"
name="/3.0/docs/apps/build-for-production">
<span>Build for production</span>
</a>
<a class="level-2 indent"
href="/3.0/docs/apps/serve"
name="/3.0/docs/apps/serve">
<span>Serve your app</span>
</a>
<a class="level-2 indent"
href="/3.0/docs/apps/prpl"
name="/3.0/docs/apps/prpl">
<span>The PRPL pattern</span>
</a>
<a class="level-2 indent"
href="/3.0/docs/apps/service-worker"
name="/3.0/docs/apps/service-worker">
<span>Service worker</span>
</a>
</iron-collapse>
<a class="level-2" onclick="_expandClicked(event)">
<span>Reference</span>
<paper-icon-button icon="icons:expand-more"></paper-icon-button>
</a>
<iron-collapse>
<a class="level-2 indent"
href="/3.0/docs/glossary"
name="/3.0/docs/glossary">
<span>Glossary</span>
</a>
<a class="level-2 indent"
href="/3.0/docs/devguide/settings"
name="/3.0/docs/devguide/settings">
<span>Global settings</span>
</a>
</iron-collapse>
</iron-collapse>
<a class="level-1"
href="/3.0/api/"
name="/3.0/api/"
data-version="3.0">
<span>API Reference</span>
<paper-icon-button icon="icons:expand-more"
onclick="_expandClicked(event)">
</paper-icon-button>
</a>
<iron-collapse class="">
<a class="level-2 "
href="/3.0/api/"
name="/3.0/api/">
<span>index</span>
</a>
<a class="level-2 "
href="/3.0/api/polymer-element"
name="/3.0/api/polymer-element">
<span>polymer-element.js</span>
</a>
<a class="level-2" onclick="_expandClicked(event)">
<span>Elements</span>
<paper-icon-button icon="icons:expand-more"></paper-icon-button>
</a>
<iron-collapse>
<a class="level-2 indent"
href="/3.0/api/elements/array-selector"
name="/3.0/api/elements/array-selector">
<span>array-selector.js</span>
</a>
<a class="level-2 indent"
href="/3.0/api/elements/custom-style"
name="/3.0/api/elements/custom-style">
<span>custom-style.js</span>
</a>
<a class="level-2 indent"
href="/3.0/api/elements/dom-bind"
name="/3.0/api/elements/dom-bind">
<span>dom-bind.js</span>
</a>
<a class="level-2 indent"
href="/3.0/api/elements/dom-if"
name="/3.0/api/elements/dom-if">
<span>dom-if.js</span>
</a>
<a class="level-2 indent"
href="/3.0/api/elements/dom-module"
name="/3.0/api/elements/dom-module">
<span>dom-module.js</span>
</a>
<a class="level-2 indent"
href="/3.0/api/elements/dom-repeat"
name="/3.0/api/elements/dom-repeat">
<span>dom-repeat.js</span>
</a>
</iron-collapse>
<a class="level-2" onclick="_expandClicked(event)">
<span>Mixins</span>
<paper-icon-button icon="icons:expand-more"></paper-icon-button>
</a>
<iron-collapse>
<a class="level-2 indent"
href="/3.0/api/mixins/dir-mixin"
name="/3.0/api/mixins/dir-mixin">
<span>dir-mixin.js</span>
</a>
<a class="level-2 indent"
href="/3.0/api/mixins/disable-upgrade-mixin"
name="/3.0/api/mixins/disable-upgrade-mixin">
<span>disable-upgrade-mixin.js</span>
</a>
<a class="level-2 indent"
href="/3.0/api/mixins/element-mixin"
name="/3.0/api/mixins/element-mixin">
<span>element-mixin.js</span>
</a>
<a class="level-2 indent"
href="/3.0/api/mixins/gesture-event-listeners"
name="/3.0/api/mixins/gesture-event-listeners">
<span>gesture-event-listeners.js</span>
</a>
<a class="level-2 indent"
href="/3.0/api/mixins/mutable-data"
name="/3.0/api/mixins/mutable-data">
<span>mutable-data.js</span>
</a>
<a class="level-2 indent"
href="/3.0/api/mixins/properties-changed"
name="/3.0/api/mixins/properties-changed">
<span>properties-changed.js</span>
</a>
<a class="level-2 indent"
href="/3.0/api/mixins/properties-mixin"
name="/3.0/api/mixins/properties-mixin">
<span>properties-mixin.js</span>
</a>
<a class="level-2 indent"
href="/3.0/api/mixins/property-accessors"
name="/3.0/api/mixins/property-accessors">
<span>property-accessors.js</span>
</a>
<a class="level-2 indent"
href="/3.0/api/mixins/property-effects"
name="/3.0/api/mixins/property-effects">
<span>property-effects.js</span>
</a>
<a class="level-2 indent"
href="/3.0/api/mixins/strict-binding-parser"
name="/3.0/api/mixins/strict-binding-parser">
<span>strict-binding-parser.js</span>
</a>
<a class="level-2 indent"
href="/3.0/api/mixins/template-stamp"
name="/3.0/api/mixins/template-stamp">
<span>template-stamp.js</span>
</a>
</iron-collapse>
<a class="level-2" onclick="_expandClicked(event)">
<span>Utils</span>
<paper-icon-button icon="icons:expand-more"></paper-icon-button>
</a>
<iron-collapse>
<a class="level-2 indent"
href="/3.0/api/utils/array-splice"
name="/3.0/api/utils/array-splice">
<span>array-splice.js</span>
</a>
<a class="level-2 indent"
href="/3.0/api/utils/async"
name="/3.0/api/utils/async">
<span>async.js</span>
</a>
<a class="level-2 indent"
href="/3.0/api/utils/case-map"
name="/3.0/api/utils/case-map">
<span>case-map.js</span>
</a>
<a class="level-2 indent"
href="/3.0/api/utils/debounce"
name="/3.0/api/utils/debounce">
<span>debounce.js</span>
</a>
<a class="level-2 indent"
href="/3.0/api/utils/flattened-nodes-observer"
name="/3.0/api/utils/flattened-nodes-observer">
<span>flattened-nodes-observer.js</span>
</a>
<a class="level-2 indent"
href="/3.0/api/utils/flush"
name="/3.0/api/utils/flush">
<span>flush.js</span>
</a>
<a class="level-2 indent"
href="/3.0/api/utils/gestures"
name="/3.0/api/utils/gestures">
<span>gestures.js</span>
</a>
<a class="level-2 indent"
href="/3.0/api/utils/html-tag"
name="/3.0/api/utils/html-tag">
<span>html-tag.js</span>
</a>
<a class="level-2 indent"
href="/3.0/api/utils/mixin"
name="/3.0/api/utils/mixin">
<span>mixin.js</span>
</a>
<a class="level-2 indent"
href="/3.0/api/utils/path"
name="/3.0/api/utils/path">
<span>path.js</span>
</a>
<a class="level-2 indent"
href="/3.0/api/utils/render-status"
name="/3.0/api/utils/render-status">
<span>render-status.js</span>
</a>
<a class="level-2 indent"
href="/3.0/api/utils/resolve-url"
name="/3.0/api/utils/resolve-url">
<span>resolve-url.js</span>
</a>
<a class="level-2 indent"
href="/3.0/api/utils/settings"
name="/3.0/api/utils/settings">
<span>settings.js</span>
</a>
<a class="level-2 indent"
href="/3.0/api/utils/style-gather"
name="/3.0/api/utils/style-gather">
<span>style-gather.js</span>
</a>
<a class="level-2 indent"
href="/3.0/api/utils/telemetry"
name="/3.0/api/utils/telemetry">
<span>telemetry.js</span>
</a>
<a class="level-2 indent"
href="/3.0/api/utils/templatize"
name="/3.0/api/utils/templatize">
<span>templatize.js</span>
</a>
</iron-collapse>
<a class="level-2" onclick="_expandClicked(event)">
<span>Legacy</span>
<paper-icon-button icon="icons:expand-more"></paper-icon-button>
</a>
<iron-collapse>
<a class="level-2 indent"
href="/3.0/api/legacy/class"
name="/3.0/api/legacy/class">
<span>class.js</span>
</a>
<a class="level-2 indent"
href="/3.0/api/legacy/legacy-data-mixin"
name="/3.0/api/legacy/legacy-data-mixin">
<span>legacy-data-mixin.js</span>
</a>
<a class="level-2 indent"
href="/3.0/api/legacy/legacy-element-mixin"
name="/3.0/api/legacy/legacy-element-mixin">
<span>legacy-element-mixin.js</span>
</a>
<a class="level-2 indent"
href="/3.0/api/legacy/mutable-data-behavior"
name="/3.0/api/legacy/mutable-data-behavior">
<span>mutable-data-behavior.js</span>
</a>
<a class="level-2 indent"
href="/3.0/api/legacy/polymer-fn"
name="/3.0/api/legacy/polymer-fn">
<span>polymer-fn.js</span>
</a>
<a class="level-2 indent"
href="/3.0/api/legacy/polymer.dom"
name="/3.0/api/legacy/polymer.dom">
<span>polymer.dom.js</span>
</a>
<a class="level-2 indent"
href="/3.0/api/legacy/templatizer-behavior"
name="/3.0/api/legacy/templatizer-behavior">
<span>templatizer-behavior.js</span>
</a>
</iron-collapse>
</iron-collapse>
</div>
<script>
function _expandClicked(event) {
var navLink = event.target.parentNode;
var navCollapse = navLink.nextElementSibling;
document.querySelector('pw-shell').styleLinkPath(navLink, !navCollapse.opened);
// Don't actually click the link.
event.preventDefault();
event.stopImmediatePropagation();
}
</script>
<div class="devguide-main">
<nav>
<pw-version-selector active-docs-version="3.0"
v1-page-link="/1.0/docs/devguide/feature-overview"
v2-page-link="/2.0/docs/devguide/feature-overview"
v3-page-link="/3.0/docs/devguide/feature-overview"></pw-version-selector>
<div class="sidenav">
<a class="sidenav-content iron-selected"
name="/3.0/docs/devguide/feature-overview" href="/3.0/docs/devguide/feature-overview">
Feature overview
</a>
<a class="sidenav-content "
name="/3.0/docs/quick-tour" href="/3.0/docs/quick-tour">
Try Polymer
</a>
<a class="sidenav-content "
name="/3.0/docs/install-3-0" href="/3.0/docs/install-3-0">
Install Polymer 3.x
</a>
<div class="sidenav-content sidenav-header">Tutorial: Build an element</div>
<a class="sidenav-content indent "
name="/3.0/docs/first-element/intro" href="/3.0/docs/first-element/intro">
1. Get set up
</a>
<a class="sidenav-content indent "
name="/3.0/docs/first-element/step-2" href="/3.0/docs/first-element/step-2">
2. Add shadow DOM
</a>
<a class="sidenav-content indent "
name="/3.0/docs/first-element/step-3" href="/3.0/docs/first-element/step-3">
3. Data binding & properties
</a>
<a class="sidenav-content indent "
name="/3.0/docs/first-element/step-4" href="/3.0/docs/first-element/step-4">
4. React to input
</a>
<a class="sidenav-content indent "
name="/3.0/docs/first-element/step-5" href="/3.0/docs/first-element/step-5">
5. Theming with custom properties
</a>
<div class="sidenav-content sidenav-endheader"></div>
<div class="sidenav-content sidenav-header">About this release</div>
<a class="sidenav-content indent "
name="/3.0/docs/about_30" href="/3.0/docs/about_30">
What's new in 3.0
</a>
<a class="sidenav-content indent "
name="/3.0/docs/upgrade" href="/3.0/docs/upgrade">
Upgrade guide
</a>
<a class="sidenav-content indent "
name="/3.0/docs/release-notes" href="/3.0/docs/release-notes">
Release notes
</a>
<div class="sidenav-content sidenav-endheader"></div>
<div class="sidenav-content sidenav-header">Custom elements</div>
<a class="sidenav-content indent "
name="/3.0/docs/devguide/custom-elements" href="/3.0/docs/devguide/custom-elements">
Custom element concepts
</a>
<a class="sidenav-content indent "
name="/3.0/docs/devguide/registering-elements" href="/3.0/docs/devguide/registering-elements">
Define an element
</a>
<a class="sidenav-content indent "
name="/3.0/docs/devguide/properties" href="/3.0/docs/devguide/properties">
Declare properties
</a>
<a class="sidenav-content "
name="/3.0/docs/devguide/legacy-elements" href="/3.0/docs/devguide/legacy-elements">
Working with legacy elements
</a>
<div class="sidenav-content sidenav-endheader"></div>
<div class="sidenav-content sidenav-header">Shadow DOM & styling</div>
<a class="sidenav-content indent "
name="/3.0/docs/devguide/shadow-dom" href="/3.0/docs/devguide/shadow-dom">
Shadow DOM concepts
</a>
<a class="sidenav-content indent "
name="/3.0/docs/devguide/dom-template" href="/3.0/docs/devguide/dom-template">
DOM templating
</a>
<a class="sidenav-content indent "
name="/3.0/docs/devguide/style-shadow-dom" href="/3.0/docs/devguide/style-shadow-dom">
Style shadow DOM
</a>
<a class="sidenav-content indent "
name="/3.0/docs/devguide/custom-css-properties" href="/3.0/docs/devguide/custom-css-properties">
Custom CSS properties
</a>
<div class="sidenav-content sidenav-endheader"></div>
<div class="sidenav-content sidenav-header">Events</div>
<a class="sidenav-content indent "
name="/3.0/docs/devguide/events" href="/3.0/docs/devguide/events">
Handle and fire events
</a>
<a class="sidenav-content indent "
name="/3.0/docs/devguide/gesture-events" href="/3.0/docs/devguide/gesture-events">
Gesture events
</a>
<div class="sidenav-content sidenav-endheader"></div>
<div class="sidenav-content sidenav-header">Data system</div>
<a class="sidenav-content indent "
name="/3.0/docs/devguide/data-system" href="/3.0/docs/devguide/data-system">
Data system concepts
</a>
<a class="sidenav-content indent "
name="/3.0/docs/devguide/model-data" href="/3.0/docs/devguide/model-data">
Work with object and array data
</a>
<a class="sidenav-content indent "
name="/3.0/docs/devguide/observers" href="/3.0/docs/devguide/observers">
Observers and computed properties
</a>
<a class="sidenav-content indent "
name="/3.0/docs/devguide/data-binding" href="/3.0/docs/devguide/data-binding">
Data binding
</a>
<a class="sidenav-content indent "
name="/3.0/docs/devguide/templates" href="/3.0/docs/devguide/templates">
Helper elements
</a>
<div class="sidenav-content sidenav-endheader"></div>
<div class="sidenav-content sidenav-header">Browser support</div>
<a class="sidenav-content indent "
name="/3.0/docs/browsers" href="/3.0/docs/browsers">
Overview
</a>
<a class="sidenav-content indent "
name="/3.0/docs/polyfills" href="/3.0/docs/polyfills">
Polyfills
</a>
<a class="sidenav-content indent "
name="/3.0/docs/es6" href="/3.0/docs/es6">
ES6 and modules
</a>
<div class="sidenav-content sidenav-endheader"></div>
<div class="sidenav-content sidenav-header">Tools</div>
<a class="sidenav-content indent "
name="/3.0/docs/tools/overview" href="/3.0/docs/tools/overview">
Tools overview
</a>
<a class="sidenav-content indent "
name="/3.0/docs/tools/polymer-cli" href="/3.0/docs/tools/polymer-cli">
Polymer CLI
</a>
<a class="sidenav-content indent "
name="/3.0/docs/tools/polymer-cli-commands" href="/3.0/docs/tools/polymer-cli-commands">
CLI commands
</a>
<a class="sidenav-content indent "
name="/3.0/docs/tools/create-element-polymer-cli" href="/3.0/docs/tools/create-element-polymer-cli">
Create an element project
</a>
<a class="sidenav-content indent "
name="/3.0/docs/tools/create-app-polymer-cli" href="/3.0/docs/tools/create-app-polymer-cli">
Create an application project
</a>
<a class="sidenav-content indent "
name="/3.0/docs/tools/documentation" href="/3.0/docs/tools/documentation">
Document your elements
</a>
<a class="sidenav-content indent "
name="/3.0/docs/tools/tests" href="/3.0/docs/tools/tests">
Test your elements
</a>
<a class="sidenav-content indent "
name="/3.0/docs/tools/polymer-json" href="/3.0/docs/tools/polymer-json">
polymer.json specification
</a>
<a class="sidenav-content indent "
name="/3.0/docs/tools/node-support" href="/3.0/docs/tools/node-support">
Node support
</a>
<div class="sidenav-content sidenav-endheader"></div>
<div class="sidenav-content sidenav-header">Build apps</div>
<a class="sidenav-content "
name="/3.0/docs/apps/" href="/3.0/docs/apps/">
Overview
</a>
<a class="sidenav-content indent "
name="/3.0/docs/apps/templates" href="/3.0/docs/apps/templates">
App templates
</a>
<a class="sidenav-content indent "
name="/3.0/docs/apps/build-for-production" href="/3.0/docs/apps/build-for-production">
Build for production
</a>
<a class="sidenav-content indent "
name="/3.0/docs/apps/serve" href="/3.0/docs/apps/serve">
Serve your app
</a>
<a class="sidenav-content indent "
name="/3.0/docs/apps/prpl" href="/3.0/docs/apps/prpl">
The PRPL pattern
</a>
<a class="sidenav-content indent "
name="/3.0/docs/apps/service-worker" href="/3.0/docs/apps/service-worker">
Service worker
</a>
<div class="sidenav-content sidenav-endheader"></div>
<div class="sidenav-content sidenav-header">Reference</div>
<a class="sidenav-content indent "
name="/3.0/docs/glossary" href="/3.0/docs/glossary">
Glossary
</a>
<a class="sidenav-content indent "
name="/3.0/docs/devguide/settings" href="/3.0/docs/devguide/settings">
Global settings
</a>
<div class="sidenav-content sidenav-endheader"></div>
</div>
</nav>
<div class="content-container">
<header id="header" data-version="3.0">
<p>Feature Overview</p>
<h1>Polymer library</h1>
<a class="edit-on-github" target="_blank"
href="https://github.com/Polymer/polymer-library-docs/edit/master/app/3.0/docs/devguide/feature-overview.md">
Edit on GitHub
</a>
</header>
<div class="version-alert upgrade-alert">
<img src="/images/alerts/upgrade.svg" height="36px">
<p>
<strong>
The Polymer library is in maintenance mode. For new development, we recommend <a href="https://lit.dev">Lit</a>.
</strong>
</p>
</div>
<main>
<style>
main {
position: relative;
background: white;
padding: 10px 40px;
font-size: 16px;
font-family: 'Roboto', 'Noto', sans-serif;
line-height: 24px;
font-weight: 300;
/* layout horizontal-reverse */
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-flex-direction: row-reverse;
-ms-flex-direction: row-reverse;
flex-direction: row-reverse;
-webkit-justify-content: flex-end;
-ms-flex-pack: end;
justify-content: flex-end;
}
@media (max-width: 1000px) {
main {
-webkit-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column;
/* At < 1000px, the TOC floats to the top, so we can add back the right-padding. */
padding-right: 40px;
}
}
@media (max-width: 500px) {
main {
padding-left: 20px;
padding-right: 20px;
}
}
article {
min-width: 0; /* For some reason, this is non-0 */
max-width: 800px;
padding-right: 20px;
}
.article-wrapper.right-nav {
width: calc(100% - 300px); /* 300px is the width of the TOC */
}
.details-wrapper {
display: block;
position: relative;
overflow-x: hidden;
overflow-y: auto;
margin-top: 20px;
width: 300px;
}
.details-wrapper.fixed {
position: fixed;
right: 40px; /* The <main> right padding */
}
.details-wrapper ul {
list-style-type: none;
font-size: 14px;
margin: 0;
}
.details-wrapper ul[data-depth="1"], .details-wrapper ul[data-depth="3"] {
padding: 0;
margin-top: 10px;
}
.details-wrapper ul[data-depth="1"] a, .details-wrapper ul[data-depth="3"] a {
color: black;
font-weight: 500;
}
.details-wrapper ul[data-depth="2"] {
font-weight: 300;
padding: 0 20px;
}
.details-wrapper ul[data-depth="2"] a {
font-weight: 300;
}
@media (max-width: 1000px) {
.details-wrapper {
padding: 0;
max-width: 100%;
}
}
details {
display: block;
will-change: transform;
}
@media (min-width: 1001px) {
details {
padding-left: 20px;
border-left: 1px solid black;
}
}
details summary {
font-weight: bold;
font-size: 15px;
line-height: 24px;
}
details summary::-webkit-details-marker {
display: none;
}
@media (max-width: 1000px) {
details summary::-webkit-details-marker {
display: inline-block;
}
}
pre {
background: white;
font-weight: 400;
}
h1 {
font-size: 40px;
font-weight: 300;
line-height: 48px;
}
h2 {
font-family: Helvetica, Arial, sans-serif;
font-weight: bold;
border-bottom: 1px solid #f50057;
margin: 20px 0;
}
h3 {
font-family: Helvetica, Arial, sans-serif;
font-weight: bold;
font-size: 24px;
}
@media (max-width: 500px) {
h3 {
font-size: 18px;
}
}
h4, p.caption {
font-size: 16px;
font-weight: 500;
}
p.caption {
margin-bottom: 0;
}
a > code {
color: #1e88e5 !important;
}
table {
border-collapse: collapse;
}
table th {
text-align: left;
padding: 12px 12px 12px 0px;
}
table td {
padding: 12px 12px 12px 0px;
border-top: 1px solid #cfd8dc;
/* blue-grey-100 */
vertical-align: top;
}
.alert {
padding: 10px 10px 10px 44px; /* 34px from the icon + 10px left padding */
margin: 30px;
border-radius: 3px;
font-size: 15px;
}
@media (max-width: 767px) {
.alert {
margin: 0px;
}
}
.alert:before {
display: inline-block; /* Hack to have the icon in a separate column than the text */
float: left;
margin-left: -34px; /* the icon is 24px wide, + 10px padding */
}
.alert.alert-success, .alert.alert-tip {
background-color: #E8F5E9;
border: 1px solid #C8E6C9;
}
.alert.alert-success:before, .alert.alert-tip:before {
content: url(/images/alerts/tip.svg);
}
.alert.alert-info {
background-color: #E1F5FE;
border: 1px solid #B3E5FC;
}
.alert.alert-info:before {
content: url(/images/alerts/info.svg);
}
.alert.alert-error, .alert.alert-warning {
background-color: #FBE9E7;
border: 1px solid #FFCCBC;
}
.alert.alert-error:before, .alert.alert-warning:before {
content: url(/images/alerts/warning.svg);
}
/* Helpers to automagically lay out in a row and resize images */
.image-container {
width: 100%;
max-width: 100%;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
}
.image-container .image-wrapper {
-webkit-flex: 1;
-ms-flex: 1;
flex: 1;
margin: 0 10px;
}
.image-container img {
width: 100%;
height: auto;
}
</style><div class="article-wrapper"><article><p>The Polymer library provides a set of features for creating custom elements. These features are
designed to make it easier and faster to make custom elements that work like standard DOM elements.
Similar to standard DOM elements, Polymer elements can be:</p>
<ul>
<li>Instantiated using a constructor or <code>document.createElement</code>.</li>
<li>Configured using attributes or properties.</li>
<li>Populated with internal DOM inside each instance.</li>
<li>Responsive to property and attribute changes.</li>
<li>Styled with internal defaults or externally.</li>
<li>Responsive to methods that manipulate its internal state.</li>
</ul>
<p>A basic Polymer element definition looks like this:</p>
<pre><code class="language-js"><span class="hljs-keyword">import</span> {PolymerElement, html} <span class="hljs-keyword">from</span> <span class="hljs-string">'@polymer/polymer/polymer-element.js'</span>;
<span class="hljs-comment">// Define the element's API using an ES2015 class</span>
<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">XCustom</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">PolymerElement</span> </span>{
<span class="hljs-comment">// Define optional shadow DOM template</span>
<span class="hljs-keyword">static</span> get template() {
<span class="hljs-keyword">return</span> html<span class="hljs-string">`
<style>
/* CSS rules for your element */
</style>
<!-- shadow DOM for your element -->
<div>[[greeting]]</div> <!-- data bindings in shadow DOM -->
`</span>;
}
<span class="hljs-comment">// Declare properties for the element's public API</span>
<span class="hljs-keyword">static</span> get properties() {
<span class="hljs-keyword">return</span> {
<span class="hljs-attr">greeting</span>: {
<span class="hljs-attr">type</span>: <span class="hljs-built_in">String</span>
}
}
}
<span class="hljs-keyword">constructor</span>() {
<span class="hljs-keyword">super</span>();
<span class="hljs-keyword">this</span>.greeting = <span class="hljs-string">'Hello!'</span>;
}
<span class="hljs-comment">// Add methods to the element's public API</span>
greetMe() {
<span class="hljs-built_in">console</span>.log(<span class="hljs-keyword">this</span>.greeting);
}
}
<span class="hljs-comment">// Register the x-custom element with the browser</span>
customElements.define(<span class="hljs-string">'x-custom'</span>, XCustom);
</code></pre>
<p>This guide divides the features into the following groups:</p>
<ul>
<li>
<p><a href="custom-elements">Custom elements</a>. Registering an
element associates a class with a custom element name. The
element provides callbacks to manage its lifecycle. Polymer also lets you declare properties,
to integrate your element's property API with the Polymer data system.</p>
</li>
<li>
<p><a href="shadow-dom">Shadow DOM</a>. Shadow DOM provides a local, encapsulated DOM tree for your element.
Polymer can automatically create and populate a shadow tree for your element from a DOM
template.</p>
</li>
<li>
<p><a href="events">Events</a>. Polymer provides a declarative syntax for attaching event listeners to
shadow DOM children. It also provides an optional library for handling gesture events.</p>
</li>
<li>
<p><a href="data-system">Data system</a>. The Polymer data system provides data binding to properties and
attributes; property observers; and computed properties.</p>
</li>
</ul>
<p>If you're upgrading an existing 2.x element to 3.x, see the
<a href="/3.0/docs/upgrade">Upgrade guide</a> for advice.</p>
<p>If you're looking for the latest changes in this release, see the
<a href="/3.0/docs/release-notes">Release notes</a>.</p>
</article></div>
</main>
</div>
</div>
</pw-shell>
<pw-footer></pw-footer>
<script src="/js/app.js"></script>
</body>
</html>
Sitemap
Кол-во: 0
XML-карта сайта для поисковиков
?
Sitemap.xml помогает поисковику быстрее находить и индексировать страницы. Особенно важен для крупных сайтов и новых страниц, на которые ещё нет входящих ссылок.
Robots.txt не содержит ссылку на карту сайта. Рекомендуется добавить карту сайта и указать ссылку на нее в robots.txt.
Внутренние ссылки
Кол-во: 143
Ссылки на другие страницы своего сайта
?
Внутренние ссылки распределяют ссылочный вес между страницами и помогают поисковику обходить сайт. Пустые анкоры и ссылки на запрещённые robots.txt страницы — типичные ошибки.
Внутренних ссылок на странице 143 оптимально.
Внутренние ссылки не запрещены к индексации в robots.txt.
Показать первые 100 внутренних ссылок
| Url | Анкор | Состояние | Анализировать |
|---|---|---|---|
| / |
<span>Home</span>
|
|
Анализировать url |
| /3.0/docs/devguide/feature-overview |
<span>Guides</span>
<paper-icon-button icon="icons:expand-more" onclick="_expandClicked(event)">
</paper-icon-button>
|
|
Анализировать url |
| /3.0/docs/devguide/feature-overview |
<span>Feature overview</span>
|
|
Анализировать url |
| /3.0/docs/quick-tour |
<span>Try Polymer</span>
|
|
Анализировать url |
| /3.0/docs/install-3-0 |
<span>Install Polymer 3.x</span>
|
|
Анализировать url |
| /3.0/docs/first-element/intro |
<span>1. Get set up</span>
|
|
Анализировать url |
| /3.0/docs/first-element/step-2 |
<span>2. Add shadow DOM</span>
|
|
Анализировать url |
| /3.0/docs/first-element/step-3 |
<span>3. Data binding & properties</span>
|
|
Анализировать url |
| /3.0/docs/first-element/step-4 |
<span>4. React to input</span>
|
|
Анализировать url |
| /3.0/docs/first-element/step-5 |
<span>5. Theming with custom properties</span>
|
|
Анализировать url |
| /3.0/docs/about_30 |
<span>What's new in 3.0</span>
|
|
Анализировать url |
| /3.0/docs/upgrade |
<span>Upgrade guide</span>
|
|
Анализировать url |
| /3.0/docs/release-notes |
<span>Release notes</span>
|
|
Анализировать url |
| /3.0/docs/devguide/custom-elements |
<span>Custom element concepts</span>
|
|
Анализировать url |
| /3.0/docs/devguide/registering-elements |
<span>Define an element</span>
|
|
Анализировать url |
| /3.0/docs/devguide/properties |
<span>Declare properties</span>
|
|
Анализировать url |
| /3.0/docs/devguide/legacy-elements |
<span>Working with legacy elements</span>
|
|
Анализировать url |
| /3.0/docs/devguide/shadow-dom |
<span>Shadow DOM concepts</span>
|
|
Анализировать url |
| /3.0/docs/devguide/dom-template |
<span>DOM templating</span>
|
|
Анализировать url |
| /3.0/docs/devguide/style-shadow-dom |
<span>Style shadow DOM</span>
|
|
Анализировать url |
| /3.0/docs/devguide/custom-css-properties |
<span>Custom CSS properties</span>
|
|
Анализировать url |
| /3.0/docs/devguide/events |
<span>Handle and fire events</span>
|
|
Анализировать url |
| /3.0/docs/devguide/gesture-events |
<span>Gesture events</span>
|
|
Анализировать url |
| /3.0/docs/devguide/data-system |
<span>Data system concepts</span>
|
|
Анализировать url |
| /3.0/docs/devguide/model-data |
<span>Work with object and array data</span>
|
|
Анализировать url |
| /3.0/docs/devguide/observers |
<span>Observers and computed properties</span>
|
|
Анализировать url |
| /3.0/docs/devguide/data-binding |
<span>Data binding</span>
|
|
Анализировать url |
| /3.0/docs/devguide/templates |
<span>Helper elements</span>
|
|
Анализировать url |
| /3.0/docs/browsers |
<span>Overview</span>
|
|
Анализировать url |
| /3.0/docs/polyfills |
<span>Polyfills</span>
|
|
Анализировать url |
| /3.0/docs/es6 |
<span>ES6 and modules</span>
|
|
Анализировать url |
| /3.0/docs/tools/overview |
<span>Tools overview</span>
|
|
Анализировать url |
| /3.0/docs/tools/polymer-cli |
<span>Polymer CLI</span>
|
|
Анализировать url |
| /3.0/docs/tools/polymer-cli-commands |
<span>CLI commands</span>
|
|
Анализировать url |
| /3.0/docs/tools/create-element-polymer-cli |
<span>Create an element project</span>
|
|
Анализировать url |
| /3.0/docs/tools/create-app-polymer-cli |
<span>Create an application project</span>
|
|
Анализировать url |
| /3.0/docs/tools/documentation |
<span>Document your elements</span>
|
|
Анализировать url |
| /3.0/docs/tools/tests |
<span>Test your elements</span>
|
|
Анализировать url |
| /3.0/docs/tools/polymer-json |
<span>polymer.json specification</span>
|
|
Анализировать url |
| /3.0/docs/tools/node-support |
<span>Node support</span>
|
|
Анализировать url |
| /3.0/docs/apps/ |
<span>Overview</span>
|
|
Анализировать url |
| /3.0/docs/apps/templates |
<span>App templates</span>
|
|
Анализировать url |
| /3.0/docs/apps/build-for-production |
<span>Build for production</span>
|
|
Анализировать url |
| /3.0/docs/apps/serve |
<span>Serve your app</span>
|
|
Анализировать url |
| /3.0/docs/apps/prpl |
<span>The PRPL pattern</span>
|
|
Анализировать url |
| /3.0/docs/apps/service-worker |
<span>Service worker</span>
|
|
Анализировать url |
| /3.0/docs/glossary |
<span>Glossary</span>
|
|
Анализировать url |
| /3.0/docs/devguide/settings |
<span>Global settings</span>
|
|
Анализировать url |
| /3.0/api/ |
<span>API Reference</span>
<paper-icon-button icon="icons:expand-more" onclick="_expandClicked(event)">
</paper-icon-button>
|
|
Анализировать url |
| /3.0/api/ |
<span>index</span>
|
|
Анализировать url |
| /3.0/api/polymer-element |
<span>polymer-element.js</span>
|
|
Анализировать url |
| /3.0/api/elements/array-selector |
<span>array-selector.js</span>
|
|
Анализировать url |
| /3.0/api/elements/custom-style |
<span>custom-style.js</span>
|
|
Анализировать url |
| /3.0/api/elements/dom-bind |
<span>dom-bind.js</span>
|
|
Анализировать url |
| /3.0/api/elements/dom-if |
<span>dom-if.js</span>
|
|
Анализировать url |
| /3.0/api/elements/dom-module |
<span>dom-module.js</span>
|
|
Анализировать url |
| /3.0/api/elements/dom-repeat |
<span>dom-repeat.js</span>
|
|
Анализировать url |
| /3.0/api/mixins/dir-mixin |
<span>dir-mixin.js</span>
|
|
Анализировать url |
| /3.0/api/mixins/disable-upgrade-mixin |
<span>disable-upgrade-mixin.js</span>
|
|
Анализировать url |
| /3.0/api/mixins/element-mixin |
<span>element-mixin.js</span>
|
|
Анализировать url |
| /3.0/api/mixins/gesture-event-listeners |
<span>gesture-event-listeners.js</span>
|
|
Анализировать url |
| /3.0/api/mixins/mutable-data |
<span>mutable-data.js</span>
|
|
Анализировать url |
| /3.0/api/mixins/properties-changed |
<span>properties-changed.js</span>
|
|
Анализировать url |
| /3.0/api/mixins/properties-mixin |
<span>properties-mixin.js</span>
|
|
Анализировать url |
| /3.0/api/mixins/property-accessors |
<span>property-accessors.js</span>
|
|
Анализировать url |
| /3.0/api/mixins/property-effects |
<span>property-effects.js</span>
|
|
Анализировать url |
| /3.0/api/mixins/strict-binding-parser |
<span>strict-binding-parser.js</span>
|
|
Анализировать url |
| /3.0/api/mixins/template-stamp |
<span>template-stamp.js</span>
|
|
Анализировать url |
| /3.0/api/utils/array-splice |
<span>array-splice.js</span>
|
|
Анализировать url |
| /3.0/api/utils/async |
<span>async.js</span>
|
|
Анализировать url |
| /3.0/api/utils/case-map |
<span>case-map.js</span>
|
|
Анализировать url |
| /3.0/api/utils/debounce |
<span>debounce.js</span>
|
|
Анализировать url |
| /3.0/api/utils/flattened-nodes-observer |
<span>flattened-nodes-observer.js</span>
|
|
Анализировать url |
| /3.0/api/utils/flush |
<span>flush.js</span>
|
|
Анализировать url |
| /3.0/api/utils/gestures |
<span>gestures.js</span>
|
|
Анализировать url |
| /3.0/api/utils/html-tag |
<span>html-tag.js</span>
|
|
Анализировать url |
| /3.0/api/utils/mixin |
<span>mixin.js</span>
|
|
Анализировать url |
| /3.0/api/utils/path |
<span>path.js</span>
|
|
Анализировать url |
| /3.0/api/utils/render-status |
<span>render-status.js</span>
|
|
Анализировать url |
| /3.0/api/utils/resolve-url |
<span>resolve-url.js</span>
|
|
Анализировать url |
| /3.0/api/utils/settings |
<span>settings.js</span>
|
|
Анализировать url |
| /3.0/api/utils/style-gather |
<span>style-gather.js</span>
|
|
Анализировать url |
| /3.0/api/utils/telemetry |
<span>telemetry.js</span>
|
|
Анализировать url |
| /3.0/api/utils/templatize |
<span>templatize.js</span>
|
|
Анализировать url |
| /3.0/api/legacy/class |
<span>class.js</span>
|
|
Анализировать url |
| /3.0/api/legacy/legacy-data-mixin |
<span>legacy-data-mixin.js</span>
|
|
Анализировать url |
| /3.0/api/legacy/legacy-element-mixin |
<span>legacy-element-mixin.js</span>
|
|
Анализировать url |
| /3.0/api/legacy/mutable-data-behavior |
<span>mutable-data-behavior.js</span>
|
|
Анализировать url |
| /3.0/api/legacy/polymer-fn |
<span>polymer-fn.js</span>
|
|
Анализировать url |
| /3.0/api/legacy/polymer.dom |
<span>polymer.dom.js</span>
|
|
Анализировать url |
| /3.0/api/legacy/templatizer-behavior |
<span>templatizer-behavior.js</span>
|
|
Анализировать url |
| /3.0/docs/devguide/feature-overview |
Feature overview
|
|
Анализировать url |
| /3.0/docs/quick-tour |
Try Polymer
|
|
Анализировать url |
| /3.0/docs/install-3-0 |
Install Polymer 3.x
|
|
Анализировать url |
| /3.0/docs/first-element/intro |
1. Get set up
|
|
Анализировать url |
| /3.0/docs/first-element/step-2 |
2. Add shadow DOM
|
|
Анализировать url |
| /3.0/docs/first-element/step-3 |
3. Data binding & properties
|
|
Анализировать url |
| /3.0/docs/first-element/step-4 |
4. React to input
|
|
Анализировать url |
| /3.0/docs/first-element/step-5 |
5. Theming with custom properties
|
|
Анализировать url |
| /3.0/docs/about_30 |
What's new in 3.0
|
|
Анализировать url |
Внешние ссылки
Кол-во: 2
Ссылки на сторонние сайты
?
Исходящие внешние ссылки передают часть ссылочного веса на чужие сайты. Ссылки на авторитетные ресурсы безопасны; ссылки на мусорные сайты могут навредить репутации страницы.
Внешних ссылок на странице 2 оптимально.
Показать внешние ссылки
| Url | Анкор | Анализировать |
|---|---|---|
| github.com |
Edit on GitHub
|
Анализировать url |
| lit.dev |
Lit
|
Анализировать url |
Конкуренты Готовность: 0%
Конкуренты в Яндексе
Кол-во: 0
Топ сайтов-конкурентов в Яндексе
?
Сайты, чаще всего появляющиеся в ТОПе Яндекса по запросам из семантического ядра этой страницы.
Мы не нашли у вас конкурентов в Яндексе. Сайт или очень молодой или плохо продвигается.
Конкурентов в ТОП-10 Яндекса не нашлось.
Конкуренты в Google
Кол-во: 0
Топ сайтов-конкурентов в Google
?
Сайты, чаще всего появляющиеся в ТОПе Google по запросам из семантического ядра этой страницы.
Конкуренты в Google тоже не найдены. Займитесь продвижением сайта!
Конкурентов в ТОП-10 Google не нашлось.
ЗоЗПП: права потребителей Готовность: 100%
Нарушения
Не выявлены
Признаков дистанционной продажи товаров (интернет-магазина) не обнаружено — требования ЗоЗПП о раскрытии информации продавца к сайту не применяются. Нарушений нет.
ФЗ-149: рекомендательные технологии Готовность: 100%
Нарушения
Не выявлены
Рекомендательные блоки («с этим покупают», «похожие товары» и т.п.) на сайте не обнаружены — требования ст. 10.7 ФЗ-149 к сайту не применяются. Нарушений нет.
ФЗ-38: реклама Готовность: 100%
Нарушения
Не выявлены
Рекламных тематик с обязательными оговорками (медицина, БАД, кредиты и займы, новостройки) на сайте не обнаружено. Нарушений нет.
ФЗ-436: защита детей Готовность: 100%
Нарушения
Не выявлены
Признаков информационной продукции (новости, видео, книги, игры, курсы) не обнаружено — обязательная возрастная маркировка по ФЗ-436 сайту не требуется. Нарушений нет.
Вердикт
Сайт polymer-project.org не совсем готов к продвижению (процент готовности лишь 54%). Для попадания в ТОПы поисковых систем нужно:
Исправьте ошибки в мета-тегах.
Исправьте ошибки оптимизации.
Исправьте ошибки индексации.
Поделитесь с друзьями: