Git Product home page Git Product logo

seo.sitemaps's Introduction

SEO.Sitemaps

Platform Platform

Search engine sitemaps.xml for EPiServer CMS 11 and Commerce 13

Description

This tool allows you to generate xml sitemaps for search engines to better index your EPiServer sites. Although there are several EPiServer sitemap tools available like SearchEngineSitemaps and EPiSiteMap which have inspired this project this tool gives you some additional specific features.

Features

  • sitemap generation as a scheduled job
  • filtering pages by virtual directories
  • ability to include pages that are in a different branch than the one of the start page
  • ability to generate sitemaps for mobile pages
  • it also supports multi-site and multi-language environments

See the editor guide for more information.

Latest release

The latest version is available on the EPiServer NuGet feed. You can find it by searching the term Geta.SEO.Sitemaps.

Download

From nuget.episerver.com feed.

How to get started?

  1. Install Sitemap plugin via NuGet in Visual Studio. Ensure that you also install the required dependencies.
  Install-Package Geta.SEO.Sitemaps
  Install-Package Geta.SEO.Sitemaps.Commerce
  1. Rebuild your solution.
  2. Configure sitemap settings and schedule the sitemap generation process. Configuration available at CMS -> Admin Mode -> Search engine sitemap settings. See the editor guide

Enabling multi language support

Add this to your web.config file:

<configuration>
<configSections>
<section name="Geta.SEO.Sitemaps" type="Geta.SEO.Sitemaps.Configuration.SitemapConfigurationSection, Geta.SEO.Sitemaps"/>
</configSections>

  <Geta.SEO.Sitemaps>
    <settings enableLanguageDropDownInAdmin="true" />
  </Geta.SEO.Sitemaps>
</configuration>

Dynamic property for specific pages

You can specify page specific sitemap properties (like change frequency, priority or include/disinclude the specific page in any sitemap) for each EPiServer page by defining a dynamic property with type SEOSitemaps (and the same name): Create dynamic property

and specify values for the dynamic property: Set value for the dynamic property

Adding Sitemap Properties to all content pages

Credits to jarihaa for contributing this.

[UIHint("SeoSitemap")]
[BackingType(typeof(PropertySEOSitemaps))]
public virtual string SEOSitemaps { get; set; }

Set default value

public override void SetDefaultValues(ContentType contentType)
{
    base.SetDefaultValues(contentType);
    var sitemap = new PropertySEOSitemaps
    {
        Enabled = false
    };
    sitemap.Serialize();
    this.SEOSitemaps = sitemap.ToString();
}

Ignore page types

Implement the IExcludeFromSitemap interface to ignore page types in the sitemap.

public class OrderConfirmationPage : PageData, IExcludeFromSitemap

Exclude content

If you need more control to exclude content from the sitemap you can make your own implementation of IContentFilter. Make sure to inherit from ContentFilter and call the ShouldExcludeContent method of the base class.

public class SiteContentFilter : ContentFilter
    {
        public override bool ShouldExcludeContent(IContent content)
        {
            if (base.ShouldExcludeContent(content))
            {
                return true;
            }

            // Custom logic here

            return false;
        }
    }

Register in your DI container.

services.AddTransient<IContentFilter, SiteContentFilter>();

Limitations

  • Each sitemap will contain max 50k entries (according to sitemaps.org protocol) so if the site in which you are using this plugin contains more active pages then you should split them over multiple sitemaps (by specifying a different root page or include/avoid paths for each).

Local development setup

See description in shared repository regarding how to setup local development environment.

Docker hostnames

Instead of using the static IP addresses the following hostnames can be used out-of-the-box.

QuickSilver login

Use the default [email protected] user for QuickSilver, see Installation.

Contributing

See CONTRIBUTING.md

Package maintainer

https://github.com/frederikvig

Changelog

Changelog

seo.sitemaps's People

Contributors

frederikvig avatar patkleef avatar marisks avatar mattisolsson avatar fatso83 avatar ajuris avatar brianweet avatar imgbotapp avatar jry avatar bbsdddougla avatar ken-tzu avatar marijorg avatar sayeedchoudhury avatar garkavy avatar lanorkin avatar valdisiljuconoks avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.