automate-sales / automate-commerce

next js ecommerce
MIT License
0 stars 0 forks source link

Add SEO #30

Open gkpty opened 4 months ago

gkpty commented 4 months ago

In all pages add all important SEO components including title, description, openGraph Attributes, etc. Also add google rich text snippets and rich data.

https://nextjs.org/docs/app/building-your-application/optimizing/metadata#json-ld

https://developers.google.com/search/docs/appearance/structured-data/search-gallery

The following rich data attributes should be included in the following pages/components

All pages

Home Page

JSON LD

{
  "@context": "https://schema.org",
  "@type": "Store",
  "@id": "https://ergonomicadesk.com",
  "name": "Ergonomica Desk",
  "description": "Everything you need for your home office",
  "url": "https://ergonomicadesk.com",
  "telephone": "+50769477336",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "Calle 75 San Francisco, Edif. Mega Storage, unidad 10202",
    "addressLocality": "Panama city",
    "addressRegion": "Panama",
    "postalCode": "00000",
    "addressCountry": "PA"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": "8.99437899550739",
    "longitude": "-79.50334275969475"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "5",
    "ratingCount": "12"
  },
  "review": [
    {
      "@type": "Review",
      "author": "Ryan",
      "datePublished": "2021-11-26",
      "name": "Great quality",
      "reviewBody": "Great quality product and service",
      "reviewRating": {
        "@type": "Rating",
        "bestRating": "5",
        "worstRating": "1",
        "ratingValue": "5"
      }
    },
    {
      "@type": "Review",
      "author": "Vladlena",
      "datePublished": "2021-11-26",
      "name": "Exceptional service",
      "reviewBody": "The desks are of the highest quality and the service is exceptional. Less than 3 hours after making the purchase I was already using mine! I am MEGA pleased not only with the product and with the quality of the customer service, which is something very difficult to find. In addition to having a wide range of height with memory options to save the perfect graduation, there are different options of sizes, colors and even wheels to be able to rotate and move it with minimal effort, all this with a 5-year guarantee. 5 STARS!!! I recommend this company WITHOUT REPAIRS. The only downside is not having more rooms in the house to put more desks :) The best recommendation in a long time and definitely a chance to stay healthy while working.",
      "reviewRating": {
        "@type": "Rating",
        "bestRating": "5",
        "ratingValue": "5"
      }
    }
  ],
  "potentialAction": {
    "@type": "ReviewAction",
    "target": "https://g.page/r/CckxMghQ4Z1qEAg/review"
  },
  "areaServed": [
    {
      "@type": "GeoCircle",
      "geoMidpoint": {
        "@type": "GeoCoordinates",
        "latitude": "8.99437899550739",
        "longitude": "-79.50334275969475"
      },
      "geoRadius": "800000"
    }
  ],
  "makesOffer": [
    {
      "@type": "Offer",
      "priceSpecification": {
        "@type": "UnitPriceSpecification",
        "priceCurrency": "USD",
        "price": "350-800"
      },
      "itemOffered": {
        "@type": "Service",
        "name": "Standing Desks",
        "description": "We offer high quality standing desks at an affordable price with 5 year warranty."
      }
    },
    {
      "@type": "Offer",
      "priceSpecification": {
        "@type": "UnitPriceSpecification",
        "priceCurrency": "USD",
        "price": "150-700"
      },
      "itemOffered": {
        "@type": "Service",
        "name": "Office Chairs",
        "description": "We offer high quality ergonomic office chairs at an affordable price."
      }
    },
    {
      "@type": "Offer",
      "priceSpecification": {
        "@type": "UnitPriceSpecification",
        "priceCurrency": "USD",
        "price": "5-300"
      },
      "itemOffered": {
        "@type": "Service",
        "name": "Home office accessories",
        "description": "We have everything you need for your home office. Our list of products includes accessories for your electronic devices, products that can improve your productivity, health and more."
      }
    }
  ],
  "priceRange": "$",
  "image": [
    "https://ergonomicadesk.com/images/home/header-mobile.jpg",
    "https://ergonomicadesk.com/images/home/combinations-mobile.jpg"
  ],
  "sameAs": ["https://www.ergonomicadesk.com"],
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "09:00",
      "validFrom": "2021-12-26",
      "validThrough": "2023-12-26",
      "closes": "20:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": "Saturday",
      "opens": "9:00",
      "validFrom": "2021-12-26",
      "validThrough": "2023-12-26",
      "closes": "15:00"
    }
  ]
}

Product page

On individual product pages, you should implement structured data that specifically describes each product. This includes using the Product schema to detail things like the product name, description, pricing, availability, and reviews specific to that product.

{
  "@context": "https://schema.org/",
  "@type": "Product",
  "name": "PRODUCT_TITLE",
  "image": [
    "https://example.com/path/to/image.jpg"
  ],
  "description": "Detailed product description.",
  "sku": "PRODUCT_SKU",
  "mpn": "PRODUCT_MPN",
  "gtin": "PRODUCT_GTIN",
  "brand": {
    "@type": "Brand",
    "name": "Ergonomica Desk"
  },
  "offers": {
    "@type": "Offer",
    "url": "https://example.com/path/to/product",
    "price": "99.99",
    "priceCurrency": "USD",
    "priceValidUntil": "2024-12-31",
    "itemCondition": "https://schema.org/NewCondition",
    "availability": "https://schema.org/InStock",
    "seller": {
      "@type": "Organization",
      "name": "Ergonomica Desk"
    }
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.5",
    "reviewCount": "88"
  },
  "review": [{
    "@type": "Review",
    "author": {
      "@type": "Person",
      "name": "Customer Name"
    },
    "reviewRating": {
      "@type": "Rating",
      "ratingValue": "5",
      "bestRating": "5",
      "worstRating": "1"
    },
    "datePublished": "2023-01-01",
    "reviewBody": "Excellent product with high quality and great value."
  }]
}

Category/Subcategory Page

For category pages where multiple products are listed (like a list of all standing desks), you might use the ItemList schema to better describe the list of products presented. This helps search engines understand the structure of your site and the relationships between different pages and product types.

Contact and About Pages

Specific pages like your contact or about pages should have appropriate structured data that matches their content. For example, a ContactPage schema could be used on the contact page, potentially with embedded PostalAddress and ContactPoint information.

BreadCrumbs Component

{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [{
    "@type": "ListItem",
    "position": 1,
    "item": {
      "@id": "https://www.ergonomicadesk.com",
      "name": "Home"
    }
  },{
    "@type": "ListItem",
    "position": 2,
    "item": {
      "@id": "https://www.ergonomicadesk.com/category/desks",
      "name": "Desks"
    }
  }]
}
gkpty commented 1 month ago

Add Pages for errors: 404 - not found 500 and other generic errors

gkpty commented 1 month ago

Add Image metadata to all images

https://developers.google.com/search/docs/appearance/structured-data/image-license-metadata#iptc-photo-metadata https://imagesourcecontrol.com/blog/edit-iptc-metadata/