Что такое HTTP-коды состояния?
HTTP-коды состояния ответа указывают, был ли успешно выполнен конкретный HTTP-запрос. Существует множество кодов состояния, но лишь некоторые из них имеют значение в контексте SEO.
Давайте рассмотрим их подробнее.
200
HTTP 200 OK
— код состояния успешного ответа, указывающий, что запрос выполнен успешно.
Чтобы страница была проиндексирована Google, она должна возвращать код состояния 200
. Это именно тот код, который вы обычно хотите видеть для своих страниц, чтобы они получали органический трафик. Это код по умолчанию, который устанавливает Next.js при успешном рендеринге страницы.
301/308
HTTP 301 Moved Permanently
— код состояния перенаправления, указывающий, что запрошенный ресурс был окончательно перемещён на указанный URL.
Это постоянное перенаправление. Как правило, это наиболее широко используемый тип перенаправления.
Перенаправления могут использоваться по разным причинам, но основная — указать, что URL был перемещён из точки A в точку B. Перенаправления необходимы, чтобы при перемещении контента вы не потеряли текущих и потенциальных клиентов, а боты могли продолжать индексировать ваш сайт.
Примечание: В Next.js постоянные перенаправления по умолчанию используют код 308
вместо 301
, так как это более новая версия, считающаяся предпочтительной.
Основное различие между этими кодами состояния в том, что 301
позволяет изменить метод запроса с POST
на GET
, тогда как 308
— нет.
Вы можете вызвать перенаправление 308
в Next.js, возвращая перенаправление вместо пропсов в функции getStaticProps()
.
// pages/about.js
export async function getStaticProps(context) {
return {
redirect: {
destination: '/',
permanent: true, // вызывает 308
},
};
}
Также вы можете использовать ключ permanent: true
в перенаправлениях, заданных в next.config.js
.
//next.config.js
module.exports = {
async redirects() {
return [
{
source: '/about',
destination: '/',
permanent: true, // вызывает 308
},
];
},
};
302
HTTP 302 Found
— код состояния временного перенаправления, указывающий, что запрошенный ресурс был временно перемещён на указанный URL.
В большинстве случаев 302
перенаправления должны быть 301
перенаправлениями. Исключением могут быть ситуации, когда вы временно перенаправляете пользователей на определённую страницу (например, промо-страницу) или в зависимости от их местоположения.
404
HTTP 404 Not Found
— код состояния ошибки клиента, указывающий, что сервер не может найти запрошенный ресурс.
Как упоминалось выше, перемещённые страницы должны перенаправляться с кодом состояния HTTP 301
на новый адрес. Если этого не происходит, URL могут возвращать код состояния 404
. 404
не всегда является плохим кодом, так как это ожидаемый результат при посещении несуществующего URL, но такие ошибки не должны часто встречаться на ваших страницах, так как это может привести к снижению позиций в поиске.
Next.js автоматически возвращает код состояния 404
для URL, которых нет в вашем приложении.
В некоторых случаях вы также можете захотеть вернуть код состояния 404
со страницы. Это можно сделать, возвращая следующее вместо пропсов:
export async function getStaticProps(context) {
return {
notFound: true, // вызывает 404
};
}
Вы можете создать пользовательскую страницу 404, которая статически генерируется при сборке, создав файл pages/404.js
.
Пример:
// pages/404.js
export default function Custom404() {
return <h1>404 - Страница не найдена</h1>;
}
410
HTTP 410 Gone
— код состояния ошибки клиента, указывающий, что доступ к целевому ресурсу больше недоступен на сервере-источнике и это состояние, скорее всего, является постоянным.
Этот код используется нечасто, но вы можете обратить на него внимание, если удаляете контент с вашего сайта, который больше не будет существовать.
Примеры ситуаций, где уместно использовать HTTP 410 Gone
:
- Интернет-магазины: Товары, окончательно удалённые из ассортимента.
- Форумы: Треды, удалённые пользователем.
- Блоги: Посты, удалённые с сайта.
Этот код состояния сообщает ботам, что им больше не нужно возвращаться для сканирования этого контента.
500
HTTP 500 Internal Server Error
— код состояния ответа, указывающий, что сервер столкнулся с непредвиденной ситуацией, которая помешала ему выполнить запрос.
Next.js автоматически возвращает код состояния 500
при неожиданной ошибке приложения. Вы можете создать пользовательскую страницу ошибки 500, которая статически генерируется при сборке, создав файл pages/500.js
.
Пример:
// pages/500.js
export default function Custom500() {
return <h1>500 - Произошла ошибка на стороне сервера</h1>;
}
503
HTTP 503 Service Unavailable
— код состояния ошибки сервера, указывающий, что сервер не готов обработать запрос.
Рекомендуется возвращать этот код состояния, когда ваш сайт не работает и вы предполагаете, что он будет недоступен в течение длительного времени. Это предотвращает долгосрочную потерю позиций в поиске.