Canonical w HTTP Header: Jak dodać link kanoniczny (rel=”canonical”) do plików PDF, JPG, PNG?

jak dodać canonical do pdf http header htaccess

Każdy kto miał do czynienia z zagadnieniami SEO wie, że należy unikać duplikacji treści. Czasami jednak dochodzi do sytuacji, w której duplikowanie całej strony lub znacznej części jej treści pod innym adresem jest nieuniknione – aby zaradzić takim sytuacjom warto wykorzystać link kanoniczny. Sposób na zmieszczenie tagu jest kilka, najczęściej spotykanym jest umieszczenie tagu <link> HTML w nagłówku HEAD strony internetowej. W tym artykule chciałem jednak skupić się na możliwości poinformowania robotów indeksujących o adresie kanonicznej strony (tej właściwej do wyświetlania w wyszukiwarce) na dokumentach, które nie są stronami HTML.

W moim przypadku, musiałem znaleźć sposób by dodać link kanoniczny do pliku PDF, który posiadał bardzo zbliżoną nazwę oraz treść do jednego z produktów w sklepie, a Google zamiast strony produktowej, która była na 1 miejscu od kilku dobrych miesięcy, zaczęło wyświetlać właśnie ten plik PDF w wynikach (z różnych powodów nie chciałem blokować indeksacji plików PDF).

Jak dodać canonical w plikach PDF z wykorzystaniem .htaccess?

Sposobem, który okazał się być idealnym w moim przypadku było wykorzystanie pliku .htaccess – znajdziesz go w głównym katalogu swojej strony na serwerze FTP, jest to plik, dzięki któremu możemy sterować ustawieniami katalogów, plików i adresów na serwerach Apache.

Aby w nagłówku HTTP dodać link kanoniczny należy wykorzystać poniższy kod:

<Files "Nazwa-Twojego-Pliku.pdf">
Header add Link "< http://adres.pl/strona-kanoniczna/ >; rel=\"canonical\""
</Files>

Kod należy umieścić w pliku .htaccess. Najlepiej na samym końcu – tak by nie popsuć żadnych instrukcji, które się już w nim znajdują. Powyższa instrukcja dla pliku Nazwa-Twojego-Pliku.pdf wskaże adres http://adres.pl/strona-kanoniczna/ jako adres kanoniczny. W przypadku gdy mamy na serwerze kilka plików o tej samej nazwie w różnych katalogach – instrukcja doda ten tag kanoniczny do każdego z nich, aby tego uniknąć i dodać link kanoniczny tylko do jednego z nich, powinniśmy w miejscu nazwy wpisać cały adres bezwzględny pliku.

W przypadku gdy mamy do czynienia z większą liczbą np. automatycznie generowanych plików PDF, których nazwa jest identyczna ze “slugiem” podstron, do których powinny kierować linki kanoniczne, możemy wykorzystać wyrażenia regularne i bardziej rozbudowane instrukcje:

RewriteRule ([^/]+)\.pdf$ - [E=FILENAME:$1]
 <FilesMatch "\.pdf$">
 Header add Link "< http://adres.pl/%{FILENAME}e >; rel=\"canonical\""
 </FilesMatch>

Powyższa instrukcja dla pliku PDF o nazwie nazwa-pliku.pdf wskaże adres http://adres.pl/nazwa-pliku .

Źródło: https://geoffkenyon.com/how-to-add-canonical-tag-http-headers/

Jak dodać link kanoniczny na innych rodzajach serwerów:

Nie mam doświadczenia z innymi serwerami, ale udało mi się znaleźć rozwiązanie w sieci:

Jak dodać canonical w ASP.Net C#:

 <%Response.AddHeader(@Link,@< http://www.yoursite.com/>; rel="canonical");%>

Jak dodać canonical w ASP VBScript:

<%Response.AddHeader Link,< http://www.yoursite.com/>; rel="canonical"%>

Jak dodać canonical w kodzie PHP:

<?php header(Link: <http://www.yoursite.com/>; rel=canonical");?>

Źródło: https://www.searchenginepeople.com/blog/hwoto-canonical-headers.html

Jak sprawdzić czy faktycznie odpowiedź HTTP zawiera w nagłówku deklarację o linku kanonicznym?

Do tego celu można wykorzystać narzędzie DevTools w przeglądarce Google Chrome, uruchomić można go przyciskiem F12. Następnie przechodzimy do zakładki Network, naciskamy CTRL + R aby przeładować otwarty plik PDF. Następnie wybieramy z listy nasz plik i otworzy nam się okno, w którym pierwszą zakładką jest ta nas interesująca, czyli “Header”.

nv-author-image

Jakub Zeid

Senior SEO Specialist w krakowskiej agencji reklamowej DevaGroup. Magister Informatyki i Ekonometrii, absolwent AGH. Od ponad 10 lat związany z branżą SEO.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *