Canonical links can be used when the same content is available through different links. On the Hive chain, the same content can be viewed through several frontends. Normally, the frontend which is used to write the post will set the
canonical_url field in the json-metadata field to itself. There is an agreement between all hive frontends to set the canonical URL in the same way based on these both parameters.
E.g. when writing a post with peakd, the
app parameter is set to
peakd and all hive front-ends will use a canonical URL starting with
Using a canonical url such that all frontends use the same canonical url helps search engines to
- indicate which front-end should be shown in search results
- validate that there is no duplicate content
When a frontend is not doing this, the search-engine decides on various metrics which frond-end should be shown.
Let's check this on my post howto-to-use-beempy-for-cold-transaction-signing, which I wrote with the peakd-frontend.
Searching with google
When entering some text from my post into google search, I receive the following result:
Google.com returns only a link to the hive.blog frontend. This is strange as the canonical link points to the peakd.com site.
Check for duplicate content
I'm using the duplicate content checker from seoreviewtools
I will check my post for duplicate content:
Two sites are identified as duplicate content:
Frontends with wrong canonical links
Check for canonical links
I'm using seoreviewtools for checking the canonical links of several hive frontends:
hive.blog, peakd.com and esteem.app are using the correct canonical link, whereas
are not pointing to peakd. https://leofinance.io is even using steemit.com as canonical link.
Canonical URLs on blog posts written before the hive fork
I wrote a python script to set canonical link for all blog posts written before the hive fork. You can find it here: How to fix canonical URLs and links in your pre-fork posts
Currently the same content is available in the HIVE and the STEEM blockchain. Blog posts written before the fork are well not handled by the front-ends and each front-end shows a different canonical link.
The python script lets the user decide which blockchain and which frontend should be used and broadcast the choice by setting
canonical_url to the blockchain.