Метаданные

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

Заголовок (Title)

Тег заголовка является одним из наиболее важных элементов SEO по двум основным причинам:

Во-первых, это то, что видят пользователи при переходе на ваш сайт из результатов поиска.

Во-вторых, это один из основных элементов, которые Google использует для понимания содержания вашей страницы. Использование ключевых слов в заголовке рекомендуется, так как это обычно приводит к улучшению позиций в поисковых системах.

Пример:

<title>iPhone 12 XS Max For Sale in Colorado - Big Discounts | Apple</title>

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

Описание (Description)

Мета-тег описания является еще одним важным элементом SEO, но менее значимым, чем заголовок. По данным Google, этот элемент не учитывается для ранжирования, но может повлиять на показатель кликабельности в результатах поиска.

Используйте мета-тег описания для дополнения информации в вашем заголовке. Добавьте дополнительные ключевые слова, если они не поместились в заголовке. Эти ключевые слова будут выделены жирным, если они содержатся в поисковом запросе пользователя.

Пример мета-тега описания в HTML:

<meta
  name="description"
  content="Check out iPhone 12 XR Pro and iPhone 12 Pro Max. Visit your local store and for expert advice."
/>

Вот как это выглядит на странице результатов поисковой системы (SERP):

Пример сниппета SERP с заголовком и описанием

Пример сниппета SERP с заголовком и описанием

В Next.js мы устанавливаем заголовок и описание в компоненте Head. Вот как могут выглядеть мета-теги заголовка и описания в Next.js:

import Head from 'next/head';
 
function IndexPage() {
  return (
    <div>
      <Head>
        <title>
          iPhone 12 XS Max For Sale in Colorado - Big Discounts | Apple
        </title>
        <meta
          name="description"
          content="Check out iPhone 12 XR Pro and iPhone 12 Pro Max. Visit your local store and for expert advice."
          key="desc"
        />
      </Head>
      <h1>iPhones for Sale</h1>
      <p>insert a list of iPhones for sale.</p>
    </div>
  );
}
 
export default IndexPage;

Компонент Head может использоваться на любой странице вашего приложения для описания или предоставления информации о содержимом страницы.

Open Graph

Протокол Open Graph, изначально разработанный Facebook, стандартизирует использование метаданных на веб-страницах. Вы можете предоставить минимальную или подробную информацию, но все элементы Open Graph вместе создают представление о сайте.

Другие социальные сети (такие как Pinterest, Twitter, LinkedIn и т.д.) также могут использовать Open Graph для отображения расширенных карточек при публикации URL. Twitter также имеет свои собственные теги Twitter Cards.

Хотя теги Open Graph имеют много общего с SEO-тегами, они не влияют на ранжирование в поисковых системах, но их все равно рекомендуется использовать, так как пользователи могут делиться вашим контентом в социальных сетях или мессенджерах, таких как WhatsApp или Telegram.

Вы можете добавить теги Open Graph, определив атрибут property в мета-тегах внутри компонента Head. Например:

import Head from 'next/head';
 
function IndexPage() {
  return (
    <div>
      <Head>
        <title>Cool Title</title>
        <meta name="description" content="Checkout our cool page" key="desc" />
        <meta property="og:title" content="Social Title for Cool Page" />
        <meta
          property="og:description"
          content="And a social description for our cool page"
        />
        <meta
          property="og:image"
          content="https://example.com/images/cool-page.jpg"
        />
      </Head>
      <h1>Cool Page</h1>
      <p>This is a cool page. It has lots of cool content!</p>
    </div>
  );
}
 
export default IndexPage;

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

Структурированные данные и JSON-LD

Структурированные данные облегчают понимание ваших страниц поисковыми системами. За годы существования использовалось несколько словарей, но в настоящее время основным является schema.org.

Согласно сайту, schema.org — это "совместная деятельность сообщества с миссией по созданию, поддержанию и продвижению схем для структурированных данных в Интернете, на веб-страницах, в электронных письмах и не только".

Словарь schema.org может использоваться с различными кодировками, включая RDFa, Microdata и JSON-LD.

Разные поисковые системы могут адаптировать различные словари в рамках schema.org, и ни одна поисковая система не охватывает все варианты использования, описанные в словаре сайта. Обязательно проверяйте, какие словари принимаются в каждом конкретном случае.

Пример страницы продукта с добавлением структурированных данных JSON-LD схемы продукта:

import Head from 'next/head';
 
function ProductPage() {
  function addProductJsonLd() {
    return {
      __html: `{
      "@context": "https://schema.org/",
      "@type": "Product",
      "name": "Executive Anvil",
      "image": [
        "https://example.com/photos/1x1/photo.jpg",
        "https://example.com/photos/4x3/photo.jpg",
        "https://example.com/photos/16x9/photo.jpg"
       ],
      "description": "Sleeker than ACME's Classic Anvil, the Executive Anvil is perfect for the business traveler looking for something to drop from a height.",
      "sku": "0446310786",
      "mpn": "925872",
      "brand": {
        "@type": "Brand",
        "name": "ACME"
      },
      "review": {
        "@type": "Review",
        "reviewRating": {
          "@type": "Rating",
          "ratingValue": "4",
          "bestRating": "5"
        },
        "author": {
          "@type": "Person",
          "name": "Fred Benson"
        }
      },
      "aggregateRating": {
        "@type": "AggregateRating",
        "ratingValue": "4.4",
        "reviewCount": "89"
      },
      "offers": {
        "@type": "Offer",
        "url": "https://example.com/anvil",
        "priceCurrency": "USD",
        "price": "119.99",
        "priceValidUntil": "2020-11-20",
        "itemCondition": "https://schema.org/UsedCondition",
        "availability": "https://schema.org/InStock"
      }
    }
  `,
    };
  }
  return (
    <div>
      <Head>
        <title>My Product</title>
        <meta
          name="description"
          content="Super product with free shipping."
          key="desc"
        />
        <script
          type="application/ld+json"
          dangerouslySetInnerHTML={addProductJsonLd()}
          key="product-jsonld"
        />
      </Head>
      <h1>My Product</h1>
      <p>Super product for sale.</p>
    </div>
  );
}
 
export default ProductPage;

В этом примере данные жестко закодированы в виде строки, но вы можете легко передать данные в метод addProductJsonLd, чтобы сделать их полностью динамическими.

Дополнительные материалы