Domains, power, the commons, credit, SEO, and some code implications

How to provide better credit on the web using the standard rel=“canonical” by looking at an example from the Open Learner Patchbook

A couple of weeks back, I noticed and began following Cassie Nooyen when I became aware of her at the Domains 2019 conference which I followed fairly closely online.

She was a presenter and wrote a couple of nice follow up pieces about her experiences on her website. I bookmarked one of them to read later, and then two days later I came across this tweet by Terry Green, who had also apparently noticed her post:

But I was surprised to see the link in the tweet points to a different post in the Open Learner Patchbook, which is an interesting site in and of itself.

This means that there are now at least two full copies of Cassie’s post online:

While I didn’t see a Creative Commons notice on Cassie’s original or any mention of permissions or even a link to the source of the original on the copy on the Open Patchbook, I don’t doubt that Terry asked Cassie for permission to post a copy of her work on his site. I’ll also suspect that it may have been the case that Cassie might not have wanted any attention drawn to herself or her post on her site and may have eschewed a link to it. I will note that the Open Patchbook did have a link to her Twitter presence as a means of credit. (I’ll still maintain that people should be preferring links to their own domain over Twitter for credits like these–take back your power!)

Even with these crediting caveats aside, there’s a subtle technical piece hiding here relating to search engines and search engine optimization that many in the Domain of One’s Own space may not realize exists, or if they do they may not be sure how to fix. This technical subtlety is that search engines attempt to assign proper credit too. As a result there’s a very high chance that Open Patchbook could rank higher in search for Cassie’s own post than Cassie’s original. As researchers and educators we’d obviously vastly prefer the original to get the credit. So what’s going on here?

Search engines use a web standard known as rel=“canonical”, a microformat which is most often found in the HTML <header> of a web page. If we view the current source of the copy on the Open Learner Patchbook, we’ll see the following:

<link rel="canonical" href="http://openlearnerpatchbook.org/technology/patch-twenty-five-my-domain-my-place-to-grow/" />

According to the Microformats wiki:

By adding rel=“canonical” to a hyperlink, a page indicates that the destination of that hyperlink should be considered the preferred or definitive version of the current page. This helps search engines avoid duplicate content, and is useful for deciding how to link to a page when citing it.

In the case of our example of Cassie’s post, search engines will treat the two pages as completely separate, but will suspect that one is a duplicate of the other. This could have dramatic consequences for one or the other sites in which search engines will choose one to prefer over the other, and, in some cases, search engines may penalize one site for having duplicate content and not stating that fact (in their metadata). Typically this would have more drastic and averse consequences for Cassie’s original in comparison with an institutional site. 

How do we fix the injustice of this metadata? 

There are a variety of ways, but I’ll focus on several in the WordPress space. 

WordPress core has built-in functionality that should set the permalink for a particular page as the canonical one. This is why the Open Patchbook page displays the incorrect canonical link. Since most people are likely to already have an SEO related plugin installed on their site and almost all of them have this capability, this is likely the quickest and easiest method for being able to change canonical links for pages and posts. Two popular choices for this are Yoast and All in One SEO which have simple settings for inputting and saving alternate canonical URLs. Yoast documents the steps pretty well, so I’ll provide an example using All in One SEO:

  • If not done already, click the checkbox for canonical URLs in the “General Settings” section for the plugin generally found at /wp-admin/admin.php?page=all-in-one-seo-pack%2Faioseop_class.php.
  • For the post (or page) in question, within the All in One SEO metabox in the admin interface (pictured) put the full URL of the original posts’ location.
  • (Re-)publish the post.

Screenshot of the AIOSEO metabox with the field for the Canonical URL outlined in red

If you’re using another SEO plugin, it likely handles canonical URLs similarly, so check their documentation.

For aggregation websites, like the Open Learner Patchbook, there’s also another solid option for not only setting the canonical URL, but for more quickly copying the original post as well. In these cases I love PressForward, a WordPress plugin from the Roy Rosenzweig Center for History and New Media which was designed with the education space in mind. The plugin allows one to quickly gather, organize, and republish content from other places on the web. It does so in a smart and ethical way and provides ample opportunity for providing appropriate citations as well as, for our purposes, setting the original URL as the canonical one. Because PressForward is such a powerful and diverse tool (as well as a built-in feed reader for your WordPress website), I’ll refer users to their excellent documentations.

Another useful reason I’ll mention for using rel-canonical mark up is that I’ve seen cases in which using it will allow other web standards-based tools like Hypothes.is to match pages for highlights and annotations. I suspect that if the Open Patchwork page did have the canonical link specified that any annotations made on it with Hypothes.is should mirror properly on the original as well (and vice-versa). 

I also suspect that there are some valuable uses of this sort of small metadata-based mark up within the Open Educational Resources (OER) space.

In short, when copying and reposting content from an original source online, it’s both courteous and useful to mark the copy as such by putting a tag onto the URL of the original to provide it with the full credit as the canonical source.

An annotation example for Hypothes.is using <blockquote> markup to maintain annotations on quoted passages

A test of some highlighting functionality with respect to rel-canonical mark up. I’m going to blockquote a passage of an original elsewhere on the web with a Hypothes.is annotation/highlight on it to see if the annotation will properly transclude it.

I’m using the following general markup to make this happen:

<blockquote><link rel="canonical" href="https://www.example.com/annotated_URL">
Text of the thing which was previously annotated.
</blockquote>

Let’s give it a whirl:

This summer marks the one-year anniversary of acquiring my domain through St. Norbert’s “Domain of One’s Own” program Knight Domains. I have learned a few important lessons over the past year about what having your own domain can mean.

SECURITY

The first issue that I never really thought about was the security and privacy on my domain. A few months after having my domain, I realized that if you searched my name, my domain was one of the first things that popped up. I was excited about this, but I soon realized that this meant everything I blogged about was very much in the open. This meant all of my pictures and also every person I have mentioned. I made the decision to only use first names when talking about others and the things we have done together. This way, I can protect their privacy in such an open space. With social media you have some control over who can see your post based on who “friends” or “follows you”; on a domain, this is not as much of a luxury. Originally, I thought my domain would be something I only shared with close friends and family, like a social media page, but understanding how many people have the opportunity to see it really shocked me and pushed me to think about the bigger picture of security and safety for me and those around me.

—Cassie Nooyens in What Having a Domain for a year has Taught Me

Unfortunately, however, I’m noticing that if I quote multiple sources this way (at least in my Chrome browser), only the last quoted block of text transcludes the Hypothes.is annotations. Based on prior experiments using rel-canonical mark up I’ve noticed this behavior, but I suspect it’s simply the fact that the rel-canonical appears on the page and matches one original. It would be awesome if such a rel-canonical link which was nested into any number of blockquote tags would cause the annotations from the originals

Perhaps Jon Udell and friends could shed some light on this and or make some tweaks so that blockquoting multiple sources within the same page could also allow the annotations on those quoted passages to be transcluded onto them?

Separately, I’m a tad worried that any annotations now made on my original could also be mistakenly pushed back to the quoted pages because of the matching rel-canonical without anything taking into account the nested portions of the page or the blockquoted pieces. I’ll make a test on a word or phrase like “security and privacy” to see if this is the case. We’ll all notice that of course this test fails by seeing the highlight on Cassie’s original. Oh well…

So the question becomes, is there a way within the annotation spec to allow us to write simple HTML documents that blockquote portions of other texts in such a way that we can bring over the annotations of those other texts (or allow annotating them on our original page and have them pushed back to the original) within the blockquoted portions, yet still not interfere with annotating our own original document? Ideally what other HTML tags could/should this work on? Further could this be common? Generally useful? Or simply just a unique edge case with wishful thinking made from this pet example? Perhaps there’s a better way to implement it than my just having thrown in the random link on a whim? Am I misguidedly attempting to do something that already exists?

👓 Don’t just Google it! First, let’s talk! | Jon Udell

Read Don’t just Google it! First, let’s talk! by Jon UdellJon Udell (Jon Udell)
Asking questions in conversation has become problematic. For example, try saying this out loud: “I wonder when Martin Luther King was born?” If you ask that online, a likely response is: “Just Google it!” Maybe with a snarky link: http://lmgtfy.com/?q=when was martin luther king born? https:...

I love the idea of this… It’s very similar to helping to teach young children how to attack and solve problems in mathematics rather than simply saying follow this algorithm.

👓 The Woodard projection | Jon Udell

Read The Woodard projection by Jon UdellJon Udell (Jon Udell)

In a memorable episode of The West Wing, visitors from the Cartographers for Social Justice upend CJ’s and Josh’s worldviews.

Cartographer: “The Peters projection.”

CJ: “What the hell is that?”

Cartographer: “It’s where you’ve been living this whole time.”

I’m having the same reaction to Colin Woodard’s 2011 book American Nations. He sees North America as three federations of nations. The federation we call the United States comprises nations he calls Yankeedom, New Netherland, The Midlands, Tidewater, Greater Appalachia, The Deep South, El Norte, The Far West, and The Left Coast.

Here’s his definition of a nation:

nation is a group of people who share — or believe they share — a common culture, ethnic origin, language, historical experience, artifacts, and symbols.”

I love the concept of this thesis! Ordering a copy of the book for myself.

I’ve lived in Greater Appalachia, The Deep South, Yankeedom, The Midlands, and the Left Coast and I’ve always unconsciously known many of these borders within culture. It’s often been difficult to describe the subtle cultural shifts and divides between many of these places to others. I can’t wait to read a book that delves into all of it depth.

Replied to Testing Out IndieWeb With Poetry (The Daily Connector)
For this Connected Writing Activity — which is taking place rather randomly as a test of something new, so pardon the odd nature of the post — we are testing out Greg’s idea for IndieWeb syndication across blogs. He has a “sub” set up for poetry at IndieWeb, so let’s try that.

You’ve gotten soooo close, but missed by just a hair.

You’ve described the process properly, but in the link at the top of your site, you’ve written:

<a href="https://indieweb.xyz/en/indiewebpoetry” class=">/en/indiewebpoetry</a>

instead of

<a href="https://indieweb.xyz/en/indiewebpoetry” class="u-syndication">/en/indiewebpoetry</a>.

I think the other small portion you’re missing is that Indieweb.xyz works using the Webmention protocol. It doesn’t appear to me that your site is using the Webmention or the Semantic Linkbacks plugins to make that portion work. If you install and activate them, that will get you a bit further and your site will properly ping Indieweb.xyz when you publish your posts to it.

An alternate route, without those plugins, is to manually ping Indieweb.xyz directly. You can use this manual submission link which has instructions and the fields you’ll need to fill out to force a manual webmention.

Looking forward to seeing your poetry on /en/indiewebpoetry!

P.S.: I’m also seeing <pre><a rel="webmention" href="https://brid.gy/webmention/wordpress">-</a></pre> appearing in a widget in your right hand sidebar. I take this to mean that you’re trying to accept webmentions and that you’re using WordPress.com to host your site. I suspect you may not be getting the results you’re looking for on that account because the code is wrapped in <pre></pre>. If you remove that pre tag, you’ll be closer to getting that piece working. If it’s done properly you should only see the dash “-” in that widget. If you prefer to not have a random dash in your sidebar and since that link is only used/read by Brid.gy’s code parser, you can also hide it on your site by using the following code instead <link rel="webmention" href="https://brid.gy/webmention/wordpress">.

👓 What Having a Domain for a Year Has Taught Me | Cassie Nooyen

Read What Having a Domain for a Year Has Taught Me by Cassie Nooyen (techbar.crnooyen.knight.domains)
This summer marks the one-year anniversary of acquiring my domain through St. Norbert’s “Domain of One’s Own” program Knight Domains. I have learned a few important lessons over the past year about what having your own domain can mean.

👓 Testing Out IndieWeb With Poetry | Daily Connector

Read Testing Out IndieWeb With Poetry (The Daily Connector)
This was also posted to /en/indiewebpoetry. For this Connected Writing Activity — which is taking place rather randomly as a test of something new, so pardon the odd nature of the post &#8212…

👓 New Policy: Do Not Post In Support of Trump or his Administration | Ravelry

Read New Policy: Do Not Post In Support of Trump or his Administration (Ravelry - a knit and crochet community)
We are banning support of Donald Trump and his administration on Ravelry. This includes support in the form of forum posts, projects, patterns, profiles, and all other content. Note that your project data will never be deleted. We will never delete your Ravelry project data for any reason and if a project needs to be removed from the site, we will make sure that you have access to your data. If you are permanently banned from Ravelry, you will still be able to access any patterns that you purchased. Also, we will make sure that you receive a copy of your data.

This is going to be the signal that starts the beginning of the end.