• Как продвигать сайты, которым не нужны простыни текстового контента?

    moonz
    @moonz
    web developer | seo | design
    На своём опыте я решал такие задачи следующим образом: создаётся страница (новость), например подборка обоев с зимнем мотивам. На данной странице встраивается 5-10 обоев, миниатюр, при нажатии на которые происходит переход уже на целевую страницу конкретных обоев, где им можно скачать в нужном разрешении.
    Продвигаем мы именно это подборку, и ссылочный вес она уже будет разделять с остальными, пропорционально. Далее реализуем крауд маркетинг, с запросами на тематику вашей подборки. Если позволяют бюджеты, закупаем трасстовые социальные сигналы, так же в тематических сообществах например ВК, в идеале продублировать подборку в там же дзене, трафик оттуда даст хороший прирост траста.
    Безусловно это не все мероприятия, но базовые.

    P.S - в сео, решает связанность данных, по этому вам нужно действовать от тегов, и категорий. Вот из уже можно наполнять контентом. Ещё один вариант это комментарии, не обязательно они должны быть супер живыми, но они тоже индексируются
    Ответ написан
    3 комментария
  • Как продвигать сайты, которым не нужны простыни текстового контента?

    aliprofi
    @aliprofi
    Хочешь стать неудачником? Всегда ищи виноватых!
    Купи ссылки, купи рекламу и будет тебе счастье :)

    Если серьезно, то был у меня опыт продвижения таких страниц: вернее я просто создавал маленькие станицы почти вез текста и они выстреливали огромным трафиком. Секрет прост:

    1. Создаешь страницу, которая ПОЛНОСТЬЮ решает проблему пользователя.
    2. Оптимизируешь мета теги под ТОЧНЫЙ запрос или как говорят ИНТЕНТ пользователя.
    3. Покупаешь ссылки и рекламу на страницу :)
    Ответ написан
    3 комментария
  • "Одинаковые заголовки и описания страниц". Нужно ли исправлять?

    vpetrov
    @vpetrov
    частный SEO-специалист
    Оцените характер трафа, посмотрите, как реализовано у топовых.
    Я не продвигал сайты такого типа, но предположу:
    а) Большой процент трафа должен подразумеваться из "Картинок" ПС. Стало быть, закрывать такие странички в ноиндекс - себе дороже.
    б) Значение имеют страницы категорий и тегов. Тегируйте каталог по классике, делайте, как в больших интернет-магазинах на оценке поискового спроса. Ну банально: есть спрос на "валпейпер 1920 тёмный киберпанк" - нужна категория.
    в) Шаблонизация рулит. Что мешает при загрузке картинки дать ей внятное название, которое будет подставляться в тайтл и дескрип? Ну там по типу "Обои на рабочий стол + Синее море с пальмой + 1920х1080 + скачать бесплатно".
    К этому добавьте микроразметку по картинкам. Она не для сниппетов нужна, а чтобы ПС понимали, чем вот эта страничка с минимумом контента отличается от той, где всё практически идентичное. В индекс всё равно всё не пойдёт, но будет заметно проще с техничкой - как минимум.
    Ответ написан
    3 комментария
  • Как продвигать сайты, которым не нужны простыни текстового контента?

    Как продвигать сайты, которым не нужны простыни текстового контента?


    Так а откуда простыни текстового контента?
    Подобные сайты продвигаются точечными запросами, вроде "седая ночь шатунов скачать" - и так по десяткам тысяч страниц (треков). Поэтому тут важнее правильная структура каталога с метатегами и перелинковкой + поведенческие факторы.
    Сам текст в каждую страницу если и добавляется то небольшой и авторазмножением, то есть массово и уникально сразу на все страницы - типа такого https://disk.yandex.com/i/iRYW9FBT1snF3g

    А ещё лучше не сами страницы с конкретным треком, а результат поиска на сайте, где список треков (но там тоже тексты по сути ни к чему).


    это зависит от структуры сайта, под какие запросы у вас будет результат поиска на сайте.
    "шатунов скачать" - все песни шатунова (можно в виде поиска или еще как-то, это нюансы)
    "шатунов скачать седая ночь" - только конкретный трек, без вариантов.

    Ну а тексты, теги и т.п. обычно автоматически формируются.
    То есть на таких сайтах вручную что-то добавлять - не вариант, всё автоматизируется насколько возможно и смотрится потом статистика переходов из поиска.
    Ответ написан
    3 комментария
  • Где сегодня купить вечные seo-ссылки для .com (зарубежная аудитория)? И нужно ли это для Google?

    Google у многих так себя ведет, отвратительно индексирует сайты, вообще такое чувство что ему надоело всё это ))
    Ссылки теоретически могут помочь, я обычно беру на GGL, более подробно о том, как я это делаю, размещал видео тут https://moytop.com/prodvizhenie-sajtov/rejting-bir..., может пригодится.
    Только вот сейчас обратил внимание, что ищете для зарубежной аудитории, я слышал только https://www.mainlinkads.com/ но толком не сталкивался.
    Ответ написан
    1 комментарий
  • Почему manticore (sphinx) не создаёт локальный индекс?

    ManticoreSearch
    @ManticoreSearch
    path = C:/Manticore/var/data/myindex1/

    Уберите слэш в конце или добавьте после него что-то, иначе у вас получается имя файла индекса пустое.

    возможно ли как-то не останавливая службу почистить какой-то командой query.log


    echo "" > query.log

    или

    mv query.log query.log.1 и flush logs в searchd или отправить сигнал USR1

    обязательно ли вести лог всех запросов?


    нет
    Ответ написан
    1 комментарий
  • Как кодировать ссылки для Sitemap на php?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    оборачивайте query параметры в rawurlencode()

    ' не правильно и должно быть %27

    urlencode тоже можно использовать, поисковики без проблем принимают как вариант с "%20" так и с "+"
    Ответ написан
    1 комментарий
  • Мультиязычный сайт - обязательны ли разные URL для одной страницы на разных языках?

    в сео продвигаются URL, именно по ним поисковик определяет что показать по тому или иному запросу.

    Или обязательно делать что-то вроде domain.com/ru, domain.com/fr и т.д.?


    имхо да.
    Ответ написан
    Комментировать
  • Как в mysql ускорить запрос с GROUP BY?

    Собственно ответ уже был дан выше и отличный по качеству. Хотел лишь уточнить одну "глобальную" мысль. Довольно часто единственным реальным способом ускорить запрос с group by явлется поиск варианта запроса где удастся обойти group by. Потому что группировка по своей сути подразумевает что: вначале мы создаем временное хранилище, туда отгружаем подходящие строки, а после этого по ним пробегаемся ещё процессом группировки (сравнения каждого с каждым). Большие по размеру группировки довольно часто и вовсе вызывают требование создавать для неё временный файл. Ну и сам способ вычисления группировки - небыстрая штука.
    Ответ написан
    Комментировать
  • Как в mysql ускорить запрос с GROUP BY?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    SELECT *
      FROM `posts`
      WHERE `id` IN (
        SELECT `id_post`
          FROM `tags_rel`
          WHERE `id_tag` IN (1,2,3)
        ) AND `status` = 1
      LIMIT 0, 50
    Ответ написан
  • Как объединить поиск по тегам и названию поста в MySQL?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    В запросе ничего сложного, всё так, как вы и описали
    Только, разумеется, в одном запросе.

    Для этого пора бы уже освоить джойны. Нормализацию БД вы освоили - это прекрасно.
    Джойны - тоже не бином ньютона, это основа SQL. Второй запрос не нужен, всё делается в одном
    Сначала выбираем фильмы по тегам
    select f.* from sakila.category c
    join sakila.film_category fc on fc.category_id = c.category_id
    join sakila.film f on f.film_id = fc.film_id
    where c.name in ('Action', 'Drama') 
    group by f.film_id;

    Если хотим добавить поиск по заголовку, то просто добавляем к этому же запросу еще условие во WHERE, and description like '%Drama%'
    https://sqlize.online/sql/mysql57/8d7c91ad5f6cf415...

    Правда на таких объемах LIKE делать не рекомендуется. Но если сейчас работает по всей базе, то по десятой части и подавно будет. Но в целом надо уже прикручивать внешний поисковый движок, ElasticSearch. Ну или хотя бы добавить полнотекстовый индекс по названию (и тексту тогда уж заодно) и искать в них через match...against
    Ответ написан
    2 комментария
  • Почему не стартует Apache в Xampp после обновления PHP?

    toxa82
    @toxa82
    Что у вас в 17-ой строке настроек? Он материться чтоphp8ts.dll "не является приложением". Там не php8ts.dll нужно указывать.
    Ответ написан
    3 комментария
  • Почему может зависать сайт на PHP до закрытия всех вкладок?

    99% что блокируется сессия.
    Когда PHP обрабатывает запрос, он по умолчанию открывает сессию, а закрывает только тогда, когда код завершает свою работу. Проблема в том, что файловые сессии блокируются. Если какой то поток открыл сессию, то другие потоки будут ждать пока она не закроется.
    Решение этой проблемы - уход от хранения сессий в файловой системе, обычно в таком случае выбирают memcache.
    Ответ написан
    1 комментарий
  • Почему может зависать сайт на PHP до закрытия всех вкладок?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Поведение очень похоже на блокировку файла сессий.
    При запуске скрипта открывается сессия (session_start), файл блокируется. При попытке открыть ту же сессию в другом скрипте будет ожидание освобождения файла сессии.
    Решение - в начале скрипта, особенно долго выполняющегося, открывать сессию, забирать из неё все нужные данные и сразу закрывать сессию (session_write_close). При необходимости изменить данные в сессии открывать её снова, менять данные и тут же закрывать.
    Как вариант - переносить хранение сессий в базу данных.
    Ответ написан
    1 комментарий
  • Настраиваемые поля для таблицы клиентов в CRM. Генерация таблиц?

    kritic
    @kritic
    Надо понимать, что именно хотите добавить.
    Из описания видится три варианта:
    1) Хотите добавить новое конкретное поле к данным клиента.
    Тут всё просто, в текущей таблице с клиентом добавляете новое поле в базе, а со стороны crm настраиваете его редактирование и отображение.
    2) Хотите добавить n- новых конкретных полей к данным клиента. Для этого делаете новую таблицу со справочником новых полей, где описываете название, тип, значение и ещё одну таблицу, в которой потребуется хранить связь доп. поля и клиента. Например, id клиента, id поля из справочника и значение. Таким образом можно будет проще управлять справочником доп полей и основная таблица с клиентами не превратится в горизонтальную.
    3) Хотите добавить n- полей, не знаете каких - это будут добавлять пользователи. Для этого берём п2 и дополнительно реализовываем добавление кастомных доп полей со стороны crm., чтобы пользователи могли редактировать справочник доп полей.
    Ответ написан
    Комментировать
  • Как понять блокчейн?

    @rPman
    Единственное что важно и что имеет смысл понимать
    - это консенсус, позволяющий обычный тупой блокчейн (последовательную цепочку данных), сделать доказуемо не перезаписываемым, без наличия центрального доверенного

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

    Уже начиная от сюда - создана криптовалюта (и не одна, но имеет смысл только биткоин, почему - ниже), в которой с помощью блокчейна и надежного PoW консенсуса, создана 'амбарная книга' где записываются транзакции буквально 'кто кому сколько перевел монет' и все могут доверять этим записям при условии ограничений консенсуса (в случае с PoW это атака 50%+1 и возможность подобрать такое количество подтверждений от циркулирующих сумм, при котором этой атакой можно пренебречь)

    Само собой этим не обязательно ограничиваться, задач, для которых возможность работать без доверительного центра можно придумать огромное количество, и их придумали, правда полезных на практике из всего многообразия совсем совсем мало (я даже на вскидку и не перечислю ничего кроме собственно функции денег и коллективного управления на основе мультиподписей,.. ну может еще голосования).

    Так как сама концепция независимости от центра подавляющему большинству населению сложнопонятна, этим пользуются для того чтобы пускать пыль в глаза большинству.

    Сначала создавались криптовалюты, как копирующие bitcoin так и реализация с нуля с необычным функционалом и концепцией, эксперименты с альтернативными консенсусами и прочим,.. которые показали что самого по себе консенсуса недостаточно для обеспечения надежного функционирования системы, нужны еще такие вещи как качественное первоначальное распределение ценности (монет блокчейна, если грубо) и наличие независимых разработчиков, более чем одна команда, грамотное управление и воля участников к поддержанию системы на плаву. Требование про разработчиков очень философское и есть куча примеров когда вне зависимости от консенсуса, главные разработчики, владельцы основного объема ценностей были связаны/созависимы, и были способны уничтожить полезный проект (например что произошло с bitshares, если что это показало на сколько PoS консенсус уязвим).

    Затем, осознав что большинству технические и философские концепции по барабану, буквально до лампочки, разработчики стали создавать проекты на уже работающих блокчейнах (на чем поднялся ethereum), весь смысл которых в конечном счете стал сводиться к иконке, названию и бирже, согласившейся залистить этот шлак у себя на площадке (один из заработков бирж - брать приличное вознаграждение за это).

    Логичное продолжение развитие концепции этой трио, появляется контракт (алгоритм) на блокчейне - NFT, который фактически это и представляет - иконка (картинка), название и биржа (контракт позволяет торговать и назначать и распределять комиссию за торговлю), который успешно реализован сразу на нескольких блокчейнах.

    Вся околофилософская мишура, которой пичкают неофитов - это полный бред, который не выдерживает простейшего логического анализа. Главная цель основной массы криптопроектов в криптоэкономике - отъем денег у населения. Основной способ заработка на NFT это либо комиссионные сборы (этим занимаются централизованные площадки, продвигающие NFT проекты авторов, т.е. маркетинг) либо симуляция торговли, когда автор покупает сам у себя свой же товар - показывая фейковую заинтересованность им (ничего нового не изобрели и этим давно занимаются и до смартконтрактов как биржи так и сами авторы криптопроектов). И конечно отмывка денег, буквально - обеление серых финансов, когда ценность генерируется из ничего, это просто повод показать что деньги получены с продажи вот этих произведений искусств, что давно используется в большом мире денег,.. ничего нового.

    p.s. почему только bitcoin? потому что только в нем распределение богатств заметно равномерный (индекс джини), только его консенсус подкреплен огромными финансовыми вливаниями в оборудование для майнинга (очень дорогая атака) и огромное комьюнити независимых разработчиков (правда тут есть куча мест для слабости проекта, но по сравнению с другими - bitcoin выглядит как самый защищенный).
    Остальные проекты создаются не с целью привнести что либо полезное миру, а с целью собрать денег, либо как сбор средств на разработку (ICO или комиссия в блокчейне), а когда консенсус основывается буквально на объеме денег (чистый PoS), то сам факт того что основные деньги проекта сосредоточены у кого то одного (создателя или олигополии инвесторов как это сделано в EOS, точнее dPoS проектах) полностью обнуляет любую защиту.

    p.p.s. меня заинтересовал единственный альтернативный консенсус - proof of identity (сейчас это idena.io - примерно 2к-3к нод, 7к..14к 'майнеров' и количество растет ~10% в месяц , для молодого слабого проекта это чудо в криптоэкономике), основная беда большинства не PoW - возможность атаки количеством нод или деньгами, но тут одна идентити = один человек (ну ок, две - это норма), это гарантирует консенсус, а опасность сбора фермы рабов для атаки на проект усложняется низкой стоимостью монеты, т.е. как это не парадоксально, пока доходы майнеров тут будут низкими - консенсус будет надежным

    т.е. создавать проекты на основе блокчейна с консенсусом PoI - надежно, но вот ставить проект в финансовую зависимость от его монеты - уже опасно.

    хех, надо бы это оформить в виде статьи на хабр и отправлять народ туда
    Ответ написан
    3 комментария
  • На собеседовании сказали, что не все функции - замыкания. Так ли это?

    @lazarevBoris
    Тред просто огонь!:)
    Дело в том, что такой же спор (из 8 страниц, на эту же тему) был не так давно на другом ресурсе, где мудрый дядька под ником "javascript" объяснял окружающим (которые тоже уперлись рогом, как и многие здесь), почему в js по факту всё является замыканием.
    Поэтому было крайне интересно, чем же и здесь дело закончится.
    И в очередной раз было доказано, что где бы ни была объявлена функция (а начиная с es6 и let - и блок кода) - она образует замыкание с цепочкой внешних лексических сред (или хотя бы одной LE), что полностью соответствует определению, предысторию которого хорошо описал Александр.
    Что наглядно изобразил Alexandroppolus (надеюсь, вы не будете против, если я достану ваш пример из jsfiddle и размещу здесь, чтобы он не пропал с течением времени):

    description:
    функция, созданная внутри iframe, замкнула внутрифреймовую глобальную переменную, и продолжает работать, даже когда фрейм удалили. Кнопкой frameValue можно убедиться, что в window той переменной нет.

    html:
    <script>
      var globalValue = 1000;
      var globalCounter = function() {
        return globalValue++;
      };
    </script>
    <div>
      <button>iframe counter</button>
      <button>globalCounter</button><br >
      <button>frameValue</button>
      <button>globalValue</button>
    </div>

    JS:
    const iframeHTML = 'iframe...<' + `script>
      var frameValue = 1;
      var counter = function() {
        // debugger;
        return frameValue++;
      };
      
      window.parent.iframeCounter = counter;
    <` + '/script>';
    
    function createTempFrame() {
    	const blob = new Blob([iframeHTML], {type: "text/html"});
      const frm = document.createElement('iframe');
      frm.src = URL.createObjectURL(blob);
      
      document.body.appendChild(frm);
      
      setTimeout(() => {
      	document.body.removeChild(frm);
      }, 900);
    }
    
    window.onload = function () {
      const buttons = document.querySelectorAll('button');
      
      buttons[0].onclick = function() {
        alert(iframeCounter());
      };
    
      buttons[1].onclick = function() {
        alert(globalCounter());
      };
      
      buttons[2].onclick = function() {
        alert(window.frameValue);
      };
      
      buttons[3].onclick = function() {
        alert(window.globalValue);
      };
     
      createTempFrame();
    };


    Так что да, автор треда, который ходил на собеседование, был прав, замыкание в его примере есть.
    Ответ написан
    1 комментарий
  • Как в библиотеке GSAP совместить плагины MotionPath и ScrollTrigger?

    RAX7
    @RAX7

    На странице плагина ScrollTrigger есть куча примеров, которые должны помочь разобраться.
    Ответ написан
    3 комментария