in WordPress

Add Schema.org support in WordPress

Web pages retain information to be read and understood by humans. But if it’s obvious to you how to find some basic information on the website you’re browsing such as the home address of the company or the price of a product, this task is a bit more complicated for search engines, web crawlers and browsers.

Search engines need a semantically understandable structure to extract and process data from a web page and use it to provide a rich browsing experience for their users. However, HTML tags were designed for text formatting, not to retain semantic data, even if some tags such as <title> and <h1> can do a part of the job. This is why Google, Bing and Yahoo! developed Schema.org, to “create and support a common set of schemas for structured data markup on web pages”.

In the short term, even if it’s still under development, Schema.org metadata is very important for the SEO and the page rank of your website. Some metadata such as the product rankings, breadcrumb and video thumbnails show up on the search engine results which dramatically increases your web page’s visibility to the user. Search engines are likely to show search results including rich metadata prior to standard results.

Rich content search results

In the long term, Schema.org metadata belong to the semantic web, making your website a brick of the Web 3.0 and a big data source for a bunch of services such as business directories and product comparators that will participate in increasing your website visibility and popularity.

Schema.org specification uses HTML5’s microdata to add metadata for search engines inside web pages.

For example, here is a movie description without metadata, only text and formatting:

Now, here is the same snippet including Schema.org metadata:

The web page now handles multiple metadata items, even embeded ones inside the page header and its body.

Unfortunately, WordPress doesn’t natively support Schema.org metadata. Some themes provide basic Schema.org support but the implementation is not always consistent to the specs. There are some plugins too but none of them is simple to use since you have to manually set the metadata for every post blog and page.

This is why I wrote my own plugin to seamlessly include basic Schema.org metadata inside the page header using WordPress’ data such as the content type, title, description and featured image. The plugin also provide support for a bunch of additional properties since they’re not made of embedded items. However, embedded items such as product reviews or local business addresses can be manually coded within the HTML code of your post blog or page following Schema.org documentation.

The plugin also adds OpenGraph metatags for sharing on social networks such as Facebook and Twitter.

EDIT (2015-04-14): The new version 1.1 now also supports Twitter site cards!

You can get the plugin and the full documentation in WordPress’ Plugin Directory : https://wordpress.org/plugins/seamless-schema/

  • Allo!

    1) Je trouve que la liste des items supplémentaires fait de ton plug-in l’un des plus complets sur le marché WP.

    2) Un seul petit problème les items de description n’apparaissent pas. Voir l’image ci-jointe.

    3) Allez-vous offrir une version pro dans le futur?

    Merci.

    • Nicolas Bernier

      Bonjour

      La description est extraite du champ standard “Extrait” de WordPress, c’est pour cela que sur le champ description est grisé dans la liste des éléments, de même que pour les autres champs correspondant à des valeurs standards de WP.

      Je ne prévois pas de faire de version pro mais si vous avez des suggestions d’amélioration, elles sont les bienvenues !

      • Merci d’avoir répondu.

        1) La description n’apparaît pas comme indiqué par l’image jointe.

        2) Est-ce que WP propose de toutes les valeurs contenus dans votre plug-in?

        3) Pourquoi ne pas faire un plug-in où c’est l’usager qui ajouterait les valeurs?

        • Nicolas Bernier

          Les valeurs par défaut gérées par WP apparaissent en grisé dans la liste des valeurs disponibles. Pour ajouter une autre valeur (qui n’est pas gérée en standard), il suffit de sélectionner le champ correspondant dans la liste, puis de cliquer sur le + à côté de la liste pour insérer le nouveau champ et y saisir la valeur.

        • Nicolas Bernier

          Les valeurs par défaut gérées par WP apparaissent en grisé dans la liste des valeurs disponibles. Pour ajouter une autre valeur (qui n’est pas gérée en standard), ou pour définir une valeur spécifique pour un champ standard WP (en grisé donc), il suffit de sélectionner le champ correspondant dans la liste, puis de cliquer sur le + à côté de la liste pour insérer le nouveau champ et y saisir la valeur.

          • J’Ai compris. Toutefois, lorsque je vais sur une page, le module montre bien certains items en gris, mais il ne me les montre pas comme votre image le fait. Voir l’image ci-jointe

            De plus, lorsque je vais sur l’outil de Google, il indique qu’il n’y a aucune données structurées. Vois la 2e image.

            Je suis désolé de vous importuner, mais j’aimerais tellement réussir avec votre plug-in. 🙂

          • Nicolas Bernier

            Il semble bien activé pourtant, les metadata apparaissent bien dans le tag HTML mais pas dans le head. Il y a peut-être un autre plugin ou un thème qui interfère avec.

          • Voici la liste des plug-ins. Décelez-vous un suspect? 🙂

            AddToAny: Share/Bookmark/Email Buttons

            Akismet

            All In One SEO Pack

            Article-Rapide

            Contact Form 7

            Duplicate Post

            Google Analytics for WordPress

            Google XML Sitemaps

            Members Only

            PC Robots.txt

            Redirection

            Safe Redirect Manager

            Seamless Schema

            SEO Friendly Images

            SI CAPTCHA Anti-Spam

            Storify

            TinyMCE Advanced

            UpdraftPlus – Backup/Restore

            wp-Table

            WP-Testimonials

            WPSignalTracker

            Yet Another Related Posts Plugin

          • Matt

            This looks like some great information on the plug-in. Any chance you could translate the important parts to english?

  • This is very much related to https://wordpress.org/plugins/embed-articles/ perhaps you could integrate both?

    • Nicolas Bernier

      Sort of, but without the syndication. My goal with this plugin is to keep it simple and provide maximum control without making it heavier with extra functionalities.

  • Downloaded and started using your plugin a few days ago and love it! I’ve tried others but, seamless schema is truly the best. Is it possible to add more ‘Content Types’ manually? For example, Local Business has a more specific ‘Type’ such as ProfessionalService or HomeAndConstructionBusiness. Let me know…thanks so much!

  • Is it possible to add more ‘Content Types’ manually? For example, Local Business has a more specific ‘Type’ such as ProfessionalService or HomeAndConstructionBusiness. Let me know…thanks so much!

    • Nicolas Bernier

      Hi
      Actually, all Schema.org types are supported by the plugin as the structure is extracted directly from the schema.org website but only the ones that are actually used by search engines are displayed for use. The list of available types is hard coded but it is planned to come as a configuration option for a future release.

  • mario millions

    How do you add an acutal “rating”?

    Seems as if ratingValue is missing. I’m unable to assign a rating value to a post. Is there a different field I should use since ratingValue isn’t an option?

    Essentially i’m trying to rate a post 4 out of 5 stars.

    There isnt an option to select ratingValue

    • Nicolas Bernier

      The plugin interface only allows to add basic/canonical data, not complex values such as “Rating” or “aggregateRating” which “RatingValue” is part of.

      You have to add your rating manually in the HTML markup of your article. Have a look at the doc to see some examples : https://schema.org/Rating