Files
2026-10-20 19:17:49 +04:00

66 lines
5.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# SEO для Яндекса и Google
Публичные страницы главной и новостей отдают метатеги и основной HTML до запуска
JavaScript. При переходах Inertia обновляет тот же набор тегов через `serverHead`.
Заголовок, описание и текст главной ориентированы на PvP сервер WoW Vanilla,
версию клиента и рейты из `config/moonwell.php`. Название проекта также берётся
из конфигурации. Позиции в поиске зависят и от содержания, ссылок и конкуренции;
SEO-настройки обеспечивают техническую готовность к индексации.
## Настройка production
```dotenv
APP_ENV=production
APP_URL=https://moon-well.online
MOONWELL_SEO_INDEXABLE=true
GOOGLE_SITE_VERIFICATION=
YANDEX_SITE_VERIFICATION=
```
`APP_URL` — единственный источник домена для canonical, sitemap и разметки.
Используйте основной HTTPS-адрес без `www`, если сайт работает именно на нём.
На уровне внешнего nginx настройте постоянный редирект HTTP и альтернативного
домена на этот адрес. Для стендов задайте `MOONWELL_SEO_INDEXABLE=false`:
robots.txt запретит обход, а HTML получит `noindex`. По умолчанию индексация
включается только при `APP_ENV=production`.
В `GOOGLE_SITE_VERIFICATION` и `YANDEX_SITE_VERIFICATION` вставляются только
значения `content` из проверочных метатегов соответствующего сервиса.
Пустые значения не создают метатеги. После изменения `.env` пересоздайте
production-контейнер приложения, чтобы загрузить переменные, и обновите кеш:
```bash
docker compose -f compose.prod.yaml up -d --no-deps --force-recreate app
docker compose -f compose.prod.yaml exec -T --user app app php artisan config:cache
```
## Подключение поисковых систем
1. Добавьте сайт в [Google Search Console](https://search.google.com/search-console)
и [Яндекс Вебмастер](https://webmaster.yandex.ru/). Для проверки метатегом
выберите ресурс по URL в Google и заполните переменные выше. Можно также
подтвердить домен через DNS средствами самих сервисов.
2. Отправьте `https://moon-well.online/sitemap.xml` в оба сервиса. Карта
автоматически содержит главную, список новостей и опубликованные статьи
с датами последнего изменения. Черновики, личный кабинет, вход, юридические
документы и административные страницы в карту не попадают.
3. Проверьте главную и одну новость инструментом проверки URL Google и
инструментами проверки страниц Яндекса, затем запросите переобход главной.
4. Проверьте robots.txt: ресурсы `/build/`, изображения и `/storage/` доступны
роботам. Закрыты API, файлы лаунчера и техническая проверка состояния.
Страницы входа, кабинета и администрации имеют `noindex`; robots.txt
не запрещает их обход, чтобы робот мог прочитать запрет индексации.
У страниц новостей `?page=2` и далее собственный canonical и номер страницы
в заголовке. Метки рекламы и другие параметры в canonical не включаются.
Несуществующие страницы пагинации и неопубликованные новости возвращают 404.
Разметка JSON-LD описывает сайт и страницы, а для новостей — `NewsArticle`
с заголовком, изображением и датами. Open Graph и Twitter Card поддерживают
превью ссылок. Проверочные коды для поисковых систем остаются на всех HTML-страницах.
Реализация учитывает рекомендации
[Google по JavaScript SEO](https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics),
[Google по sitemap](https://developers.google.com/search/docs/crawling-indexing/sitemaps/build-sitemap)
и [Яндекса по robots.txt](https://yandex.ru/support/webmaster/ru/controlling-robot/robots-txt).