431 votes

# SEO Metadata for Umbraco

SEO Metadata for Umbraco is a property editor that is used for maintaining common SEO-related information for a page. It gives users a visual representation of how the page would look on a Google search result page and hints to when the title and description is too long, with optional validation.

## Recent Changes

0.2.1

- Fixed some issues with Umbraco package
- Resolved issue with PropertyEditorValueConverter returning null if page is saved when control is unused

0.2.0

- Fixed issue with custom URL Names not working if SeoMetadata.NoSegmentProvider appSetting wasn't present
- Added new option to set the developer name

0.1.0

- Initial release

## Installation

Install the latest version through NuGet.

    Install-Package Epiphany.SeoMetadata

After installing via Nuget, create a property editor of type SEO Metadata and include on your page. We recommend the property name "metadata" to work with all features out-of-the-box (see the URL Name section for configuration options)

Alternatively, if you want to hack around with the project, you can fork, checkout and develop locally. See the Developing SEO Metadata section.

## Configuration

Allow long titles
  If ticked, long titles will not invalidate the property editor.
Allow long descriptions
  If ticked, long descriptions will not invalidate the property editor.
SERP Title Length
  The maximum length of a title. This isn't an exact number, so your mileage may vary. The default value of 65 is a conservative value that should work for most cases. Google will truncate overly long titles with ellipses (…)
SERP Description Length
  The maximum length of a title. This isn't an exact number, so your mileage may vary. The default value of 150 is a conservative value that should work for most cases. Google will truncate overly long descriptions with ellipses (…)

## Usage

The SEO Metadata is stored as JSON, so can be used dynamically.

    <pre>
    Title: @CurrentPage.Metadata.Title
    Description: @CurrentPage.Metadata.Description
    Do Not Index?: @CurrentPage.Metadata.NoIndex
    URL Name: @CurrentPage.Metadata.UrlName
    </pre>

A Property Editor Value Converter is installed for getting a strongly-typed SeoMetadata instance.

    @{
    var metadata = Model.Content.GetPropertyValue<Epiphany.SeoMetadata.SeoMetadata>("metadata");
    }

    <pre>
    Title: @metadata.Title
    Description: @metadata.Description
    Do Not Index?: @metadata.NoIndex
    URL Name: @metadata.UrlName
    </pre>

The following snippet can be used for using the Do Not Index checkbox.

    @if (Model.Content.GetPropertyValue<Epiphany.SeoMetadata.SeoMetadata>("metadata").NoIndex)
    {
    <meta name="robots" content="noindex">
    }

If you're a fan of ZpqrtBnk Umbraco Models Builder, you can add something like the following in your partial class

    [ImplementPropertyType("metadata")]
    public virtual SeoMetadata Metadata
    {
    get { return this.GetPropertyValue<SeoMetadata>("metadata"); }
    }

### Using the URL Name

SEO Metadata also installs a UrlSegmentProvider to ensure the URL Name property works as intended. By default, it expects your SEO Metadata property to be called metadata. You can configure this property by adding the following setting to your appSettings in your web.config

    <add key="SeoMetadata.PropertyName" value="seoMetadata" />

If you want to disable the SeoMetadataUrlSegmentProvider altogether (to add manually, or implement yourself), you can set the following appSetting to disable it.

    <add key="SeoMetadata.NoSegmentProvider" value="true" />

## Developing SEO Metadata

### Checkout the project

    git clone https://github.com/ryanlewis/seo-metadata.git
    cd seo-metadata

### Install Dependencies

    npm install -g grunt-cli
    npm install

### Build

    build.cmd
    grunt

If you wish to build it to a local Umbraco directory, use the target option.

    grunt --target=c:\dev\path-to-umbraco-root-dir

# Umbraco Forms

Creating forms is as easy as editing content in Umbraco and it's a seamlessly integrated experience. You can select from a range of well known input types, select validation rules, and even conditions - for instance "only show this field if the visitor answered 'Yes'". All through an intuitive and robust user interface.

    [
        {
          "label": "Class",
          "description": "Set a css class",
          "key": "class",
          "view": "textstring",
          "modifier": "col-sm-{0}",
          "applyTo": "row|cell"
        }
    ]

### Intuitive

Creating forms is as easy as editing content in Umbraco and it's a seamlessly integrated experience. You can select from a range of well known input types, select validation rules, and even conditions - for instance "only show this field if the visitor answered 'Yes'". All through an intuitive and robust user interface.

- Access Database
- BlogML
- CSV
- Excel File
- RSS Feed
- SQL Server
- Umbraco
- WordPress
- XML

### Workflows

While it's nice to gather data, it's even better when it's put to use. That's why Umbraco Forms lets you setup advanced workflows that can send e-mails, update webservices, save in CRM systems, and much more.

Or you can purchase the commercial PRO version which can import more than 500 records, maintain parent/child structure, update content, can import content related media ,can save your import steps for later use and even schedule imports for a certain time and day.

### Reporting

Once your visitors have filled out forms, you can easily browse and search through the data using the built-in reporting tool or download the data for more advanced processing in Microsoft Excel or Google Spreadsheets.

### Screenshots

- Package Files
- Upgrade Files
- Docs
- Archived Files

### Overskrift

- Courier_2.7.5.1.90.v6.zip
  uploaded 3/25/2013 by Per Ploug
  v710, v700 .NET Version: 4.0 Full Trust Required
- Courier_2.7.5.1.90.v6.zip
  uploaded 3/25/2013 by Per Ploug
  v710, v700 .NET Version: 4.0 Full Trust Required

### Overskrift

- forms bla bla
  uploaded 3/25/2013 by Per Ploug
  v710, v700 .NET Version: 4.0 Full Trust Required
- Courier_2.7.5.1.90.v6.zip
  uploaded 3/25/2013 by Per Ploug
  v710, v700 .NET Version: 4.0 Full Trust Required

### Overskrift

- Courier_2.7.5.1.90.v6.zip
  uploaded 3/25/2013 by Per Ploug
  v710, v700 .NET Version: 4.0 Full Trust Required
- Courier_2.7.5.1.90.v6.zip
  uploaded 3/25/2013 by Per Ploug
  v710, v700 .NET Version: 4.0 Full Trust Required

### Overskrift

- forms bla bla
  uploaded 3/25/2013 by Per Ploug
  v710, v700 .NET Version: 4.0 Full Trust Required
- Courier_2.7.5.1.90.v6.zip
  uploaded 3/25/2013 by Per Ploug
  v710, v700 .NET Version: 4.0 Full Trust Required

### Activity

### Allow user to change site design

Reply by Dennis Aaen 7 minutes ago

### Allow user to change site design

Reply by Dennis Aaen 7 minutes ago

### Allow user to change site design

Reply by Dennis Aaen 7 minutes ago

Go to forum →