librelist archives

« back to archive

Nesta SEO bundle

Nesta SEO bundle

From:
James Abbott
Date:
2014-04-29 @ 19:04
Hello list,

in the wake of the recent Nesta release (and because I'm working on a new
version of my site) I thought I'd share with you three new proposals for
Nesta.

This is something I'm already working on within the scope of my site, but
if anyone has comments I (and Graham) would like to hear them. Here's the
doc with the proposal:


https://docs.google.com/document/d/1bNAO373KEb5Spf55WJ9kv7NEWcLzb3HZiS91hDVjEYU/edit#heading=h.e3oocnar5eg

Cheers,
James

Google authorship and schema.org (was [nesta] Nesta SEO bundle)

From:
Graham Ashton
Date:
2014-05-02 @ 10:41
On 29 Apr 2014, at 20:04, James Abbott <abbottjam@gmail.com> wrote:

> 
https://docs.google.com/document/d/1bNAO373KEb5Spf55WJ9kv7NEWcLzb3HZiS91hDVjEYU/edit#heading=h.e3oocnar5eg

This page that James linked to explains the idea behind schema.org fairly quickly:


http://www.seoskeptic.com/schema-org-improves-value-with-google-in-depth-articles-seo-skeptic/

The idea is that we’d add extra attributes to HTML tags to give Google 
clues as to what’s in the tags.

James - have you an approach in mind other than just modifying the 
templates themselves? Wouldn’t every site need to code this up separately,
in which case the best bet would be adding it to the default theme and 
then writing instructions how people can benefit when writing their own 
templates?

Google authorship strikes me as a good idea. I suspect a specific plugin 
would be the best way forward, but I haven’t totally clocked how it works.
I’m guessing each page needs a meta tag identifying the author, which 
would be another driver for allowing plugins to modify HTML after Nesta 
has finished rendering the page.

Re: Google authorship and schema.org (was [nesta] Nesta SEO bundle)

From:
James Abbott
Date:
2014-05-03 @ 17:44
>
> James - have you an approach in mind other than just modifying the
> templates themselves? Wouldn’t every site need to code this up separately,
> in which case the best bet would be adding it to the default theme and then
> writing instructions how people can benefit when writing their own
> templates?


It seems that the site-specific attributes are quite limited as compared to
the generic markup. There are things like "author", "intended audience",
plus maybe a couple others. A limited set of per-site metadata.

I'm in the process of figuring out which attributes to implement for my own
site, so I'm trying to generalize before having solved a specific task
here.

However what makes most sense at this point is Nesta pulling out
site-specific metadata out of an enhanced config.yml and then serving
Schema-enhanced Haml templates injected with that metadata.

The ability to switch between different types of templates (ordinary
BlogPosting vs TechArticle, for instance — so templates representing
genres) looks attractive to me.

Google authorship strikes me as a good idea. I suspect a specific plugin
> would be the best way forward, but I haven’t totally clocked how it works.
> I’m guessing each page needs a meta tag identifying the author, which would
> be another driver for allowing plugins to modify HTML after Nesta has
> finished rendering the page.
>

Authorship is basically a 3-way linking scheme between the author's bio
page on the Nesta website, the author's Google+ profile page, and each blog
page on the Nesta site. Details here (see "The 3-link method"):


http://searchengineland.com/the-definitive-guide-to-google-authorship-markup-123218

I'm thinking that an extended version of config.yml could hold the URL for
the author's Google+ page. Everything else can go into the view templates,
including a new format for .meta elements which now must include the
"written by [author name]" info.

(Btw, this can get quite repetitive on single-author sites but can be
hidden with CSS).

Just as with extra metadata to be used by Schema.org markup, it makes most
sense that config.yml would list those social media data and attributes
because they are all used to identify a site uniquely. Much like the
existing slots for the site's author, URL, web analytics code, etc.

/J.




On Fri, May 2, 2014 at 12:41 PM, Graham Ashton <graham@effectif.com> wrote:

> On 29 Apr 2014, at 20:04, James Abbott <abbottjam@gmail.com> wrote:
>
> >
> 
https://docs.google.com/document/d/1bNAO373KEb5Spf55WJ9kv7NEWcLzb3HZiS91hDVjEYU/edit#heading=h.e3oocnar5eg
>
> This page that James linked to explains the idea behind schema.org fairly
> quickly:
>
>
> 
http://www.seoskeptic.com/schema-org-improves-value-with-google-in-depth-articles-seo-skeptic/
>
> The idea is that we’d add extra attributes to HTML tags to give Google
> clues as to what’s in the tags.
>
> James - have you an approach in mind other than just modifying the
> templates themselves? Wouldn’t every site need to code this up separately,
> in which case the best bet would be adding it to the default theme and then
> writing instructions how people can benefit when writing their own
> templates?
>
> Google authorship strikes me as a good idea. I suspect a specific plugin
> would be the best way forward, but I haven’t totally clocked how it works.
> I’m guessing each page needs a meta tag identifying the author, which would
> be another driver for allowing plugins to modify HTML after Nesta has
> finished rendering the page.
>

Enhanced navigation (was [nesta] Nesta SEO bundle)

From:
Graham Ashton
Date:
2014-05-02 @ 10:47
On 29 Apr 2014, at 20:04, James Abbott <abbottjam@gmail.com> wrote:

> 
https://docs.google.com/document/d/1bNAO373KEb5Spf55WJ9kv7NEWcLzb3HZiS91hDVjEYU/edit#heading=h.e3oocnar5eg

> I think it would be nice if every article had links in the footer to: a)
its parent category page;

I’d put this in the template. Articles can link to multiple categories, so
you can just iterate over them and add a link to each one. In fact, in the
default theme, it’s already there.

Search for “published on” on 
http://effectif.com/ruby/installing-nokogiri-on-mavericks

> b) previous article; c) next article (in chronological order).

Those links would belong in the template, so it’s something I’d envisage 
being implemented on a per-web site basis.

Writing helper methods to find the path of the next/previous articles 
would be useful if a lot of people want to do it, and I’d suggest they go 
in a plugin.

Re: Enhanced navigation (was [nesta] Nesta SEO bundle)

From:
James Abbott
Date:
2014-05-03 @ 17:51
>
> I’d put this in the template. Articles can link to multiple categories, so
> you can just iterate over them and add a link to each one. In fact, in the
> default theme, it’s already there.


I was thinking of the "category page" that's part of the @page.abspath,
i.e. the "canonical" URL for the article. True enough, articles can link to
multiple categories so this is probably not a bright idea after all...

> b) previous article; c) next article (in chronological order).
>
> Those links would belong in the template, so it’s something I’d envisage
> being implemented on a per-web site basis.
>
> Writing helper methods to find the path of the next/previous articles
> would be useful if a lot of people want to do it, and I’d suggest they go
> in a plugin.
>

Previous and next would still be cool (I think), so it's about making the
list of articles behave like a linked list. Not my first priority at this
moment, but I'd like to look at it at some future point.

/J.



On Fri, May 2, 2014 at 12:47 PM, Graham Ashton <graham@effectif.com> wrote:

> On 29 Apr 2014, at 20:04, James Abbott <abbottjam@gmail.com> wrote:
>
> >
> 
https://docs.google.com/document/d/1bNAO373KEb5Spf55WJ9kv7NEWcLzb3HZiS91hDVjEYU/edit#heading=h.e3oocnar5eg
>
> > I think it would be nice if every article had links in the footer to: a)
> its parent category page;
>
> I’d put this in the template. Articles can link to multiple categories, so
> you can just iterate over them and add a link to each one. In fact, in the
> default theme, it’s already there.
>
> Search for “published on” on
> http://effectif.com/ruby/installing-nokogiri-on-mavericks
>
> > b) previous article; c) next article (in chronological order).
>
> Those links would belong in the template, so it’s something I’d envisage
> being implemented on a per-web site basis.
>
> Writing helper methods to find the path of the next/previous articles
> would be useful if a lot of people want to do it, and I’d suggest they go
> in a plugin.
>

Re: Enhanced navigation (was [nesta] Nesta SEO bundle)

From:
Graham Ashton
Date:
2014-05-04 @ 10:47
On 3 May 2014, at 18:51, James Abbott <abbottjam@gmail.com> wrote:

> I was thinking of the "category page" that's part of the @page.abspath, 
i.e. the "canonical" URL for the article.

Okay. That’s actually been on my list for a while.

Nesta used to have “parent” metadata. I removed it a couple of years ago 
as I felt like behaviour should be a little more automatic.

It would be useful (for example) when creating breadcrumbs.

If http://hostname/page-1 is in the page-2 category, I’d like the 
breadcrumb to say “Home > Page 2 > Page 1”. The breadcrumb is currently 
just built from the path, so it would say “Home > Page 1”.

So while I’ve no plans to do it immediately, I’d like Page#parent to 
either derive it from the URL or fall back to the first category for pages
that sit at the root of the site.

I just filed https://github.com/gma/nesta/issues/147

Adding "share this" links to articles (was [nesta] Nesta SEO bundle)

From:
Graham Ashton
Date:
2014-05-02 @ 10:27
On 29 Apr 2014, at 20:04, James Abbott <abbottjam@gmail.com> wrote:

> if anyone has comments I (and Graham) would like to hear them. Here's 
the doc with the proposal:
> 
> 
https://docs.google.com/document/d/1bNAO373KEb5Spf55WJ9kv7NEWcLzb3HZiS91hDVjEYU/edit#heading=h.e3oocnar5eg

I’m going to send three separate replies to this, so each topic can be 
discussed separately.

First up, adding “Share this on twitter" links to articles.

It’d be a very useful thing to be able to do, and I think adding metadata 
to a page to enable it is the way forward.

To put the sharing link at the bottom of the article (as Philip Walton did
it in James’s example) I’d write a helper method (in app.rb) to create the
link, and would call that from within my template.

Something like this (I haven’t tested it):

    def sharing_link
      url = "http://twitter.com/intent/tweet"
      query_params = {
        text: @page.heading,
        url: path_to(@page.abspath, uri: true),
        via: @page.metadata('author twitter')
      }
      query_string = query_params.map do |param, value|
        [param, CGI.escape(value)].join('='))
      end.join('&')
      haml_tag :a, "Share this on twitter", href: "#{url}?#{query_string}"
    end

I’ve pulled the author’s Twitter handle out of the page metadata there, 
but (now that plugins can use the main config file, as of 0.10.0) it’d 
make more sense for single-author sites to put it in the config file.

That’d make a great plugin.

What I’d really like to be able to do is to mark some text in the middle 
of a Markdown file as being sharable, and having a plugin insert HTML 
after that paragraph with a “Share this” button next to it. The text I’d 
highlighted in the copy would become the default copy for the tweet.

I suspect Nesta might need some tweaks to make it easy for plugins to do 
that, but I’m all for it. If plugins could manipulate generated HTML 
they'd become significantly more powerful...

Re: Adding "share this" links to articles (was [nesta] Nesta SEO bundle)

From:
James Abbott
Date:
2014-05-03 @ 17:11
>
> I’ve pulled the author’s Twitter handle out of the page metadata there,
> but (now that plugins can use the main config file, as of 0.10.0) it’d make
> more sense for single-author sites to put it in the config file.
>
> That’d make a great plugin.


I'm going to try to put something together using the code you posted as a
baseline. One thing to think about is that Google+ and FB also offer ways
to inline-share links, so that method may become modularized if those two
platforms are to be included.

What I’d really like to be able to do is to mark some text in the middle of
> a Markdown file as being sharable, and having a plugin insert HTML after
> that paragraph with a “Share this” button next to it. The text I’d
> highlighted in the copy would become the default copy for the tweet.
>
> I suspect Nesta might need some tweaks to make it easy for plugins to do
> that, but I’m all for it. If plugins could manipulate generated HTML they'd
> become significantly more powerful...
>

Let's brainstorm ways this can be done. I'm also interested in being able
to extend Markdown, but for purposes other than sharing links (a topic for
a separate proposal).

/ J.


On Fri, May 2, 2014 at 12:27 PM, Graham Ashton <graham@effectif.com> wrote:

> On 29 Apr 2014, at 20:04, James Abbott <abbottjam@gmail.com> wrote:
>
> > if anyone has comments I (and Graham) would like to hear them. Here's
> the doc with the proposal:
> >
> >
> 
https://docs.google.com/document/d/1bNAO373KEb5Spf55WJ9kv7NEWcLzb3HZiS91hDVjEYU/edit#heading=h.e3oocnar5eg
>
> I’m going to send three separate replies to this, so each topic can be
> discussed separately.
>
> First up, adding “Share this on twitter" links to articles.
>
> It’d be a very useful thing to be able to do, and I think adding metadata
> to a page to enable it is the way forward.
>
> To put the sharing link at the bottom of the article (as Philip Walton did
> it in James’s example) I’d write a helper method (in app.rb) to create the
> link, and would call that from within my template.
>
> Something like this (I haven’t tested it):
>
>     def sharing_link
>       url = "http://twitter.com/intent/tweet"
>       query_params = {
>         text: @page.heading,
>         url: path_to(@page.abspath, uri: true),
>         via: @page.metadata('author twitter')
>       }
>       query_string = query_params.map do |param, value|
>         [param, CGI.escape(value)].join('='))
>       end.join('&')
>       haml_tag :a, "Share this on twitter", href: "#{url}?#{query_string}"
>     end
>
> I’ve pulled the author’s Twitter handle out of the page metadata there,
> but (now that plugins can use the main config file, as of 0.10.0) it’d make
> more sense for single-author sites to put it in the config file.
>
> That’d make a great plugin.
>
> What I’d really like to be able to do is to mark some text in the middle
> of a Markdown file as being sharable, and having a plugin insert HTML after
> that paragraph with a “Share this” button next to it. The text I’d
> highlighted in the copy would become the default copy for the tweet.
>
> I suspect Nesta might need some tweaks to make it easy for plugins to do
> that, but I’m all for it. If plugins could manipulate generated HTML they'd
> become significantly more powerful...
>

Re: Adding "share this" links to articles (was [nesta] Nesta SEO bundle)

From:
James Abbott
Date:
2014-05-11 @ 10:19
A set of functions for generating inline sharing links (Twitter, Google+,
FB):

https://gist.github.com/abbottjam/c35859ba2aadf3310481

This is an intermediary by-product of the plugin in question, yet I thought
I'd share it — if anyone has static pages for which such links can come in
handy.

/J.


On Sat, May 3, 2014 at 7:11 PM, James Abbott <abbottjam@gmail.com> wrote:

> I’ve pulled the author’s Twitter handle out of the page metadata there,
>> but (now that plugins can use the main config file, as of 0.10.0) it’d make
>> more sense for single-author sites to put it in the config file.
>>
>> That’d make a great plugin.
>
>
> I'm going to try to put something together using the code you posted as a
> baseline. One thing to think about is that Google+ and FB also offer ways
> to inline-share links, so that method may become modularized if those two
> platforms are to be included.
>
> What I’d really like to be able to do is to mark some text in the middle
>> of a Markdown file as being sharable, and having a plugin insert HTML after
>> that paragraph with a “Share this” button next to it. The text I’d
>> highlighted in the copy would become the default copy for the tweet.
>>
>> I suspect Nesta might need some tweaks to make it easy for plugins to do
>> that, but I’m all for it. If plugins could manipulate generated HTML they'd
>> become significantly more powerful...
>>
>
> Let's brainstorm ways this can be done. I'm also interested in being able
> to extend Markdown, but for purposes other than sharing links (a topic for
> a separate proposal).
>
> / J.
>
>
> On Fri, May 2, 2014 at 12:27 PM, Graham Ashton <graham@effectif.com>wrote:
>
>> On 29 Apr 2014, at 20:04, James Abbott <abbottjam@gmail.com> wrote:
>>
>> > if anyone has comments I (and Graham) would like to hear them. Here's
>> the doc with the proposal:
>> >
>> >
>> 
https://docs.google.com/document/d/1bNAO373KEb5Spf55WJ9kv7NEWcLzb3HZiS91hDVjEYU/edit#heading=h.e3oocnar5eg
>>
>> I’m going to send three separate replies to this, so each topic can be
>> discussed separately.
>>
>> First up, adding “Share this on twitter" links to articles.
>>
>> It’d be a very useful thing to be able to do, and I think adding metadata
>> to a page to enable it is the way forward.
>>
>> To put the sharing link at the bottom of the article (as Philip Walton
>> did it in James’s example) I’d write a helper method (in app.rb) to create
>> the link, and would call that from within my template.
>>
>> Something like this (I haven’t tested it):
>>
>>     def sharing_link
>>       url = "http://twitter.com/intent/tweet"
>>       query_params = {
>>         text: @page.heading,
>>         url: path_to(@page.abspath, uri: true),
>>         via: @page.metadata('author twitter')
>>       }
>>       query_string = query_params.map do |param, value|
>>         [param, CGI.escape(value)].join('='))
>>       end.join('&')
>>       haml_tag :a, "Share this on twitter", href: "#{url}?#{query_string}"
>>     end
>>
>> I’ve pulled the author’s Twitter handle out of the page metadata there,
>> but (now that plugins can use the main config file, as of 0.10.0) it’d make
>> more sense for single-author sites to put it in the config file.
>>
>> That’d make a great plugin.
>>
>> What I’d really like to be able to do is to mark some text in the middle
>> of a Markdown file as being sharable, and having a plugin insert HTML after
>> that paragraph with a “Share this” button next to it. The text I’d
>> highlighted in the copy would become the default copy for the tweet.
>>
>> I suspect Nesta might need some tweaks to make it easy for plugins to do
>> that, but I’m all for it. If plugins could manipulate generated HTML they'd
>> become significantly more powerful...
>>
>
>