Категории

  • Голосование
  • Право голоса
  • Киев
  • Украина
  • Здоровье
  • Популярное
  • Новости
  • Новости

      Artmisto
      Наша команда-партнер Artmisto. С "Buddy.Bet" азартные игроки найдут идеальное место для развлечений и возможность выиграть крупные суммы.

    SEO для однієї сторінки програми

    1. Як працює перенаправлення ботів?
    2. Реалізація за допомогою Phantom.js
    3. Перенаправлення ботів

    Наша команда-партнер Artmisto

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

    У 2009 році компанія Google випустила ідею уникли фрагментів .

    Ідея просто стверджувати, що якщо пошукова система повинна стикатися з вашою програмою JavaScript, тоді ви маєте дозвіл перенаправити пошукову систему на іншу URL-адресу, яка обслуговує повністю рендеризованную версію сторінки (поточні пошукові системи не можуть виконати багато JavaScript (деякі люди спекулюють що Google Chrome народився з Пошуку Google, який бажає успішно відтворити кожну веб-сторінку, щоб отримати вміст, розміщений на сайті))

    Як працює перенаправлення ботів?

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

    Реалізація за допомогою Phantom.js

    Phantom.js - це безкрупний веб-браузер. Ми збираємося налаштувати сервер node.js, який надає URL, він повністю відобразить вміст сторінки. Потім ми перенаправляємо ботів на цей сервер, щоб отримати правильний вміст.

    Вам потрібно буде встановити node.js і phantom.js на вікно. Потім запустіть цей сервер нижче. Є два файли, один з яких є веб-сервером, а інший - phantomjs-скрипт, який відображає сторінку.

    // web.js // Express - наш веб-сервер, який може обробляти запит var express = require ('express'); var app = express (); var getContent = функція (url, callback) {var content = ''; // Тут ми породимо процес phantom.js, першим елементом масиву // є наш скрипт phantomjs, а другим - url var phantom = require ('child_process'). Spawn ('phantomjs', ['phantom- server.js ', url]); phantom.stdout.setEncoding ('utf8'); // Наш скрипт phantom.js просто реєструє вивід і // ми маємо доступ до нього через stdout phantom.stdout.on ('data', function (data) {content + = data.toString ();}); phantom.on ('exit', функція (code) {if (code! == 0) {console.log ('У нас є помилка');} else {// після завершення нашого скрипта phantom.js call back //, який виводить вміст до зворотного виклику сторінки (content);}}); }; var respond = function (req, res) {// Оскільки ми використовуємо [P] в htaccess, ми маємо доступ до цього заголовка url = 'http: //' + req.headers ['x-forwarded-host'] + req. params [0]; getContent (url, function (content) {res.send (content);}); } app.get (/(.*)/, відповідь); app.listen (3000);

    Сценарій нижче phantom-server.js і буде відповідати за повну рендеринг вмісту. Ми не повертаємо вміст, поки сторінка не буде повністю виведена. Для цього ми підключаємо слухача ресурсів.

    var page = require ('webpage'). create (); var system = require ('system'); var lastReceived = new Дата (). getTime (); var requestCount = 0; var responseCount = 0; var requestIds = []; var startTime = new Дата (). getTime (); page.onResourceReceived = function (response) {if (requestIds.indexOf (response.id)! == -1) {lastReceived = new Date (). getTime (); responseCount ++; requestIds [requestIds.indexOf (response.id)] = null; }}; page.onResourceRequested = function (request) {if (requestIds.indexOf (request.id) === -1) {requestIds.push (request.id); requestCount ++; }}; // Відкрити сторінку page.open (system.args [1], function () {}); var checkComplete = function () {// Ми не дозволяємо, щоб це зайняло більше 5 секунд, але // не повертається, поки всі запити не будуть завершені, якщо ((нова дата (). getTime () - lastReceived> 300 && requestCount === replyCount) || new Date (). getTime () - startTime> 5000) {clearInterval (checkCompleteInterval); console.log (page.content); phantom.exit (); }} // Давайте перевіримо, чи закінчена сторінка візуалізації var checkCompleteInterval = setInterval (checkComplete, 1);

    Після запуску цього сервера ми просто перенаправляємо ботів на сервер у конфігурації веб-сервера нашого клієнта.

    Перенаправлення ботів

    Якщо ви використовуєте apache, ми можемо відредагувати файл .htaccess таким чином, щоб запити Google проксірували на наш сервер phantom.js для середньої людини.

    RewriteEngine на RewriteCond% {QUERY_STRING} ^ _escaped_fragment _ = (. *) $ RewriteRule (. *) Http: // веб-сервер: 3000 /% 1? [P]

    Ми могли б також включити інші RewriteCond, такі як агент користувача для перенаправлення інших пошукових систем, на які ми хочемо індексуватись.

    Хоча Google не використовуватиме _escaped_fragment_, якщо ми не скажемо це, включаючи мета-тег; <meta name = "fragment" content = "!"> або за допомогою #! URL-адреси в наших посиланнях.

    Швидше за все, вам доведеться використовувати обидва.

    Томас Девіс

    Я працюю з кількома проектами з відкритим кодом, а також працюю в промисловості безпілотних літаків

    https://ajaxdavis.com/

    Як працює перенаправлення ботів?
    RewriteEngine на RewriteCond% {QUERY_STRING} ^ _escaped_fragment _ = (. *) $ RewriteRule (. *) Http: // веб-сервер: 3000 /% 1?

    Номера

    Номерной фонд гостиницы насчитывает 173 номера различных категорий.

    Забронировать отель можно прямо сейчас: Бронирование онлайн