0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-03-11 02:12:21 -05:00

Removed change frequency and priority fields from sitemap generator (#9771)

closes #9765

- Google says that change frequency and priority are not important when search engines crawl through pages. Therefore, these two properties are unimportant and removed from Ghost. Reference: https://www.seroundtable.com/google-priority-change-frequency-xml-sitemap-20273.html
- Credits to @damanm24
This commit is contained in:
Daman Mulye 2018-09-24 12:16:31 -05:00 committed by Katharina Irrgang
parent e3234bce6c
commit 214d682ea3
7 changed files with 7 additions and 92 deletions

View file

@ -3,8 +3,7 @@ const _ = require('lodash'),
moment = require('moment'),
path = require('path'),
urlService = require('../../../services/url'),
localUtils = require('./utils'),
CHANGE_FREQ = 'weekly';
localUtils = require('./utils');
// Sitemap specific xml namespace declarations that should not change
const XMLNS_DECLS = {
@ -65,10 +64,6 @@ class BaseSiteMapGenerator {
this.lastModified = Date.now();
}
getPriorityForDatum() {
return 1.0;
}
getLastModifiedForDatum(datum) {
return datum.updated_at || datum.published_at || datum.created_at;
}
@ -82,15 +77,12 @@ class BaseSiteMapGenerator {
}
createUrlNodeFromDatum(url, datum) {
const priority = this.getPriorityForDatum(datum);
let node, imgNode;
node = {
url: [
{loc: url},
{lastmod: moment(this.getLastModifiedForDatum(datum)).toISOString()},
{changefreq: CHANGE_FREQ},
{priority: priority}
{lastmod: moment(this.getLastModifiedForDatum(datum)).toISOString()}
]
};

View file

@ -9,14 +9,6 @@ class PageMapGenerator extends BaseMapGenerator {
_.extend(this, opts);
}
/**
* @TODO:
* We could influence this with priority or meta information
*/
getPriorityForDatum(page) {
return page && page.staticRoute ? 1.0 : 0.8;
}
}
module.exports = PageMapGenerator;

View file

@ -9,11 +9,6 @@ class PostMapGenerator extends BaseMapGenerator {
_.extend(this, opts);
}
getPriorityForDatum(post) {
// give a slightly higher priority to featured posts
return post.featured ? 0.9 : 0.8;
}
}
module.exports = PostMapGenerator;

View file

@ -8,14 +8,6 @@ class TagsMapGenerator extends BaseMapGenerator {
this.name = 'tags';
_.extend(this, opts);
}
/**
* @TODO:
* We could influence this with priority or meta information
*/
getPriorityForDatum() {
return 0.6;
}
}
module.exports = TagsMapGenerator;

View file

@ -10,14 +10,6 @@ class UserMapGenerator extends BaseMapGenerator {
_.extend(this, opts);
}
/**
* @TODO:
* We could influence this with priority or meta information
*/
getPriorityForDatum() {
return 0.6;
}
validateImageUrl(imageUrl) {
return imageUrl && validator.isURL(imageUrl, {protocols: ['http', 'https'], require_protocol: true});
}

View file

@ -100,9 +100,7 @@
<thead>
<tr>
<th width="70%">URL (<xsl:value-of select="count(sitemap:urlset/sitemap:url)"/> total)</th>
<th title="Priority" width="5%">Prio</th>
<th width="5%">Images</th>
<th title="Change Frequency" width="5%">Ch. Freq.</th>
<th width="15%">Images</th>
<th title="Last Modification Time" width="15%">Last Modified</th>
</tr>
</thead>
@ -119,15 +117,9 @@
<xsl:value-of select="sitemap:loc"/>
</a>
</td>
<td>
<xsl:value-of select="concat(sitemap:priority*100,'%')"/>
</td>
<td>
<xsl:value-of select="count(image:image)"/>
</td>
<td>
<xsl:value-of select="concat(translate(substring(sitemap:changefreq, 1, 1),concat($lower, $upper),concat($upper, $lower)),substring(sitemap:changefreq, 2))"/>
</td>
<td>
<xsl:value-of select="concat(substring(sitemap:lastmod,0,11),concat(' ', substring(sitemap:lastmod,12,5)))"/>
</td>

View file

@ -21,9 +21,9 @@ should.Assertion.add('ValidUrlNode', function (options) {
urlNode.url.should.be.an.Array();
if (options.withImage) {
urlNode.url.should.have.lengthOf(5);
urlNode.url.should.have.lengthOf(3);
} else {
urlNode.url.should.have.lengthOf(4);
urlNode.url.should.have.lengthOf(2);
}
/**
@ -31,8 +31,6 @@ should.Assertion.add('ValidUrlNode', function (options) {
* { url:
* [ { loc: 'http://127.0.0.1:2369/author/' },
* { lastmod: '2014-12-22T11:54:00.100Z' },
* { changefreq: 'weekly' },
* { priority: 0.6 },
* { 'image:image': [
* { 'image:loc': 'post-100.jpg' },
* { 'image:caption': 'post-100.jpg' }
@ -42,9 +40,9 @@ should.Assertion.add('ValidUrlNode', function (options) {
flatNode = _.extend.apply(_, urlNode.url);
if (options.withImage) {
flatNode.should.be.an.Object().with.keys('loc', 'lastmod', 'changefreq', 'priority', 'image:image');
flatNode.should.be.an.Object().with.keys('loc', 'lastmod', 'image:image');
} else {
flatNode.should.be.an.Object().with.keys('loc', 'lastmod', 'changefreq', 'priority');
flatNode.should.be.an.Object().with.keys('loc', 'lastmod');
}
});
@ -84,20 +82,6 @@ describe('Generators', function () {
generator = new PostGenerator();
});
describe('fn: getPriorityForDatum', function () {
it('uses 0.9 priority for featured posts', function () {
generator.getPriorityForDatum({
featured: true
}).should.equal(0.9);
});
it('uses 0.8 priority for all other (non-featured) posts', function () {
generator.getPriorityForDatum({
featured: false
}).should.equal(0.8);
});
});
describe('fn: createNodeFromDatum', function () {
it('adds an image:image element if post has a cover image', function () {
const urlNode = generator.createUrlNodeFromDatum('https://myblog.com/test/', testUtils.DataGenerator.forKnex.createPost({
@ -221,30 +205,12 @@ describe('Generators', function () {
generator.siteMapContent.match(/<loc>/g).length.should.eql(3);
});
});
describe('fn: getPriorityForDatum', function () {
it('uses 1 priority for static routes', function () {
generator.getPriorityForDatum({
staticRoute: true
}).should.equal(1);
});
it('uses 0.8 priority for static pages or collection indexes', function () {
generator.getPriorityForDatum({}).should.equal(0.8);
});
});
});
describe('TagGenerator', function () {
beforeEach(function () {
generator = new TagGenerator();
});
describe('fn: getPriorityForDatum', function () {
it('uses 0.6 priority for all tags', function () {
generator.getPriorityForDatum({}).should.equal(0.6);
});
});
});
describe('UserGenerator', function () {
@ -252,12 +218,6 @@ describe('Generators', function () {
generator = new UserGenerator();
});
describe('fn: getPriorityForDatum', function () {
it('uses 0.6 priority for author links', function () {
generator.getPriorityForDatum({}).should.equal(0.6);
});
});
describe('fn: validateImageUrl', function () {
it('image url is localhost', function () {
generator.validateImageUrl('http://localhost:2368/content/images/1.jpg').should.be.true();