CaptainCodeman / app-metadata

Manage page meta tags for SEO
http://captaincodeman.github.io/app-metadata/
31 stars 6 forks source link
meta meta-tags metadata polymer seo webcomponents

Published on Vaadin  Directory Stars on vaadin.com/directory

Demo and API docs

<app-metadata>

app-metadata is a singleton element used to manage page meta-data for Search Engine Optimization (SEO). It will add and remove <meta> elements to the page <head> section based on the JSON object passed to it.

In order to make use of the meta data manager, it is best to request it's availability in the app element.

Example:

Polymer({
  is: 'my-app',
  attached: function() {
    // this will create the singleton element if it has not been created yet
    Polymer.AppMetadata.requestAvailability();
  }
});

After the app-metadata has been made available, elements can update the meta by firing bubbling app-metadata events.

Example:

this.fire('app-metadata', {
  title: 'This is the page title',
  description: 'This is the page description',
  keywords: 'these,are,keywords'
});

Alternatively, create an instance of the app-metadata element and set it's data property.

Example:

var meta = document.createElement('app-metadata');
meta.data = {
  title: 'This is the page title',
  description: 'This is the page description',
  keywords: 'these,are,keywords'
};

Demonstration

To demonstrate this approach does work I've created a very simple test site using the polymer-cli and added some content with the meta html headers set for each view using this <app-metadata> element.

Here's the meta data set for the main view:

this.fire('app-metadata', {
    title: 'Why use Agile Project Management?',
    description: 'How Agile Project Management Methodologies help compared to the old Waterfall approach to Project Management',
    keywords: 'scrum, scrum master, agile, training, certification, professional, certified, CSM, PSM'
});

This view has been successfully indexed by Google and appears correctly in the search results:

Example