ТЗ на 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>

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

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

0
39 комментариев
Написать комментарий...
Артем Акулов
Ответить
Развернуть ветку
Galina Bakusheva
Автор

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

Ответить
Развернуть ветку
Аккаунт удален

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

Ответить
Развернуть ветку
Никита Гордеев

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

Ответить
Развернуть ветку
Galina Bakusheva
Автор

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

Ответить
Развернуть ветку
Никита Гордеев

А через сколько времени вы увидели положительные результаты?

Ответить
Развернуть ветку
Galina Bakusheva
Автор

полутора месяцев.

Ответить
Развернуть ветку
Никита Гордеев

А сколько в итоге, в процентах, получили прироста по траффику?

Ответить
Развернуть ветку
Galina Bakusheva
Автор

Там еще и рекомендательные статьи вдруг заработали с гугла на андроиде. Так что выхлоп был. Не было резкого прироста, но процента 4-5% точно прибыло за это время. Наряду с этим исправлялись еще и технические ошибки частично. Например, заменялись 404 ошибки (их было немало) на релевантные разделы/публикации и т.д.

Ответить
Развернуть ветку
Dmitry Shtern

А тематика сайта - СМИ?

Ответить
Развернуть ветку
Galina Bakusheva
Автор

да

Ответить
Развернуть ветку
Galina Bakusheva
Автор

Я про проценты к доле поискового трафика имею ввиду естественно.

Ответить
Развернуть ветку
Aldous Snow

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

Ответить
Развернуть ветку
Galina Bakusheva
Автор

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

Ответить
Развернуть ветку
Aldous Snow

1) Давайте вам объясню на пальцах.
Robots.txt управляет доступом для краулера: либо пускает бота, либо нет. Всё, другой функции у него нет. Блокируя страницу, в данном случае amp, мы вы не пускаете туда бота, и он не может прочитать тег canonical. Если заблокировали после запуска amp, значит гугл не будет обновлять информацию. Блокировать амп не нужно. Ну да ладно. Нравится - блокируйте.
Возвращаемся к канониклу. Согласно феншую мы должны указать амп-страницам каноническую версию (десктоп), а декстоп-страницы связать тегом ампхтмл с амп-страницами. Вы сами об этом написали. Амп-страницы становятся альтернативными страницами (AMP document exists that is an alternative representation), как отдельная мобверсия. В этом случае у нас получается каноническая версия (каноническая означает выбрана для ранжирования) - основной сайт. И это десктоп. Ваш амп никак на ранжирование не может повлиять, пока каноникл указывает на основной сайт :-) и никак не станет дублем, благодаря тому же канониклу.
Цитата:
If an AMP document exists that is an alternative representation of a canonical document, then the canonical document should point to the AMP document via a link tag with the relation "amphtml".
Example:
<link rel="amphtml" href="https://www.example.com/url/to/amp/document.html">;
The AMP document itself is expected to point back to its canonical document via a link tag with the relation "canonical".
Example:
<link rel="canonical" href="https://www.example.com/url/to/canonical/document.html">;
Отсюда: https://www.ampproject.org/docs/fundamentals/spec
Хотите канонический ранжируемый амп? Делайте целиком весь сайт на амп.

2) Амп сейчас используется пиратами для обхода блокировок. То есть будущее амп в РФ под вопросом.
3) В период масштабной блокировки телеграма амп-сайты были недоступны пользователям из-за блокировки гугловских адресов.

Ответить
Развернуть ветку
Galina Bakusheva
Автор

я уже двум пользователям ответила, что закрываем для Яндекса))елки-палки

Ответить
Развернуть ветку
closclos

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

Ответить
Развернуть ветку
Denis Brykov

Про canonical, насколько я помню, так написано в гугловском мануале: https://www.ampproject.org/docs/getting_started/create/basic_markup

И зачем индексировать amp, если уже индексирован оригинал?

Ответить
Развернуть ветку
Galina Bakusheva
Автор

AMP индексируются Гуглом. Вопрос не ко мне))

Ответить
Развернуть ветку
Denis Brykov

Я не вам писал, а Aldous Snow.

Ответить
Развернуть ветку
Galina Bakusheva
Автор

Закрыть от индексации для робота ЯНДЕКСА, тк для Яндекса эти страницы - дубли контента. Яндекс не понимает AMP гугла. (Как я ответила другому комментирующему).

Ответить
Развернуть ветку
Коля Павельев

А в чём прикол AMP для СМИ через поисковики, я конечно сейчас про кеш гугла, если на сайт всё равно не зайдут, рекламу никто не посмотрит, подписку никто не купит, рекламные статьи не порекомендуются, когда это и есть твоя бизнес-модель? Новости заходят почитать и забить. Пусть AMP увеличит твою позицию хоть вдвое, сильно сомневаюсь, что он отобьёт и 10% открывших эту псевдоссылку. Не проще ли настроить Nginx, чтобы он за 60мс отдавал тебе страницу с самого дешёвого серва, если речь идёт про скорость?
Другое дело, если СМИ выполняет пропагандисткую и агитаторскую деятельность, и самое важный критерий - максимальное кол-во прочитавших материал, тогда конечно да)

Ответить
Развернуть ветку
Galina Bakusheva
Автор

Не понимаю о чем вы говорите. AMP - быстрые страницы, которые преимущественно рекомендуются как раз статейным сайтам. Google перешел на mobile first индекс и учитывает факт наличия AMP как в десктопной выдаче так и в мобильной. В чем ваш вопрос или сомнение?

Ответить
Развернуть ветку
Коля Павельев

о том, что гугл кеширует твои AMP страницы, и как следствие, перехода на сам сайт не происходит, какой смысл тогда в повышении позиций?

https://habr.com/post/331958/

Ответить
Развернуть ветку
Galina Bakusheva
Автор

Мне кажется Вы не очень внимательно читаете.

"Google перешел на mobile first индекс и учитывает факт наличия AMP как в десктопной выдаче так и в мобильной."

Ответить
Развернуть ветку
Galina Bakusheva
Автор

https://siteclinic.ru/blog/raznoe/iks-yandexa-mnenie-expertov/

Тут конечно мой коммент относительно Яндекса, но философия Гугла примерно схожа.

Ответить
Развернуть ветку
Galina Bakusheva
Автор

Про "проще-не проще" было бы актуально, если бы интернет был действительно независим (как когда-то давно) Сейчас увы, такое уже не прокатит.

Ответить
Развернуть ветку
Mikhail Komlev

В AMP можно встраивать монетизацию контекстной рекламой, к примеру. При чём, даже те варианты блоков за которые Яндекс накладывает фильтр (блок быстрых ссылок, который выглядит как меню сайта и имеет высокий CTR).

Можно отдавать все страницы с обычными блоками, а этот вставлять только в AMP-формат.

Ответить
Развернуть ветку
alenkins

Для чего запрещать индексацию амп-страниц в robots.txt, если в их коде в качестве canonical и так указан url десктопного варианта страницы?

Ответить
Развернуть ветку
Galina Bakusheva
Автор

Закрыть от индексации для робота ЯНДЕКСА, тк для Яндекса эти страницы - дубли контента. Яндекс не понимает AMP гугла.

Ответить
Развернуть ветку
alenkins

В статье не указано, что это запрет исключительно для робота Яндекса. Писать тексты для широкой аудитории, рассчитывая на чтение между строк - чистое вредительство, лучше вообще не писать.

Ответить
Развернуть ветку
Galina Bakusheva
Автор

Вы же не пишите)))Должны с пониманием относиться, очевидно.

Ответить
Развернуть ветку
alenkins

Отнеситесь и вы с пониманием. Сидит такой разработчик, работу работает. Приходит к нему начальник со статьёй от сеошника и просит учесть в работе его рекомендации, а в рекомендациях - чистой воды ад. Разработчик всё бросает и тратит время на то, чтобы сначала попытаться понять великий замысел сео-специалиста, который, наверное, не совсем бездарен, если взялся за написание статей для других. Затем подбирает слова для начальства, чтобы объяснить общий вред от затеи, т. к. никакой пользы не удалось обнаружить. Время потеряно впустую из-за того, что человек, взявшийся писать тексты, не умеет излагать свои мысли чётко и ясно. Это танцевать нужно так, как будто никто не видит. Писать лучше так, как будто все злобные интраверты мира придут придираться к буквам.

Ответить
Развернуть ветку
Galina Bakusheva
Автор

ну хорошо, хорошо..Снова жалобы..Писака из меня полное говнище!

Ответить
Развернуть ветку
Galina Bakusheva
Автор

и с состраданием. Как завещал великий Будда.

Ответить
Развернуть ветку
Владимир Пасынков

В Яндексе не дураки сидят и давно знают что такое AMP. Вряд ли робот Яндекса ходит на amphtml. А если и ходит, то по общим правилам отрабатывает rel="canonical".

Ответить
Развернуть ветку
Galina Bakusheva
Автор

Заходит. В выдаче две страницы в итоге с хвостом AMP и каноническая.

Ответить
Развернуть ветку
Дмитрий Дамарнацкий

Зачем закрывать в robots.txt для Яндекса, если поисковик все и так прекрасно понимает через canonical?

Ответить
Развернуть ветку
closclos

Написал я свою инструкцию, постарался максимально подробно. Может кому пригодиться (учитывал 99% всех аспектов, включая то, что нужно сохранять микроразметку на AMP)

https://seoandrii.ru/google-amp-pages-manual/

Ответить
Развернуть ветку
36 комментариев
Раскрывать всегда