ТЗ на Google AMP для разработчика от SEO-специалиста

После перехода Google на mobile-first... Всем все равно, никто ничего не понял. Видишь mobile-first index? Нет. Я тоже. А он есть.

Кто-то за AMP, кто-то против, так как считает, что с мобильного телефона трафик c AMP не будет считаться, путая с Instant Articles или другими «островковыми» технологиями поисковых систем. Никто не думает, что не сделав AMP, вас вообще может не быть в выдаче, так как наличие этой верстки для контентного сайта является фактором ранжирования, например.

Можете поверить, что AMP — must have для СМИ и информационных сайтов, если вам интересен Google и его трафик, в том числе поисковый.

Допустим, мы решили делать AMP. Пришло время ставить задачу разработчикам. Делает это либо трафик-менеджер, какой-нибудь человек по работе с каналами дистрибуции контента, партнерами или (так лучше) SEO-шник.

Задача ставится в Jira, Trello или Asana так: «Вот тебе официальное руководство от Google на английском. Сделай AMP». Все.

Да-да, вы же так же делаете AMP. Или спросите у кого-нибудь, кто ставил задачу по AMP.

Никто не понимает, почему они важны и что мало просто их сделать. Их надо настроить так, чтобы они были полезны.

Когда-то одному парню я уже давала список того, что надо учесть при реализации. Но так как он не написал это на таком популярном сайте — пишу я.

Так вот. ТЗ по AMP в части касающейся SEO:

— Действительно, вот

https://www.ampproject.org/docs/getting_started/create/basic_markup руководство от Google с техническими подробностями разметки.

— Прописываем канонические URL в header AMP-страниц (прописываем URL main-страницы в теге rel canonical иным языком). Вот так это выглядит примерно:

<rel="canonical" href="http://main_page.html" />

— На каждой main-странице ставим следующее выражение c ссылкой на AMP-страницу:

<rel="amphtml" href="https://www.example.com/url/to/amp/document.html">

— Внести в robots.txt строку, запрещающую индексирование страниц AMP

— Если у нас редактор Wysiwyg — там будут лишние элементы, которые для AMP-разметки будут непонятны, при валидации Google будет ругаться на строки кода с этими элементами. Также не читает Google и тег img в AMP-версии. Его надо заменить на AMP-img.

— Обязательные атрибуты для изображений в фиде. Если их не указать, то изображения не будут показываться.

layout="responsive" (для адаптивного масштабирования)

width=”___” — в пикселях

height=”___” — в пикселях

Примерный код для программного учета вышенаписанных штук:

article = article.replace("<img", '<amp-img layout="responsive"')article = article.replace("</img>", "</amp-img>")article = re.sub(r'style="[^"]+"', '', article) #замена по регулярному выражению

Article — это все содержимое статьи.

При использовании PHP надо будет заменить

article.replace на str_replace и, возможно, переставить аргументы местами, а re.sub заменить на preg_replace.

Данные о размере можно взять из style, но расписать их как отдельные атрибуты.

— АMP не видит внешние стили, поэтому лучше в header внедрить CSS-стили. Но записать их отдельно для AMP. Например, <style amp-custom>

— Прописать все нужные поля в описание <script type="application/ld+json">

— Для добавления аналитики — в хэдер поставить скрипт

<script async custom-element="amp-analytics" src="https://cdn.ampproject.org/v0/amp-analytics-0.1.js"></script>

И вставляем коды счетчиков для «Метрики» и Analytics.

— Если надо добавить рекламу, то в header поставить скрипт

<script async custom-element="amp-ad" src="https://cdn.ampproject.org/v0/amp-ad-0.1.js"></script>

И в тег сам рекламный блок добавляем.

— Чтобы добавить меню, в header ставим скрипт:

<script async custom-element="amp-sidebar" src="https://cdn.ampproject.org/v0/amp-sidebar-0.1.js"></script>

Далее добавляем кнопку, при нажатии на которую будет показываться сайдбар:

<div role="button" on="tap:sidebar.toggle" tabindex="0" class="" id="ham">☰</div>

И добавляем сам сайдбар в код.

Надеюсь, вы с радостью воспользуетесь статьей.

1010
39 комментариев

У кого CMS, а не самопис - да, пожалуйста)

Комментарий недоступен

А у вас есть кейс, где AMP действительно повлиял на ранжирование страниц и трафик на сайте стал расти?

2

Да. Иначе я бы не писала этот пост.

Зачем вы запретили сканирование амп в роботс? Для Яндекса?
О каком Mobile First вы говорите, настроив canonical на десктопную версию? :-)

1

Почитайте что такое canonical. Запрет сканирования AMP в роботс нужен для избежания дублирования контента дескопной версии страницы.