Сайт на JS JavaScript заказать
График работы: Пн-Пт 9:00-18:00
[email protected] Русский- Home
- Услуги
- JavaScript программирование и поддержка
Здесь вы можете найти профессиональных веб-разработчиков как на стороне сервера так и на стороне клиента, с более чем 5-летним опытом работы мы строим красивые сайты. Мы специализируемся на JavaScript, JQuery, Node.js, expressjs, Meteor, Angular6, React.js, AngularJS, PhantomJS и т.д.
Веб разработка на Node.js
Наши Node.js возможности разработки помогают создавать отличные продукты с более быстрым временем выхода на рынок. Кроме того, мы также помогаем в расширении возможностей продукта во время поддержки.
Веб разработка на Angular
Веб разработка на ReactJS
Наша команда React применяет самые передовые технологии, и средства разработки внешнего интерфейса. У нас есть опыт в создании React приложений.
Веб разработка на VueJS
Наши специалисты активно применяют Vue для создания пользовательских приложений и отдельных компонентов для сайтов любой сложности.
Веб разработка на Meteor
Используем в разработке Meteor, поскольку позволяет сделать весь процесс гибким и оптимизированным, а также ценим время клиентов.
Веб разработка на Knockout
Наши программисты используют этот фреймворк, поскольку он отлично работает с моделью MVVM. Он легкий, удобный и доступный.
JavaScript SEO: что нужно знать и как оптимизировать?
SEO-специалистам учить язык программирования вовсе не обязательно, но понимание принципов сканирования и рендеринга поможет превратить JS из помехи в союзника. Давайте разбираться, что к чему!
Речь пойдёт о технической оптимизации. Абсолютное большинство сайтов используют JS для улучшения пользовательского опыта, сбора статистики, интерактивности, загрузки контента, меню, кнопок и других элементов. Наша цель, как SEO-специалистов, облегчить процесс сканирования контента и по возможности избегать проблем, которые часто возникают при обработке страниц, использующих JavaScript.
Руководство частично основано на материалах от Ahrefs, Onely, Google Developers, за что им большое спасибо.
Как Google обрабатывает JS?
Поисковые системы пытаются получить тот же контент, что видят в браузере пользователи. В Google за процесс рендеринга и сканирования отвечает сервис обработки веб-страниц Web Rendering Service (WRS, часть системы индексации Caffeine). Вот упрощенная схема процесса:
Обратите внимание, на схеме Google получает конечный HTML для обработки, но на деле сканирует и кэшируют почти все дополнительные ресурсы, необходимые для формирования страницы (JS-файлы, CSS, синхронные и асинхронные запросы XHR, точки приёма API и так далее). Почему «почти» все? Некоторые из ресурсов Googlebot и WRS могут игнорировать, как недостаточно важные для отображения контента.
Разберём процесс на примере отдельного URL.
1. Crawler (Краулинг)
Робот Googlebot отправляет серверу GET-запрос, в ответ получает HTTP-заголовки и содержимое страницы. Если в заголовке или мета-теге robots нет запрета на сканирование, то URL ставится в очередь на отображение. Подробнее о способах закрытия от индексации мы рассказывали в отдельном руководстве.
Важно учитывать, что в условиях mobile-first-индексации в большинстве случаев запрос поступает от мобильного user-agent Google. Проверить, какой робот сканирует ваш сайт можно в Search Console (раздел «Проверка URL»).
Нужно иметь в виду, что в HTTP-заголовках страницы можно настроить правила для отдельных user-agents, например, запретив для них индексацию или показывая отличный от других контент. Ниже пример запрета перехода по ссылкам для Googlebot и индексации для всех остальных.
HTTP/1.1 200 OK Date: Tue, 25 May 2020 21:42:43 GMT (…) X-Robots-Tag: googlebot: nofollow X-Robots-Tag: otherbot: noindex, nofollow (…)
2. Обработка
Здесь важно учитывать некоторые нюансы.
Ссылки и ресурсы
Частью обработки страницы является обнаружение и сканирование ссылок на другие URL и файлы, необходимые для построения HTML-документа. Каждая из ссылок попадает в очередь на сканирование и обладает различным приоритетом. Для подгрузки CSS- и JS-файлов используется тег <link> для внутренних и внешних ссылок — тег <a> с атрибутом href. Почему напоминаем о таких очевидных вещах? Взгляните на примеры реализации ссылок.
Хороший вариант:
<a href="/page">просто и правильно</a> <a href="/page">тоже хорошо</a>
Плохой вариант, если вы, конечно, хотите, чтобы ссылки были понятны поиску:
<a>не пойдёт, нет href</a> <a href="javascript:goTo(‘page’)">нет ссылки</a> <a href="javascript:void(0)">нет ссылки</a> <span>неподходящий тег</span> <option value="page">неподходящий тег</option> <a href="#">нет ссылки</a>
Важно помнить, что ссылки, подгружаемые с помощью JavaScript, не будут обнаружены до окончания процесса рендеринга. Это значительно замедляет процесс сканирования сайта, ведь Google приходится постоянно корректировать структуру и относительную важность страниц по мере рендеринга и обнаружения новых ссылок, реализованных с помощью JS.
Кэширование
Все загружаемые файлы, включая HTML, JS и CSS активно кэшируются Google, при этом ваши настройки тайминга будут игнорироваться, а новую копию Google загрузит по своему усмотрению. Это может привести к использованию уже устаревших ресурсов JavaScript или CSS. Возможное решение — использование «цифровых отпечатков контента» в названии файлов, например, вида: main.2bb85551.js.
Благодаря отпечаткам, при каждом обновлении файла будет создаваться его новая копия и Google сможет использовать актуальную версию для обработки страницы.
Дублирование контента и ложные 404
Важно знать, что JS может стать причиной появления дубликатов, если уникальный контент подгружается динамически и возникли проблемы с его отображением или загрузка занимает слишком много времени. Google может увидеть только дубликаты шаблонов. Актуально для SPA-проектов, использующих использующих фреймворки Angular, React, Vue.
Решение — SSR (server-side rendering), то есть рендеринг на стороне сервера. В таком случае Googlebot получит заранее отрисованный контент в исходном коде документа и проблем с его сканированием/индексацией не возникнет.
Также некоторые сайты могут использовать JavaScript для обработки ошибок и будут передавать код статуса 200 OK вместо соответствующего кода ошибки. Есть вероятность, что такие страницы ошибок будут индексироваться и показываться в результатах поиска.
3. Отрисовка (рендеринг)
Одно из опасений SEO-специалистов, что при двухэтапном рендеринге (сначала HTML — потом отрисовка с помощью JS) процесс сканирования может занимать много времени. На самом деле, медиана ожидания для рендеринга сканируемого HTML-документа, как правило, не превышает 5 секунд.
Показатель не стоит путать с популярным SEO-мифом о том, что рендерер Google ждёт полной отрисовки страниц всего 3-5 секунд. На деле, как уверяет Джон Мюллер, тайм-аут может быть выше, а благодаря активному кэшированию ресурсов страницам не придётся каждый раз загружать CSS- и JS-файлы.
Миф появился благодаря инструменту URL Inspection Tool от Google, в котором ресурсы необходимые для отображения страницы извлекаются в реальном времени, нет системы кэширования и требуется разумный лимит.
Тем не менее, чем быстрее отрисовывается страница, тем лучше. Процесс рендеринга тратит много ресурсов, а Google старается их экономить.
Процесс отрисовки это загрузка страницы в том же виде, который доступен в браузере пользователя. Со всеми элементами, реализованными с помощью JavaScript, если предыдущие правила соблюдены (нет запрета к сканированию, а файлы скриптов доступны и актуальны).
Googlebot работает на движке Chromium 74-й версии, поэтому поддерживает все возможности современных браузеров, но краулер не умеет выполнять пользовательские сценарии вроде кликов, заполнения форм и прочих взаимодействий с элементами на странице, поэтому всё, что должно попасть в индекс, обязано быть доступно сразу в DOM документа. Если что-то подгружается с сервера по клику, то оно не будет просканировано поисковым роботом.
Googlebot не умеет скроллить страницу, поэтому загружаемый визуальный размер документа отличается от привычного пользователю. Для мобильных устройств страница загружается с шириной 411px и высотой 12140px, для десктопа — 1024x9307px.
Индексация
Если предыдущие этапы пройдены успешно Google сможет проиндексировать контент. Самый простой способ проверить (помимо уже упомянутого URL Inspection Tool в Search Console) — ввести в поисковике часть контента, который загружается с помощью JS и, используя оператор «site:», указать анализируемый домен.
Например, на сайте бренда H&M часть контента подгружается по клику с помощью JS.
Попробуем проверить попадает ли этот текст в индекс? Увы:
В тоже время контент реализованный в рамках HTML и найденный в исходном коде документа, без труда индексируется:
Какой процент контента на JS в итоге не индексируется? У onely.com есть суровые данные для нескольких крупных сайтов известных брендов.
Такой разброс говорит о возможности, как минимум, облегчить доступ Googlebot и WRS к сканированию и рендерингу наших проектов. Несколько советов и рекомендаций.
Server-Side Rendering (SSR)
Рендеринг (отрисовка) контента на стороне сервера. В этом случае, Googlebot получает уже готовый код документа. Это значительно повышается скорость First Paint и First Contentful Paint, что важно в условиях нового фактора ранжирования Google Page Experience.
Но есть и недостаток — генерация страниц на сервере требует времени, что может привести к задержке TTFB (время до получения первого байта).
Стоит учитывать возможность и гибридного подхода — SSR для одних страниц и, например, динамический рендеринг для других. Так делает, например, Netflix.
Динамический рендеринг
Ещё одно жизнеспособное решение, официально поддерживаемое Google и позволяющие отправлять краулеру статическую версию сайта, а пользователям версию страницы с JS.
Такой способ не воспринимается как клоакинг, если контент фактически не отличается.
Динамический и серверный рендеринг важны для продвижения под Яндекс. Как увидим ниже, поисковик пока не особенно умеет в JavaScript-индексацию.
Поддерживаемые фреймворки
Вот список популярных JS-фреймворков + HTML5 и возможность индексации реализованного с помощью них контента различными поисковыми системами.
Здесь следует добавить, что робот Яндекса всё-таки может проиндексировать AJAX-версию контента, но только если есть его HTML-копия.
Проверьте доступность JS-файлов
Очевидно, у краулеров должен быть доступ к файлам, влияющим на отображение страницы. Убедитесь, что они открыты для сканирования. Самый просто способ — добавить соответствующие директивы в robots.txt. Например, для Googlebot:
User-Agent: Googlebot Allow: .js Allow: .css
Подробнее о продвинутом использовании robots.txt можно узнать в нашем руководстве.
Настройте пагинацию правильно
Постраничная навигация часто реализуется с помощью JS, но мы уже знаем, что Googlebot не умеет кликать на элементы интерфейса, поэтому необходимо настроить нумерацию с помощью ссылок <a href=»»>. Подробно о пагинации мы также рассказывали.
URL и History API
При взаимодействии с контентом, реализованным с помощью AJAX, Vue, Angular определенные состояния страницы могут изменять URL-адрес, добавляя в него hash-символ «#». Googlebot не сможет их распознать:
Для решения проблемы с хешами используется History API, появившийся вместе с HTML5. Метод позволяет привести URL к стандартному виду, но здесь придётся подробнее разобраться с темой и правильно настроить конфигурацию сервера. В основном это снова актуально для SPA-проектов (англ. single page application — одностраничное приложение), где контент подгружается полностью динамически.
Lazy Loading
Отложенная загрузка улучшает юзабилити сайта, подгружая медиа элементы только тогда, когда они понадобятся пользователю (например, при скролле). Но если функционал настроен неправильно, Googlebot может просто не увидеть необходимый нам контент. Если используете Lazy Loading, убедитесь, что всё загрузка реализовано в соответствии с требованиями Google.
Выводы
С одной стороны система рендеринга в Google (Web Rendering Service) значительно шагнула вперёд, используя последнюю версию Chrome на движке 74-й версии, что упрощает обработку сайтов с использованием JS, с другой — краулер не умеет кликать, скроллить или иначе взаимодействовать с контентом, а значит высока вероятность, что он пропустит часть важного для SEO контента.
Если у вас нет возможности или специалиста, способного выполнять все рекомендации Google по разработке, руководствуйтесь следующим правилом: всё, что хотим видеть в индексе, должно быть доступно в исходном коде документа (теги, ссылки, тексты, изображения, навигация, меню и любые другие элементы On-page). Это максимально актуально и для Яндекса.
Всем удачно проиндексироваться и пусть в поиске будет только желаемый контент!
Разработка сайтов на Node.js от Brander ⋆
Node.js — платформа, на которой создаются высокоскоростные сайты и приложения с высокой нагрузкой. Разработка такого веб-проекта возможна при минимальных вложениях. Brander успешно создает сайты с помощью этой технологии уже более 9 лет и знает, как сделать качественный, функциональный ресурс, отвечающий задачам вашего бизнеса. Заказать разработку веб-проекта на Node.js https://brander.ua/ru можно прямо сейчас.
Как создаются сайты на Node.js
Технология использовалась при разработке веб-проектов для больших, известных компаний, таких как Netflix, eBay, Yahoo! и др. Основное преимущество веб-ресурсов и приложений, созданных на Node.js — высокая скорость работы. На этой платформе создаются большие порталы, B2B сервисы, медийные проекты и пр. Обратившись в Brander, вы получите:
-
Кастомный, функциональный продукт. Технология позволяет разработать веб-проект с логикой любой сложности. Высокая производительность и скорость — то, на что можно рассчитывать, заказывая сайт или приложение на Node.js. Независимо от количества посетителей, которые одновременно посетят ресурс, данные будут обрабатываться быстро, а высокая нагрузка не помешает корректной работе сервиса.
-
Привлечение. Сегодня развитие любого бизнеса невозможно, если он не будет представлен в интернете. Наличие сайта повышает узнаваемость компании, увеличивает лояльность клиентов и доверие со стороны партнеров. Веб-ресурс делает вас ближе к своими клиентами, открывает для них новые возможности взаимодействия с продуктом.
-
Публикация и поддержка приложений. Публикацию берет на себя компания, разрабатывающая веб-ресурс. Также вы получите рекомендации по дальнейшей работе с ним. Node.js — технология, позволяющая обновлять, совершенствовать проект, расширять возможности, добавлять функционал. Техническую поддержку и обновления сайта удобнее всего заказать там же, где его разрабатывали.
-
Маркетинг. Используя каналы интернет-маркетинга, специалисты донесут информацию о вашем продукте до потенциальных клиентов компании. Инструменты продвижения выбираются индивидуально с учетом особенностей и задач бизнеса. SEO, реклама в социальных сетях и Google, e-mail-маркетинг — эффективные инструменты, которые приведут к вам новых покупателей, увеличив продажи в несколько раз.
Заказать разработку сайта на Node.js — правильное решение, которое поможет вам вывести бизнес на новый уровень, потратив при этом вполне подъемную сумму. Технология открывает множество возможностей как перед разработчиками, так и перед вами как владельцем веб-приложения.
Если Вы нашли для себя что-то полезное на этой странице, пожалуйста, нажмите на одну из этих кнопок:
JavaScript для SEO 📊 Что это? 📉 Как влияет на оптимизацию сайта? 📈 Что делать? 📑 Ant-Team.ru
Перевод статьи с портала Moz.
Интернет находится в золотом веке фронтенд-разработки, а JavaScript и техническая SEO-оптимизация переживают настоящий ренессанс. В связи с этим, как технический SEO-специалист и горячий поклонник веб-разработки в известном агентстве цифрового маркетинга, я хотел бы поделиться своим видением современного положения JavaScript для SEO. За основу я возьму передовой опыт в этой отрасли, а также собственные наблюдения. Из этой статьи вы узнаете, как в 2021 году оптимизировать для поиска свой сайт на JavaScript (JS).
Что такое JavaScript для SEO?
JavaScript для SEO — это техническая специализация, которая служит для поисковой оптимизации сайтов, созданных с помощью JavaScript, и повышения их видимости в поисковых системах. Ее основные задачи:
- Оптимизация контента, созданного с помощью JS, чтобы обеспечить его сканирование, отображение и индексацию поисковыми системами.
- Предотвращение, выявление и устранение проблем ранжирования для сайтов и одностраничных приложений (SPA), созданных на различных JS фреймворках, таких как React, Angular и Vue.
- Использование оптимальных современных решений для улучшения индексации страниц.
- Улучшение времени загрузки страниц для выполнения кода JavaScript, чтобы максимально упростить взаимодействие с пользователем (UX).
JavaScript для SEO: польза или вред?
Когда как! Для современного интернета JavaScript просто необходим, поскольку он обеспечивает масштабируемость при создании сайтов и упрощает их обслуживание. Однако некоторые реализации JS могут серьезно ухудшить видимость сайта в поисковых системах.
Рисунок 1. JavaScript для SEO.
Как JavaScript влияет на SEO?
JavaScript может влиять на следующие элементы страницы и важные факторы ранжирования:
- Отображаемый контент
- Ссылки
- Изображения с отложенной загрузкой
- Время загрузки страницы
- Метаданные
Что представляют собой сайты на JavaScript?
Когда мы говорим о сайтах, созданных на JavaScript, мы не имеем в виду простое добавление интерактивных элементов в HTML-документы (например, анимации JS на статической веб-странице). Речь идет о тех случаях, когда основной контент внедряется в DOM с помощью JavaScript.
Рисунок 2. Модель оболочки приложения.
Этот шаблон называется app shell (оболочка приложения) и служит основой для прогрессивных приложений (PWA). Мы рассмотрим это ниже.
Как проверить, построен ли сайт на JavaScript
Вы можете легко проверить, построен ли сайт на платформе JavaScript, используя такие инструменты, как BuiltWith или Wappalyzer. Вы также можете использовать функции браузера «Проверить элемент» или «Просмотреть исходный код». Ниже представлены наиболее популярные фреймворки JavaScript:
JavaScript для SEO: основной контент
Рассмотрим следующий пример. Современные приложения строятся на JS-фреймворках, таких как Angular, React и Vue. Платформы JS позволяют разработчикам быстро создавать и масштабировать интерактивные приложения. Давайте взглянем на шаблонный проект, созданный с помощью фреймворка от Angular.js — популярной платформы, разработанной Google.
Рисунок 3. Проект на Angular.js
При просмотре в браузере он выглядит как обычная страница: текст, изображения и ссылки. Однако давайте копнем глубже и посмотрим на сам код:
Рисунок 4. Код страницы.
Мы видим, что в этом HTML-документе практически полностью отсутствует какой-либо контент. В теле страницы находится только корневой тег приложения (app-root) и несколько тегов script. Причина заключается в том, что основной контент этого одностраничного приложения (SPA) динамически внедряется в DOM через JavaScript. Другими словами, загрузка основного контента страницы в этом приложении полностью зависит от JavaScript!
Возможные трудности: основной контент отображается для пользователей, но не для поисковых роботов, что является очень серьезной проблемой! Если поисковым системам не удается полностью проиндексировать контент, они могут игнорировать ваш сайт в пользу конкурентов. Ниже мы подробно рассмотрим этот случай.
JavaScript для SEO: внутренние ссылки
Кроме динамического внедрения контента в DOM, JavaScript также оказывает определенное влияние на доступность ссылок к индексации. Ведь исследуя тот или иной сайт, бот Google переходит по всем найденным на странице ссылкам. Google настоятельно рекомендует организовывать перелинковку страниц, используя стандартные теги HTML, а также обязательно включать атрибут href и не забывать про анкорный текст:
Рисунок 5. Код ссылки.
Вместе с тем при создании ссылок Google советует разработчикам не полагаться на другие HTML-элементы, такие как div или span, или обработчики событий JS. Такие ссылки рассматриваются как «псевдоссылки», и они, как правило, не будут индексироваться согласно официальным рекомендациям Google:
Рисунок 6. Код «псевдоссылки».
Однако, несмотря на эти рекомендации, независимое исследование показало, что Googlebot все-таки может индексировать ссылки JS. Тем не менее, исходя из личного опыта, я бы все-таки посоветовал создавать ссылки в виде статических HTML-элементов.
Возможные проблемы: если поисковые системы не индексируют и не переходят по ссылкам на ваши ключевые страницы, то вы лишаетесь перелинковки. Внутренние ссылки помогают поисковым системам более эффективно индексировать ваш сайт и выделять важные страницы. При наихудшем раскладе, если ваши внутренние ссылки созданы неправильно, Google будет стоить больших усилий обнаружить ваши новые страницы (не включенные в карту сайта XML).
JavaScript для SEO: изображения с отложенной загрузкой
JavaScript также влияет на доступность индексирования изображений с отложенной загрузкой. Приведем простой пример. Этот фрагмент кода предназначен для внедрения в DOM изображений с отложенной загрузкой с помощью JS:
Рисунок 7. Код для изображений.
Googlebot поддерживает отложенную загрузку, но, в отличие от человека, не «прокручивает» ваши страницы. Вместо этого, при индексировании контента Googlebot просто удлиняет виртуальное окно просмотра (видимую область). Следовательно, слушатель событий (event listener) не срабатывает как при «прокрутке», и поисковый робот не «видит» контент.
Вот пример кода, который более оптимизирован для SEO:
Рисунок 8. Оптимизированный код.
Этот код показывает, что IntersectionObserver API вызывает callback, когда любой просматриваемый элемент становится видимым. Данный вариант является не только более гибким и надежным, чем приемник событий, срабатывающий при «прокрутке», но и поддерживается последней версией Googlebot. Код срабатывает, когда Googlebot изменяет размер видимой области, чтобы «увидеть» ваш контент (см. ниже).
Рисунок 9. Поведение Googlebot.
Вы также можете использовать встроенную функцию отложенной загрузки в браузере. Она поддерживается в Google Chrome, однако помните, что это все еще экспериментальная функция. При наихудшем раскладе Googlebot просто проигнорирует контент, однако все изображения загрузятся в любом случае:
Рисунок 10. Встроенная функция отложенной загрузки в Google Chrome.
Возможные проблемы: как и в случае, когда основной контент не загружается, важно убедиться, что Google «видит» весь контент на странице, включая изображения. Например, на сайте интернет-магазина с большим списком продуктов отложенная загрузка изображений обеспечивает хорошие поведенческие факторы у пользователей и облегчает работу ботам поисковых систем!
Javascript для SEO: время загрузки страницы
Javascript также может влиять на время загрузки страницы, что является официальным фактором ранжирования Google для мобильных устройств. Это означает, что медленная загрузка страницы потенциально способна ухудшить ранжирование в поиске. Как мы можем помочь разработчикам смягчить возможные последствия?
- Минификация JavaScript.
- Откладывание загрузки второстепенных элементов JS, пока основной контент не отобразится в DOM.
- Встраивание всего важного JS-кода в код страницы.
- Обслуживание JS с меньшим наполнением.
Возможные проблемы: медленная загрузка сайтов создает определенные трудности как для пользователей, так и для поисковых систем. Даже Google откладывает загрузку JavaScript ради экономии ресурсов. Поэтому важно убедиться, что весь контент правильно загружается, размечен и представлен достаточно эффективно.
JavaScript для SEO: метаданные
Также важно отметить, что одностраничные приложения, использующие библиотеки роутинга, такие как response-router или vue-router, должны предпринимать дополнительные действия, например, при изменении метатегов во время перехода между компонентами маршрута. Как правило, это происходит с помощью пакета Node.js, такого как vue-meta или react-meta-tags.
Рисунок 11. Пакет Node.js.
Что такое компоненты маршрута? Ниже описаны пять шагов, показывающих, как ссылки на разные «страницы» в одностраничном приложении работают в React:
1. Когда пользователь посещает сайт React, на сервер отправляется запрос GET для файла ./index.html.
2. Затем сервер отправляет клиенту страницу index.html, которая содержит скрипты для запуска React и React Router.
3. Далее приложение загружается на стороне клиента.
4. Если пользователь нажимает на ссылку, чтобы перейти на новую страницу (/example), на сервер отправляется запрос для нового URL-адреса.
5. React Router перехватывает запрос до того, как он достигнет сервера, и обрабатывает изменение страницы. Это происходит путем локального обновления отображаемых компонентов React и изменения URL-адреса на стороне клиента.
Другими словами, когда пользователи или боты переходят по ссылкам на URL-адреса сайта React, им не предоставляется большого количества статических HTML-файлов. Компоненты React (например, верхние и нижние колонтитулы и основной текст), размещенные в файле root ./index.html, просто реорганизуются, чтобы отобразить другой контент. Вот почему их называют одностраничными приложениями (SPA)!
Возможные проблемы: использование таких пакетов, как React Helmet, гарантирует, что при просмотре каждой страницы SPA пользователям будут предоставлены уникальные метаданные или «компоненты». В противном случае поисковые системы могут индексировать одни и те же метаданные для каждой страницы или, что еще хуже, вообще их игнорировать!
Как все это влияет на общую картину поисковой оптимизации? Для этого давайте разберемся, как Google обрабатывает JavaScript.
Как Google обрабатывает JavaScript?
Чтобы понять, как JavaScript влияет на поисковую оптимизацию, нужно разобраться, что происходит, когда Googlebot индексирует страницу:
1. Сканирование
2. Отображение
3. Индексирование
Сначала Googlebot по очереди, страница за страницей, сканирует URL-адреса. Робот делает запрос GET на сервер, обычно используя мобильный пользовательский агент, а затем сервер отправляет HTML-документ.
Затем Google определяет, какие ресурсы необходимы для отображения основного контента страницы. Как правило, при этом сканируется только статический HTML, а не какие-либо связанные файлы CSS или JS. Почему?
В официальном блоге Google были данные о том, что Googlebot постоянно обходит и перепроверяет порядка 130 триллионов страниц. Поэтому отображение JavaScript в должном масштабе может быть весьма затратной процедурой. Вычислительная мощность, необходимая для массовой загрузки, анализа и выполнения JS, просто огромна.
Вот почему Google может отложить отображение JavaScript на более позднее время. Эти страницы помещаются в очередь на отображение в Google Web Rendering Services (WRS) до тех пор, пока не появятся свободные вычислительные мощности.
В конце концов, Google проиндексирует любой отображаемый HTML-код после выполнения JS.
Рисунок 12. Процесс сканирования, отображения и индексации Google.
Другими словами, Google сканирует и индексирует контент в две волны:
1. Первая волна индексирования — мгновенное сканирование статического HTML, отправленного сервером.
2. Вторая волна индексирования — отложенное сканирование любого дополнительного контента, отображаемого с помощью JavaScript.
Рисунок 13. Волны индексирования Google. Источник: Google I/O’18
Суть заключается в том, что контент, отображение которого зависит от JavaScript, может проходить сканирование и индексирование Google с задержкой. Раньше на это уходили дни, а порой даже недели. Например, исторически Googlebot работал на устаревшем механизме отображения Chrome 41. Однако за последние годы поисковые роботы претерпели значительные изменения в лучшую сторону.
Так, Googlebot был обновлен до последней стабильной версии консольного браузера Chromium в мае 2019 года. Это означает, что поисковый робот теперь постоянно обновляется и полностью совместим с ECMAScript 6 (ES6) и выше, а также с последними версиями JS.
Итак, если технически Googlebot теперь способен запускать JavaScript, почему все еще существуют проблемы с индексированием?
Причина проста — краулинговый бюджет. Это концепция, согласно которой Google ограничивает скорость индексирования определенного сайта из-за ограниченных вычислительных ресурсов. Мы уже знаем, что Google откладывает выполнение JavaScript ради экономии краулингового бюджета.
Хотя задержка между индексированием и отображением сократилась, не существует никакой гарантии, что Google действительно выполнит код JavaScript, стоящий в очереди.
Ниже перечислены причины, по которым Google может вообще никогда не запустить ваш код JavaScript:
- Блокировка в robots.txt.
- Превышение времени ожидания.
- Ошибки.
Таким образом, JavaScript может вызвать определенные проблемы, если основной контент на JS не отображается в Google.
Реальное применение. JavaScript для SEO в электронной коммерции
Интернет-магазины — реальный пример динамического контента, созданного на JavaScript. С его помощью загружают товары на страницы категорий.
JavaScript позволяет таким сайтам динамически обновлять свой ассортимент. В данном случае это более чем оправданно, поскольку количество товаров в продаже постоянно меняется. Однако действительно ли Google может «видеть» ваш контент, если он не выполняет файлы JS?
Для интернет-магазинов, которые зависят от онлайн-продаж, отсутствие индексирования продуктов в Google может иметь поистине катастрофические последствия.
Как тестировать и устранять проблемы SEO с JavaScript
Ниже представлены действия, которые вы можете предпринять, чтобы заранее выявить любые потенциальные проблемы, связанные с JavaScript:
1. Визуализируйте страницу с помощью инструментов Google для вебмастеров. Это поможет вам увидеть страницу так, как ее видит Google.
2. Используйте оператор поиска по сайту, чтобы проверить индекс Google. Убедитесь, что весь ваш контент на JavaScript правильно индексируется, проверив Google вручную.
3. Проведите отладку с помощью встроенных инструментов разработчика Chrome. Сравните и сопоставьте то, что «видит» Google (исходный код) и то, что видят пользователи (обработанный код), и убедитесь, что эти два взгляда на вашу страницу в целом совпадают.
Кроме того, существуют удобные сторонние инструменты и плагины, которые вы также можете использовать. Мы поговорим о них чуть позже.
Инструменты Google для вебмастеров
Лучший способ узнать, возникают ли у Google технические трудности при попытке отобразить ваши страницы, — это протестировать их с помощью инструментов Google для вебмастеров, таких как:
Рисунок 14. Проверка оптимизации для мобильных устройств.
Вам нужно просто визуально сравнить то, как ваш контент отображается в браузере, и то, как он представлен в инструментах, и найти отличия.
Оба этих инструмента используют тот же постоянно обновляемый механизм отображения Chromium, что и Google. Они дают вам точное представление о том, что на самом деле «видит» Googlebot при индексировании вашего сайта.
Существуют также сторонние технические SEO-инструменты, такие как Merkle’s fetch and render. В отличие от инструментов Google, это приложение предоставляет пользователям полноразмерный снимок всей страницы.
Site: Оператор поиска
Если вы не уверены, индексируется ли в Google ваш контент на JavaScript, вы можете выполнить быструю проверку с помощью оператора поиска по сайту (site:).
Скопируйте и вставьте любой контент, индексирование которого в Google вызывает у вас сомнение, после оператора “site:” и названия вашего домена, а затем нажмите клавишу Return. Если ваша страница присутствует в результатах поиска, поводов для беспокойства нет! Google может без проблем сканировать, отображать и индексировать ваш контент. Если страницы нет, то вашему контенту на JavaScript требуется помощь для улучшения видимости.
Вот как это выглядит в поисковой выдаче Google:
Рисунок 15. Поисковая выдача.
Инструменты разработчика Chrome
Встроенные функции инструментов разработчика в браузере Chrome — это еще один метод, который поможет вам при тестировании и устранении проблем с JavaScript для SEO.
Щелкните правой кнопкой мыши в любой области страницы, чтобы отобразить меню параметров. Далее выберите «Просмотреть исходный код», чтобы открыть в новой вкладке статический HTML-документ.
Также в меню параметров вы можете выбрать функцию «Проверить элемент», чтобы просмотреть фактически загруженный в DOM контент, включая JavaScript.
Рисунок 16. Проверка элемента.
Сравните эти два отображения страницы, чтобы увидеть, загружается ли какой-то основной контент только в DOM, при этом не являясь жестко закодированным в источнике. Также могут помочь и сторонние расширения Chrome, например, плагин Web Developer от Криса Педерика (Chris Pederick) или плагин View Rendered Source от Джона Хогга (Jon Hogg).
Как исправить проблемы с отображением JavaScript
Итак, если проблема с отображением JavaScript все-таки была выявлена, как можно ее устранить? Ответ прост: используйте универсальный («изоморфный») JavaScript.
Что это значит? Характеристики «универсальный» и «изоморфный» относятся к приложениям JS, которые могут выполняться либо на стороне сервера, либо на стороне клиента.
Существует несколько реализаций JavaScript, которые более дружелюбны к поисковым системам. Их отличие состоит в том, что они рендерят страницу не на стороне клиента, а на стороне сервера. В этом случае и пользователь, и поисковый бот получают сразу html код, без необходимости рендеринга кода JS:
- Отображение на стороне сервера (SSR). Это означает, что для каждого запроса JavaScript выполняется на сервере. Вы можете реализовать SSR с помощью библиотеки Node.js, например, Puppeteer. Тем не менее это может привести к большой нагрузке на сервер.
- Гибридное отображение. Это комбинация отображения как на стороне сервера, так и на стороне клиента. Так, основной контент отображается на стороне сервера перед отправкой клиенту. Любые дополнительные ресурсы подгружаются клиенту.
- Динамическое отображение. С помощью User-Agent сервер определяет, кто отправляет запрос — поисковый бот или пользователь. Если запрос отправляет бот, то рендеринг происходит на стороне сервера и бот получает чистый html. Если же запрос исходит от пользователя, то полученный JS рендерится на стороне пользователя. В официальном блоге Google рекомендуют использовать Renderton — популярное решение с открытым исходным кодом, предназначенное для динамического отображения.
- Инкрементальная статическая регенерация (обновление статического контента после развертывания сайта). Это можно выполнить с помощью таких платформ, как Next.js для React или Nuxt.js для Vue. Эти фреймворки могут предварительно строить (рендерить) каждую страницу вашего JS-приложения в статические ресурсы (страницы HTML), которые вы можете обслуживать на любом хостинге или хранилище данных. Таким образом, ваш сайт может получить все преимущества SEO-рендеринга на стороне сервера. При этом ресурсы сервера, например, серверная обработка и запросы к базе данных, в этом подходе не используются.
Эти решения гарантируют, что роботы поисковых систем получают полностью отображаемые версии веб-страниц, когда делают запросы на индексирование HTML-документов. Однако некоторые из них чрезвычайно трудно, а порой и невозможно реализовать в полной мере, если ваша инфраструктура уже построена. Вот почему перед разработкой архитектуры вашего следующего приложения важно ознакомиться со всеми необходимыми технологиями JavaScript для SEO.
Обратите внимание: это не касается сайтов, построенных на системах управления контентом (CMS), таких как WordPress или Shopify, которые уже предварительно отображают большую часть контента.
Выводы
В этом руководстве представлены некоторые передовые методы и концепции JavaScript для SEO. Однако JavaScript для поисковой оптимизации — это сложная сфера, с огромным количеством нюансов. Мы рекомендуем вам ознакомиться с официальной документацией Google и руководством по устранению неполадок, где вы сможете больше узнать о JavaScript для SEO.
Автор: Пирс Брелински
Об авторе:
Пирс Брелински — специалист по технической SEO-оптимизации, работающий в крутом агентстве цифрового маркетинга, получившем много наград. Он работал с разными компаниями: от малых предприятий до корпораций из списка Fortune 500. Мастер продвижения сайтов и горячий поклонник веб-разработки.
P.s. Подписывайтесь на наш телеграм-канал t.me/seoantteam, чтобы первыми узнавать о выходе новых материалов. Мы публикуем только полезный контент, например, как определить качественный контент сайта, как найти причины падения трафика или как самостоятельно провести seo-аудит сайта.
Разработка сайтов на Node.js от Brander — Статьи партнеров
Если вам нужен многостраничный корпоративный сайт или мобильное приложение, мы предлагаем их разработку на основе технологии Node.js. Она позволит создать скоростной и производительный продукт. Компания Брандер выполняет проект быстро, в оговоренные сроки и согласно техническому заданию. В проектах разработчики используют низкоуровневый код, что позволяет справляться сайту с высокой нагрузкой. Основные преимущества технологии — далее в статье.
Особенности разработки сайтов на Node.js
Модель ввода и вывода не блокируется — и это одно из главных преимуществ представленной технологии. Разработчики Брендер составляют определенную приоритетность, что позволяет системе работать асинхронно и быть управляемой событиями.
Поскольку технология Node.js позволяет использовать сайт высокоскоростным пользователям, не нужно создавать отдельные потоки для каждого из существующих подключений. С помощью представленной технологии разрабатываются разные веб-ресурсы, включая чат-боты, форумы, компьютерные и мобильные игры.
Преимущества использования технологии Node.js при разработке сайтов:
- Быстрое комьюнити. Поскольку код низкоуровневый и открытый, разработчики Брендер занимаются написанием пакетов и модулей, а затем делятся ими. Написанные модели комбинируются, что упрощает работу программиста.
- Использование одного языка программирования. Технология Node.js позволяет работать с одним языком программирования на сервере и клиенте. Разработчику не нужно учить новый язык, поскольку легче и быстрее можно выучить “надстройку” под Node.js.
- Скорость разработки. Каждый этап разработки занимает немного времени, если четко оговорено и утверждено с клиентом техническое задание. В разработку корпоративного сайта или мобильного приложения входит анализ конкурентов и целевой аудитории, написание технического задания, прототипа и архитектуры сайта.
- Улучшение технологии. Технологию Node.js постоянно улучшают — над исправлением багов и модернизацией технологии работают сотрудники фирмы Node.
Какие веб-ресурсы разрабатывают с помощью технологии Node.js?
Мобильные приложения, корпоративные сайты, интернет-магазины, программы — все это можно разработать с помощью технологии Node.js. Каждый проект выполняется с учетом стандартов. Если клиент заказывает мобильное приложение и корпоративный сайт одновременно, то разработчики Брендер синхронизируют два продукта, чтобы их удобно было использовать пользователям. Для консультации и оформления заказа свяжитесь с сотрудниками компании Брендер — вам предоставят ответы на все вопросы, подробно расскажут об услугах.
javascript — Как отключить правый клик на моей веб-странице?
Я знаю, что опаздываю, но хочу сделать некоторые предположения и пояснения к ответу, который собираюсь дать.
Могу ли я отключить щелчок правой кнопкой мыши
Могу ли я отключить правый клик на моей веб-странице без использования Javascript?
Да, используя JavaScript, вы можете отключить любое происходящее событие, и вы можете сделать это в основном только с помощью JavaScript. Как, все, что вам нужно, это:
-
Рабочее оборудование
-
Веб-сайт или другое место, откуда вы можете узнать о кодах клавиш.Потому что они тебе понадобятся.
Теперь предположим, что вы хотите заблокировать клавишу ввода, нажмите вот код:
функция предотвращения входа () {
если (event.keyCode == 13) {
вернуть ложь;
}
}
Для правого клика используйте это:
событие.кнопка == 2
вместо event.keyCode
. И ты его заблокируешь.
Я хочу спросить об этом, потому что большинство браузеров позволяют пользователям отключать его с помощью Javascript.
Вы правы, браузеры позволяют вам использовать JavaScript
и javascript сделает всю работу за вас. Вам не нужно ничего настраивать, просто нужен атрибут script в голове.
Почему не стоит отключать?
Основной и самый быстрый ответ на этот вопрос: пользователям это не понравится . Всем нужна свобода, никто, я имею в виду, никто не хочет быть заблокированным или отключенным, несколько минут назад я был на сайте, который заблокировал мне правый клик, и я понял, почему? Вам нужно защитить исходный код? Затем здесь ctrl+shift+J
Я открыл консоль
и теперь я могу перейти на вкладку HTML-код
.Давай, останови меня. Это не добавит никакого уровня безопасности в ваше приложение.
Правый щелчок содержит множество полезных меню, таких как «Копировать», «Вставить», «Искать в Google «текст» (в Chrome) и многие другие. Таким образом, пользователь хотел бы получить легкий доступ вместо того, чтобы запоминать множество сочетаний клавиш. Любой по-прежнему может скопировать контекст, сохранить изображение или сделать все, что захочет.
Браузеры используют навигацию с помощью мыши: Некоторые браузеры, такие как Opera , используют навигацию с помощью мыши, поэтому, если вы отключите ее, пользователь определенно ненавидит ваш пользовательский интерфейс и сценарии.
Итак, это было основное, я собирался написать еще кое-что о сохранении исходного кода, хе-хе-хе, но пусть это будет ответом на ваш вопрос.
Ссылка на коды клавиш:
Код ключа и кнопки мыши:
http://www.w3schools.com/jsref/event_button.asp
https://developer.mozilla.org/en-US/docs/Web/API/event.button (пользователи тоже оценят).
Почему бы не отключить правый клик:
http://www.sitepoint.com/dont-disable-right-click/
Как сканировать веб-сайты JavaScript
Введение в сканирование JavaScript
Исторически боты поисковых систем, такие как Googlebot, не сканировали и не индексировали контент, созданный динамически с использованием JavaScript, и могли видеть только то, что находится в исходном коде статического HTML.
Однако с ростом количества веб-сайтов и фреймворков, насыщенных JavaScript, таких как Angular, React, Vue.JS, одностраничных приложений (SPA) и прогрессивных веб-приложений (PWA), ситуация изменилась.Google развил и отказался от своей старой схемы сканирования AJAX и теперь отображает веб-страницы, как современный браузер, прежде чем индексировать их.
Хотя Google, как правило, может сканировать и индексировать большую часть содержимого JavaScript, они по-прежнему рекомендуют использовать рендеринг на стороне сервера или предварительный рендеринг, а не полагаться на подход на стороне клиента, поскольку его «сложно обрабатывать JavaScript, и не все сканеры поисковых систем». способны обработать его успешно или немедленно».
В связи с этим ростом и развитием поисковых систем очень важно уметь читать DOM после выполнения JavaScript, чтобы понять отличия от исходного HTML-ответа при оценке веб-сайтов.
Традиционно сканеры веб-сайтов также не могли сканировать веб-сайты JavaScript, пока мы не запустили первую в истории функцию рендеринга JavaScript в нашем программном обеспечении Screaming Frog SEO Spider.
Это означает, что страницы сначала полностью отображаются в автономном браузере, а отображаемый HTML-код после выполнения JavaScript сканируется.
Как и Google, мы используем Chrome для нашей службы веб-рендеринга (WRS) и постоянно обновляем его, чтобы он был как можно ближе к «вечнозеленому».Точную версию, используемую в SEO Spider, можно просмотреть в приложении («Справка» > «Отладка» в строке «Версия Chrome»).
Данное руководство содержит 4 раздела –
- JavaScript Основы SEO
- Как определить JavaScript
- Когда сканировать с помощью JavaScript
- Как сканировать веб-сайты JavaScript
Если вы уже знакомы с основами JavaScript SEO, вы можете сразу перейти к разделу «Как сканировать веб-сайты JavaScript» или продолжить чтение.
JavaScript Основы SEO
Если вы проводите аудит веб-сайта, вам следует узнать, как он устроен и использует ли он какой-либо клиентский JavaScript для ключевого контента или ссылок.Фреймворки JavaScript могут сильно отличаться друг от друга, и последствия SEO отличаются от традиционного HTML-сайта.
Основные принципы JavaScript
Хотя Google обычно может сканировать и индексировать JavaScript, необходимо понимать некоторые основные принципы и ограничения.
- Все ресурсы страницы (JS, CSS, изображения) должны быть доступны для сканирования, рендеринга и индексации.
- Google по-прежнему требует чистых, уникальных URL-адресов для страниц, а ссылки должны быть в соответствующих тегах привязки HTML (вы можете предложить статическую ссылку, а также вызвать функцию JavaScript).
- Они не щелкают, как пользователь, и загружают дополнительные события после рендеринга (например, щелчок, наведение или прокрутка).
- Моментальный снимок визуализированной страницы делается, когда определяется, что сетевая активность остановлена или превышает пороговое значение времени. Существует риск, что если страница отображается очень долго, она может быть пропущена, а элементы не будут видны и проиндексированы.
- Обычно Google обрабатывает все страницы, но не ставит в очередь страницы для обработки, если они имеют значение «noindex» в исходном ответе HTTP или в статическом HTML.
- Рендеринг Google отличается от индексации. Сначала Google сканирует статический HTML-код веб-сайта и откладывает рендеринг до тех пор, пока у него не будет ресурсов. Только тогда он обнаружит дополнительный контент и ссылки, доступные в отображаемом HTML. Исторически это могло занять неделю, но Google внес значительные улучшения, и теперь среднее время сократилось до 5 секунд.
Очень важно, чтобы вы знали эти вещи с JavaScript SEO, так как веб-сайт будет жить и умирать в зависимости от рендеринга в рейтинге.
Стратегия рендеринга
Google рекомендует разрабатывать с прогрессивным улучшением, создавая структуру сайта и навигацию, используя только HTML, а затем улучшая внешний вид и интерфейс сайта с помощью JavaScript.
Вместо того, чтобы полагаться на клиентский JavaScript, Google рекомендует рендеринг на стороне сервера, предварительный рендеринг или гибридный рендеринг, которые могут повысить производительность для пользователей и поисковых роботов.
- Рендеринг на стороне сервера (SSR) и предварительный рендеринг выполняют страницы JavaScript и доставляют обработанную начальную HTML-версию страницы как пользователям, так и поисковым системам.
- Гибридный рендеринг (иногда называемый «изоморфным») — это когда рендеринг может выполняться на стороне сервера для начальной загрузки страницы и HTML, а затем на стороне клиента для некритических элементов и страниц.
Многие фреймворки JavaScript, такие как React или Angular Universal, допускают рендеринг на стороне сервера и гибридный рендеринг.
В качестве альтернативы можно использовать динамическую визуализацию. Это может быть полезно, когда нельзя внести изменения во внешний код. Динамический рендеринг означает переключение между визуализацией на стороне клиента для пользователей и предварительно визуализируемым контентом для определенных пользовательских агентов (в данном случае поисковых систем).Это означает, что сканерам будет предоставлена статическая HTML-версия веб-страницы для сканирования и индексации.
Динамический рендеринг рассматривается как временная мера, а не как долгосрочная стратегия, поскольку он не дает преимуществ для пользователя или производительности, которые есть у некоторых из вышеперечисленных решений. Если у вас есть эта настройка, вы можете проверить это, переключив пользовательский агент на Googlebot в SEO Spider («Конфигурация> Пользовательский агент»).
Проблемы с индексированием JavaScript
Несмотря на то, что Google обычно может сканировать и индексировать JavaScript, есть дополнительные соображения.
У Google есть двухэтапный процесс индексации, когда они сначала сканируют и индексируют статический HTML, а затем возвращаются позже, когда ресурсы доступны для отображения страницы, а также сканируют и индексируют контент и ссылки в отображаемом HTML.
Среднее время между сканированием и рендерингом составляет 5 секунд, однако оно зависит от доступности ресурсов и поэтому может быть больше, что проблематично для веб-сайтов, которые полагаются на своевременный контент (например, издателей).
Если по какой-то причине рендеринг занимает больше времени, то для страницы можно использовать элементы исходного ответа (такие как метаданные и канонические символы), пока Google не приступит к рендерингу, когда ресурсы будут доступны.Будут отображены все страницы, если они не содержат метатег robots или заголовок, указывающий роботу Googlebot не индексировать страницу. Таким образом, первоначальный HTML-ответ также должен быть последовательным.
Другие поисковые системы, такие как Bing, изо всех сил пытаются отображать и индексировать JavaScript в масштабе, и из-за хрупкости JavaScript довольно легко столкнуться с ошибками, которые могут помешать отображению и индексированию контента.
Подводя итог, можно сказать, что в рендеринге и индексировании есть много тонкостей — будь то двухэтапное индексирование, ошибки JavaScript, блокировка ресурсов или директивы в необработанном HTML, которые предписывают ботам даже не переходить к этапу рендеринга.
Хотя зачастую это не проблема, использование рендеринга на стороне клиента может означать, что ошибка или простой недосмотр могут обойтись очень дорого, поскольку влияют на индексацию страниц.
Как определить JavaScript
Определить сайт, созданный с использованием фреймворка JavaScript, может быть довольно просто, однако идентифицировать страницы, разделы или HTML-элементы и теги, которые динамически адаптируются с помощью JavaScript, может быть сложнее.
Есть несколько способов узнать, создан ли сайт с использованием JavaScript.
Ползание
Это отправная точка для многих, и вы можете просто начать сканирование веб-сайта с настройками по умолчанию, используя Screaming Frog SEO Spider.
По умолчанию он будет сканировать в режиме «только текст», что означает, что он сканирует необработанный HTML до того, как будет выполнен JavaScript.
Если сайт создан с использованием только клиентского JavaScript, вы часто обнаружите, что сканируется только домашняя страница с ответом 200 «ОК» с несколькими файлами JavaScript и CSS.
Вы также обнаружите, что на странице нет гиперссылок на нижней вкладке «Исходящие ссылки», так как они не отображаются и поэтому не видны.
Хотя это часто является признаком того, что веб-сайт использует структуру JavaScript с отрисовкой на стороне клиента, он не сообщает вам о других зависимостях JavaScript на сайте.
Например, веб-сайт может использовать только JavaScript для загрузки продуктов на страницы категорий или обновления элементов заголовка.
Как вы легко их находите?
Чтобы более эффективно идентифицировать JavaScript, вам нужно переключиться в режим рендеринга JavaScript («Конфигурация > Паук > Рендеринг») и просканировать сайт или образец шаблонов со всего веб-сайта.
Затем SEO Spider будет сканировать как исходный, так и обработанный HTML-код, чтобы идентифицировать страницы с контентом или ссылками, доступными только на стороне клиента, и сообщать о других ключевых зависимостях.
Просмотрите вкладку «JavaScript», которая содержит исчерпывающий список фильтров для общих проблем, связанных с аудитом веб-сайтов с использованием клиентского JavaScript.
Инструмент отметит, есть ли содержимое, найденное только в отображаемом HTML после JavaScript.
В этом примере 100 % контента находится только в отображаемом HTML, так как сайт полностью основан на JavaScript.
Аналогичным образом можно также найти страницы со ссылками, которые присутствуют только в отображаемом HTML.
Или поймать, когда JavaScript используется для обновления заголовков страниц или метаописаний из того, что находится в необработанном HTML.
Узнайте больше о каждом из фильтров на вкладке JavaScript в следующем разделе.
Хотя эти функции помогают с масштабированием, вы можете использовать другие инструменты и методы для дальнейшей идентификации JavaScript.
Вопросы и ответы клиентов
Это действительно должно быть первым шагом.Один из самых простых способов узнать о веб-сайте — поговорить с клиентом и командой разработчиков и задать вопрос.
На чем построен сайт? Использует ли он структуру JavaScript или какие-либо зависимости JavaScript на стороне клиента для загрузки контента или ссылок?
Довольно разумные вопросы, и вы можете просто получить полезный ответ.
Отключить JavaScript
Вы можете отключить JavaScript в своем браузере и просматривать доступный контент. Это возможно в Chrome с помощью встроенных инструментов разработчика, или, если вы используете Firefox, плагин панели инструментов веб-разработчика имеет ту же функциональность.Доступен ли контент с отключенным JavaScript? Вы можете просто увидеть пустую страницу.
Обычно также полезно отключать файлы cookie и CSS во время аудита, а также для диагностики других проблем со сканированием, которые могут возникнуть.
Источник представления аудита
Щелкните правой кнопкой мыши и «просмотреть исходный код страницы» в Chrome. Это HTML до того, как JavaScript изменил страницу.
Есть ли текстовое содержимое или HTML? Часто встречаются признаки и намеки на используемые JS-фреймворки и библиотеки.Вы можете видеть содержимое и гиперссылки в исходном коде HTML?
Вы просматриваете код до того, как он будет обработан браузером, и то, что будет сканировать SEO Spider, если он не находится в режиме рендеринга JavaScript.
Если вы запустите поиск и не сможете найти контент или ссылки в источнике, они будут динамически сгенерированы в DOM и будут видны только в отрендеренном коде.
Если тело пусто, как в приведенном выше примере, это довольно четкий признак.
Аудит визуализированного источника
Насколько визуализированный код отличается от исходного кода статического HTML? Щелкните правой кнопкой мыши и «проверить элемент» в Chrome, чтобы просмотреть отображаемый HTML-код после выполнения JavaScript.
Вы часто можете увидеть имя JS Framework в отрендеренном коде, например «React» в приведенном ниже примере.
Вы обнаружите, что содержимое и гиперссылки находятся в отрендеренном коде, но не в исходном HTML-коде. Это то, что увидит SEO Spider в режиме рендеринга JavaScript.
Нажав на открывающийся HTML-элемент, а затем «копировать > externalHTML», вы можете сравнить отрендеренный исходный код с оригинальным исходным кодом.
Панели инструментов и плагины
Различные панели инструментов и плагины, такие как панель инструментов BuiltWith, Wappalyser и детектор библиотек JS для Chrome, могут помочь с первого взгляда определить технологии и платформы, используемые на веб-странице.
Они не всегда точны, но могут дать ценные подсказки без особых усилий.
Когда сканировать с помощью JavaScript
Хотя Google обычно отображает каждую веб-страницу, мы по-прежнему рекомендуем использовать выборочное сканирование JavaScript —
- При первом анализе веб-сайта для определения JavaScript.
- Аудит с известными зависимостями на стороне клиента.
- Во время развертывания крупных сайтов.
Почему выборочно?
Сканирование JavaScript происходит медленнее и интенсивнее, так как все ресурсы (будь то JavaScript, CSS и изображения) должны извлекаться для рендеринга каждой веб-страницы в автономном браузере в фоновом режиме для построения DOM.
Хотя это не проблема для небольших веб-сайтов, для крупного сайта с тысячами и более страниц это может иметь большое значение. Если ваш сайт не использует JavaScript для значительного динамического управления веб-страницей, то нет необходимости тратить время и ресурсы.
Если вы предпочитаете сканировать с включенным по умолчанию рендерингом JavaScript, установите режим рендеринга JavaScript через «Config > Spider > Rendering» и сохраните конфигурацию.
Как сканировать веб-сайты, насыщенные JavaScript
Для сканирования веб-сайтов и фреймворков, насыщенных JavaScript, таких как Angular, React и Vue.js и определите зависимости, переключитесь в режим рендеринга JavaScript.
Следующие 10 шагов должны помочь вам настроить и проверить веб-сайт JavaScript в большинстве случаев.
1) Настроить рендеринг на «JavaScript»
Чтобы просканировать веб-сайт JavaScript, откройте SEO Spider, нажмите «Конфигурация > Spider > Рендеринг» и измените «Рендеринг» на «JavaScript».
2) Настройка агента пользователя и размера окна
Область просмотра по умолчанию для рендеринга настроена на Googlebot Smartphone, так как Google в основном сканирует и индексирует страницы с помощью своего агента для смартфонов для индексации в первую очередь для мобильных устройств.
Это будет означать, что вы увидите снимок экрана мобильного телефона на нижней вкладке «Визуализированная страница».
Вы можете настроить как пользовательский агент в разделе «Конфигурация > HTTP-заголовок > Пользовательский агент», так и размер окна, щелкнув «Конфигурация > Паук > Рендеринг» в режиме рендеринга JavaScript в соответствии с вашими требованиями.
3) Проверьте ресурсы и внешние ссылки
Убедитесь, что такие ресурсы, как изображения, CSS и JS, отмечены галочкой в разделе «Конфигурация > Паук».
Если ресурсы находятся в другом поддомене или в отдельном корневом домене, то следует отметить галочкой «Проверить внешние ссылки», иначе они не будут сканироваться и, следовательно, отображаться.
Это конфигурация по умолчанию в SEO Spider, поэтому вы можете просто нажать «Файл > Конфигурация по умолчанию > Очистить конфигурацию по умолчанию», чтобы вернуться к этой настройке.
4) Просканировать веб-сайт
Теперь введите или вставьте веб-сайт, который вы хотите сканировать, в поле «Введите URL-адрес для паука» и нажмите «Пуск».
Сканирование отличается от стандартного сканирования, поскольку может потребоваться некоторое время, чтобы что-либо появилось в пользовательском интерфейсе, а затем внезапно появляется множество URL-адресов одновременно. Это связано с тем, что SEO Spider ожидает получения всех ресурсов для отображения страницы перед отображением данных.
5) Просмотр вкладки JavaScript
На вкладке JavaScript есть 15 фильтров, которые помогут вам узнать о зависимостях JavaScript и распространенных проблемах.
Вы можете фильтровать по следующим элементам, связанным с SEO —
- Страницы с заблокированными ресурсами — Страницы с ресурсами (такими как изображения, JavaScript и CSS), которые заблокированы роботами.текст. Это может быть проблемой, поскольку поисковые системы могут не иметь доступа к важным ресурсам, необходимым для точного отображения страниц. Обновите robots.txt, чтобы разрешить обход всех важных ресурсов и их использование для отображения содержимого веб-сайтов. Некритичные ресурсы (например, встраивание Google Maps) можно игнорировать.
- Содержит ссылки JavaScript — страницы, содержащие гиперссылки, которые обнаруживаются в отображаемом HTML только после выполнения JavaScript. Эти гиперссылки не находятся в необработанном HTML.Хотя Google может отображать страницы и видеть только ссылки на стороне клиента, рассмотрите возможность включения важных ссылок на стороне сервера в необработанный HTML.
- Содержит контент JavaScript — страницы, содержащие основной текст, который обнаруживается в визуализируемом HTML только после выполнения JavaScript. Хотя Google может отображать страницы и просматривать контент только на стороне клиента, рассмотрите возможность включения важного контента на стороне сервера в необработанный HTML.
- Noindex Только в исходном HTML — Страницы, которые содержат noindex в необработанном HTML, а не в отображаемом HTML.Когда робот Googlebot встречает тег noindex, он пропускает рендеринг и выполнение JavaScript. Поскольку робот Googlebot пропускает выполнение JavaScript, использование JavaScript для удаления «noindex» в отображаемом HTML не сработает. Внимательно просмотрите страницы с noindex в исходном HTML-коде, и они не будут проиндексированы. Удалите «noindex», если страницы должны быть проиндексированы.
- Nofollow Только в исходном HTML — страницы, которые содержат nofollow в необработанном HTML, а не в отображаемом HTML. Это означает, что любые гиперссылки в исходном HTML-коде перед выполнением JavaScript не будут выполняться.Внимательно просмотрите страницы с nofollow в необработанном HTML-коде. Удалите «nofollow», если ссылки должны переходить, сканироваться и индексироваться.
- Canonical Only in Rendered HTML — страницы, содержащие канонический код только в обработанном HTML после выполнения JavaScript. Google заявил, что они обрабатывают канонические символы только в необработанном HTML, хотя отраслевые тесты показали, что Google может обрабатывать их в обработанном HTML. Включите каноническую ссылку в необработанный HTML-код (или заголовок HTTP), чтобы Google мог ее увидеть и не полагаться только на каноническую ссылку только в отображаемом HTML-коде.
- Каноническое несоответствие — страницы, которые содержат другую каноническую ссылку в необработанном HTML-коде на визуализированный HTML-код после выполнения JavaScript. Google говорит, что они обрабатывают канонические символы только в необработанном HTML, хотя отраслевые тесты показали, что они обрабатывают их в обработанном HTML. Однако это может вызвать противоречивые сигналы и привести к нежелательному поведению. Убедитесь, что правильный канонический код указан в необработанном HTML и отображаемом HTML, чтобы избежать противоречивых сигналов для поисковых систем.
- Заголовок страницы только в визуализируемом HTML — Страницы, которые содержат заголовок страницы только в визуализируемом HTML после выполнения JavaScript.Это означает, что поисковая система должна отображать страницу, чтобы увидеть ее. Хотя Google может отображать страницы и просматривать контент только на стороне клиента, рассмотрите возможность включения важного контента на стороне сервера в необработанный HTML.
- Заголовок страницы обновлен с помощью JavaScript — Страницы, заголовки которых изменены с помощью JavaScript. Это означает, что заголовок страницы в необработанном HTML отличается от заголовка страницы в отображаемом HTML. Хотя Google может отображать страницы и просматривать контент только на стороне клиента, рассмотрите возможность включения важного контента на стороне сервера в необработанный HTML.
- Мета-описание только в визуализируемом HTML — страницы, которые содержат метаописание только в визуализируемом HTML после выполнения JavaScript. Это означает, что поисковая система должна отображать страницу, чтобы увидеть ее. Хотя Google может отображать страницы и просматривать контент только на стороне клиента, рассмотрите возможность включения важного контента на стороне сервера в необработанный HTML.
- Мета-описание, обновленное с помощью JavaScript — страницы с метаописаниями, измененными с помощью JavaScript. Это означает, что метаописание в необработанном HTML отличается от метаописания в отображаемом HTML.Хотя Google может отображать страницы и просматривать контент только на стороне клиента, рассмотрите возможность включения важного контента на стороне сервера в необработанный HTML.
- h2 Only in Rendered HTML — страницы, которые содержат h2 только в обработанном HTML после выполнения JavaScript. Это означает, что поисковая система должна отображать страницу, чтобы увидеть ее. Хотя Google может отображать страницы и просматривать контент только на стороне клиента, рассмотрите возможность включения важного контента на стороне сервера в необработанный HTML.
- h2 Обновлен JavaScript — Страницы с h2, измененными JavaScript.Это означает, что h2 в необработанном HTML отличается от h2 в отображаемом HTML. Хотя Google может отображать страницы и просматривать контент только на стороне клиента, рассмотрите возможность включения важного контента на стороне сервера в необработанный HTML.
- Использует URL-адреса старой схемы сканирования AJAX — URL-адреса, которые все еще используют старую схему сканирования AJAX (URL-адрес, содержащий хэш-фрагмент #!), которая официально объявлена устаревшей с октября 2015 г. Обновите URL-адреса, чтобы следовать рекомендациям JavaScript в Интернете сегодня . Рассмотрите рендеринг на стороне сервера или предварительный рендеринг, где это возможно, и динамический рендеринг в качестве временного решения.
- Использует метатег метафрагмента старой схемы сканирования AJAX — URL-адреса содержат тег метафрагмента, указывающий, что страница по-прежнему использует старую схему сканирования AJAX, которая официально объявлена устаревшей с октября 2015 года. Обновите URL-адреса, чтобы следовать передовым практикам JavaScript в Интернете сегодня . Рассмотрите рендеринг на стороне сервера или предварительный рендеринг, где это возможно, и динамический рендеринг в качестве временного решения. Если на сайте все еще есть старый тег метафрагмента по ошибке, его следует удалить.
6) Мониторинг заблокированных ресурсов
Следите за всем, что появляется под фильтром «Страницы с заблокированными ресурсами» на вкладке «JavaScript».Вы можете взглянуть на правую панель обзора, а не нажимать на вкладку. Если JavaScript, CSS или изображения заблокированы через robots.txt (не отвечать или ошибка), это повлияет на рендеринг, сканирование и индексирование.
Заблокированные ресурсы также можно просмотреть для каждой страницы на вкладке «Визуализированная страница», расположенной рядом с обработанным снимком экрана в нижней панели окна. В тяжелых случаях, если сайт JavaScript полностью блокирует ресурсы JS, сайт просто не будет сканироваться.
Если ключевые ресурсы, влияющие на рендеринг, заблокированы, разблокируйте их для сканирования (или разрешите им использовать настраиваемые файлы robots.txt для сканирования). Вы можете тестировать различные сценарии, используя как функции исключения, так и пользовательские функции robots.txt.
Отдельные заблокированные ресурсы также можно просмотреть в разделе «Коды ответов > Заблокированный ресурс».
Их можно экспортировать массово, включая исходные страницы, с помощью отчета «Массовый экспорт > Коды ответов > Заблокированные внутренние ссылки ресурсов».
7) Просмотр отображаемых страниц
Вы можете просмотреть визуализированный скриншот страницы, просканированный SEO Spider, на нижней вкладке «Визуализированная страница» при сканировании в режиме рендеринга JavaScript и выборе URL-адресов в верхнем окне.
Просмотр отображаемой страницы может быть полезен при анализе того, что может видеть современный поисковый бот, и особенно полезен при выполнении проверки на этапе подготовки, когда вы не можете использовать собственный инструмент проверки URL-адресов Google в Google Search Console.
Если вы обнаружите какие-либо проблемы на снимках экрана отображаемой страницы, и они не связаны с заблокированными ресурсами, вам может потребоваться настроить тайм-аут AJAX или углубиться в исходный код отображаемого HTML для дальнейшего анализа.
8) Сравните необработанный и визуализированный HTML и видимый контент
Вы можете хранить и просматривать HTML и визуализированный HTML в SEO Spider при работе с JavaScript.Это можно настроить в разделе «Конфигурация > Паук > Извлечение» и отметив соответствующие параметры сохранения HTML и сохранения отображаемого HTML.
Затем он заполняет панель «просмотр исходного кода» нижнего окна, чтобы вы могли сравнить различия и быть уверенными, что критический контент или ссылки присутствуют в DOM. Нажмите «Показать отличия», чтобы увидеть разницу.
Это очень полезно для различных сценариев, таких как отладка различий между тем, что видно в браузере и в SEO Spider, или просто при анализе того, как был отрендерен JavaScript и находятся ли определенные элементы в коде.
Если для страницы сработал фильтр «Содержимое JavaScript», вы можете переключить фильтр «HTML» на «Видимый контент», чтобы точно определить, какое текстовое содержимое находится только в отображаемом HTML.
9) Определение ссылок только на JavaScript
Если сработал фильтр «Содержит ссылки JavaScript», вы можете определить, какие гиперссылки обнаруживаются в отображаемом HTML-коде только после выполнения JavaScript, щелкнув URL-адрес в верхнем окне, затем нижнюю вкладку «Исходящие ссылки» и выбрав «Визуализированный HTML-код». ‘ фильтр источника ссылки.
Это может быть полезно, когда с помощью JavaScript загружаются только определенные ссылки, такие как продукты на страницах категорий. Вы можете массово экспортировать все ссылки, основанные на JavaScript, через «Массовый экспорт > JavaScript > Содержит ссылки JavaScript».
10) Настройка времени ожидания AJAX
Основываясь на ответах вашего обхода, вы можете выбрать, когда будет сделан снимок визуализируемой страницы, настроив «Тайм-аут AJAX», который установлен на 5 секунд, в разделе «Конфигурация > Паук > Рендеринг» в режиме рендеринга JavaScript.
5-секундный тайм-аут, как правило, подходит для большинства веб-сайтов, а робот Googlebot более гибок, поскольку он адаптируется в зависимости от того, сколько времени требуется странице для загрузки содержимого, с учетом сетевой активности и кэширования. Однако Google, очевидно, не будет ждать вечно, поэтому контент, который вы хотите просканировать и проиндексировать, должен быть доступен быстро, иначе его просто не увидят.
Стоит отметить, что сканирование с помощью нашего программного обеспечения часто требует больше ресурсов, чем обычное сканирование Google с течением времени.Это может означать, что время отклика сайта обычно медленнее, а время ожидания AJAX требует корректировки.
Вы узнаете, что это может потребоваться скорректировать, если сайт не сканируется должным образом, «время отклика» на вкладке «Внутренние» превышает 5 секунд или веб-страницы не загружаются и не отображаются правильно в вкладка «рендеринг страницы».
Как сканировать видео JavaScript
Если вы предпочитаете видео, ознакомьтесь с нашим руководством по сканированию JavaScript.
Заключительные мысли
Приведенное выше руководство должно помочь вам идентифицировать веб-сайты JavaScript и эффективно их сканировать с помощью инструмента Screaming Frog SEO Spider в режиме рендеринга JavaScript.
Несмотря на то, что мы провели множество внутренних исследований и усердно работали, чтобы имитировать собственные возможности рендеринга Google, краулер по-прежнему является всего лишь симуляцией поведения реального бота поисковой системы.
Мы настоятельно рекомендуем использовать анализ файла журнала и собственный инструмент Google для проверки URL-адресов или инструмент для мобильного тестирования, чтобы понять, что они могут сканировать, отображать и индексировать вместе с сканером JavaScript.
Дополнительные показания
Если у вас возникнут проблемы при сканировании JavaScript или вы столкнетесь с какими-либо различиями между тем, как мы визуализируем и сканируем, и Google, мы будем рады получить от вас известие.Пожалуйста, свяжитесь с нашей службой поддержки напрямую.
proxy — веб-сайт или служба для просмотра страницы без Javascript
proxy — веб-сайт или служба для просмотра страницы без JavascriptСеть обмена стеками
Сеть Stack Exchange состоит из 179 сообществ вопросов и ответов, включая Stack Overflow, крупнейшее и пользующееся наибольшим доверием онлайн-сообщество, где разработчики могут учиться, делиться своими знаниями и строить свою карьеру.
Посетите биржу стека- 0
- +0
- Войти
- Зарегистрироваться
Webmasters Stack Exchange — это сайт вопросов и ответов для профессиональных веб-мастеров.Регистрация занимает всего минуту.
Зарегистрируйтесь, чтобы присоединиться к этому сообществуЛюбой может задать вопрос
Любой может ответить
Лучшие ответы голосуются и поднимаются на вершину
спросил
Просмотрено 25 тысяч раз
Закрыто. Этот вопрос не по теме. В настоящее время ответы не принимаются.Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме Stack Exchange для веб-мастеров.
Закрыта 6 лет назад.
Есть ли какой-либо веб-сайт или служба, которые позволяют вам отправить URL-адрес и отображают соответствующую страницу с удаленным/отключенным Javascript?
Уточнение: это отправка ссылки для просмотра кому-то другому (не в моем собственном браузере).Думайте об этом как о bit.ly
без JS.спросил 30 июля 2011 в 18:47
Абдулла ДжибалиАбдулла Джибали16511 золотой знак11 серебряный знак77 бронзовых знаков
3снимков браузера.org имеет несколько опций (включая отключение JavaScript и Flash) и множество различных браузеров/версий на выбор.
ответ дан 30 июл 2011 в 19:00
УильямУильям23211 серебряный знак1313 бронзовых знаков
Это несложно сделать в браузере.Насколько я помню, в Opera вы можете нажать F12, и там же есть возможность отключить Javascript. В других браузерах могут быть надстройки, позволяющие быстро включать и выключать.
ответ дан 30 июл 2011 в 19:41
НедовольныйКозелНедовольныйКозел21.3k55 золотых знаков5151 серебряный знак9999 бронзовых знаков
язык-js
Ваша конфиденциальность
Нажимая «Принять все файлы cookie», вы соглашаетесь с тем, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой использования файлов cookie.
Принять все файлы cookie Настроить параметры
Как установить фрагменты JavaScript и коды веб-сайтов на свой веб-сайт
Существует множество отличных инструментов, которые помогут вам улучшить качество предоставляемого вами веб-сайта, расширить свой онлайн-бизнес и наладить более тесные связи с вашими клиентами.
Кашель..как Crazy Egg ..кашель.. 🙂
И многие из этих инструментов также бесплатны!
Но вы не веб-разработчик. Как, черт возьми, вообще установить эти инструменты?
По иронии судьбы, для компаний, которые предоставляют эти инструменты, одним из самых больших камней преткновения на пути их собственного роста является привлечение пользователей к установке их кода.
Что ж, сегодня я попытаюсь решить эту проблему для всех участников.Я собираюсь рассмотреть несколько наиболее распространенных способов, которыми люди размещают код на своем веб-сайте. В этой статье я расскажу, как установить код веб-сайта / фрагменты JavaScript для:
.- Веб-сайты, «поддерживаемые» WordPress (система управления контентом, НЕ сайты WordPress.com)
- Веб-сайты с ручным кодированием (мы рассмотрим, как устанавливать скрипты и фрагменты с помощью старого FTP)
- Сайты Squarespace
- Shopify веб-сайтов
Для тех из вас, кто находится на сайте Etsy или Tumblr , эти платформы в некотором роде… ну… на самом деле они не являются полноценными решениями для веб-сайтов.Etsy — это действительно торговая площадка, а Tumblr — это смесь сайта социальной сети и платформы для ведения блога.
Наконец, в самом конце я немного расскажу о веб-сайтах Wix . По большей части они не позволяют вам устанавливать какой-либо старый код веб-сайта или фрагменты JavaScript, но у них есть несколько интеграций для различных веб-сервисов.
Что это за код или фрагмент веб-сайта, о котором вы говорите?
Да, давайте сначала поговорим о «коде», который вы пытаетесь установить.
Таким образом, многие маркетинговые инструменты для веб-сайтов требуют, чтобы вы установили их код на свой веб-сайт. Crazy Egg работает так же. Давайте взглянем на код Crazy Egg.
После того, как вы войдете в свою панель управления Crazy Egg, в левом нижнем углу вы увидите ссылку «Мой код».
Нажмите на эту ссылку, и вы попадете на страницу, где ваш код отслеживания Crazy Egg удобно представлен для вас в красивой светло-голубой коробке.
То, что вам нужно сделать, независимо от того, код отслеживания Crazy Egg или любой другой код отслеживания, вставить этот код в каждую веб-страницу вашего веб-сайта.
Поскольку эта крошечная операция может быть для вас впервые или у вас возникли проблемы с ее выполнением, мы собираемся разобраться в мельчайших подробностях того, что нужно для ее выполнения.
Как разместить код на веб-сайте, работающем на WordPress
Вам повезло. Есть плагин, который чертовски упрощает эту задачу. Он называется Менеджер кодов отслеживания.
Войдите на свой сайт. Если вы используете WordPress, вы попадете на панель инструментов. Нажмите «Плагины».
Как только вы перейдете к экрану плагинов, нажмите «Добавить новый».
В поле поиска справа найдите «Диспетчер кодов отслеживания», а затем нажмите «Установить сейчас».
После завершения установки убедитесь, что вы активировали плагин. Нажмите «Настройки».
Нажмите «Добавить новый код отслеживания».
…И введите свой код! Обязательно нажмите , сохраните .
Теперь, если по каким-то причинам вы не хотите (или не можете) использовать плагин Tracking Code Manager, вы всегда можете вручную поставить код отслеживания в шапку.php вашей темы WordPress (мы скоро этим займемся).
Как разместить код на веб-сайте, работающем на WordPress.com
Всегда было МНОГО путаницы между веб-сайтом, работающим на WordPress, и веб-сайтом WordPress.com. Потому что это две разные вещи!
Я как бы виню WordPress (или Automatic) в том, что эти два разных сервиса так похожи друг на друга. Но позвольте мне объяснить:
- Веб-сайт на платформе WordPress — это веб-сайт, на котором на вашем собственном веб-сервере установлено программное обеспечение для управления контентом WordPress.Это означает, что вы заплатили за доменное имя (myname.com) И вы платите за веб-хостинг для размещения файлов вашего веб-сайта. В этом случае вы или кто-то другой установил бы программное обеспечение WordPress на свой веб-сервер (веб-хост) и, возможно, настроил бы его на свой текущий веб-сайт.
- Веб-сайт WordPress.com обычно бесплатен. Вы бы зашли на WordPress.com и зарегистрировались на своем сайте. Вы не платите за веб-хостинг, и вы начали с URL-адреса, такого как: myname.wordpress.com. Оттуда вы, возможно, сделали необходимые шаги, чтобы получить собственное доменное имя и т. д.(myname.com).
Если вы используете веб-сайт WordPress.com, вы несколько ограничены тем, какой код веб-сайта и JavaScript вы можете установить на своем веб-сайте. Это связано с тем, что у них есть протокол безопасности, которого они должны придерживаться, и они не могут позволить пользователям вставлять какой-либо старый код в свою платформу. MySpace, по-видимому, был закрыт из-за этого!
Тем не менее, WordPress.com предлагает различные обновления для бизнес-планов. Например, у них есть интеграция с Google Analytics, и они предоставляют способы настройки вашего веб-сайта, такие как добавление кнопок социальных сетей.Насколько я могу судить, получение бесплатной учетной записи WordPress.com для использования различных сервисов и инструментов веб-сайта довольно ограничено. Во всяком случае, похоже, что вам нужно будет перейти на бизнес-план , чтобы разблокировать свои возможности для этого.
Как установить коды веб-сайтов и фрагменты кода JavaScript на веб-сайты с ручным кодированием с помощью FTP
Назад к старой школе.
По сей день многие веб-сайты «программируются вручную», что означает, что они были созданы с нуля и не используют систему управления контентом.Если ваш веб-сайт попадает в эту категорию, вам потребуется «FTP» на свой сайт, чтобы внести изменения (или использовать репозиторий контроля версий).
FTP означает «Протокол передачи файлов». Вы можете скачать бесплатные FTP-программы, такие как FileZilla, чтобы иметь доступ к вашему веб-сайту по FTP.
По сути, программа FTP позволяет перетаскивать файлы и изображения веб-сайта на веб-сервер, на котором размещен ваш веб-сайт. Вы можете добавлять файлы, заменять файлы, удалять файлы и даже изменять имена файлов с помощью программы FTP.
Обещаю — после 20 минут возни с FTP-программой у вас все получится. Самая сложная часть для большинства людей — просто подключиться к своему веб-серверу.
Обычно люди застревают с правильным вводом имени хоста и имени пользователя. Или они не знают своего FTP-пароля.
Решение: позвоните своему веб-хосту . Это может занять час, но они проведут вас через это. Возможно, стоит записать ваш экран во время этого звонка. Или, по крайней мере, сделать несколько хороших заметок.
Как только вы войдете, первое, что вы захотите сделать, это сделать резервную копию вашего веб-сайта. Это просто умная идея. Если вы сделаете бу-бу позже, по крайней мере, у вас будет резервная копия всех ваших файлов.
Вы можете сделать это, просто перетащив (скопировав) ВСЕ ваши файлы С вашего веб-сервера на ваш компьютер. Обычно я создаю папку на своем рабочем столе с названием «Резервная копия моего веб-сайта, июнь 2017 года». Я перетаскиваю ВСЕ файлы моего сайта в эту папку. Иногда я даже делаю резервную копию этой папки или создаю файл .zip-файл с ним. Ага, двойное резервное копирование.
Если вы используете FTP-программу, такую как FileZilla, вы обычно получаете интерфейс с двумя панелями. На левой стороне обычно отображаются файлы на вашем компьютере, а на правой панели отображаются файлы на вашем веб-сервере.
Перетаскивая файлы вперед и назад, вы можете заменять файлы из одной системы в другую.
Предостережение
Замена файлов может быть немного опасной. Если один файл новее или старше другого файла на вашем веб-сервере или компьютере, и вы замените точно такой же файл в другой системе, вы потеряете версию этого файла.
В большинстве случаев это именно то, что вы хотите сделать. Вы вносите изменения в свой веб-сайт, поэтому, очевидно, у вас есть более новая версия файла, которую необходимо запустить. Но это означает, что вы не сможете вернуться к предыдущей версии, если вы допустили ошибку. Вот почему рекомендуется делать резервные копии всех ваших веб-файлов, прежде чем вносить какие-либо изменения .
Если вы допустили ошибку и у вас есть файлы резервных копий, вы можете просто взломать папку резервных копий и поместить исходный файл туда, где вам нужно.
Теперь… перейдем к установке кодов веб-сайтов
По моему опыту, у большинства людей есть один из трех типов веб-сайтов:
- Веб-сайт, использующий систему управления контентом WordPress
- Веб-сайт, который использует что-то похожее на WordPress
- Веб-сайт с ручным кодированием
Если вы используете WordPress или систему управления контентом, все, что вам нужно найти, это файл header.php или файл с именем «header» или «head». Обычно это файл, определяющий раздел
ВСЕХ ваших веб-страниц.Именно здесь должны размещаться большинство кодов и фрагментов веб-сайтов.
Вы собираетесь вставить код веб-сайта (или фрагмент) в файл заголовка, и он обычно будет активен на ВСЕХ ваших веб-страницах. Один файл, чтобы управлять ими всеми!
Используйте бесплатную программу, например Sublime Text, чтобы открыть этот файл. Откройте файл на вашем компьютере (не тот же файл, что и на вашем веб-сервере).
Обычно я просто щелкаю файл правой кнопкой мыши и открываю его с помощью Sublime Text. Появится красивая радуга волшебной цветовой кодировки веб-сайтов.
Некоторые из вас могут испугаться. Но не надо. Это не повредит вам. Давайте расшифруем это очень быстро.
Все веб-страницы можно разбить на два простых раздела. Голова и тело. Заголовок обозначается HTML-кодом
и . Тело обозначается и .
Большая часть «вещей», которые заставляют вашу веб-страницу работать и отображать текст и изображения, находится между этими двумя разделами. Обычно вы можете выполнить поиск на странице, чтобы найти эти HTML-теги.
Если код веб-сайта или фрагмент JavaScript требуется для перехода в раздел
вашего веб-сайта… Держу пари, у вас есть хорошее представление о том, куда должен быть помещен этот код.
После того, как вы вставили свой код или фрагмент, сохраните файл и загрузите его на свой веб-сервер, чтобы активировать новый головной файл.
Теперь, если ваш веб-сайт был закодирован вручную и кажется, что у него нет головного или заголовочного файла, вам, возможно, придется вставлять код своего веб-сайта на каждую веб-страницу. Иногда это не имеет большого значения.Если на вашем сайте всего 5 страниц, то вам просто нужно вставить код 5 раз.
Выше представлен гипотетический HTML-сайт, состоящий из четырех HTML-файлов. В этом случае вы должны открыть все эти файлы и вставить код вашего веб-сайта (или фрагмент) в
каждого файла. Наконец, вы должны сохранить их и загрузить на свой веб-сервер, заменив старые файлы этими новыми, обновленными файлами.Как я узнаю, сработало ли это?
Обычно код веб-сайта (или фрагмент), который вы устанавливаете, устанавливает линию связи с используемой вами службой.Почти все сервисы дадут вам знать, работает ваш код или нет. Например, если вы устанавливаете код отслеживания Google Analytics, когда вы входите в свою учетную запись Google Analytics, он сообщит вам, правильно ли установлен ваш код или нет.
Как разместить код на сайте Squarespace
Для тех из вас, кто использует Squarespace для своего веб-сайта, они упрощают вставку кодов веб-сайтов и фрагментов JavaScript. Вы можете использовать «инъекцию кода» для вставки кода.
В главном меню нажмите «Настройки» > «Дополнительно» > «Внедрение кода».Вы можете добавить код либо в
, либо в нижний колонтитул сайта. Вот сводка по скриншотам:
Начните с нажатия «НАСТРОЙКИ».
Прокрутите немного вниз и нажмите «Дополнительно».
Затем нажмите «Внедрение кода».
Обычно вы хотите вставить код своего веб-сайта в
своих веб-страниц. У них также есть возможность поместить код в нижний колонтитул, если вам это нужно.Наконец, убедитесь, что вы нажали «СОХРАНИТЬ».
Как разместить код на сайте Shopify
В админке Shopify нажмите «Интернет-магазин». Затем выберите «Темы».
Щелкните поле «Действия», чтобы открыть раскрывающееся меню. Затем выберите «Редактировать HTML/CSS».
Выберите «Фрагменты».
Нажмите «Фрагменты», чтобы открыть диалоговое окно «Добавить новый фрагмент».
Нажмите «Добавить новый фрагмент».Вам будет предоставлена форма для добавления нового сниппета.
Назовите свой фрагмент и нажмите кнопку «Создать фрагмент».
Введите код своего фрагмента в поле «tracking snippet.liquid». Нажмите «Сохранить», и все готово!
Как разместить код на сайте Wix
Wix быстро становится популярным создателем веб-сайтов. Он похож на WordPress.com тем, что вы довольно ограничены тем, какие коды и фрагменты кода вы можете установить. Он в основном заблокирован, как и WordPress.ком.
Тем не менее, у них есть Wix App Market, где вы можете получить различные решения для маркетинга, социальных сетей и аналитики, работающие на вашем сайте. Вы также можете проголосовать за столь необходимые решения здесь.
Надеюсь, это помогло вам
Если вы используете другую систему для своего веб-сайта, проверьте, предоставляют ли они подключаемые модули, расширения или надстройки, которые помогут вам получить нужный код на вашем сайте. Часто поставщики веб-сайтов будут иметь интеграцию для необходимых вам услуг. Просто покопайтесь и не бойтесь звонить или писать по электронной почте в их центр поддержки.
Почему ваш сайт работает медленно: низкая производительность JavaScript
Этот блог был обновлен для точности на июль 2021 года.
«Почему мой сайт работает медленно?» Проблема может заключаться в низкой производительности JavaScript — размещенного или стороннего. Вот как узнать, болеете ли вы и посетители вашего сайта!
Получите бесплатный снимок производительности сайта электронной коммерции, чтобы узнать, как JavaScript влияет на производительность вашего сайта уже сегодня!
JavaScript — это причина, по которой мы можем собирать информацию о посетителях нашего веб-сайта, привлекать их через социальные сети и предлагать динамичный веб-интерфейс вместо простого старого текста и изображений.К сожалению, это также одна из причин, по которой веб-страницы редко загружаются так быстро, как ожидают посетители.
Распространение JavaScript на веб-страницах напрямую связано со взрывным ростом веса веб-контента. Сегодняшняя средняя веб-страница тяжелая! Согласно HTTP-архиву, средняя веб-страница на компьютере весит 2123,6 КБ, а средняя мобильная веб-страница весит 1917,5 КБ. На JavaScript приходится 475 КБ этого веса на настольных компьютерах и 440 КБ на мобильных устройствах. Эти цифры выросли на 28,8% для настольных компьютеров и на 25,8% для мобильных устройств с 2018 года.Язык предлагает возможность собирать важную информацию и обеспечивать привлекательный пользовательский интерфейс, но слишком часто реализуется без учета затрат на производительность. Поскольку это основная причина проблем с производительностью веб-сайта, мы считаем, что JavaScript — это одно из лучших мест для начала поиска способов ускорения вашего веб-сайта.
Как узнать, является ли производительность JavaScript проблемой?
Чтобы узнать, замедляет ли JavaScript работу вашего веб-сайта, запустите тест производительности JavaScript на WebsitePageTest.орг. Просто введите URL-адрес своей домашней страницы и нажмите «Проверить» – это так просто! Вы также можете запустить отдельные тесты для любых других страниц с высоким трафиком (или других важных), таких как страница каталога на сайте электронной коммерции. Результаты расскажут вам многое о вашем веб-сайте, включая информацию о каждом из файлов JavaScript на вашей странице.
На что обратить внимание в результатах теста производительности JavaScript
Самая простая статистика для поиска — это общий вес и количество JavaScript.В общем, любой дополнительный вес (имеется в виду: больше байтов, файлы большего размера) увеличивает время загрузки страницы, а также дополнительные активы увеличивают время, даже если они действительно легкие (имеется в виду: меньше байтов, файлы меньшего размера). Обратный путь к серверу занимает время, даже если файл, который он извлекает, имеет размер 0 байт. По сути, когда дело доходит до файлов JavaScript, чем легче и меньше их, тем лучше.
(настольный компьютер)
(настольный компьютер)
JavaScript (js) составляет 93 запроса и (1 292 174 байта) – 1292.174 КБ.
Для контекста: в Интернете среднее количество запросов JavaScript на странице рабочего стола составляет 22, а средний вес этих файлов составляет 475 КБ. Для страницы мобильного компьютера среднее количество запросов JavaScript составляет 21, а средний вес — 440 КБ.
- Если общее количество JavaScript на вашем сайте составляет около медианы , оптимизация JavaScript принесет вам абсолютную пользу, но могут быть и другие узкие места, которые замедляют работу вашего сайта.
- Если ваши цифры выше медианы , оптимизация JavaScript должна стать приоритетом.Вероятно, это значительно замедляет работу вашего сайта.
- Если у вас есть 45 или более файлов JavaScript (или вес 600 КБ или более), вы находитесь в сомнительной компании среди 10% худших сайтов в Интернете для JavaScript. В этом случае оптимизация вашего JavaScript значительно улучшит время загрузки вашей страницы .
Более глубокое погружение: чтение каскадной диаграммы JavaScript
Помимо совокупной статистики, стоит уделить время просмотру каскадной диаграммы в тесте веб-сайта.страница результатов орг. Водопад — это временная шкала процесса загрузки страницы, которая дает представление об отдельном ресурсе (в данном случае — об отдельном файле JavaScript).
Глядя на водопад, мы видим файлы JavaScript, обозначенные буквой «js» светло-оранжевого цвета.
Среди файлов в водопаде ищите такие торчащие с долгой загрузкой. Большинство файлов JavaScript загружаются менее чем за 100 миллисекунд. Любое время загрузки, превышающее 200 мс, является важным красным флажком. Во фрагменте водопада ниже мы видим, что Tealium (utag.js) занимает 440 мс (очень медленно). Если вы обнаружите медленный файл JavaScript, размещенный на вашем сайте (а не на стороннем сайте), вы можете предпринять шаги для сжатия и минимизации JavaScript, чтобы ускорить его загрузку.
Еще одна черта, на которую стоит обратить внимание, — это то, что мы называем «болтливым» активом. Это означает, что для одного виджета или другого фрагмента контента должны запускаться несколько ресурсов подряд, чтобы загрузить его. Это просто неэффективно. Если возможно, вы должны найти другую версию любого виджета, который слишком много болтает.Вот другой пример того, как это может выглядеть.
Действительно ли работает оптимизация производительности JavaScript?
Да, оптимизация производительности JavaScript работает. Об этом много написано в сети. Кроме того, мы провели эксперимент, чтобы изолировать оптимизацию JavaScript от многих других методов оптимизации контента. Мы обнаружили, что можем сократить время загрузки сайта на 33 %, используя только конкатенацию и минимизацию JavaScript — это улучшение на 1/3 по сравнению с всеми другими методами для изображений, HTML и других.
Особое примечание относительно стороннего JavaScript
JavaScript, обслуживаемый третьей стороной, — это лошадь другого цвета. Сторонние JavaScript являются одними из самых серьезных нарушителей производительности. Мы написали специально о наихудших сторонних нарушителях JavaScript и о том, как Facebook уничтожил сеть с помощью своих файлов JS. Эти проблемы в значительной степени отличаются от проблем, которые мы определили выше — они связаны с надежностью доставки объекта.
Корень проблемы со сторонними JavaScript в том, что проблемы с веб-производительностью исходного сайта могут распространяться на ваш сайт через скрипт. Особенно проблематичными являются сторонние JavaScript , которые загружаются синхронно, а это означает, что они могут включать блокировку при выполнении и задерживать другие ресурсы на вашем сайте, пока это не будет выполнено. Если у этого JavaScript возникнут проблемы с доставкой, большая часть вашего сайта может ждать несколько секунд, пока не завершится только один скрипт.Обеспечьте асинхронную загрузку сторонних JavaScript-кодов – это хороший способ предотвратить блокировку. Еще эффективнее: просто внимательно относитесь к тому, какие сторонние JavaScript разрешить использовать на своем веб-сайте.
Программное обеспечение YOTTAA для оптимизации веб-производительности автоматически оптимизирует JavaScript на вашем сайте электронной коммерции, а также другие важные элементы оптимизации производительности электронной коммерции. Запросите бесплатную оценку здесь .
Создание веб-сайта с помощью Pug
В этом руководстве вы узнаете, как создать простое и понятное приложение Node.js с визуализацией на стороне сервера, используя платформу Express и шаблоны Pug , стилизованные с помощью CSS .
В качестве бонуса вы узнаете, как оптимизировать рабочий процесс разработки Node.js, используя nodemon
для перезапуска сервера и browser-sync
для перезагрузки браузера при каждом изменении соответствующих исходных файлов.
Ищите эмодзи 🛠️️, если хотите просмотреть содержимое, сосредоточившись на этапах сборки.
Что вы создадите
Вы создадите входной портал для ресторана WHATABYTE, используя рендеринг на стороне сервера (SSR):
Мы протестировали это руководство, используя Node.js v12.16.0
и npm v6.13.4
. Если вам нужно установить Node.js и npm, используйте любой из официальных установщиков Node.js, предусмотренных для вашей операционной системы.
Загрузите проект Node.js
🛠️ Создайте каталог проекта с именем whatabyte-portal
в любом месте вашей системы и сделайте его своим текущим каталогом:
mkdir whatabyte-portal
cd whatabyte-portal
🛠️ Выполните следующую команду в каталоге whatabyte-portal
, чтобы инициализировать проект Node.js с настройками по умолчанию:
npm init -y
🛠️ Затем создайте точку входа приложение, файл с именем index.js
:
touch index.js
Создайте сценарий npm для запуска приложения
Вы будете использовать nodemon
для мониторинга исходного кода вашего проекта и автоматического перезапуска сервера Node.js при его изменении.
🛠️ Таким образом, установите nodemon
в качестве зависимости разработки:
npm i -D nodemon
Приведенная выше команда эквивалентна запуску
npm install --save-dev nodemon
.
🛠️ Создайте команду скрипта dev
в вашем пакете .2,0,4 дюйма
}
}
nodemon
получает в качестве аргумента точку входа приложения и выполняет ее.
Тестирование приложений Node.js выходит за рамки данного руководства. Однако важно реализовать тестирование для создания надежных, готовых к работе веб-приложений.
Теперь у вас есть базовая структура приложения Node.js.
Бонус: подготовьтесь к контролю версий Git
🛠️ Создайте файл .gitignore
в каталоге проекта, чтобы избежать фиксации ненужных или конфиденциальных файлов.Заполните этот файл содержимым этого Gist или не стесняйтесь использовать gitignore.io для создания собственного файла .gitignore
.
Настройте Express с помощью Node.js
🛠️ Чтобы использовать платформу Express в своем приложении, установите ее как зависимость проекта:
npm i express
🛠️ Откройте index.js
и заполните его следующим шаблон, определяющий основную структуру приложения Express:
🛠️ Теперь в разделе Required External Modules
импортируйте пакеты express
и path
:
константный экспресс = требуется ("экспресс");
постоянный путь = требуется ("путь");
Модуль path
предоставляет вам утилиты для работы с путями к файлам и каталогам.Вы будете использовать его позже для создания межплатформенных путей к файлам для доступа к шаблонам представлений и статическим ресурсам, таким как таблицы стилей и изображения.
🛠️ Далее в разделе App Variables
добавьте следующее:
константное приложение = экспресс();
постоянный порт = process.env.PORT || «8000»;
Здесь вы выполняете функцию по умолчанию, экспортированную модулем Express
, чтобы создать экземпляр приложения Express, который затем сохраняется в приложении
.Вы также определяете порт, который сервер будет использовать для прослушивания запросов: его значение process.env.PORT
, если доступно, или 8000
по умолчанию.
🛠️ В разделе Routes Definitions
создайте простой обработчик маршрута для запроса HTTP GET /
, который отвечает строкой.
app.get("/", (требование, разрешение) => {
res.status(200).send("WHATABYTE: Пища для разработчиков");
});
Дополнительные сведения см. в документе Express Basic Routing .
🛠️ Наконец, в разделе Server Activation
запустите сервер, прослушивающий входящие запросы на порту
, и отобразите сообщение, подтверждающее его прослушивание:
app.listen(порт, () => {
console.log(`Прослушивание запросов на http://localhost:${port}`);
});
Запустите приложение Express
🛠️ Выполните dev
, чтобы протестировать скрипт и запустить приложение:
npm run dev
🛠️ Посетите приложение 906/250 http://localhost: .Браузер должен отображать строку «WHATABYTE: Food For Devs» на обычной странице.
Использование механизма шаблонов Pug с Express
Современные веб-приложения управляются данными и нуждаются в представлениях, которые могут динамически отображать данные. Хотя вы можете создавать привлекательные представления с помощью статических HTML-шаблонов, вы не можете наполнить их данными с сервера.
Вместо этого вы используете механизмы шаблонов, такие как Pug, для создания динамических представлений, которые могут условно отображать элементы пользовательского интерфейса и которые вы можете увлажнять значениями с сервера.Что отличает Pug от других предложений, так это его лаконичный синтаксис и поддержка наследования шаблонов для простого создания страниц.
🛠️ Чтобы использовать Pug, начните с установки пакета pug
с помощью другого окна терминала:
npm i pug
HTML-структура верхнего уровня страницы.
🛠️ Таким образом, создайте каталог с именем views
в каталоге проекта для хранения всех ваших шаблонов.
MKDIR просмотров
в соответствии с этим новым каталогом, создайте Layout.pug
Файл:
Touch Views / layout.pug
Заполните просмотров / layout.pug
со следующим содержанием:
блочные переменные
тип документа HTML
HTML
голова
мета(кодировка="utf-8")
ссылка(rel="значок ярлыка", href="/favicon.ico")
meta(name="viewport", content="width=device-width, initial-scale=1, slim-to-fit=no")
мета(имя="тема-цвет", содержание="#000000")
название # {название} | WHATABYTE
тело
раздел # корень
block layout-content
Обратите внимание, что этот шаблон использует переменную title
для отображения заголовка документа страницы.Это значение переменной будет передано с сервера в шаблон обработчиками маршрутов, определенными в API, также известными как контроллеры .
🛠️ Затем создайте файл index.pug
в том же каталоге:
touch views/index.pug
Добавьте следующее содержимое в views/index.pug
:
4 extends блочный макет-контент div.Вид h2.Баннер WHATABYTE div.Сообщение div.Название h4 Делая все возможное h2 Пища для разработчиков охватывать.Подробнее Доступ к командному порталу WHATABYTE div.NavButtons а(href=»/пользователь») div.NavButton Просто погрузитесь!
С этими двумя шаблонами вы используете артефакты block
и extends
для реализации наследования шаблонов. В таком шаблоне, как layout.pug
, вы можете определить точки внедрения контента через именованный блок
. Другой шаблон, такой как index.pug
, может затем вставлять содержимое в этот шаблон, сначала расширяя его, а затем определяя содержимое именованного блока.
В шаблонах Pug не используются теги HTML. Вместо этого они просто используют имена элементов HTML и пробелы для определения их структуры. Вы устанавливаете родительско-дочерние отношения между элементами с помощью отступа .
Вы можете определить атрибуты элемента, такие как charset
, поместив ключ атрибута и значение рядом с именем элемента и заключив его в круглые скобки, напоминающие структуру вызова функции:
meta(charset=" utf-8")
Содержимое элемента может идти рядом с именем элемента в той же строке или с отступом ниже :
h2.Баннер WHATABYTE
div.Сообщение
div.Название
h4 Делая все возможное
h2 Food For Devs
Посетите Начало работы , чтобы получить полное представление о том, как работает Pug.
Чтобы связать шаблоны с контроллерами, вам необходимо настроить Express для использования Pug в качестве механизма шаблонов представлений.
🛠️ Откройте index.js
и добавьте следующее в разделе Конфигурация приложения
:
app.set("представления", path.join(__dirname, "представления"));
приложение.set("движок просмотра", "мопс");
Здесь вы используете app.set(name, value)
для присвоения имени параметра значению. Некоторые имена параметров зарезервированы Express для настройки поведения приложения, например представлений
и представлений механизма
.
Параметр представлений
сообщает Express, какой каталог следует использовать в качестве источника файлов шаблонов представлений. В этом случае вы устанавливаете каталог views
в качестве источника с помощью метода path.join()
, который создает кроссплатформенный путь к файлу.
Параметр механизма просмотра
сообщает Express, какой механизм шаблонов использовать, в данном случае это pug
.
Рендеринг представлений Pug в качестве ответов клиента
🛠️ Далее вы проведете рефакторинг контроллера GET /
, чтобы он отображал index.pug
в качестве ответа клиента. В разделе Routes Definitions
обновите обработчик маршрута следующим образом:
app.get("/", (требование, разрешение) => {
res.render("index", { title: "Главная" });
});
Первый аргумент рез.render(view)
— это строка, представляющая путь к файлу шаблона относительно исходного каталога шаблонов, views
. Он отображает файл и отправляет обработанный HTML-код в виде строки клиенту. Расширение файла шаблона по умолчанию равно .pug
, поскольку Pug является механизмом представления по умолчанию.
Его второй аргумент является необязательным и представляет собой объект, который контроллер передает шаблону. Свойства этого объекта становятся локальными переменными в шаблоне. Следовательно, { title: "Home"}
определяет локальную переменную title
в индексе .мопс
. Однако index.pug
не использует title
локально; вместо этого его использует расширяемый шаблон layout.pug
.
Дополнительные сведения см. в разделе Использование механизмов шаблонов с Express .
🛠️ Обновите браузер, чтобы увидеть на экране новую страницу.
При внесении любых изменений в шаблон index.pug
можно обновить браузер, чтобы увидеть изменения. Однако ручное обновление браузера для просмотра обновлений замедляет процесс разработки.Чтобы преодолеть это, вы будете использовать Browsersync .
Добавить динамическую перезагрузку в Express с помощью Browsersync
Вы можете эмулировать поведение динамической перезагрузки интерфейсных сред, таких как React и Angular, в шаблонах Express с помощью Browsersync. При изменении правила CSS или возвращаемого значения функции браузер автоматически обновляется.
🛠️ Начните с установки Browsersync следующим образом:
npm i -D browser-sync
🛠️ Работать с Browsersync очень просто.Выполните следующую команду, чтобы создать файл конфигурации с параметрами по умолчанию:
browser-sync init
browser-sync init
создает файл bs-config.js
в каталоге вашего проекта, который содержит большое количество настройки по умолчанию. Вам нужно только небольшое подмножество этих параметров, чтобы использовать Browsersync для перезагрузки веб-страниц при изменении кода вашего проекта.
🛠️ Замените содержимое bs-config.js
следующим: модуль
.экспорт = {
прокси: "локальный: 8000",
файлы: ["**/*.css", "**/*.pug", "**/*.js"],
игнорировать: ["node_modules"],
перезагрузкаЗадержка: 10,
пользовательский интерфейс: ложь,
уведомить: ложь,
порт: 3000,
};
Что делают эти параметры конфигурации Browsersync? прокси: "localhost:8000"
Прокси для приложения Node/Express, обслуживаемого на localhost:8000
, поскольку Browsersync создает статический сервер только для основных веб-сайтов HTML/JS/CSS. Вам все равно нужно запускать сервер с nodemon
отдельно.
файлы: ["**/*.css", "**/*.pug", "**/*.js"]
Используя шаблоны glob>), укажите пути к файлам для просмотра. Вы увидите файлы CSS, Pug и JavaScript.
ignore: ["node_modules"]
Укажите шаблоны, которые наблюдатели за файлами должны игнорировать. Вы хотите игнорировать node_modules
, чтобы позволить Browsersync работать быстро.
reloadDelay: 10
Время в миллисекундах для задержки события перезагрузки после изменения файла, чтобы предотвратить перекрытие Nodemon и Browsersync, что может привести к нестабильному поведению.
ui: false
Не запускать пользовательский интерфейс Browsersync, страницу, на которой можно управлять поведением Browsersync.
notify: false
Отключить отвлекающее сообщение, уведомляющее вас о том, что Browsersync подключен к браузеру.
порт: 3000
Используйте определенный порт для размещения сайта.
Ознакомьтесь с документом «Параметры Browsersync», чтобы узнать больше обо всех параметрах конфигурации, которые Browsersync предлагает вам для оптимизации рабочего процесса разработки.
🛠️ Затем создайте скрипт npm, который настраивает и запускает Browsersync для обслуживания ваших веб-страниц. Откройте и обновите package.json
с помощью следующего сценария ui
npm:
{
"имя": "whatabyte-портал",
"версия": "1.0.0",
"описание": "",
«основной»: «index.js»,
"скрипты": {
"dev": "nodemon ./index.js",
"ui": "запуск синхронизации браузера --config bs-config.js"
},
"ключевые слова": [],
"автор": "",
"лицензия": "ISC",
"devDependencies": {...},
"зависимости": {...}
}
🛠️ Чтобы обслуживать пользовательский интерфейс вашего приложения Express, выполните следующую команду в отдельном окне терминала:
npm run ui
Терминал выведет информацию о локальных и внешних местоположениях, обслуживающих статический сайт:
[Browsersync] Проксирование: http://localhost:8000
[Browsersync] URL-адреса доступа:
-------------------------------
Локальный: http://localhost:3000
Внешний: http://<ВАШ IP-АДРЕС>:3000
-------------------------------
[Browsersync] Просмотр файлов...
🛠️ Browsersync автоматически открывает новое окно с вашим интерфейсом. Если это не так, откройте http://localhost:3000/
. Внесите любые изменения в файл index.pug
, сохраните его и посмотрите, как сайт, обслуживаемый портом 3000
, обновляется.
«Узнайте, как Browsersync позволяет оптимизировать рабочий процесс разработки при создании приложений с визуализацией на стороне сервера с помощью Node и Express».
Tweet This
Подача статических ресурсов с помощью Express
Чтобы интегрировать таблицы стилей и изображения в приложение, вам необходимо настроить Express для доступа и обслуживания статических файлов из каталога проекта — процесс, аналогичный настройке механизма рендеринга.
🛠️ Для вашего приложения создайте каталог с именем public
в каталоге проекта для этой цели:
mkdir public
. указывает путь к каталогу, из которого следует обслуживать статические ресурсы.
🛠️ Вернитесь к index.js
и обновите раздел App Configuration
следующим образом:
app.set("представления", path.join(__dirname, "представления"));
приложение.set("движок просмотра", "мопс");
app.use(express.static(path.join(__dirname, "public")));
Чтобы смонтировать функцию промежуточного программного обеспечения express.static()
, вы используете app.use()
. Теперь вы можете поместить в каталог public
любые файлы CSS или изображения, которые необходимо использовать вашему приложению.
Шаблоны Style Express с использованием CSS
🛠️ Внутри каталога public
создайте файл style.css
:
touch public/style.css
🛠️ Заполните содержимое public/style.css
следующим образом:
тело {
фон: цвет морской волны;
}
🛠️ Сохраните изменения. Чтобы использовать эту таблицу стилей, вам необходимо создать ссылку на нее из файла шаблона. Обновите layout.pug
следующим образом:
переменные блока
тип документа HTML
HTML
голова
мета(кодировка="utf-8")
ссылка(rel="значок ярлыка", href="/favicon.ico")
meta(name="viewport", content="width=device-width, initial-scale=1, slim-to-fit=no")
мета(имя="тема-цвет", содержание="#000000")
название # {название} | WHATABYTE
ссылка(rel="stylesheet" href="/style.css")
тело
раздел # корень
block layout-content
🛠️ Еще раз сохраните изменения. Наблюдайте, как Browersync перезагружает браузер и меняется цвет фона домашней страницы. Это основа стилизации шаблона Pug в Express с использованием CSS. Вы можете добавить столько других правил и таблиц стилей, сколько пожелаете.
🛠️ Созданные вами шаблоны Pug имеют классы CSS в своей разметке для определения их макета и представления. Замените содержимое style.css
следующим, чтобы использовать эти классы:
.CSS
. @import url("https://fonts.googleapis.com/css?family=Raleway:800|Merriweather+Sans|Share+Tech+Mono");
:корень {
--ui-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0,06),
0 4px 5px 0 rgba(0, 0, 0, 0,06), 0 1px 10px 0 rgba(0, 0, 0, 0,08);
заполнить: rgba (0, 0, 0, 0,54);
--ui-shadow-border: 1px сплошной RGBA (0, 0, 0, 0,14);
}
* {
box-sizing: граница-коробка;
}
HTML,
тело,
#корень {
высота: 100%;
ширина: 100%;
}
тело {
маржа: 0;
заполнение: 0;
семейство шрифтов: -apple-system, BlinkMacSystemFont, «Segoe UI», «Roboto», «Oxygen»,
«Ubuntu», «Cantarell», «Fira Sans», «Droid Sans», «Helvetica Neue»,
без засечек;
-webkit-font-smoothing: сглаживание;
-moz-osx-font-smoothing: оттенки серого;
-webkit-tap-highlight-color: rgba (255, 255, 255, 0);
}
ч2,
h3,
h4 {
семейство шрифтов: "Raleway", без засечек;
преобразование текста: верхний регистр;
заполнение: 0;
маржа: 0;
цвет: #2a3747;
}
ч2 {
размер шрифта: 40px;
}
а {
цвет: наследовать;
текстовое оформление: нет;
курсор: указатель;
выбор пользователя: нет;
}
#корень {
дисплей: гибкий;
flex-направление: столбец;
}
.Вид {
гибкий: 1;
дисплей: гибкий;
flex-направление: столбец;
выравнивание содержимого: пробел между;
выравнивание элементов: flex-start;
высота: 100%;
ширина: 100%;
отступ: 20 пикселей;
размер фона: обложка;
семейство шрифтов: "Merriweather Sans", без засечек;
}
.Баннер {
дисплей: гибкий;
flex-направление: столбец;
выравнивание содержимого: по центру;
выравнивание элементов: по центру;
ширина: 100%;
радиус границы: 5px;
переполнение: скрыто;
фон: белый;
отступ: 15 пикселей;
семейство шрифтов: "Share Tech Mono", моноширинный;
нижняя граница: var(--ui-shadow-border);
box-shadow: var(--ui-shadow);
}
.Сообщение {
фон: белый;
отступ: 30 пикселей;
нижняя граница: var(--ui-shadow-border);
box-shadow: var(--ui-shadow);
}
.Сообщение > .Заголовок {
нижний отступ: 20px;
}
.Сообщение > .Подробности {
дисплей: гибкий;
flex-направление: столбец;
высота строки: 1.5em;
}
.NavButtons {
дисплей: гибкий;
ширина: 100%;
выравнивание содержимого: пространство вокруг;
выравнивание элементов: по центру;
отступ: 0 20px;
}
.NavButton {
дисплей: гибкий;
выравнивание содержимого: по центру;
выравнивание элементов: по центру;
высота: 55 пикселей;
ширина: 150 пикселей;
фон: #fa4141;
радиус границы: 30px;
размер шрифта: 16px;
вес шрифта: полужирный;
белый цвет;
преобразование текста: использовать заглавные буквы;
нижняя граница: var(--ui-shadow-border);
box-shadow: var(--ui-shadow);
}
Новая таблица стилей использует переменные CSS с помощью функции var()
, чтобы ваш код оставался СУХИМ.В настоящее время Internet Explorer не поддерживает переменные CSS, но Edge их поддерживает!
С применением этой новой таблицы стилей главная страница выглядит намного лучше:
«Узнайте, как стилизовать шаблоны Express с помощью Pug вместе с переменными CSS».
Tweet This
Добавление изображений в приложение Express
Вы можете поместить файлы изображений в общедоступный каталог
, а затем ссылаться на их относительный путь из любого элемента, где вы хотите их использовать.Используйте изображение в качестве фона контейнера div.View
в index.pug
.
🛠️ Чтобы начать, щелкните правой кнопкой мыши следующее изображение и сохраните его как food.jpg
в общедоступном каталоге
.
Photo by Caesar Aldhela на Unsplash
🛠️ Затем откройте public/style.css
и добавьте к файлу класс .WelcomeView
следующим образом:
{ .WelcomeView
фон: url("food.jpg") слева внизу;
размер фона: обложка;
}
🛠️ Затем откройте представлений/индекс.pug
и добавьте этот новый класс в контейнер div.View
. Теперь это должно выглядеть так:
расширяет макет
блочный макет-контент
div.View.WelcomeView
h2.Баннер WHATABYTE
div.Сообщение
div.Название
h4 Делая все возможное
h2 Пища для разработчиков
span.Details Доступ к командному порталу WHATABYTE
div.NavButtons
а(href="/пользователь")
div.NavButton Просто погрузитесь!
Не забывайте, что отступы имеют решающее значение для правильной структуры шаблона с Pug.Отступ создает дочерний элемент HTML.
На основе конфигурации этого приложения Express значение url
свойства background
ссылается на изображение, используя путь к файлу, относящийся к общедоступному каталогу . Вы также указываете положение изображения, левое нижнее
, и его представление, обложка
, что предотвращает растяжение.
Теперь у вас должно быть это шикарное изображение в качестве фона главной страницы.
🛠️ Затем сохраните этот файл значка как фавикон .ico
в каталоге public
, чтобы получить логотип на вкладке браузера. Жестко перезагрузите браузер, чтобы увидеть это конкретное изменение.
Создайте больше представлений с помощью Pug и Express
🛠️ Для практики создайте страницу профиля пользователя. В каталоге views
создайте файл шаблона Pug с именем user.pug
.
touch views/user.pug
Заполните этот новый шаблон следующим:
расширяет макет
блочный макет-контент
разд.Просмотр.UserView
h2.Баннер Привет, #{userProfile.nickname}!
div.Сообщение
div.Название
h4 Делаем нас лучшими
h2 Профиль товарища по команде
pre.Details=JSON.stringify(userProfile, null, 2)
div.NavButtons
а(href="/выйти")
div.NavButton Выход из системы
🛠️ Локальная переменная userProfile
будет предоставлена этому представлению контроллером, который его отображает. Чтобы создать этот контроллер, откройте index.js
и обновите раздел Routes Definitions
следующим образом:
.
приложение.get("/", (req, res) => { ... });
app.get("/user", (req, res) => {
res.render("user", { title: "Profile", userProfile: {псевдоним: "Auth0" } });
});
Еще раз, вы используете второй параметр res.render()
для передачи данных из контроллера в шаблон. В этом случае вы передаете фиктивную информацию о пользователе в шаблон профиля пользователя.
🛠️ Используйте класс UserView
, определенный в пользовательском шаблоне, для его стилизации. Откройте public/style.css
и добавьте следующее правило:
.Просмотр пользователя {
фон: URL ("https://cdn.auth0.com/blog/whatabyte-portal/patio.jpeg") слева
низ;
размер фона: обложка;
}
🛠️ В качестве альтернативы ссылкам на изображения в общедоступном каталоге
вы можете использовать URL-адрес размещенного изображения. Посетите http://localhost:3000/user
и посмотрите, как отображается пользовательское представление с фоновым изображением и заполнено фиктивными пользовательскими данными.
Фото Хелены Лопес на Unsplash.
Резюме
Вы использовали Node.js, Express, Pug и CSS для создания веб-приложения, которое отображает стильный пользовательский интерфейс с динамическими данными путем взаимодействия с API. Вы также обслуживаете статические ресурсы с сервера, на котором размещен API.
В качестве следующего шага вы можете узнать, как добавить аутентификацию в Express с помощью Passport.js и Auth0. Защита приложений Node.js с помощью Auth0 проста и предоставляет множество замечательных функций.
После регистрации бесплатной учетной записи Auth0 вам нужно всего лишь написать несколько строк кода, чтобы получить надежное решение для управления идентификацией с поддержкой единого входа и поставщиков социальных идентификаций (таких как Facebook, GitHub, Twitter и т. д.). .) и поставщики корпоративных удостоверений (такие как Active Directory, LDAP, SAML, пользовательские и т. д.).
Звучит захватывающе? ⚡️
Следующий шаг: я готов защитить свое веб-приложение Express
Я столкнулся с проблемой
.