【问题标题】:Gatsby JS Meta description is missing for SEO?搜索引擎优化缺少 Gatsby JS 元描述?
【发布时间】:2021-02-08 08:07:36
【问题描述】:

我创建了一个 SEO 组件,但由于某种原因,当我通过灯塔或 SEO 检查器运行我的网站时,它说我缺少元描述。

这是我的 SEO 组件

      import React from "react"
      import PropTypes from "prop-types"
      import { Helmet } from "react-helmet"
      import { useStaticQuery, graphql } from "gatsby"

      function SEO({ description, title, keywords, siteUrl, lang, meta }) {
        const { site } = useStaticQuery(
          graphql`
            query {
              site {
                siteMetadata {
                  description
                  keywords
                  title
                  siteUrl
                }
              }
            }
          `
        )

        const metaDescription = description || site.siteMetadata.description
        const defaultTitle = site.siteMetadata.title
        const metaUrl = siteUrl || site.siteMetadata.siteUrl
        const metaKeywords = keywords || site.siteMetadata.keywords

        return (
          <Helmet
            htmlAttributes={{
              lang,
            }}
            title={title}
            titleTemplate={defaultTitle ? `%s | ${defaultTitle}` : null}
            meta={[
              {
                property: `og:title`,
                content: title,
              },
              {
                property: `og:siteurl`,
                content: metaUrl,
              },
              {
                name: `keywords`,
                content: metaKeywords,
              },
              {
                property: `og:description`,
                content: metaDescription,
              },
              {
                property: `og:type`,
                content: `website`,
              },
            ].concat(meta)}
          />
        )
      }

      SEO.defaultProps = {
        lang: `en`,
        meta: [],
        description: ``,
      }

      SEO.propTypes = {
        description: PropTypes.string,
        lang: PropTypes.string,
        meta: PropTypes.arrayOf(PropTypes.object),
        title: PropTypes.string.isRequired,
      }

      export default SEO

当我检查我的网站时,它会显示

 <meta data-react-helmet="true" property="og:description" content="My coding blog about tech 
 and design.">

所以我不确定我需要为我的 SEO 组件添加或更改什么,因为我当前显示描述的方法显然基于 lighthouse 或其他 SEO 网站检查器不起作用。

【问题讨论】:

标签: reactjs graphql seo gatsby


【解决方案1】:

只需将og:description 更改为description(独立):

          {
            property: `description`,
            content: metaDescription,
          },

og 属性代表 Open Graph。它们主要用于社交网络在共享网络时获取信息,您可以自定义这些社交网络的描述,而不是获取页面本身的描述。如果您不关心,请将其更改为description,如果您这样做,请保留两个元标记:

          {
            property: `og:description`,
            content: anoterOgMetaDescription,
          },
          {
            property: `description`,
            content: metaDescription,
          },

【讨论】:

    猜你喜欢
    • 2011-05-14
    • 2011-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-01
    • 2018-07-07
    相关资源
    最近更新 更多