Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
242 changes: 155 additions & 87 deletions content/applications/websites/website/structure/seo.rst
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,33 @@ Optimize SEO`.
.. image:: seo/optimize-seo.png
:alt: Optimize SEO

Meta tags
---------
.. note::
If you change the title of a blog post or the name of a product, the link to the related webpage
is automatically updated. The old link still functions as Odoo creates a
:ref:`301 redirect <website/pages/URL-redirection>`, maintaining the SEO.

Keywords and Meta tags
----------------------

There are two types of keywords in SEO, which serve different purposes.

In-text keywords
~~~~~~~~~~~~~~~~

In-text keywords appear naturally throughout a page’s visible content (titles, headings, and body
text) and help search engines determine the topic and relevance of the page. These keywords have a
real impact on ranking. They cannot be edited in the :guilabel:`optimize SEO` pop-up.

.. important::
It is strongly recommended to only use one H1 title per page for SEO.

Meta tags are HTML elements that provide information about a webpage to search engines and website
visitors. They play a crucial role in SEO by helping search engines understand the content and
context of a webpage and attract visitors with appealing content. There are two types of meta tags
in Odoo:
Meta tags and meta keywords
~~~~~~~~~~~~~~~~~~~~~~~~~~~

**Meta tags** are HTML elements that provide information about a webpage to search engines and
website visitors. They play a crucial role in SEO by helping search engines understand the content
and context of a webpage and attract visitors with appealing content. They can be edited in the
:guilabel:`optimize SEO` pop-up. There are two types of meta tags in Odoo:

- :guilabel:`Title` tags specify a webpage's title and are displayed as a clickable link in search
engine results. They should be concise, descriptive, and relevant to the page's content. You can
Expand All @@ -50,36 +70,15 @@ in Odoo:
The :guilabel:`Preview` card displays how the title and description tags should appear in search
results. It also includes the URL of your page.

Keywords
--------

Keywords are one of the main elements of SEO. A website that is well optimized for search engines
speaks the same language as potential visitors, with keywords for SEO helping them to connect to
your site.

You can enter the keywords you consider essential in the :guilabel:`Keyword` field and click
:guilabel:`ADD` to see how they are used at different levels in your content (H1, H2, page title,
**Meta keywords** are placed in a hidden HTML tag `<meta name="keywords">`. Once used to describe a
page’s topic, this tag is now ignored by major search engines and has little or no impact on SEO.
To edit :guilabel:`Keywords`, enter the keywords you consider essential in this field and click
:guilabel:`Add` to see how they are used at different levels in your content (H1, H2, page title,
page description, page content) and the related searches in Google. The tool also suggests relevant
keywords to drive your web traffic. The more keywords are present on your webpage, the better.

.. tip::
It is strongly recommended to only use one H1 title per page for SEO.

Image for social share
----------------------

When you share your page on social media, your logo image is selected, but you can upload any other
image by clicking the upward arrow.

.. Note::
- The :guilabel:`Social Preview` card displays how the page's information would appear when
shared.
- If you change the title of a blog post or the name of a product, the changes apply
automatically everywhere on your website. The old link still functions when external websites
use a :ref:`301 redirect <website/pages/URL-redirection>`, maintaining the SEO link juice.
keywords.

Images
======
------

The size of images has a significant impact on page speed, which is an essential criterion for
search engines to optimize SEO ranking.
Expand All @@ -97,72 +96,65 @@ efficiently.
**To modify an image** from your website, select the image, click :guilabel:`Edit`, then go to the
:guilabel:`Customize` tab, and adapt the :guilabel:`Format` in the :guilabel:`Image` section.

.. image:: seo/image-format.png
:alt: automated image compression

.. important::
Alt tags are used to provide context to what an image is displaying, informing search engine
crawlers and allowing them to index an image correctly. Adding alt tags keywords in the
:guilabel:`Description` field is essential from an SEO perspective. This description is added to
the HTML code of your image, and it is shown when the image cannot be displayed.

Advanced features
=================

Structured data markup
----------------------
Image for social share
~~~~~~~~~~~~~~~~~~~~~~

Structured data markup is used to generate rich snippets in search engine results. It is a way for
websites to send structured data to search engine robots, helping them understand your content and
create well-presented search results.
When you share your page on social media, your website logo is selected by default, but you can
search the :doc:`Unsplash image library <../../../general/integrations/unsplash>` or upload any
other image by clicking the :icon:`fa-upload` :guilabel:`(upload)` button.

By default, Google supports many `rich snippets <https://developers.google.com/search/blog/2009/05/introducing-rich-snippets>`_
for content types, including Reviews, People, Products, Businesses, Events, and Organizations.
.. tip::
You can set a default social share image. Go to :menuselection:`Website --> Configuration --> Settings`
in the :guilabel:`SEO`section and tick the :guilabel:`Default Social Share Image` checkbox.

Microdata is a set of tags, introduced with HTML5, that help search engines better understand your
content and display it in a relevant way. Odoo implements microdata as defined in the schema.org
`specification <https://schema.org/docs/gs.html>`_ for events, eCommerce products, forum posts, and
contact addresses. This allows your product pages to be displayed in Google using extra information
like the price and rating of a product:
.. note::
- The :guilabel:`Social Preview` card displays how the page's information would appear when
shared.

.. image:: seo/data-markup.png
:alt: snippets in search engine results
Indexation
==========

robots.txt
----------
Website indexation is the process by which search engines, such as Google, discover, analyze, and
store information about a website's content in their database. Search engine bots, known as crawlers
or spiders, visit web pages and follow links to collect data, including text, images, and other
media. The purpose of indexation is to make a website's content searchable and discoverable to
users. Without being indexed, a website or a specific page on that site will not appear in search
engine results, regardless of how relevant or well-designed it is. Indexation is a fundamental step
in :abbr:`SEO (Search Engine Optimization)`, serving as the foundation for a website's visibility
and organic traffic.

A `robots.txt` file instructs search engine crawlers which parts of a website they are permitted to
access. Its primary purpose is to:
.. note::
**When you first create your website on Odoo, it will not appear directly in search engine
results.** Search engines need time to crawl and index it, which can take anywhere from a few
days to several weeks. For Google, you can use the :doc:`Search Console <../configuration/google_search_console>`
and request indexing for specific URLs, though this does not guarantee faster results.
If you have an existing website and are migrating, your previous website may still appear instead
of the new one during that timeframe.

- **Prevent overloading the website:** By guiding crawlers away from certain sections, robots.txt
helps manage server load.
- **Control access to resources and detailed descriptions:** It can prevent crawlers from accessing
media files (images, videos), CSS stylesheets, and JavaScript files, and from reading the content
(text) of specific pages.
SEO impact when migrating your existing website to Odoo
-------------------------------------------------------

When indexing your website, search engines first look at the robots.txt file. Odoo automatically
creates one robot.txt file available on `mydatabase.odoo.com/robots.txt`.
In most cases, migrating to Odoo will not negatively impact your SEO. While no platform can
guarantee that rankings will remain unchanged, follow these best practices to significantly reduce
the risk.

.. note::
Reputable bots adhere to robots.txt; others may require blocking via
:ref:`Cloudflare <domain-name/naked/cloudflare>` on your custom domain.
- Keep your existing content.

Edit robots.txt
~~~~~~~~~~~~~~~
- Implement :ref:`redirects <website/pages/URL-redirection>` from old URLs to their new counterparts.

By editing a robots.txt file, you can control which site pages are accessible to search engine
crawlers. To add custom instructions to the file, go to :menuselection:`Website --> Configuration
--> Settings`, scroll down to the :guilabel:`SEO` section, and click :guilabel:`Edit robots.txt`.
- Monitor traffic and indexation to make sure that everything is going well, using :doc:`../configuration/google_search_console`.

.. example::
If you do not want robots to crawl the `/about-us` page of your site, you can edit the
robots.txt file to add `Disallow: /about-us`.
By doing this, you help search engines reindex your site and maintain your visibility in search
results.

.. important::
While `robots.txt` prevents content from being crawled, **it does not guarantee that a page
will not be indexed**. A page can still appear in search results if it is linked to from other
crawled pages (indexed by "reference"). Google generally does not recommend using robots.txt to
block webpages that you wish to keep out of search results entirely.
.. note::
It is normal to experience a traffic decrease in the first days.

Prevent a page from being indexed
---------------------------------
Expand Down Expand Up @@ -191,12 +183,30 @@ methods:
- :doc:`../configuration/google_search_console`
- :doc:`pages`

Prevent a website from being indexed
------------------------------------

To prevent a website from appearing in search engine results, go to
:menuselection:`Configuration --> Settings`, then in the :guilabel:`Website Info` section, add a
random value in the :guilabel:`Domain` field. Doing so automatically inserts the following tag into
the page source:

.. code-block:: html

<meta name="robots" content="noindex"/>

This tag instructs search engines not to index the site. After applying the change, it may take
several days or weeks for search engines to update their results and remove the website.

.. example::
This can be used to prevent websites from test databases from appearing in search results.

Sitemap
-------
=======

The sitemap points out website pages and their relation to each other to search engine robots. Odoo
generates a `/sitemap.xml` file, including all URLs. For performance reasons, this file is cached
and updated every 12 hours.
The sitemap points out website pages and their relation to each other to search engine crawlers.
Odoo generates a `/sitemap.xml` file, including all URLs. For performance reasons, this file is
cached and updated every 12 hours.

.. note::
If your website has a lot of pages, Odoo automatically creates a Sitemap Index file, respecting
Expand All @@ -214,11 +224,69 @@ Every sitemap entry has three attributes that are computed automatically:
a static page is defined by its priority field, which is normalized (16 is the default).

.. tip::
To prevent pages from appearing in a sitemap, go to :menuselection:`Site --> Properties`, click
the :guilabel:`Publish` tab, and turn off the :guilabel:`Indexed` feature.
To prevent pages from appearing in a sitemap, go to :menuselection:`Site --> Properties`, and
toggle off the :guilabel:`Indexed` feature.

.. image:: seo/page-properties.png
:alt: disabling the “Indexed” checkbox
:alt: toggle off the “Indexed” field

robots.txt
==========

A `robots.txt` file instructs search engine crawlers which parts of a website they are permitted to
access. Its primary purpose is to:

- **Prevent overloading the website:** By guiding crawlers away from certain sections, robots.txt
helps manage server load.
- **Control access to resources and detailed descriptions:** It can prevent crawlers from accessing
media files (images, videos), CSS stylesheets, and JavaScript files, and from reading the content
(text) of specific pages.

When indexing your website, search engines first look at the robots.txt file. Odoo automatically
creates one robot.txt file available on `mydatabase.odoo.com/robots.txt`.

.. note::
Reputable bots adhere to robots.txt; others may require blocking via
:ref:`Cloudflare <domain-name/naked/cloudflare>` on your custom domain.

Edit robots.txt
---------------

By editing a robots.txt file, you can control which site pages are accessible to search engine
crawlers. To add custom instructions to the file, go to :menuselection:`Website --> Configuration
--> Settings`, scroll down to the :guilabel:`SEO` section, and click :guilabel:`Edit robots.txt`.

.. example::
If you do not want robots to crawl the `/about-us` page of your site, you can edit the
robots.txt file to add `Disallow: /about-us`.

.. important::
While `robots.txt` prevents content from being crawled, **it does not guarantee that a page
will not be indexed**. A page can still appear in search results if it is linked to from other
crawled pages (indexed by "reference"). Google generally does not recommend using robots.txt to
block webpages that you wish to keep out of search results entirely.

Advanced features
=================

Structured data markup
----------------------

Structured data markup is used to generate rich snippets in search engine results. It is a way for
websites to send structured data to search engine crawlers, helping them understand your content and
create well-presented search results.

By default, Google supports many `rich snippets <https://developers.google.com/search/blog/2009/05/introducing-rich-snippets>`_
for content types, including Reviews, People, Products, Businesses, Events, and Organizations.

Microdata is a set of tags, introduced with HTML5, that help search engines better understand your
content and display it in a relevant way. Odoo implements microdata as defined in the schema.org
`specification <https://schema.org/docs/gs.html>`_ for events, eCommerce products, forum posts, and
contact addresses. This allows your product pages to be displayed in Google using extra information
like the price and rating of a product:

.. image:: seo/rich-snippet.png
:alt: snippets in search engine results

Hreflang HTML tags
------------------
Expand Down
Binary file not shown.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.