How to improve Search Engine Optimisation (SEO) in Odoo?
Odoo does a really great job out of the box already as you can read in the How to do Search Engine Optimisation (SEO) in Odoo documentation page.
However, there are still some things missing I think ...
First e-commerce category in product page ...
The URL of a product page is /shop/product-name-id by default while there is some really valuable info in the name of the e-commerce category to which it is assigned. It mostly says a lot about what the product is about. It would be better to have /shop/(first-)ecommerce-category/product-name-id.
In this Odoo install I added the category in the url like /shop/(first-)ecommerce-category-product-name-id by using the free website_seo_url_product addon and adding the category in the create and write method of the product model.
Breadcrumbs are very important to SEO but also to improve the usability of your site/shop. When you select a product from the shop page, the e-commerce category will only be in the breadcrumb when you first filtered on that category. It should always be there. In this Odoo install, I fixed this.
Like in the url, the first e-commerce category should be present. I fixed this by overruling the _default_website_meta method of the product model.
Rich snippets or schema.org
Odoo adds schema.org information to the pages but you should always check its validity. Odoo does not use the JSON-LD format by default which is the preferred format since it's independent of the HTML code. For this site, I changed the schema markup of the products to FAQPages because I use the shop as it was a FAQ.