saleor / storefront

Saleor Storefront built with React 18, Next.js 14, App Router, TypeScript, GraphQL, and Tailwind CSS.
https://storefront.saleor.io
BSD 3-Clause "New" or "Revised" License
1.06k stars 598 forks source link

feat: SEO optimization #996

Closed samiralibabic closed 12 months ago

samiralibabic commented 1 year ago

Closes #980. Changed title to match format [Name of the page] [Global title of the store]

vercel[bot] commented 1 year ago

Someone is attempting to deploy a commit to the Saleor Commerce Team on Vercel.

A member of the Team first needs to authorize it.

CLAassistant commented 1 year ago

CLA assistant check
All committers have signed the CLA.

vercel[bot] commented 1 year ago

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Updated (UTC)
storefront ✅ Ready (Inspect) Visit Preview Nov 13, 2023 10:13am
typeofweb commented 1 year ago

What's the status of this PR @samiralibabic ?

samiralibabic commented 1 year ago

What's the status of this PR @samiralibabic ?

I'm waiting on some input. I've verified and titles, OG images and SEO metadata seem to be correct already (except the small change I made here). Do you have more info?

grzegorzpokorski commented 1 year ago

I think it would be great to change a og image for product page - product thumbnail would be a more appropriate for product page than default image provided for pages like a "home".

Also common practice is to provide a JSON-LD object which making it easier for search engines and other applications to understand the content and relationships within the data what also boost SEO - smth like that whould be enough for a product page:

{
  "@context": "http://schema.org",
  "@type": "Product",
  "name": "Product Name",
  "description": "Product description goes here.",
  "offers": {
    "@type":"AggregateOffer",
    "availability":"https://schema.org/InStock",
    "priceCurrency":"USD",
    "highPrice":"20.0",
    "lowPrice":"15.0"
  },
  "image": "url-to-product-image.jpg",
}
samiralibabic commented 12 months ago

I think it would be great to change a og image for product page - product thumbnail would be a more appropriate for product page than default image provided for pages like a "home".

Also common practice is to provide a JSON-LD object which making it easier for search engines and other applications to understand the content and relationships within the data what also boost SEO - smth like that whould be enough for a product page:

{
  "@context": "http://schema.org",
  "@type": "Product",
  "name": "Product Name",
  "description": "Product description goes here.",
  "offers": {
    "@type":"AggregateOffer",
    "availability":"https://schema.org/InStock",
    "priceCurrency":"USD",
    "highPrice":"20.0",
    "lowPrice":"15.0"
  },
  "image": "url-to-product-image.jpg",
}

Should I add JSON-LD in this PR too, or does it require discussion?

grzegorzpokorski commented 12 months ago

I think it would be great to change a og image for product page - product thumbnail would be a more appropriate for product page than default image provided for pages like a "home". Also common practice is to provide a JSON-LD object which making it easier for search engines and other applications to understand the content and relationships within the data what also boost SEO - smth like that whould be enough for a product page:

{
  "@context": "http://schema.org",
  "@type": "Product",
  "name": "Product Name",
  "description": "Product description goes here.",
  "offers": {
    "@type":"AggregateOffer",
    "availability":"https://schema.org/InStock",
    "priceCurrency":"USD",
    "highPrice":"20.0",
    "lowPrice":"15.0"
  },
  "image": "url-to-product-image.jpg",
}

Should I add JSON-LD in this PR too, or does it require discussion?

Hi! I'm not the maintainer of this project, and I don't decide what should be implemented. However, I believe providing JSON-LD is a common industry practice. I also don't see any drawbacks to this feature, so it might be beneficial to include it in the project, expecially for product pages. In my view, it is related to SEO, so it could be introduced now or implemented later in a separate PR. Ultimately, the decision is up to you 🙂