Допомагаємо вебмайстру

377
  • Url адреси — що це і як впливають на індексацію
  • URL і URI
  • WWW і інші дзеркала сайту
  • Звідки беруться зайві URL-адреси (дублі)
  • Структура Урл адреси
  • Адреси у вигляді хеш-посилань
  • Які символи можна використовувати URL-ах?
  • Відносні й абсолютні посилання
  • Чим хороші відносні посилання
  • Створюємо посилання щодо документа
  • Створення посилання щодо кореня
  • Як правильно послатися на папку
  • Здрастуйте, шановні читачі блогу . Сьогодні хочу підняти тему формування унікальних URL адрес в інтернеті та розповісти про принципи творення відносних і абсолютних посилань.

    Звичайно ж, тема формування Урлов або їх більш розширеної версії URI (урі) досить складна, якщо копати глибоко і намагатися дістатися до істини.

    Але нам цього і не потрібно, бо достатньо розуміти структуру URL в її прикладному застосуванні.

    Допомагаємо вебмайстру

    Ну і також, я думаю, буде корисно розуміти, для чого і як можна створювати відносні посилання для свого ресурсу, а не використовувати для цих цілей абсолютні, коли в цьому немає явної необхідності.

    Url адреси — що це і як вони впливають на індексацію сайту

    Отже, давайте подивимося що таке URL, навіщо він потрібен і з яких частин складається. Як ви знаєте, пошукові системи проводять індексацію сайтів ні як єдиного цілого, а як сукупність окремих сторінок. Вони потім будуть брати участь у ранжируванні по різних пошукових запитах (читайте детальніше про підбір ключових слів у Вордстаті на основі статистики запитів Яндекса.

    URL і URI

    Ну так ось, будь-який документ (веб-сторінка в мережі інтернет має свій унікальний адресу URL, який розшифровується як Uniform Resource Locator (визначник місцезнаходження ресурсу). Він, так само як і протокол HTTP, а ще і як Html з валідатором W3C, був розроблений і створений одним і тим же людиною — Тімом Бернерсом-Лі (батьком засновником проекту Всесвітня павутина WWW — World Wide Web).

    За великим рахунком URL є приватним випадком іншого ідентифікатора під назвою URI (Uniform Resource Identifier — уніфікований ідентифікатор ресурсу), але нам з вами всі ці тонкощі, швидше за все, будуть не потрібні (зайві) при роботі зі своїм сайтом. Давайте спробуємо у загальних рисах розібратися з тим, що це таке і з яких частин він складається, а потім перейдемо до відносних і абсолютних посиланнях.

    URL-адреса — це спосіб однозначно вказати на щось в інтернеті. Він використовується не тільки для роботи з сайтами (що це?) за протоколом http (ще й по ftp), але нас, звичайно ж, буде цікавити саме застосування цього ідентифікатора до Web (протоколи http і https). Урл в цьому випадку буде виглядати приблизно так (трохи нижче я наведу загальну блок-схему його побудови, але поки що хотілося б почати з простого частого прикладу):

    https:///papka/fail.html

    У цьому прикладі адреси частина з «http» означає протокол передачі даних або ж, якщо слідувати термінології специфікації, схему (бо той же mailto не є протоколом передачі даних, на відміну від http або ftp, але теж використовується в Урл адреси). Далі у наведеному прикладі слід «» (або ж це може бути «www.») — це так зване доменне ім’я або ім’я хоста (хоста).

    WWW і інші дзеркала сайту, які треба склеїти

    У Web-е є специфіка позначення доменного імені в URL адресу сайту, яка може бути з WWW або без WWW. Для того, щоб успішно можна було розкрутити свій сайт, дуже важливо склеїти ці два дзеркала вашого сайту з WWW або без нього через 301 редирект. Найчастіше, склейку дзеркал за вас може виконати хостер, але це обов’язково треба буде перевірити.

    Тобто для пошукових систем сайти з WWW або без оного є абсолютно різними і без їх склеювання, посилальна маса буде ділитися між ними в невідомій вам пропорції. WWW в адресі по своїй суті — це певний атавізм, який робить ваше доменне ім’я другого рівня доменом третього.

    Теж справедливо і при переїзді сайту на захищений протокол https з http — для пошукачів це буде вже інший сайт.

    Нічого поганого у використанні WWW URL сайту немає, але потрібно чітко визначити головне дзеркало (через Яндекс Вебмастер і через Гугл Вебмастер, а також через прописування директиви Host у файл robots.txt вашого сайту), яке буде індексуватися пошуковими системами, яке буде брати участь в ранжируванні.

    У мене, наприклад, головне дзеркало — це «», тобто «без атавізму», і якщо ви додасте до будь-якого мого Урлу цю диво-приставку, то відбудеться автоматичне перенаправлення на адресу «без WWW».

    https://www./papka/fail.html

    Склеїти можна не тільки описані вище дзеркала, але і будь-які інші доменні імена, що належать вам. Наприклад, якщо можливе різне написання латинськими літерами якого-небудь відомого бренду, то купуються всі можливі домени (варіанти написання з помилками, в різних доменних зонах тощо) і склеюються між собою. Тоді, при зверненні до сайту по кожному з можливих URL адрес, буде відкриватися головне дзеркало.

    Наприклад, на реєстр.ру можна подивитися вільні для реєстрації потенційні дзеркала або звільняються домени (можете вводити передбачуване ім’я домену прямо в наведену нижче форму):

    Введіть ім’я домену:
    Перевірити
    Приклади: google, google.com

    Звідки беруться зайві URL-адреси (дублі сторінок вашого сайту в індексі пошуковиків

    Але повернемося до наших баранів. Та частина URL, яка розташована за третім слешем (/) — в нашому прикладі це «papka/fail.html» — називається шляхом до конкретного об’єкта (документа або файлу). У нашому випадку це документ «fail.html», який знаходиться в каталозі «papka», який в свою чергу лежить в кореневій папці (корінь в Урлі завжди відповідає третьому слешу зліва).

    Але це ще не все, що може бути записано в адресі. За допомогою URL різні CMS (системи управління контентом) передають так звані GET параметри, які додаються в самий його кінець після проставляння знака питання, наприклад, так:

    https://www./papka/fail.html?print=yes

    Вся біда в тому, що для пошукових систем два таких URL адреси (з і без Get параметрів) є абсолютно різними веб документами і кожен з них буде проіндексований пошуковими системами.

    До одного і того ж Урлу може додаватися вашої Cms скільки завгодно багато різних Get параметрів і все це буде проіндексовано Яндексом і Гуглом, якщо ви не створите відповідні заборони у файлі robots.txt посилання на статтю про який наведено трохи вище. В іншому випадку пошуковики вас можуть пессімізіровать за велику кількість дубльованого контенту (одного і того ж вмісту доступного за різними адресами).

    Також, наприклад, на головній сторінці мого ресурсу можна звернутися по двом різним Урлам:

    https://https:///index.php

    (навіть за трьома — ще й https:///) і в будь-якому випадку відкриється головна сторінка. Це досить погано, т. к. пошуковики знайдуть у мене три різних сторінки (що мають з їх точки зору різні URL адреси), але з однаковим змістом, що їм, ой як не подобається.

    Тому у мене зроблено так, що при введенні будь-якого з наведених трохи вище Урлов буде виконано перенаправлення URL виду «https:///». Робиться це, як правило, з допомогою 301 редіректу у файлі .htaccess, або безпосередньо в налаштуваннях сервера вами самими, або вашим хостером.

    Набагато більше інформації про дзеркала сайту і їх склейку читайте у наведеній по посиланню публікації.

    Структура Урл адреси і перекодування в URL-encoded

    Взагалі, повну блок-схему URL адреси можна представити так:

    Схема построения URL адресаДопомагаємо вебмайстру

    У реальності, як правило, не використовують логін, пароль і порт, хоча для доступу на платні сайти може знадобитися їх вказівка:

    http://login:[email protected]/platniy-dostup.html

    Також досить часто встановлюють паролі для входу на Ftp сервер, де так само може використовувати не стандартний порт, а відмінний від використовуваного за замовчуванням для цього протоколу. Тоді для доступу до ресурсів такого Ftp сервера потрібно вводити подібний URL:

    ftp://login:[email protected]:6789/samoe-nujnoe/cimus

    Про GET-параметри, які можуть прописуватися в цьому адресі після знака питання, ми вже говорили і згадували, що слід обов’язково забороняти до індексації сторінки, в Урлах яких є подібні параметри (вище наведено посилання на статтю про роботс, де все детально розписано).

    Url адреси у вигляді хеш-посилань, що відкривають сторінку у потрібному місці

    Але крім всіх цих речей, які можуть входити до складу URL, наведеною трохи вище блок-схемі ви можете бачити так званий якір, який додається в самому кінці після розділяє символу решітки «#» (Урли, містять якоря, зазвичай називають хеш посиланнями).

    Якоря заздалегідь проставляються всередині Html коду документа (сторінки) за допомогою додавання атрибута ID=»мітка» в потрібний Html тег абзацу, заголовка або інший відповідний), а потім, додавши назва цього якоря до URL-адресу сторінки через символ решітки «#», ви зможете перейти не на початок цієї вебсторінки, а відразу до того місця, де був проставлений якір (всі сучасні веб браузери автоматично прокрутять сторінку до потрібного місця).

    Виглядати хеш-посилання може так (у тексті сторінки проставлений якір «url-1»):

    https:///vokrug-da-okolo/chto-takoe-url-adresa-url-uri-absolyutnye-i-otnositelnye-ssylki.html#url-1

    Про роботу з гіперпосиланнями у Html, і у тому числі про організацію переходів на сторінці за допомогою хеш посилань (якорів), читайте в цих статтях.

    Які символи можна використовувати URL-адреси?

    Ще варто сказати про різних кодуваннях, які використовуються в URL-адресах. Без перекодування в них можна використовувати лише обмежена кількість символів. Зазвичай радять обмежитися набором символів: [0-9],[a-z],[A-Z],[_],[-].

    Взагалі, під уникнення помилок, я б радив ставити назва файлів і Урлов сторінок свого сайту в нижньому регістрі, бо для юнікс-подібних систем (на яких працює більшість веб-серверів) символи у верхньому і нижньому регістрі є різними (на відміну від Windows). З-за різних регістрів може виникнути нікому не потрібна плутанина.

    Використання будь-яких інших символів (включаючи російські) в урлах допустимо, але при цьому буде відбуватися перекодування цих самих символів (URL Encoding).

    Що засмучує, так це незграбний вигляд URL адрес з символами, наприклад, кирилиці, які виходять після перекодування. Кожен символ кирилиці кодується за допомогою двох байт в Юнікод (UTF-8), записаних в шістнадцятковому вигляді і розділених знаком відсотка «%». Наприклад, такий Урл:

    https:///кто на новенького/

    після перекодування стане таким:

    http///%BA%D1%82%D0%BE%20%D0%BD%D0%
    B0%20%D0%BD%D0%BE%D0%B2%D0%B5%D0%BD%D1%8C%D0%BA%D0
    %BE%D0%B3%D0%BE

    Загалом, виходить не дуже здорово і з цим неоковирним видом URL на національних кодуваннях планують розбиратися і боротися, але це справа не рухається дуже швидко.

    У зв’язку з усім вищесказаним я б радив при використанні ЧПУ на своїх CMS не робити адреси сторінок російською, а використовувати транслітерацію, тим більше, що на думку багатьох просуванців так буде краще в плані Seo оптимізації під Яндекс і Google.ru.

    Відносні й абсолютні посилання на сайті

    Давайте почнемо з абсолютних посилань, оскільки в цьому випадку нічого особливого, окрім того, що ми вже обговорили в цій статті говорити не доведеться. Т. о. абсолютна посилання має відповідати тим вимогам, які ми висуваємо до URL-адресою — має зазначатися протокол передачі даних, доменне ім’я сайту (серверу) та шлях до потрібного web документа. Всі.

    В Html абсолютна посилання формується з допомогою спеціальних тегів A (гіперпосилання), тобто для її проставлення ми просто повинні будемо оточити відкриваючим і закриваючим тегами гіперпосилання потрібне місце в тексті документа (фразу або картинку) і прописати в початковому тегу A в атрибуті Href абсолютний шлях до того документа, на який повинен буде потрапити відвідувач при переході по ній:

    ПхпМайАдмин

    Все дуже просто.

    Чим хороші відносні посилання і як їх можна отримати

    Однак, абсолютні гіперпосилання зазвичай використовують тільки в тих випадках, коли хочуть послатися на зовнішні сайти, а для внутрішніх переходів більшість вебмайстрів (розумних і прозорливих, не таких як я 🙂 ) намагаються використовувати відносні посилання. І це є кілька причин:

  • Відносні посилання по визначенню більш короткі і не захаращують, не обтяжують код сайту (адже в цій справі важлива будь-яка дрібниця).
  • Крім того, при переїзді на інший домен або при зміні протоколу https вам не доведеться міняти всі посилання на сайті.
  • До того ж, деякі конструкції інтернет проекту можна буде дуже швидко і безболісно перенести на інший ресурс, не змінюючи при цьому внутрішні відносні посилання.
  • Отже, якщо судити з назви, то адреса web-документа, на який вони посилаються, повинен бути прописаний щодо того документа вашого сайту, з якого коду і буде проставлена дана відносна посилання (танцюємо від печі). Другий варіант їх простановки полягає у використання в якості точки відліку кореневої папки. Ось саме ці два способи творення відносних посилань ми зараз і розглянемо.

    Створюємо відносні посилання щодо документа, з якого вони проставляються

    Самий простий і короткий варіант запису відносного шляху (мається на увазі значення атрибута Href тега гіперпосилання) вийде в тому випадку, коли обидва web документа: донор (з якого вона проставляється) і акцептор (файл або web документ, на який вона веде), знаходяться в одній папці на сервері.

    Создание относительной ссылкиДопомагаємо вебмайстру

    Тоді відносна посилання буде представляти із себе лише назву web документа акцептора:

    анкор

    Тепер давайте припустимо, що документ акцептор лежить в папці, яка розташована в одній директорії з документом донором.

    Относительная ссылка с указанием папкиДопомагаємо вебмайстру

    Як в цьому випадку буде виглядати відносне посилання? Все теж досить просто:

    анкор

    Поки, думаю, що все зрозуміло — прописуємо шлях до файлу або документа акцептора (назва папки, а через прямий слеш «/» ім’я файлу або документа). Тобто нам для того, щоб потрапити від донора до акцептору, потрібно буде відкрити папку, назва якої ми й вказуємо у відносній посиланням.

    Тепер давайте розглянемо протилежну ситуацію, коли всередині папки лежить сам документ донор, з якого потрібно проставити відносну посилання на документ або файл акцептор, який вже лежить на рівень вище:

    Как сослаться на файл внутри папки в относительном видеДопомагаємо вебмайстру

    Для того, щоб нам від документа донора пройти до файлу (документу) акцептору, потрібно піднятися з цієї папки на рівень вище. Для цього передбачений спеціальний елемент — дві точки, а потім через прямий слеш прописується подальший шлях до акцептору. Тому для наведеного вище прикладу відносний шлях буде мати вигляд:

    Що таке URL адреси

    Якщо вам знадобиться піднятися на два рівня вгору, то запис буде мати вигляд:

    Що таке Url

    Ну, а якщо після цього для прописування відносного шляху до акцептора вам потрібно буде ще увійти в яку-небудь папку на другому верхньому (щодо документа донора) рівні:

    Относительная ссылка на файл в папкеДопомагаємо вебмайстру

    Тоді відносна посилання, проставлена з Html коду документа донора, може мати наступний вигляд:

    Складна конструкція колії

    Таких спусків в папки і підйомів на рівень вгору може бути як завгодно багато, головне, щоб ви самі не заплуталися.

    Створення посилання щодо кореневої папки

    Всі розглянуті вище посилання ми писали щодо того документа донора, з якого проставляється гіперпосилання, але можна в якості точки відліку взяти кореневу папку сайту. Корінь в позначенні відносних шляхів виглядає як одиночний прямий слеш «/».

    Т. о. перехід на головну сторінку буде виглядати досить просто, але екстравагантно:

    анкор

    Будь-яку відносну посилання, прописану щодо кореня сайту, можна представити як абсолютну, але з прибраній частиною стоїть зліва від третьої слешу.

    Наприклад, абсолютний шлях може виглядати так:

    анкор

    А відносний до того ж самого файлу буде вже декілька коротше:

    Текст

    Як послатися на папку у відносному і абсолютному вигляді

    Хочу звернути вашу увагу на один нюанс, який варто враховувати при створенні як абсолютних, так і відносних посилань. Якщо ви хочете послатися на папку, то обов’язково ставте наприкінці такий гіперпосилання (після її назви) прямий слеш «/». Тобто, якщо я хочу відкрити вміст папки, то мені потрібно написати:

    анкор

    А не таку:

    текст

    У другому випадку, при обробці, сервер буде спочатку намагатися знайти файл з ім’ям «uploads» (саме такий без будь-яких розширень) і не знайшовши його вже потім буде шукати таку папку. Тож, написавши відразу ж слеш після назви потрібної вам папки, ви не будете забирати зайві ресурси у вашого сервера на пошуки того, чого там немає.

    Також слід знати, що при зверненні у відносній або абсолютній ссылке до папки, веб сервер відображає так званий індексний файл, який лежить в ній і який, як правило, називається або index.html, або index.php. Якщо індексного файлу в папці не буде, то при неправильно налаштованої на сервері безпеки ви побачите лістинг її вмісту, що може призвести до зниження безпеки вашого ресурсу.

    Обов’язково закрийте цю уразливість, якщо знайдете.

    До речі, звернення до головній сторінці сайту теж по своїй суті є звернення до папки (кореневої), і при цьому буде запущений індексний файл лежить в корені (в моєму випадку це index.php). Так от, якщо ви звертаєтеся до папки, то для зниження навантаження на сервер краще прописувати після доменного імені прямий слеш:

    Абсолютна посилання на головну

    Ось воно че, Михалич!

    Удачі вам! До зустрічей на сторінках блогу