Налаштування мета-тегів (title, description, keywords) сайту
Мета-теги — базова SEO-налаштування, яка впливає на відображення сторінок у результатах пошуку. Title та description формують сніпет у виданні: саме це вирізняються користувачи перед кліком.
Title
Правила хорошого title:
- Довжина 50–60 символів (Google обрізає довші)
- Головний ключовий запит ближче до початку
- Унікальний для кожної сторінки
- Містить назву сайту/бренду (звичайно в кінці через
|або—)
<title>Купити iPhone 15 Pro — офіційний магазин | ТехноМагазин</title>
Description
- Довжина 150–160 символів
- Описує вміст сторінки + заклик до дії
- Унікальний для кожної сторінки
- Не впливає на позиції напряму, але впливає на CTR
<meta name="description" content="iPhone 15 Pro з доставкою за 1-2 дні. Офіційна гарантія 1 рік. Більше 50 варіантів комплектації. Розстрочка 0% на 12 місяців.">
Keywords
Meta keywords ігнорується Google та Яндексом з 2009/2014 року. Додавати не обов'язково.
Реалізація в Laravel + Blade
// config/seo.php
return [
'defaults' => [
'title' => 'Назва сайту',
'description' => 'Опис за замовчуванням',
'suffix' => '| Назва сайту'
]
];
// layouts/app.blade.php
<title>{{ isset($seoTitle) ? "{$seoTitle} " . config('seo.defaults.suffix') : config('seo.defaults.title') }}</title>
<meta name="description" content="{{ $seoDescription ?? config('seo.defaults.description') }}">
// У контролері сторінки товару
return view('products.show', [
'product' => $product,
'seoTitle' => "Купити {$product->name} — ціна, фото, характеристики",
'seoDescription' => Str::limit("Купити {$product->name} за {$product->price} ₽. {$product->short_description}", 155)
]);
Реалізація в Next.js
import Head from 'next/head';
export function SeoMeta({ title, description, children }) {
const fullTitle = title
? `${title} | ${process.env.NEXT_PUBLIC_SITE_NAME}`
: process.env.NEXT_PUBLIC_SITE_NAME;
return (
<Head>
<title>{fullTitle}</title>
<meta name="description" content={description || process.env.NEXT_PUBLIC_DEFAULT_DESCRIPTION} />
{children}
</Head>
);
}
Генерація description з контенту
Якщо мета-description не заповнений вручну:
public function generateDescription(string $content, int $length = 155): string
{
$text = strip_tags($content);
$text = preg_replace('/\s+/', ' ', $text);
return Str::limit(trim($text), $length);
}
Час налаштування: кілька годин для базової налаштування з шаблонами.







