• Создавать ли отдельную посадочную страницу под запрос если Яндекс уже проиндексировал другую менее релевантную?

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

    Вы должны понимать, что Яндекс оставляет за собой право определять релевантность страницы по её контенту, следовательно данный подход не гарантирует вам результативность. Однако вы можете настроить 301 редирект, с старой страницы на посадочную. После успешной индексации изменений, вы сможете убрать редирект, или закрыть страницу от индексации вовсе.
    Что бы таких ситуаций не происходило, нужно заранее продумывать стратегию продвижения, и внутреннюю структуру сайта.
    Ответ написан
    Комментировать
  • Почему при импорте товара в woocommerce выдает ошибку что ярлык больше 28 символов?

    moonz
    @moonz
    web developer | seo | design
    В файле по адресу

    /wp-content/plugins/woocommerce/includes/wc-attribute-functions.php
    Найти строки

    // Validate slug.

    if ( strlen( $slug ) >= 28 ) {
    Заменить 28 на более высокую цифру, например 256, или 1024, сохранить.
    Ответ написан
    Комментировать
  • Запускается grub вместо виндовс. Как это исправить?

    moonz
    @moonz
    web developer | seo | design
    Ну ты попал товарищ, это мерзкая ошибка.
    Тебе нужно грузиться с флэшки (через которую ставил убунту).
    И восстанавливать GRUB, точнее прописывать верные пути, вот инструкция
    Ответ написан
    Комментировать
  • Как предотвратить распространение платного ПО третьими лицами?

    moonz
    @moonz
    web developer | seo | design
    Был опыт похожий, я реализовал так.

    Получаем HWID через клиентскую часть кода.
    import wmi
    a = WMI().Win32_ComputerSystemProduct()[0].UUID
    print(a)


    Пишем на Flask или FastAPI серверную часть, которая будет реализовывать выдачу лицензионного ключа на конкретный HWID. И переносим часть логики на сервер *vds сейчас можно за 150р в месяц купить.
    (как вариант, можно реализовать выгрузку части кода в оперативную память)

    Вкладываешь эту сумму в стоимость подписки/цены продукта = профит.

    Конечно это не понацея, но если клиент не слишком хитрый и шаристый, то вполне сойдет.
    Ответ написан
    2 комментария
  • Даёт ли Schema преимущество в ранжировании и почему её не используют?

    moonz
    @moonz
    web developer | seo | design
    Однозначно влияние есть, но не везде.
    Для интернет магазинов очень важно (как минимум турбо магазин подключить).

    Безусловно нет смысла фанатично прописывать для каждой страницы, но например страницы FAQ очень хорошо работает.
    Ответ написан
    Комментировать
  • Какой url более предпочтителен для seo?

    moonz
    @moonz
    web developer | seo | design
    Проверено лично: был такой кейс, интернет магазин с длинными url, связано это был как с наименование товаров, так и с вложенностью категорий.
    После индексации попал в топ 100 практически по всем ВЧ и СЧ, что как бы не очень приятно, учитывая что у домена был возраст 4 года. В итоге, полностью пришлось переработать структуру, была такая же как у вас:

    /основная-категория/под-категория/название-продукта

    сделал так:
    /основная-категория/название продукта/
    /основная-категория/под-категория/
    /основная-категория/под-под-категория/

    Результат был уже на второй месяц, хвастаться не буду но у нас теперь всё хорошо)
    Ответ написан
    Комментировать
  • Flask jinja2 extends как передать данные в базовый шаблон?

    moonz
    @moonz Автор вопроса
    web developer | seo | design
    Ответ помогли найти на ru.stackoverflow

    from flask import Blueprint
    
    from utils import db_connect
    
    app = Blueprint("name", __name__, template_folder='templates')
    
    @app.route("/")
    def index():
      return render_template("index.html")
    
    @app.context_processor
    def any_data_processor():
      with db_connect.connect() as con: 
    # тут же могла быть работа с кешем/API/файловой системой и др.
        ....
      result = ...
      return dict(any_data=result)

    После этого обращаться внутри всех шаблонов можно без явной передачи туда контекста.

    {{ any_data }}
    Ответ написан
    Комментировать
  • Flask как отдать ответ до конца обработки?

    moonz
    @moonz Автор вопроса
    web developer | seo | design
    Решение нашел сам (просто не правильно формулировал вопрос)

    import time
    from threading import Thread
    from flask import request, Flask
    app = Flask(__name__)
    
    
    class Compute(Thread):
        def __init__(self, request):
            Thread.__init__(self)
            self.request = request
    
        def run(self):
            print("start")
            time.sleep(5)
            print(self.request)
            print("done")
    
    
    @app.route('/myfunc', methods=["GET", "POST"])
    def myfunc():
            thread_a = Compute(request.__copy__())
            thread_a.start()
            return "Processing in background", 200
    Ответ написан
    Комментировать
  • Как Яндекс реагирует на дубли контента по регионам?

    moonz
    @moonz
    web developer | seo | design
    Если сам контент будет одинаковым, то каким образом поисковик решит вопрос приоритизации ключей под страницу?

    Контент должен быть уникальным для каждой страницы, нет ничего сложного в написании одной базовой посадочной статьи, и последующей её рерайт с включением в него маски с наименованием региона.
    При этом стоит обязательно собрать подсказки по региону, который бы включали различные вариации написания, например можно использовать не только ВЧ ключи включающие в себя точное вхождение региона, но и включить в текст название некоторых районов самого города, что бы уменьшить тошноту и увеличить охват.

    Андрей не ты ли это случайно?))
    Ответ написан
  • Где найти курсы по составлению семантического ядра и созданию структуры сайта?

    moonz
    @moonz
    web developer | seo | design
    Составление, а главное кластеризация семантического ядра, это одни из фундаментально важных активностей, учитывая проработку структуры, это должен делать очень опытный специалист.
    Ведь от этой работы будет зависеть, зайдёт ваш сайт или нет. У меня есть три кейса, когда мои проекты выстреливали в топ прямо после индексации, просто за счёт грамотной настройки и линковки структуры.

    (З.ы | Работу предлагать не надо, мне постоянных клиентов хватает)
    Ответ написан
    Комментировать
  • Какая ответственность за слитый бюджет по SEO/Маркетинг?

    moonz
    @moonz
    web developer | seo | design
    Для предотвращения подобных ситуаций, лучше всего, вести подробную отчётность по каждому действию. В идеале, составить смету проведённых работ по внутренней и внешней оптимизации. Я уже 5 лет работа как частный сеошник, и бывают такие ниши где нельзя ничего гарантировать, и в таких случаях приходится записать подробный видео ролик с разъяснением и демонстрацией метрик.

    Если научитесь документировать и планировать свою работу, в дальнейшим будет намного проще.
    Ответ написан
  • Как бороться с негативной накруткой поведенческих факторов?

    moonz
    @moonz
    web developer | seo | design
    Попробуйте настроить цели, жестко привязать их к формам и областям. ПФ от прямых заходов не ломается, Яндекс такое уже давно понимает. Но как вариант написать в ТП что бы избежать просадок.
    Ответ написан
    Комментировать
  • Почему не работает функция attachment?

    moonz
    @moonz
    web developer | seo | design
    1) Для вывода ответа от api, необходимо сохранить и вывести ответ,
    например так:
    response = vk.messages.send( chat_id = event.chat_id, attachment = "photo585191239_457239077", random_id = 0,)
    print(response)

    2) random_id должен быть разным, на то он и random
    import random
    random_id = random.randrange(1, 10000)
    Ответ написан
    Комментировать
  • CentOS конфликт php-readline как разрешить?

    moonz
    @moonz Автор вопроса
    web developer | seo | design
    Помогло только это
    sudo yum -y remove php*
    
    sudo yum install epel-release
    
    rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
    
    sudo yum install mod_php72w php72w-opcache php72w-pdo php72w-mysql php72w-mbstring
    
    sudo scl enable php72 bash
    
    sudo yum update
    Ответ написан
    Комментировать
  • Как красиво размещать документы пдф на сайте?

    moonz
    @moonz
    web developer | seo | design
    Реализация через iframe

    <iframe src="https://docs.google.com/viewer?url=file.pdf&embedded=true" 
    style="width: 600px; height: 600px;" frameborder="0">Ваш браузер не поддерживает фреймы</iframe>
    Ответ написан
    Комментировать
  • Как исправить ошибку при клике на сайте?

    moonz
    @moonz
    web developer | seo | design
    Некоторые элементы становятся доступны не моментально, по этому нужно настроить не явное ожидание.

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    driver = webdriver.Firefox()
    driver.get("http://somedomain/url_that_delays_loading")
    try:
        element = WebDriverWait(driver, 10).until(
            EC.element_to_be_clickable((By.ID, "myDynamicElement"))
        )
    finally:
        driver.quit()

    Документация
    Ответ написан
  • Можно ли сделать так что бы телеграмм бот отслеживал платеже QIWI + дату платежа?

    moonz
    @moonz
    web developer | seo | design
    1. Изучаешь документацию qiwi api
    2. Получаешь токен qiwi api
    3. Пишешь бота и прикручиваешь его к БД
    4. При создании транзакции бот создаёт запись в БД с ником юзера и суммой
    5. Бот раз в минуту (или чаще, см.пункт 1) проверят входящие транзакции.
    6. Бот нашёл транзакцию, сопоставил её с ником и суммой.
    7. Бот внёс в БД отметку о успешном зачисление средств + дата ... дальше твоя бизнес логика.
    Ответ написан
    Комментировать
  • Как разбить проект на модули?

    moonz
    @moonz
    web developer | seo | design
    Для начала нужно инициализировать экземпляры в классе настроек.

    class Settings(object):
        def __init__(self):
            self.posts = Posts()


    Я бы вообще рекомендовал использовать наследования, но видимо для вас это ещё слишком сложно.

    p.s | В вашем случае проблема может быть вызвана ошибкой идентации, так-как у вас переменные определены в глобальном скоупе.
    Ответ написан
    Комментировать
  • WP наложение css (вложенность плагинов) как изолировать?

    moonz
    @moonz Автор вопроса
    web developer | seo | design
    Костылём (но рабочим) пока нашел такое решение:
    function css_to_wp_head() {
        wp_enqueue_style( 'wp_head_style1', get_stylesheet_directory_uri() . '/wp-content/plugins/js_composer/assets/js/dist/js_composer_front.min.js?ver=6.0.5', array(), null );
    }
    
    add_action( 'wp_footer', 'css_to_wp_head' , 100);
    Ответ написан