Содержание
Что такое iFrame и почему его нежелательно использовать для поисковой оптимизации
105790 72
How-to | – Читать 9 минут |
Прочитать позже
ЧЕК-ЛИСТ: ТЕХНИЧЕСКАЯ ЧАСТЬ — КОД СТРАНИЦ
Дмитрий Севальнев
Инструкцию одобрил Руководитель департамента SEO и рекламы, совладелец интернет-агентства «Пиксель Плюс»
iFrame или плавающий фрейм — отдельное окно, HTML-документ, который отображается вместе с другим содержимым страницы в окне браузера. Располагаться он может в любом месте, без привязки к тегу <iframe>.
Использование данного тега зачастую рискованно получением фильтра: сайт перестает полностью контролировать содержимое документа, так как его часть подгружается с другого сайта через iframe.
Поскольку мы перестаем контролировать содержимое, то через iframe возможна подгрузка нежелательного контента (18+, вирусы и прочее), что, в свою очередь, может привести к санкциям. А это отразится на продвижении в выдаче.
Содержание:
1. Зачем нужен iFrame
2. Как найти страницы с iFrame с помощью Serpstat
3. Где используют фреймы
4. Преимущества и недостатки фреймов
5. Отношение поисковых систем к фреймам
Заключение
Зачем нужен iFrame
Чтобы ответить на этот вопрос, сначала нужно напомнить, что такое фрейм. Это отдельный, завершенный HTML-документ, который может отображаться в браузере вместе с другими HTML-документами.
iFrame нужен, чтобы встраивать традиционный фрейм, а также отдельные HTML-документы на разные страницы без применения тега <iframe>. В результате получается, что на веб-странице появляется демонстрация контента другого URL-адреса с функцией прокрутки или без нее.
То есть со страницей фоново загружаются другие страницы. Пользователь увидит такие фреймы, только если задавать им определенные размеры, например, вид баннера.
Так выглядит простейший пример iframe: фрагмент кода с заданным размером фонового окна под баннер:
<iframe src="https://example. com"></iframe>
Данный тег поддерживается большинством браузеров, но некоторые параметры могут отличаться или вовсе не запускаться. Например, фреймы не запускаются в браузерах на основе аудио, используемых в автомобильном транспорте, или для людей со слабым зрением, а также на очень старых версиях браузеров.
Кроме того, фреймы используются не только на веб-ресурсах, но и в приложениях к программам. Зачастую они полезны для службы технической поддержки.
Например, вы вызываете кликом справку, в ответ появляется общее меню, рядом с которым в фоне открывается окошко, отвечающее за выбранный вами блок информации:
В данном случае это удобно и позволяет не загружать файлы повторно. Схематически это выглядит так:
Как найти страницы с iFrame с помощью Serpstat
С помощью инструмента Аудит сайта в Serpstat можно проверить сайт или его отдельную страницу на наличие технических ошибок. Кроме того, инструмент дает рекомендации по их исправлению и возможность оценить результаты проведенных работ по SEO.
В нашем случае, мы будем проверять сайт https://tinypng.com/, чтобы найти тег <iframe>.
Для начала работы создайте новый проект. Перейдите в Список проектов и нажмите Добавить новый проект. Если ваш сайт уже добавлен, просто нажмите на Аудит сайта.
После проведения проверки Serpstat покажет Суммарный отчет, то есть краткую сводку по ошибкам на сайте.
Чтобы увидеть полный перечень проблем и рекомендации по их исправлению, нажмите на Все проверки.
В разделе Индексация мы видим ошибку о наличие тега <iframe> и все соответствующие URL страниц, а также рекомендации по устранению этой проблемы.
Если проверяемый сайт не использует iFrame, то в перечне ошибок никаких данных не будет.
Если ошибка на страницах есть, то в отчете вы найдете:
- описание проблемы;
- подсказка, как ее устранить;
- история проверки;
- URL, на котором обнаружена ошибка.
После исправления рекомендуем просканировать эти страницы еще раз. Если проблемы действительно нет, то в отчете по ошибке уже не будет этих страниц.
Чтобы быстро узнать какие проблемы есть у твоего сайта и получить рекомендации по их устранению, нажимай на Проверить свой сайт.
Где используют фреймы
Встроенные видео, презентации и прочий визуальный контент.
Для оптимизации внешнего вида приложений служб поддержки, как на предыдущем скрине.
Для создания фонового трафика через партнерские программы. Применение тега обусловлено накруткой посещений, которые фиксируются системами аналитики и завышают результаты трафика.
Web-дизайн. Некоторые дизайнеры строят концептуальную идею структуры сайта, включая в нее фоновые окна фреймов, встраивая анимацию, видео и прочий медиа контент. Так как при проектировании сайта веб-дизайнеры отталкиваются от других задач, нежели поисковое продвижение, возникают разногласия.
Кроме того, использование айфрейма может быть обусловлено анимацией управляемой JS, которая не так медленно работает в отдельном окне.
Например, так выглядит фрагмент кода, который подгружает видео с YouTube:
<iframe src="https://www.youtube.com/example" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
Для чего практикуют использование фреймов
- встраивание медиаконтента — как своего, так и стороннего;
- встраивание примеров фрагментов кода;
- встраивание апплетов — приложений, работающих в контексте веб-сайта, например, формы оплаты или интерактивные карты. Так Яндекс предоставляет возможность запускать Яндекс.Карты через iFrame.
Для чего нежелательно использовать фреймы
- фотогалереи;
- окно чата;
- навигация;
- накрутка фонового трафика.
Фотогалерея и чат — обычно самостоятельные документы, которые не стоит встраивать в тело другого документа. Для навигации предпочтительнее применять карту сайта и хлебные крошки. А накрутка рано или поздно заканчивается наложением фильтров.
А самое главное — это подгружать контент только из доверенных источников!
Преимущества и недостатки фреймов
Преимущества:
Быстрая подгрузка видеоматериалов, карт, презентаций и прочего контента.
Фреймы в HTML позволяют показать посетителю одновременно несколько страниц, которые абсолютно самостоятельны.
Посетитель сможет переключать экраны, не перезагружая при этом страницу.
Появляется возможность разбить структуру веб-ресурса по блокам, что позволит редактировать только отдельные блоки.
Пользователь получит возможность самостоятельно изменять габариты фонового окна, если вы не ограничили его опцией noresize.
А теперь подробнее о возможных рисках:
Существует вероятность, что индексирование веб-сайта поисковыми роботами будет прерываться при переходе на фрейм.
Ряд браузеров не поддерживает подобное отображение. Они либо устаревшие, либо предназначены только для аудио и т.п.
Угроза фильтров. Санкции от поисковых систем возможны, когда во фреймах находится контент запрещенного характера.
Чтобы не допускать возможных недоразумений с поисковыми роботами и пользователями, браузеры которых не поддерживают данную функцию, вебмастера закрывают iFrame от индексации и добавляют соответствующее уведомление. Оно будет выводиться в том случае, если не запускается фоновое окно, рекомендуя пользователю обновить браузер.
С технической точки зрения получается следующий код:
Содержимое тега <noframes> показывается в браузере, когда он не поддерживает вставку iFrame. В то же время остальные браузеры, умеющие обрабатывать окна с фреймами, не обращают на него внимания. Описание следует раскрывать более полно, чтобы удержать пользователя на веб-сайте.
Хотите обнаружить ошибки на сайте, которые мешают продвижению с помощью Serpstat?
Заказывайте бесплатную персональную демонстрацию сервиса, и наши специалисты вам все расскажут! 😉
Оставить заявку! |
Узнать подробнее! |
Отношение поисковых систем к фреймам
Есть два фундаментальных правила, которые нужно помнить:
iFrame можно встраивать только с проверенных и надежных источников, которым вы лично доверяете.
Учтите, что подгружаемый контент не будет проиндексирован, как часть документа.
«Google поддерживает фреймы и iframe в той мере, в какой это возможно. iFrame могут создавать проблемы для поисковых систем, потому что они не соответствуют концептуальной модели Интернета», — сказано в справке Google.
«Для корректного ранжирования документа не рекомендуется использовать тег <iframe>, так как поисковый робот Яндекса не индексирует документы, подгружаемые в него», — отмечает Яндекс. Помощь.
Причина, по которой iFrames не соответствуют концептуальной модели, в том, что страницы с iFrames имеют более одного URL-адреса. Один — для страницы, на которой размещается вставка iFrame, а другой — для страницы, из которой он извлекает контент. Неудивительно, что роботы могут запутаться.
Заключение
iFrame — это тег, который позволяет внутри другого HTML-документа отображать другой. В результате при запуске страницы, на которой присутствует фрейм, фоново подгружается еще одна самостоятельная страница.
Используют фреймы по ряду причин — например, для встраивания медиаконтента, приложений в контексте веб-сайта, фотогалерей и прочего.
При встраивании фреймов стоит использовать только доверенные источники, а также помнить, что содержимое фреймов не сканируется поисковыми роботами. А за встраивание запрещенного контента возможны санкции.
Задавайте вопросы в комментариях или пишите в техподдержку. 🙂 А также вступайте в чат любителей Серпстатить и подписывайтесь на наш канал в Telegram.
Serpstat — набор инструментов для поискового маркетинга!
Находите ключевые фразы и площадки для обратных ссылок, анализируйте SEO-стратегии конкурентов, ежедневно отслеживайте позиции в выдаче, исправляйте SEO-ошибки и управляйте SEO-командами.
Набор инструментов для экономии времени на выполнение SEO-задач.
Получить бесплатный доступ на 7 дней
Оцените статью по 5-бальной шкале
3.43 из 5 на основе 52 оценок
Нашли ошибку? Выделите её и нажмите Ctrl + Enter, чтобы сообщить нам.
Рекомендуемые статьи
How-to
Анастасия Сотула
Чем отличается Title от заголовка h2 и как его составить
How-to
Анастасия Сотула
Как оптимизировать изображения на сайте для мобильных устройств
How-to
Анастасия Сотула
Как распределить семантическое ядро по страницам сайта
Кейсы, лайфхаки, исследования и полезные статьи
Не успеваешь следить за новостями? Не беда! Наш любимый редактор подберет материалы, которые точно помогут в работе. Только полезные статьи, реальные кейсы и новости Serpstat раз в неделю. Присоединяйся к уютному комьюнити 🙂
Нажимая кнопку, ты соглашаешься с нашей политикой конфиденциальности.
Поделитесь статьей с вашими друзьями
Вы уверены?
Спасибо, мы сохранили ваши новые настройки рассылок.
Сообщить об ошибке
Отменить
HTML/Атрибут noresize (Элемент frame)
Синтаксис
HTML
XHTML
<frameset> <frame src="..." noresize="noresize"> ... </frameset>
Описание
Атрибут / параметр noresize
(от англ. «no resize» ‒ «без изменения размера») запрещает изменение размеров фрейма.
Поддержка браузерами
Chrome
Поддерж.
Firefox
Поддерж.
Opera
Поддерж.
Maxthon
Поддерж.
IExplorer
Поддерж.
Safari
Поддерж.
iOS
Поддерж.
Android
Поддерж.
Спецификация
Верс. | Раздел |
---|---|
HTML | |
2.0 | |
3.2 | |
4.01 | 16.2.2 The FRAME element noresize [CI]… DTD:
|
5.0 | |
5.1 | |
XHTML | |
1.0 | Extensible HyperText Markup Language DTD:
|
1. 1 |
Значения
Данный атрибут является логическим атрибутом.
В HTML данный атрибут может указываться либо без значения, либо с пустым значением, либо со значением «noresize
».
В XHTML данный атрибут может указываться только в «развёрнутом виде», то есть со значением «noresize
».
<frame noresize> <frame noresize=""> <frame noresize="noresize">
Пример использования
Листинг кода
<!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01 Frameset//EN» «http://www.w3.org/TR/html4/frameset.dtd»>
<html>
<head>
<meta http-equiv=»Content-Type» content=»text/html; charset=utf-8″>
<title>Параметр noresize (Элемент frame)</title>
</head>
<frameset rows=»35%, 65%»>
<frame src=»../document1.html»>
<frame src=». ./document2.html» noresize=»noresize»>
<noframes>
<body>
<h2>Ошибка</h2>
<p>Ваш веб-браузер не поддерживает фреймы.</p>
</body>
</noframes>
</frameset>
</html>
Параметр noresize (Элемент frame)
: Элемент Inline Frame — HTML: Язык гипертекстовой разметки
HTML-элемент
представляет вложенный контекст просмотра, встраивая другую HTML-страницу в текущую.
Каждый встроенный контекст просмотра имеет собственную историю сеансов и документ. Контекст просмотра, в который встроены другие, называется родительским контекстом просмотра . самый верхний контекст просмотра — тот, у которого нет родителя — обычно является окном браузера, представленным цифрой 9.0004 Окно объект.
Предупреждение: Поскольку каждый контекст просмотра представляет собой полную среду документа, каждый
на странице требует увеличения объема памяти и других вычислительных ресурсов. Хотя теоретически вы можете использовать столько
, сколько хотите, проверьте наличие проблем с производительностью.
Этот элемент включает глобальные атрибуты.
-
разрешить
Указывает политику разрешений для
Примечание: Политика разрешений, указанная атрибутом
allow
, реализует дополнительное ограничение поверх политики, указанной в заголовкеPermissions-Policy
. Это не заменяет его.-
разрешить полный экран
Установите значение
true
, еслиrequestFullscreen()
.Примечание: Этот атрибут считается устаревшим атрибутом и переопределен как
allow="fullscreen"
.-
разрешитьплатежныйзапрос
Экспериментальный
Установите значение
true
, если используется кросс-источникПримечание: Этот атрибут считается устаревшим атрибутом и переопределен как
allow="payment"
.-
без учетных данных
Экспериментальный
Нестандартный
Установите значение
true
, чтобы сделатьПравила встраивания Cross-Origin-Embedder-Policy
(COEP) могут быть отменены, поэтому документы с установленным COEP могут встраивать сторонние документы, которые этого не делают. Дополнительные сведения см. в разделе IFrame без учетных данных.-
КСП
Экспериментальный
Для встроенного ресурса применяется политика безопасности содержимого. Дополнительные сведения см. в статье
HTMLIFrameElement.csp
.-
высота
Высота кадра в пикселях CSS. По умолчанию
150
.-
загрузка
Указывает, как браузер должен загружать iframe:
-
нетерпеливый
: немедленно загрузить iframe, независимо от того, находится ли он за пределами видимого окна просмотра (это значение по умолчанию). -
ленивый
: отложить загрузку iframe до тех пор, пока он не достигнет расчетного расстояния от области просмотра, как определено браузером.
-
-
наименование
Целевое имя встроенного контекста просмотра. Это можно использовать в атрибуте
target
элементов-
реферальная политика
Указывает, какой реферер отправлять при получении ресурса фрейма:
-
no-referrer
: ЗаголовокReferer
не будет отправлен. -
no-referrer-when-downgrade
: заголовокReferer
не будет отправлен источникам без TLS (HTTPS). -
origin
: Отправленный реферер будет ограничен источником ссылающейся страницы: ее схемой, хостом и портом. -
происхождение-при-перекрестном происхождении
: Реферер, отправленный другим источникам, будет ограничен схемой, хостом и портом. Навигации в одном и том же источнике по-прежнему будут включать путь. -
тот же источник
: Реферер будет отправлен для того же источника, но запросы между источниками не будут содержать информацию о реферере. -
strict-origin
: отправляйте источник документа в качестве реферера, только если уровень безопасности протокола остается прежним (HTTPS→HTTPS), но не отправляйте его в менее безопасное место назначения (HTTPS→HTTP). -
strict-origin-when-cross-origin
(по умолчанию): отправлять полный URL-адрес при выполнении запроса того же источника, отправлять источник только при неизменном уровне безопасности протокола (HTTPS→HTTPS) и не отправлять заголовок в менее безопасное место назначения (HTTPS→HTTP). -
unsafe-url
: реферер будет включать источник и путь (но не фрагмент, пароль или имя пользователя). Это значение небезопасно , поскольку оно приводит к утечке источников и путей от ресурсов, защищенных TLS, к небезопасным источникам.
-
-
песочница
Накладывает дополнительные ограничения на содержимое фрейма. Значение атрибута может быть либо пустым, чтобы применить все ограничения, либо разделенными пробелами токенами, чтобы снять определенные ограничения:
-
allow-downloads
: Позволяет загружать файлы через элемент
с атрибутом загрузки, а также через навигацию, которая ведет к загрузке файла. Это работает независимо от того, щелкнул ли пользователь по ссылке или код JS инициировал ее без взаимодействия с пользователем.
-
разрешить загрузку без активации пользователем
Expect behavior to change in the future.»>
Экспериментальный
: Разрешает загрузку без жеста пользователя. -
allow-forms
: Разрешает странице отправлять формы. Если это ключевое слово не используется, форма будет отображаться как обычно, но ее отправка не приведет к проверке ввода, отправке данных на веб-сервер или закрытию диалогового окна. -
allow-modals
: Позволяет странице открывать модальные окна наWindow.alert()
,Window.confirm()
,Window.print()
иWindow.prompt()
, при этом открытие<диалога>
разрешено независимо от этого ключевого слова. Это также позволяет странице получать событиеBeforeUnloadEvent
. -
allow-orientation-lock
: Позволяет ресурсу заблокировать ориентацию экрана. -
allow-pointer-lock
: позволяет странице использовать API блокировки указателя. -
allow-popups
: Разрешить всплывающие окна (например, изWindow.open()
,target="_blank"
,Window.showModalDialog()
). Если это ключевое слово не используется, эта функциональность автоматически завершится ошибкой. -
allow-popups-to-escape-sandbox
: Позволяет документу в песочнице открывать новые окна, не навязывая им флаги песочницы. Это позволит, например, безопасно изолировать стороннюю рекламу, не применяя те же ограничения к странице, на которую ссылается реклама. -
allow-presentation
: Позволяет интеграторам контролировать, может ли iframe запускать сеанс презентации. -
allow-same-origin
: если этот токен не используется, ресурс рассматривается как имеющий особое происхождение, которое всегда не соответствует политике одного и того же происхождения (потенциально блокируя доступ к хранилищу данных/файлам cookie и некоторым API-интерфейсам JavaScript). -
allow-scripts
: Разрешает странице запускать сценарии (но не создавать всплывающие окна). Если это ключевое слово не используется, эта операция не разрешена. -
разрешить доступ к хранилищу при активации пользователем
Экспериментальный
: позволяет ресурсу запрашивать доступ к возможностям родительского хранилища с помощью API доступа к хранилищу. -
allow-top-navigation
: Позволяет ресурсу перемещаться по контексту просмотра верхнего уровня (тому, что называется_top
). -
allow-top-navigation-by-user-activation
: Позволяет ресурсу перемещаться по контексту просмотра верхнего уровня, но только если он инициирован жестом пользователя. -
allow-top-navigation-to-custom-protocols
: Разрешает навигацию по протоколам, отличным отhttp
, встроенным в браузер или зарегистрированным веб-сайтом. Эта функция также активируется ключевым словомallow-popups
илиallow-top-navigation
.
Примечание:
- Если встроенный документ имеет то же происхождение, что и страница встраивания, настоятельно не рекомендуется использовать оба разрешающих сценария
allow-same-origin
, так как это позволяет встроенному документу удалить атрибут песочницы, что делает его не более безопасным, чем вообще не использовать атрибут
песочницы.
- Песочница бесполезна, если злоумышленник может отображать содержимое за пределами изолированного
iframe
— например, если зритель открывает фрейм в новой вкладке. Такой контент также должен обслуживаться из отдельного источника , чтобы ограничить возможный ущерб.
-
-
источник
URL-адрес страницы для встраивания. Используйте значение
about:blank
, чтобы внедрить пустую страницу, соответствующую политике того же источника. Также обратите внимание, что программное удаление атрибута srcElement.removeAttribute()
) приводит к загрузкеabout:blank
во фрейме в Firefox (начиная с версии 65), браузерах на основе Chromium. и Safari/iOS.-
исходный документ
Встроенный HTML-код для встраивания, переопределяющий атрибут
src
. Если браузер не поддерживает атрибутsrcdoc
, он вернется к URL-адресу в атрибутеsrc
.-
ширина
Ширина рамки в пикселях CSS. По умолчанию
300
.
Устаревшие атрибуты
Эти атрибуты устарели и могут больше не поддерживаться всеми пользовательскими агентами. Вы не должны использовать их в новом контенте и пытаться удалить их из существующего контента.
-
выравнивание
Устаревший
Выравнивание этого элемента по отношению к окружающему контексту.
-
рамка
Устаревший
Значение
1
(по умолчанию) рисует рамку вокруг этого кадра. Значение0
удаляет границу вокруг этого фрейма, но вместо этого вы должны использовать свойство CSSborder
для управления-
длинное описание
Устаревший
URL-адрес длинного описания содержимого фрейма. Из-за широко распространенного неправильного использования это бесполезно для невизуальных браузеров.
-
высота поля
">
Устаревший
Расстояние в пикселях между содержимым фрейма и его верхней и нижней границами.
-
ширина поля
Устаревший
Расстояние в пикселях между содержимым фрейма и его левой и правой границами.
-
прокрутка
Устаревший
Указывает, когда браузер должен предоставить полосу прокрутки для фрейма:
-
авто
: Только когда содержимое фрейма превышает его размеры. -
да
: Всегда показывать полосу прокрутки. -
нет
: Никогда не показывать полосу прокрутки.
-
Встроенные фреймы, такие как элементы
, включены в псевдомассив window.frames
.
С помощью объекта DOM HTMLIFrameElement
сценарии могут получить доступ к объекту window
фреймового ресурса через свойство contentWindow
. Свойство contentDocument
ссылается на документ
внутри
, то же, что и contentWindow.document
.
Изнутри фрейма скрипт может получить ссылку на свое родительское окно с помощью window.parent
.
Доступ сценария к содержимому фрейма регулируется политикой того же источника. Сценарии не могут получить доступ к большинству свойств в других объектах окна
, если сценарий был загружен из другого источника, включая сценарии внутри фрейма, обращающиеся к родителю фрейма. Связь между источниками может быть достигнута с использованием Окно.postMessage()
.
В качестве замененного элемента положение, выравнивание и масштабирование встроенного документа в пределах блока элемента
можно настроить с помощью свойств object-position
и object-fit
.